1window.PROXY_URL=window.PROXY_URL||"https://viewer.diagrams.net/proxy";window.SHAPES_PATH=window.SHAPES_PATH||"https://viewer.diagrams.net/shapes";window.STENCIL_PATH=window.STENCIL_PATH||"https://viewer.diagrams.net/stencils";window.GRAPH_IMAGE_PATH=window.GRAPH_IMAGE_PATH||"https://viewer.diagrams.net/img";window.mxImageBasePath=window.mxImageBasePath||"https://viewer.diagrams.net/mxgraph/images";window.mxBasePath=window.mxBasePath||"https://viewer.diagrams.net/mxgraph/";
2window.mxLoadStylesheets=window.mxLoadStylesheets||!1;
3//fgnass.github.com/spin.js#v2.0.0
4!function(a,b){"object"==typeof exports?module.exports=b():"function"==typeof define&&define.amd?define(b):a.Spinner=b()}(this,function(){"use strict";function a(a,b){var c,d=document.createElement(a||"div");for(c in b)d[c]=b[c];return d}function b(a){for(var b=1,c=arguments.length;c>b;b++)a.appendChild(arguments[b]);return a}function c(a,b,c,d){var e=["opacity",b,~~(100*a),c,d].join("-"),f=.01+c/d*100,g=Math.max(1-(1-a)/b*(100-f),a),h=j.substring(0,j.indexOf("Animation")).toLowerCase(),i=h&&"-"+h+"-"||"";return l[e]||(m.insertRule("@"+i+"keyframes "+e+"{0%{opacity:"+g+"}"+f+"%{opacity:"+a+"}"+(f+.01)+"%{opacity:1}"+(f+b)%100+"%{opacity:"+a+"}100%{opacity:"+g+"}}",m.cssRules.length),l[e]=1),e}function d(a,b){var c,d,e=a.style;for(b=b.charAt(0).toUpperCase()+b.slice(1),d=0;d<k.length;d++)if(c=k[d]+b,void 0!==e[c])return c;return void 0!==e[b]?b:void 0}function e(a,b){for(var c in b)a.style[d(a,c)||c]=b[c];return a}function f(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)void 0===a[d]&&(a[d]=c[d])}return a}function g(a,b){return"string"==typeof a?a:a[b%a.length]}function h(a){this.opts=f(a||{},h.defaults,n)}function i(){function c(b,c){return a("<"+b+' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">',c)}m.addRule(".spin-vml","behavior:url(#default#VML)"),h.prototype.lines=function(a,d){function f(){return e(c("group",{coordsize:k+" "+k,coordorigin:-j+" "+-j}),{width:k,height:k})}function h(a,h,i){b(m,b(e(f(),{rotation:360/d.lines*a+"deg",left:~~h}),b(e(c("roundrect",{arcsize:d.corners}),{width:j,height:d.width,left:d.radius,top:-d.width>>1,filter:i}),c("fill",{color:g(d.color,a),opacity:d.opacity}),c("stroke",{opacity:0}))))}var i,j=d.length+d.width,k=2*j,l=2*-(d.width+d.length)+"px",m=e(f(),{position:"absolute",top:l,left:l});if(d.shadow)for(i=1;i<=d.lines;i++)h(i,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(i=1;i<=d.lines;i++)h(i);return b(a,m)},h.prototype.opacity=function(a,b,c,d){var e=a.firstChild;d=d.shadow&&d.lines||0,e&&b+d<e.childNodes.length&&(e=e.childNodes[b+d],e=e&&e.firstChild,e=e&&e.firstChild,e&&(e.opacity=c))}}var j,k=["webkit","Moz","ms","O"],l={},m=function(){var c=a("style",{type:"text/css"});return b(document.getElementsByTagName("head")[0],c),c.sheet||c.styleSheet}(),n={lines:12,length:7,width:5,radius:10,rotate:0,corners:1,color:"#000",direction:1,speed:1,trail:100,opacity:.25,fps:20,zIndex:2e9,className:"spinner",top:"50%",left:"50%",position:"absolute"};h.defaults={},f(h.prototype,{spin:function(b){this.stop();{var c=this,d=c.opts,f=c.el=e(a(0,{className:d.className}),{position:d.position,width:0,zIndex:d.zIndex});d.radius+d.length+d.width}if(b&&(b.insertBefore(f,b.firstChild||null),e(f,{left:d.left,top:d.top})),f.setAttribute("role","progressbar"),c.lines(f,c.opts),!j){var g,h=0,i=(d.lines-1)*(1-d.direction)/2,k=d.fps,l=k/d.speed,m=(1-d.opacity)/(l*d.trail/100),n=l/d.lines;!function o(){h++;for(var a=0;a<d.lines;a++)g=Math.max(1-(h+(d.lines-a)*n)%l*m,d.opacity),c.opacity(f,a*d.direction+i,g,d);c.timeout=c.el&&setTimeout(o,~~(1e3/k))}()}return c},stop:function(){var a=this.el;return a&&(clearTimeout(this.timeout),a.parentNode&&a.parentNode.removeChild(a),this.el=void 0),this},lines:function(d,f){function h(b,c){return e(a(),{position:"absolute",width:f.length+f.width+"px",height:f.width+"px",background:b,boxShadow:c,transformOrigin:"left",transform:"rotate("+~~(360/f.lines*k+f.rotate)+"deg) translate("+f.radius+"px,0)",borderRadius:(f.corners*f.width>>1)+"px"})}for(var i,k=0,l=(f.lines-1)*(1-f.direction)/2;k<f.lines;k++)i=e(a(),{position:"absolute",top:1+~(f.width/2)+"px",transform:f.hwaccel?"translate3d(0,0,0)":"",opacity:f.opacity,animation:j&&c(f.opacity,f.trail,l+k*f.direction,f.lines)+" "+1/f.speed+"s linear infinite"}),f.shadow&&b(i,e(h("#000","0 0 4px #000"),{top:"2px"})),b(d,b(i,h(g(f.color,k),"0 0 1px rgba(0,0,0,.1)")));return d},opacity:function(a,b,c){b<a.childNodes.length&&(a.childNodes[b].style.opacity=c)}});var o=e(a("group"),{behavior:"url(#default#VML)"});return!d(o,"transform")&&o.adj?i():j=d(o,"animation"),h});
5// NOTE: Modified to support data URIs for images, ie. data:image/*
6// Modified to allow "word-break: break-word" in styles. It is done by adding "break-word" which is at index 55 of J array J[55] to "cssLitGroup" of "word-break"
7// Modified to support justify-content. Add possible values to J array below ["flex-start,flex-end,center,space-between,space-around,initial".split(",")], then in L map (the variable after J), add its definition ["justify-content":{cssPropBits:0,cssLitGroup:[J[81]],cssFns:[]}]
8// Added support for flex-direction (next J index is 83)
9// Added support for align-items (next J index is 84)
10(function(){var c=void 0,n=!0,s=null,C=!1,J=["aliceblue,antiquewhite,aqua,aquamarine,azure,beige,bisque,black,blanchedalmond,blue,blueviolet,brown,burlywood,cadetblue,chartreuse,chocolate,coral,cornflowerblue,cornsilk,crimson,cyan,darkblue,darkcyan,darkgoldenrod,darkgray,darkgreen,darkkhaki,darkmagenta,darkolivegreen,darkorange,darkorchid,darkred,darksalmon,darkseagreen,darkslateblue,darkslategray,darkturquoise,darkviolet,deeppink,deepskyblue,dimgray,dodgerblue,firebrick,floralwhite,forestgreen,fuchsia,gainsboro,ghostwhite,gold,goldenrod,gray,green,greenyellow,honeydew,hotpink,indianred,indigo,ivory,khaki,lavender,lavenderblush,lawngreen,lemonchiffon,lightblue,lightcoral,lightcyan,lightgoldenrodyellow,lightgreen,lightgrey,lightpink,lightsalmon,lightseagreen,lightskyblue,lightslategray,lightsteelblue,lightyellow,lime,limegreen,linen,magenta,maroon,mediumaquamarine,mediumblue,mediumorchid,mediumpurple,mediumseagreen,mediumslateblue,mediumspringgreen,mediumturquoise,mediumvioletred,midnightblue,mintcream,mistyrose,moccasin,navajowhite,navy,oldlace,olive,olivedrab,orange,orangered,orchid,palegoldenrod,palegreen,paleturquoise,palevioletred,papayawhip,peachpuff,peru,pink,plum,powderblue,purple,red,rosybrown,royalblue,saddlebrown,salmon,sandybrown,seagreen,seashell,sienna,silver,skyblue,slateblue,slategray,snow,springgreen,steelblue,tan,teal,thistle,tomato,transparent,turquoise,violet,wheat,white,whitesmoke,yellow,yellowgreen".split(","),
11"all-scroll,col-resize,crosshair,default,e-resize,hand,help,move,n-resize,ne-resize,no-drop,not-allowed,nw-resize,pointer,progress,row-resize,s-resize,se-resize,sw-resize,text,vertical-text,w-resize,wait".split(","),"armenian,decimal,decimal-leading-zero,disc,georgian,lower-alpha,lower-greek,lower-latin,lower-roman,square,upper-alpha,upper-latin,upper-roman".split(","),"100,200,300,400,500,600,700,800,900,bold,bolder,lighter".split(","),"block-level,inline-level,table-caption,table-cell,table-column,table-column-group,table-footer-group,table-header-group,table-row,table-row-group".split(","),
12"condensed,expanded,extra-condensed,extra-expanded,narrower,semi-condensed,semi-expanded,ultra-condensed,ultra-expanded,wider".split(","),"inherit,inline,inline-block,inline-box,inline-flex,inline-grid,inline-list-item,inline-stack,inline-table,run-in".split(","),"behind,center-left,center-right,far-left,far-right,left-side,leftwards,right-side,rightwards".split(","),"large,larger,small,smaller,x-large,x-small,xx-large,xx-small".split(","),"dashed,dotted,double,groove,outset,ridge,solid".split(","),
13"ease,ease-in,ease-in-out,ease-out,linear,step-end,step-start".split(","),"at,closest-corner,closest-side,ellipse,farthest-corner,farthest-side".split(","),"baseline,middle,sub,super,text-bottom,text-top".split(","),"caption,icon,menu,message-box,small-caption,status-bar".split(","),"fast,faster,slow,slower,x-fast,x-slow".split(","),["above","below","higher","level","lower"],["cursive","fantasy","monospace","sans-serif","serif"],["loud","silent","soft","x-loud","x-soft"],["no-repeat","repeat-x","repeat-y",
14"round","space"],["blink","line-through","overline","underline"],["block","flex","grid","table"],["high","low","x-high","x-low"],["nowrap","pre","pre-line","pre-wrap"],["absolute","relative","static"],["alternate","alternate-reverse","reverse"],["border-box","content-box","padding-box"],["capitalize","lowercase","uppercase"],["child","female","male"],["=","opacity"],["backwards","forwards"],["bidi-override","embed"],["bottom","top"],["break-all","keep-all"],["clip","ellipsis"],["contain","cover"],
15["continuous","digits"],["end","start"],["flat","preserve-3d"],["hide","show"],["horizontal","vertical"],["inside","outside"],["italic","oblique"],["left","right"],["ltr","rtl"],["no-content","no-display"],["paused","running"],["suppress","unrestricted"],["thick","thin"],[","],["/"],["all"],["always"],["auto"],["avoid"],["both"],["break-word"],["center"],["circle"],["code"],["collapse"],["contents"],["fixed"],["hidden"],["infinite"],["inset"],["invert"],["justify"],["list-item"],["local"],["medium"],
16["mix"],["none"],["normal"],["once"],["repeat"],["scroll"],["separate"],["small-caps"],["spell-out"],["to"],["visible"], "flex-start,flex-end,center,space-between,space-around,initial".split(","), "row|row-reverse|column|column-reverse|initial".split("|"), "stretch|center|flex-start|flex-end|baseline|initial".split("|")],L={animation:{cssPropBits:517,cssLitGroup:[J[10],J[24],J[29],J[45],J[48],J[54],J[63],J[71],J[72]],cssFns:["cubic-bezier()","steps()"]},"animation-delay":{cssPropBits:5,cssLitGroup:[J[48]],cssFns:[]},"animation-direction":{cssPropBits:0,cssLitGroup:[J[24],J[48],J[72]],cssFns:[]},"animation-duration":"animation-delay","animation-fill-mode":{cssPropBits:0,cssLitGroup:[J[29],J[48],
17J[54],J[71]],cssFns:[]},"animation-iteration-count":{cssPropBits:5,cssLitGroup:[J[48],J[63]],cssFns:[]},"animation-name":{cssPropBits:512,cssLitGroup:[J[48],J[71]],cssFns:[]},"animation-play-state":{cssPropBits:0,cssLitGroup:[J[45],J[48]],cssFns:[]},"animation-timing-function":{cssPropBits:0,cssLitGroup:[J[10],J[48]],cssFns:["cubic-bezier()","steps()"]},appearance:{cssPropBits:0,cssLitGroup:[J[71]],cssFns:[]},azimuth:{cssPropBits:5,cssLitGroup:[J[7],J[42],J[56]],cssFns:[]},"backface-visibility":{cssPropBits:0,
18cssLitGroup:[J[59],J[62],J[80]],cssFns:[]},background:{cssPropBits:23,cssLitGroup:[J[0],J[18],J[25],J[31],J[34],J[42],J[48],J[49],J[52],J[56],J[61],J[68],J[71],J[74],J[75]],cssFns:"image(),linear-gradient(),radial-gradient(),repeating-linear-gradient(),repeating-radial-gradient(),rgb(),rgba()".split(",")},"background-attachment":{cssPropBits:0,cssLitGroup:[J[48],J[61],J[68],J[75]],cssFns:[]},"background-color":{cssPropBits:2,cssLitGroup:[J[0]],cssFns:["rgb()","rgba()"]},"background-image":{cssPropBits:16,
19cssLitGroup:[J[48],J[71]],cssFns:["image()","linear-gradient()","radial-gradient()","repeating-linear-gradient()","repeating-radial-gradient()"]},"background-position":{cssPropBits:5,cssLitGroup:[J[31],J[42],J[48],J[56]],cssFns:[]},"background-repeat":{cssPropBits:0,cssLitGroup:[J[18],J[48],J[74]],cssFns:[]},"background-size":{cssPropBits:5,cssLitGroup:[J[34],J[48],J[52]],cssFns:[]},border:{cssPropBits:7,cssLitGroup:[J[0],J[9],J[47],J[62],J[64],J[69],J[71]],cssFns:["rgb()","rgba()"]},"border-bottom":"border",
20"border-bottom-color":"background-color","border-bottom-left-radius":{cssPropBits:5,cssFns:[]},"border-bottom-right-radius":"border-bottom-left-radius","border-bottom-style":{cssPropBits:0,cssLitGroup:[J[9],J[62],J[64],J[71]],cssFns:[]},"border-bottom-width":{cssPropBits:5,cssLitGroup:[J[47],J[69]],cssFns:[]},"border-collapse":{cssPropBits:0,cssLitGroup:[J[59],J[76]],cssFns:[]},"border-color":"background-color","border-left":"border","border-left-color":"background-color","border-left-style":"border-bottom-style",
21"border-left-width":"border-bottom-width","border-radius":{cssPropBits:5,cssLitGroup:[J[49]],cssFns:[]},"border-right":"border","border-right-color":"background-color","border-right-style":"border-bottom-style","border-right-width":"border-bottom-width","border-spacing":"border-bottom-left-radius","border-style":"border-bottom-style","border-top":"border","border-top-color":"background-color","border-top-left-radius":"border-bottom-left-radius","border-top-right-radius":"border-bottom-left-radius",
22"border-top-style":"border-bottom-style","border-top-width":"border-bottom-width","border-width":"border-bottom-width",bottom:{cssPropBits:5,cssLitGroup:[J[52]],cssFns:[]},box:{cssPropBits:0,cssLitGroup:[J[60],J[71],J[72]],cssFns:[]},"box-shadow":{cssPropBits:7,cssLitGroup:[J[0],J[48],J[64],J[71]],cssFns:["rgb()","rgba()"]},"box-sizing":{cssPropBits:0,cssLitGroup:[J[25]],cssFns:[]},"caption-side":{cssPropBits:0,cssLitGroup:[J[31]],cssFns:[]},clear:{cssPropBits:0,cssLitGroup:[J[42],J[54],J[71]],cssFns:[]},
23clip:{cssPropBits:0,cssLitGroup:[J[52]],cssFns:["rect()"]},color:"background-color",content:{cssPropBits:8,cssLitGroup:[J[71],J[72]],cssFns:[]},cue:{cssPropBits:16,cssLitGroup:[J[71]],cssFns:[]},"cue-after":"cue","cue-before":"cue",cursor:{cssPropBits:16,cssLitGroup:[J[1],J[48],J[52]],cssFns:[]},direction:{cssPropBits:0,cssLitGroup:[J[43]],cssFns:[]},display:{cssPropBits:0,cssLitGroup:[J[4],J[6],J[20],J[52],J[67],J[71]],cssFns:[]},"display-extras":{cssPropBits:0,cssLitGroup:[J[67],J[71]],cssFns:[]},
24"display-inside":{cssPropBits:0,cssLitGroup:[J[20],J[52]],cssFns:[]},"display-outside":{cssPropBits:0,cssLitGroup:[J[4],J[71]],cssFns:[]},elevation:{cssPropBits:5,cssLitGroup:[J[15]],cssFns:[]},"empty-cells":{cssPropBits:0,cssLitGroup:[J[38]],cssFns:[]},filter:{cssPropBits:0,cssFns:["alpha()"]},"float":{cssPropBits:0,cssLitGroup:[J[42],J[71]],cssFns:[]},font:{cssPropBits:73,cssLitGroup:[J[3],J[8],J[13],J[16],J[41],J[48],J[49],J[69],J[72],J[77]],cssFns:[]},"font-family":{cssPropBits:72,cssLitGroup:[J[16],
25J[48]],cssFns:[]},"font-size":{cssPropBits:1,cssLitGroup:[J[8],J[69]],cssFns:[]},"font-stretch":{cssPropBits:0,cssLitGroup:[J[5],J[72]],cssFns:[]},"font-style":{cssPropBits:0,cssLitGroup:[J[41],J[72]],cssFns:[]},"font-variant":{cssPropBits:0,cssLitGroup:[J[72],J[77]],cssFns:[]},"font-weight":{cssPropBits:0,cssLitGroup:[J[3],J[72]],cssFns:[]},height:"bottom",left:"bottom","letter-spacing":{cssPropBits:5,cssLitGroup:[J[72]],cssFns:[]},"line-height":{cssPropBits:1,cssLitGroup:[J[72]],cssFns:[]},"list-style":{cssPropBits:16,
26cssLitGroup:[J[2],J[40],J[57],J[71]],cssFns:["image()","linear-gradient()","radial-gradient()","repeating-linear-gradient()","repeating-radial-gradient()"]},"list-style-image":{cssPropBits:16,cssLitGroup:[J[71]],cssFns:["image()","linear-gradient()","radial-gradient()","repeating-linear-gradient()","repeating-radial-gradient()"]},"list-style-position":{cssPropBits:0,cssLitGroup:[J[40]],cssFns:[]},"list-style-type":{cssPropBits:0,cssLitGroup:[J[2],J[57],J[71]],cssFns:[]},margin:"bottom","margin-bottom":"bottom",
27"margin-left":"bottom","margin-right":"bottom","margin-top":"bottom","max-height":{cssPropBits:1,cssLitGroup:[J[52],J[71]],cssFns:[]},"max-width":"max-height","min-height":{cssPropBits:1,cssLitGroup:[J[52]],cssFns:[]},"min-width":"min-height",opacity:{cssPropBits:1,cssFns:[]},outline:{cssPropBits:7,cssLitGroup:[J[0],J[9],J[47],J[62],J[64],J[65],J[69],J[71]],cssFns:["rgb()","rgba()"]},"outline-color":{cssPropBits:2,cssLitGroup:[J[0],J[65]],cssFns:["rgb()","rgba()"]},"outline-style":"border-bottom-style",
28"outline-width":"border-bottom-width",overflow:{cssPropBits:0,cssLitGroup:[J[52],J[62],J[75],J[80]],cssFns:[]},"overflow-wrap":{cssPropBits:0,cssLitGroup:[J[55],J[72]],cssFns:[]},"overflow-x":{cssPropBits:0,cssLitGroup:[J[44],J[52],J[62],J[75],J[80]],cssFns:[]},"overflow-y":"overflow-x",padding:"opacity","padding-bottom":"opacity","padding-left":"opacity","padding-right":"opacity","padding-top":"opacity","page-break-after":{cssPropBits:0,cssLitGroup:[J[42],J[51],J[52],J[53]],cssFns:[]},"page-break-before":"page-break-after",
29"page-break-inside":{cssPropBits:0,cssLitGroup:[J[52],J[53]],cssFns:[]},pause:"border-bottom-left-radius","pause-after":"border-bottom-left-radius","pause-before":"border-bottom-left-radius",perspective:{cssPropBits:5,cssLitGroup:[J[71]],cssFns:[]},"perspective-origin":{cssPropBits:5,cssLitGroup:[J[31],J[42],J[56]],cssFns:[]},pitch:{cssPropBits:5,cssLitGroup:[J[21],J[69]],cssFns:[]},"pitch-range":"border-bottom-left-radius","play-during":{cssPropBits:16,cssLitGroup:[J[52],J[70],J[71],J[74]],cssFns:[]},
30position:{cssPropBits:0,cssLitGroup:[J[23]],cssFns:[]},quotes:{cssPropBits:8,cssLitGroup:[J[71]],cssFns:[]},resize:{cssPropBits:0,cssLitGroup:[J[39],J[54],J[71]],cssFns:[]},richness:"border-bottom-left-radius",right:"bottom",speak:{cssPropBits:0,cssLitGroup:[J[71],J[72],J[78]],cssFns:[]},"speak-header":{cssPropBits:0,cssLitGroup:[J[51],J[73]],cssFns:[]},"speak-numeral":{cssPropBits:0,cssLitGroup:[J[35]],cssFns:[]},"speak-punctuation":{cssPropBits:0,cssLitGroup:[J[58],J[71]],cssFns:[]},"speech-rate":{cssPropBits:5,
31cssLitGroup:[J[14],J[69]],cssFns:[]},stress:"border-bottom-left-radius","table-layout":{cssPropBits:0,cssLitGroup:[J[52],J[61]],cssFns:[]},"text-align":{cssPropBits:0,cssLitGroup:[J[42],J[56],J[66]],cssFns:[]},"text-decoration":{cssPropBits:0,cssLitGroup:[J[19],J[71]],cssFns:[]},"text-indent":"border-bottom-left-radius","text-overflow":{cssPropBits:8,cssLitGroup:[J[33]],cssFns:[]},"text-shadow":"box-shadow","text-transform":{cssPropBits:0,cssLitGroup:[J[26],J[71]],cssFns:[]},"text-wrap":{cssPropBits:0,
32cssLitGroup:[J[46],J[71],J[72]],cssFns:[]},top:"bottom",transform:{cssPropBits:0,cssLitGroup:[J[71]],cssFns:"matrix(),perspective(),rotate(),rotate3d(),rotatex(),rotatey(),rotatez(),scale(),scale3d(),scalex(),scaley(),scalez(),skew(),skewx(),skewy(),translate(),translate3d(),translatex(),translatey(),translatez()".split(",")},"transform-origin":"perspective-origin","transform-style":{cssPropBits:0,cssLitGroup:[J[37]],cssFns:[]},transition:{cssPropBits:1029,cssLitGroup:[J[10],J[48],J[50],J[71]],cssFns:["cubic-bezier()",
33"steps()"]},"transition-delay":"animation-delay","transition-duration":"animation-delay","transition-property":{cssPropBits:1024,cssLitGroup:[J[48],J[50]],cssFns:[]},"transition-timing-function":"animation-timing-function","unicode-bidi":{cssPropBits:0,cssLitGroup:[J[30],J[72]],cssFns:[]},"vertical-align":{cssPropBits:5,cssLitGroup:[J[12],J[31]],cssFns:[]},visibility:"backface-visibility","voice-family":{cssPropBits:8,cssLitGroup:[J[27],J[48]],cssFns:[]},volume:{cssPropBits:1,cssLitGroup:[J[17],J[69]],
34cssFns:[]},"white-space":{cssPropBits:0,cssLitGroup:[J[22],J[72]],cssFns:[]},width:"min-height","word-break":{cssPropBits:0,cssLitGroup:[J[32],J[72],J[55]],cssFns:[]},"word-spacing":"letter-spacing","word-wrap":"overflow-wrap","z-index":"bottom",zoom:"line-height","cubic-bezier()":"animation-delay","steps()":{cssPropBits:5,cssLitGroup:[J[36],J[48]],cssFns:[]},"image()":{cssPropBits:18,cssLitGroup:[J[0],J[48]],cssFns:["rgb()","rgba()"]},"linear-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[31],J[42],J[48],
35J[79]],cssFns:["rgb()","rgba()"]},"radial-gradient()":{cssPropBits:7,cssLitGroup:[J[0],J[11],J[31],J[42],J[48],J[56],J[57]],cssFns:["rgb()","rgba()"]},"repeating-linear-gradient()":"linear-gradient()","repeating-radial-gradient()":"radial-gradient()","rgb()":{cssPropBits:1,cssLitGroup:[J[48]],cssFns:[]},"rgba()":"rgb()","rect()":{cssPropBits:5,cssLitGroup:[J[48],J[52]],cssFns:[]},"alpha()":{cssPropBits:1,cssLitGroup:[J[28]],cssFns:[]},"matrix()":"animation-delay","perspective()":"border-bottom-left-radius",
36"rotate()":"border-bottom-left-radius","rotate3d()":"animation-delay","rotatex()":"border-bottom-left-radius","rotatey()":"border-bottom-left-radius","rotatez()":"border-bottom-left-radius","scale()":"animation-delay","scale3d()":"animation-delay","scalex()":"border-bottom-left-radius","scaley()":"border-bottom-left-radius","scalez()":"border-bottom-left-radius","skew()":"animation-delay","skewx()":"border-bottom-left-radius","skewy()":"border-bottom-left-radius","translate()":"animation-delay","translate3d()":"animation-delay",
37"translatex()":"border-bottom-left-radius","translatey()":"border-bottom-left-radius","translatez()":"border-bottom-left-radius", "justify-content":{cssPropBits:0,cssLitGroup:[J[81]],cssFns:[]}, "flex-direction":{cssPropBits:0,cssLitGroup:[J[82]],cssFns:[]}, "align-items":{cssPropBits:0,cssLitGroup:[J[83]],cssFns:[]}},O;for(O in L)"string"===typeof L[O]&&Object.hasOwnProperty.call(L,O)&&(L[O]=L[L[O]]);"undefined"!==typeof window&&(window.cssSchema=L);var U,X;
38(function(){function g(a){var f=parseInt(a.substring(1),16);return 65535<f?(f-=65536,String.fromCharCode(55296+(f>>10),56320+(f&1023))):f==f?String.fromCharCode(f):" ">a[1]?"":a[1]}function w(a,f){return'"'+a.replace(/[\u0000-\u001f\\\"<>]/g,f)+'"'}function M(a){return E[a]||(E[a]="\\"+a.charCodeAt(0).toString(16)+" ")}function x(a){return e[a]||(e[a]=("\u0010">a?"%0":"%")+a.charCodeAt(0).toString(16))}var E={"\\":"\\\\"},e={"\\":"%5c"},v=RegExp("\\uFEFF|U[+][0-9A-F?]{1,6}(?:-[0-9A-F]{1,6})?|url[(][\\t\\n\\f ]*(?:\"(?:'|[^'\"\\n\\f\\\\]|\\\\[\\s\\S])*\"|'(?:\"|[^'\"\\n\\f\\\\]|\\\\[\\s\\S])*'|(?:[\\t\\x21\\x23-\\x26\\x28-\\x5b\\x5d-\\x7e]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))*)[\\t\\n\\f ]*[)]|(?!url[(])-?(?:[a-zA-Z_]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))(?:[a-zA-Z0-9_-]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))*[(]|(?:@?-?(?:[a-zA-Z_]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))|#)(?:[a-zA-Z0-9_-]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))*|\"(?:'|[^'\"\\n\\f\\\\]|\\\\[\\s\\S])*\"|'(?:\"|[^'\"\\n\\f\\\\]|\\\\[\\s\\S])*'|[-+]?(?:[0-9]+(?:[.][0-9]+)?|[.][0-9]+)(?:%|-?(?:[a-zA-Z_]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))(?:[a-zA-Z0-9_-]|[\\u0080-\\ud7ff\\ue000-\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]|\\\\(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff]))*)?|<\!--|--\>|[\\t\\n\\f ]+|/(?:[*][^*]*[*]+(?:[^/][^*]*[*]+)*/|/[^\\n\\f]*)|[~|^$*]=|[^\"'\\\\/]|/(?![/*])","gi"),
39b=RegExp("\\\\(?:(?:[0-9a-fA-F]{1,6}[\\t\\n\\f ]?|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|[\\ud800-\\udbff][\\udc00-\\udfff])|[\\n\\f])","g"),a=RegExp("^url\\([\\t\\n\\f ]*[\"']?|[\"']?[\\t\\n\\f ]*\\)$","gi");X=function(a){return a.replace(b,g)};U=function(b){for(var b=(""+b).replace(/\r\n?/g,"\n").match(v)||[],f=0,h=" ",d=0,y=b.length;d<y;++d){var l=X(b[d]),V=l.length,g=l.charCodeAt(0),l=34==g||39==g?w(l.substring(1,V-1),M):47==g&&1<V||"\\"==l||"--\>"==l||"<\!--"==l||"\ufeff"==l||32>=g?" ":
40/url\(/i.test(l)?"url("+w(l.replace(a,""),x)+")":l;if(h!=l||" "!=l)b[f++]=h=l}b.length=f;return b}})();"undefined"!==typeof window&&(window.lexCss=U,window.decodeCss=X);var Y=function(){function g(d){d=(""+d).match(k);return!d?s:new e(v(d[1]),v(d[2]),v(d[3]),v(d[4]),v(d[5]),v(d[6]),v(d[7]))}function w(d,a){return"string"==typeof d?encodeURI(d).replace(a,M):s}function M(d){d=d.charCodeAt(0);return"%"+"0123456789ABCDEF".charAt(d>>4&15)+"0123456789ABCDEF".charAt(d&15)}function x(d){if(d===s)return s;for(var d=d.replace(/(^|\/)\.(?:\/|$)/g,"$1").replace(/\/{2,}/g,"/"),a=b,h;(h=d.replace(a,"$1"))!=d;d=h);return d}function E(d,h){var b=d.T(),f=h.K();f?b.ga(h.j):f=h.X();
41f?b.da(h.n):f=h.Y();f?b.ea(h.k):f=h.$();var g=h.g,k=x(g);if(f)b.ca(h.V()),k=k&&k.replace(a,"");else if(f=!!g){if(47!==k.charCodeAt(0))var k=x(b.g||"").replace(a,""),e=k.lastIndexOf("/")+1,k=x((e?k.substring(0,e):"")+x(g)).replace(a,"")}else k=k&&k.replace(a,""),k!==g&&b.G(k);f?b.G(k):f=h.aa();f?b.O(h.l):f=h.Z();f&&b.fa(h.o);return b}function e(d,a,h,f,b,g,k){this.j=d;this.n=a;this.k=h;this.h=f;this.g=b;this.l=g;this.o=k}function v(d){return"string"==typeof d&&0<d.length?d:s}var b=RegExp(/(\/|^)(?:[^./][^/]*|\.{2,}(?:[^./][^/]*)|\.{3,}[^/]*)\/\.\.(?:\/|$)/),
42a=/^(?:\.\.\/)*(?:\.\.$)?/;e.prototype.toString=function(){var d=[];s!==this.j&&d.push(this.j,":");s!==this.k&&(d.push("//"),s!==this.n&&d.push(this.n,"@"),d.push(this.k),s!==this.h&&d.push(":",this.h.toString()));s!==this.g&&d.push(this.g);s!==this.l&&d.push("?",this.l);s!==this.o&&d.push("#",this.o);return d.join("")};e.prototype.T=function(){return new e(this.j,this.n,this.k,this.h,this.g,this.l,this.o)};e.prototype.W=function(){return this.j&&decodeURIComponent(this.j).toLowerCase()};e.prototype.ga=
43function(d){this.j=d?d:s};e.prototype.K=function(){return s!==this.j};e.prototype.da=function(d){this.n=d?d:s};e.prototype.X=function(){return s!==this.n};e.prototype.ea=function(d){this.k=d?d:s;this.G(this.g)};e.prototype.Y=function(){return s!==this.k};e.prototype.V=function(){return this.h&&decodeURIComponent(this.h)};e.prototype.ca=function(d){if(d){d=Number(d);if(d!==(d&65535))throw Error("Bad port number "+d);this.h=""+d}else this.h=s};e.prototype.$=function(){return s!==this.h};e.prototype.U=
44function(){return this.g&&decodeURIComponent(this.g)};e.prototype.G=function(d){d?(d=""+d,this.g=!this.k||/^\//.test(d)?d:"/"+d):this.g=s};e.prototype.O=function(d){this.l=d?d:s};e.prototype.aa=function(){return s!==this.l};e.prototype.ba=function(d){if("object"===typeof d&&!(d instanceof Array)&&(d instanceof Object||"[object Array]"!==Object.prototype.toString.call(d))){var a=[],h=-1,f;for(f in d){var b=d[f];"string"===typeof b&&(a[++h]=f,a[++h]=b)}d=a}for(var a=[],h="",g=0;g<d.length;)f=d[g++],
45b=d[g++],a.push(h,encodeURIComponent(f.toString())),h="&",b&&a.push("=",encodeURIComponent(b.toString()));this.l=a.join("")};e.prototype.fa=function(d){this.o=d?d:s};e.prototype.Z=function(){return s!==this.o};var k=/^(?:([^:/?#]+):)?(?:\/\/(?:([^/?#]*)@)?([^/?#:@]*)(?::([0-9]+))?)?([^?#]+)?(?:\?([^#]*))?(?:#(.*))?$/,f=/[#\/\?@]/g,h=/[\#\?]/g;e.parse=g;e.create=function(d,a,b,g,k,Q,N){d=new e(w(d,f),w(a,f),"string"==typeof b?encodeURIComponent(b):s,0<g?g.toString():s,w(k,h),s,"string"==typeof N?encodeURIComponent(N):
46s);Q&&("string"===typeof Q?d.O(Q.replace(/[^?&=0-9A-Za-z_\-~.%]/g,M)):d.ba(Q));return d};e.N=E;e.ma=x;e.ha={ua:function(d){return/\.html$/.test(g(d).U())?"text/html":"application/javascript"},N:function(d,a){return d?E(g(d),g(a)).toString():""+a}};return e}();"undefined"!==typeof window&&(window.URI=Y);var aa=c,ba=c,da=c,Z=c;
47(function(){function g(a){return"string"===typeof a?'url("'+a.replace(e,w)+'")':'url("about:blank")'}function w(a){return v[a]}function M(a,d){return a?Y.ha.N(a,d):d}function x(h,d,f){if(!f)return s;var g=(""+h).match(b);return g&&(!g[1]||a.test(g[1]))?f(h,d):s}function E(a){return a.replace(/^-(?:apple|css|epub|khtml|moz|mso?|o|rim|wap|webkit|xv)-(?=[a-z])/,"")}var e=/[\n\f\r\"\'()*<>]/g,v={"\n":"%0a","\u000c":"%0c","\r":"%0d",'"':"%22","'":"%27","(":"%28",")":"%29","*":"%2a","<":"%3c",">":"%3e"},
48b=/^(?:([^:/?# ]+):)?/,a=/^(?:https?|mailto|data)$/i;aa=function(){var a={};return function y(f,b,k,e,N){var f=E(f),u=L[f];if(!u||"object"!==typeof u)b.length=0;else{for(var i=u.cssPropBits,q=i&80,B=i&1536,F=NaN,r=0,o=0;r<b.length;++r){var j=b[r].toLowerCase(),I=j.charCodeAt(0),R,v,P,S,D,w;if(32===I)j="";else if(34===I)j=16===q?k?g(x(M(e,X(b[r].substring(1,j.length-1))),f,k)):"":i&8&&!(q&q-1)?j:"";else if("inherit"!==j){if(D=u.cssLitGroup){var G;if(!(G=u.cssLitMap)){G={};for(var K=D.length;0<=--K;)for(var A=
49D[K],T=A.length;0<=--T;)G[A[T]]=a;G=u.cssLitMap=G}D=G}else D=a;if(!(w=D,w[E(j)]===a))if(35===I&&/^#(?:[0-9a-f]{3}){1,2}$/.test(j))j=i&2?j:"";else if(48<=I&&57>=I)j=i&1?j:"";else if(R=j.charCodeAt(1),v=j.charCodeAt(2),P=48<=R&&57>=R,S=48<=v&&57>=v,43===I&&(P||46===R&&S))j=i&1?(P?"":"0")+j.substring(1):"";else if(45===I&&(P||46===R&&S))j=i&4?(P?"-":"-0")+j.substring(1):i&1?"0":"";else if(46===I&&P)j=i&1?"0"+j:"";else if('url("'===j.substring(0,5))j=k&&i&16?g(x(M(e,b[r].substring(5,j.length-2)),f,k)):
50"";else if("("===j.charAt(j.length-1))a:{D=b;G=r;j=1;K=G+1;for(I=D.length;K<I&&j;)A=D[K++],j+=")"===A?-1:/^[^"']*\($/.test(A);if(!j){j=D[G].toLowerCase();I=E(j);D=D.splice(G,K-G,"");G=u.cssFns;K=0;for(A=G.length;K<A;++K)if(G[K].substring(0,I.length)==I){D[0]=D[D.length-1]="";y(G[K],D,k,e);j=j+D.join(" ")+")";break a}}j=""}else j=B&&/^-?[a-z_][\w\-]*$/.test(j)&&!/__$/.test(j)?N&&512===B?b[r]+N:1024===B&&L[j]&&"number"===typeof L[j].oa?j:"":/^\w+$/.test(j)&&64===q&&i&8?F+1===o?(b[F]=b[F].substring(0,
51b[F].length-1)+" "+j+'"',""):(F=o,'"'+j+'"'):""}j&&(b[o++]=j)}1===o&&'url("about:blank")'===b[0]&&(o=0);b.length=o}}}();var k=RegExp("^(active|after|before|blank|checked|default|disabled|drop|empty|enabled|first|first-child|first-letter|first-line|first-of-type|fullscreen|focus|hover|in-range|indeterminate|invalid|last-child|last-of-type|left|link|only-child|only-of-type|optional|out-of-range|placeholder-shown|read-only|read-write|required|right|root|scope|user-error|valid|visited)$"),f={};f[">"]=
52f["+"]=f["~"]=f;ba=function(a,d,b){function g(i,r){function o(b,f,g){var y,e,i,l,o,m=n;y="";if(b<f)if(o=a[b],"*"===o)++b,y=o;else if(/^[a-zA-Z]/.test(o)&&(e=x(o.toLowerCase(),[])))"tagName"in e&&(o=e.tagName),++b,y=o;for(l=i=e="";m&&b<f;++b)if(o=a[b],"#"===o.charAt(0))/^#_|__$|[^\w#:\-]/.test(o)?m=C:e+=o+v;else if("."===o)++b<f&&/^[0-9A-Za-z:_\-]+$/.test(o=a[b])&&!/^_|__$/.test(o)?e+="."+o:m=C;else if(b+1<f&&"["===a[b]){++b;var H=a[b++].toLowerCase();o=$.m[y+"::"+H];o!==+o&&(o=$.m["*::"+H]);var W;
53d.ia?(W=d.ia(y,H),"string"!==typeof W&&(m=C,W=H),m&&o!==+o&&(o=$.d.NONE)):(W=H,o!==+o&&(m=C));var p=H="",ca=C;/^[~^$*|]?=$/.test(a[b])&&(H=a[b++],p=a[b++],/^[0-9A-Za-z:_\-]+$/.test(p)?p='"'+p+'"':"]"===p&&(p='""',--b),/^"([^\"\\]|\\.)*"$/.test(p)||(m=C),(ca="i"===a[b])&&++b);"]"!==a[b]&&(++b,m=C);switch(o){case $.d.CLASSES:case $.d.LOCAL_NAME:case $.d.NONE:break;case $.d.GLOBAL_NAME:case $.d.ID:case $.d.IDREF:("="===H||"~="===H||"$="===H)&&'""'!=p&&!ca?p='"'+p.substring(1,p.length-1)+v+'"':"|="===
54H||""===H||(m=C);break;case $.d.URI:case $.d.URI_FRAGMENT:""!==H&&(m=C);break;default:m=C}m&&(i+="["+W.replace(/[^\w-]/g,"\\$&")+H+p+(ca?" i]":"]"))}else if(b<f&&":"===a[b])if(o=a[++b],k.test(o))l+=":"+o;else break;else break;b!==f&&(m=C);m&&(b=(y+e).replace(/[^ .*#\w-]/g,"\\$&")+i+l+g)&&j.push(b);return m}" "===a[i]&&++i;r-1!==i&&" "===a[r]&&--r;for(var j=[],l=i,q=n,u=i;q&&u<r;++u){var B=a[u];if(f[B]===f||" "===B)o(l,u,B)?l=u+1:q=C}o(l,r,"")||(q=C);return q?(j.length&&(l=j.join(""),e!==s&&(l="."+
55e+" "+l),N.push(l)),n):!b||b(a.slice(i,r))}var e=d.na,v=d.L,x=d.Aa,N=[],u=0,i,q=0,B;for(i=0;i<a.length;++i)if(B=a[i],"("==B||"["==B?(++q,n):")"==B||"]"==B?(q&&--q,n):!(" "==a[i]&&(q||f[a[i-1]]===f||f[a[i+1]]===f)))a[u++]=a[i];a.length=u;u=a.length;for(i=q=0;i<u;++i)if(","===a[i]){if(!g(q,i))return s;q=i+1}return!g(q,u)?s:N};(function(){var a=/^\w/,d=RegExp("^(?:(?:(?:(?:only|not) )?(?:all|aural|braille|embossed|handheld|print|projection|screen|speech|tty|tv)|\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))(?: and ?\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))*)(?: , (?:(?:(?:(?:only|not) )?(?:all|aural|braille|embossed|handheld|print|projection|screen|speech|tty|tv)|\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))(?: and ?\\( (?:(?:min-|max-)?(?:(?:device-)?(?:aspect-ratio|height|width)|color(?:-index)?|monochrome|orientation|resolution)|grid|hover|luminosity|pointer|scan|script) (?:: -?(?:[a-z]\\w+(?:-\\w+)*|\\d+(?: / \\d+|(?:\\.\\d+)?(?:p[cxt]|[cem]m|in|dpi|dppx|dpcm|%)?)) )?\\))*))*$",
56"i");Z=function(b){for(var b=b.slice(),f=b.length,g=0,k=0;k<f;++k){var e=b[k];" "!=e&&(b[g++]=e)}b.length=g;b=b.join(" ");return b=!b.length?"":!d.test(b)?"not all":a.test(b)?b:"not all , "+b}})();(function(){function a(b){var d=/^\s*[']([^']*)[']\s*$/,f=/^\s*url\s*[(]["]([^"]*)["][)]\s*$/,g=/^\s*url\s*[(][']([^']*)['][)]\s*$/,h=/^\s*url\s*[(]([^)]*)[)]\s*$/,k;return(k=/^\s*["]([^"]*)["]\s*$/.exec(b))||(k=d.exec(b))||(k=f.exec(b))||(k=g.exec(b))||(k=h.exec(b))?k[1]:s}function b(f,g,k,e,v,w,u){function i(){r=
57F.length&&F[F.length-1]===s}var q=c,B=u||[0],F=[],r=C;fa(g,{startStylesheet:function(){q=[]},endStylesheet:function(){},startAtrule:function(g,j){if(r)g=s;else if("@media"===g)q.push("@media"," ",Z(j));else if("@keyframes"===g||"@-webkit-keyframes"===g){var i=j[0];1===j.length&&!/__$|[^\w\-]/.test(i)?(q.push(g," ",i+k.L),g="@keyframes"):g=s}else if("@import"===g&&0<j.length)if(g=s,"function"===typeof w){var l=Z(j.slice(1));if("not all"!==l){++B[0];var u=[];q.push(u);var E=x(M(f,a(j[0])),function(a){var f=
58b(E,a.qa,k,e,v,w,B);--B[0];a=l?{toString:function(){return"@media "+l+" {"+f.result+"}"}}:f.result;u[0]=a;w(a,!!B[0])},v)}}else window.console&&window.console.log("@import "+j.join(" ")+" elided");r=!g;F.push(g)},endAtrule:function(){F.pop();r||q.push(";");i()},startBlock:function(){r||q.push("{")},endBlock:function(){r||(q.push("}"),r=n)},startRuleset:function(a){if(!r){var b=c;"@keyframes"===F[F.length-1]?(b=a.join(" ").match(/^ *(?:from|to|\d+(?:\.\d+)?%) *(?:, *(?:from|to|\d+(?:\.\d+)?%) *)*$/i),
59r=!b,b&&(b=b[0].replace(/ +/g,""))):(a=ba(a,k),!a||!a.length?r=n:b=a.join(", "));r||q.push(b,"{")}F.push(s)},endRuleset:function(){F.pop();r||q.push("}");i()},declaration:function(a,b){if(!r){var d=C,g=b.length;2<=g&&"!"===b[g-2]&&"important"===b[g-1].toLowerCase()&&(d=n,b.length-=2);aa(a,b,e,f,k.L);b.length&&q.push(a,":",b.join(" "),d?" !important;":";")}}});return{result:{toString:function(){return q.join("")}},va:!!B[0]}}da=function(a,f,g,k){return b(a,f,g,k,c,c).result.toString()}})()})();
60"undefined"!==typeof window&&(window.sanitizeCssProperty=aa,window.sanitizeCssSelectorList=ba,window.sanitizeStylesheet=da,window.sanitizeMediaQuery=Z);var fa,ga;
61(function(){function g(b,a,g,f,h){for(var d=a++;a<g&&"{"!==b[a]&&";"!==b[a];)++a;if(a<g&&(h||";"===b[a])){var h=d+1,e=a;h<g&&" "===b[h]&&++h;e>h&&" "===b[e-1]&&--e;f.startAtrule&&f.startAtrule(b[d].toLowerCase(),b.slice(h,e));a="{"===b[a]?w(b,a,g,f):a+1;f.endAtrule&&f.endAtrule()}return a}function w(b,a,k,f){++a;for(f.startBlock&&f.startBlock();a<k;){var h=b[a].charAt(0);if("}"==h){++a;break}a=" "===h||";"===h?a+1:"@"===h?g(b,a,k,f,C):"{"===h?w(b,a,k,f):M(b,a,k,f)}f.endBlock&&f.endBlock();return a}
62function M(b,a,g,f){var h=a,d=x(b,a,g,n);if(0>d)return d=~d,d===h?d+1:d;var y=b[d];if("{"!==y)return d===h?d+1:d;a=d+1;d>h&&" "===b[d-1]&&--d;for(f.startRuleset&&f.startRuleset(b.slice(h,d));a<g;){y=b[a];if("}"===y){++a;break}a=" "===y?a+1:e(b,a,g,f)}f.endRuleset&&f.endRuleset();return a}function x(b,a,g,f){for(var h,d=[],e=-1;a<g;++a)if(h=b[a].charAt(0),"["===h||"("===h)d[++e]=h;else if("]"===h&&"["===d[e]||")"===h&&"("===d[e])--e;else if("{"===h||"}"===h||";"===h||"@"===h||":"===h&&!f)break;0<=
63e&&(a=~(a+1));return a}function E(b,a,g){for(;a<g&&";"!==b[a]&&"}"!==b[a];)++a;return a<g&&";"===b[a]?a+1:a}function e(b,a,g,f){var h=b[a++];if(!v.test(h))return E(b,a,g);a<g&&" "===b[a]&&++a;if(a==g||":"!==b[a])return E(b,a,g);++a;a<g&&" "===b[a]&&++a;var d=x(b,a,g,C);if(0>d)d=~d;else{for(var e=[],l=0,w=a;w<d;++w)a=b[w]," "!==a&&(e[l++]=a);if(d<g){do{a=b[d];if(";"===a||"}"===a)break;l=0}while(++d<g);";"===a&&++d}l&&f.declaration&&f.declaration(h.toLowerCase(),e)}return d}fa=function(b,a){var e=U(b);
64a.startStylesheet&&a.startStylesheet();for(var f=0,h=e.length;f<h;)f=" "===e[f]?f+1:f<h?"@"===e[f].charAt(0)?g(e,f,h,a,n):M(e,f,h,a):f;a.endStylesheet&&a.endStylesheet()};var v=/^-?[a-z]/i;ga=function(b,a){for(var g=U(b),f=0,h=g.length;f<h;)f=" "!==g[f]?e(g,f,h,a):f+1}})();"undefined"!==typeof window&&(window.parseCssStylesheet=fa,window.parseCssDeclarations=ga);var $={d:{NONE:0,URI:1,URI_FRAGMENT:11,SCRIPT:2,STYLE:3,HTML:12,ID:4,IDREF:5,IDREFS:6,GLOBAL_NAME:7,LOCAL_NAME:8,CLASSES:9,FRAME_TARGET:10,MEDIA_QUERY:13}};$.atype=$.d;
65$.m={"*::class":9,"*::dir":0,"*::draggable":0,"*::hidden":0,"*::id":4,"*::inert":0,"*::itemprop":0,"*::itemref":6,"*::itemscope":0,"*::lang":0,"*::onblur":2,"*::onchange":2,"*::onclick":2,"*::ondblclick":2,"*::onerror":2,"*::onfocus":2,"*::onkeydown":2,"*::onkeypress":2,"*::onkeyup":2,"*::onload":2,"*::onmousedown":2,"*::onmousemove":2,"*::onmouseout":2,"*::onmouseover":2,"*::onmouseup":2,"*::onreset":2,"*::onscroll":2,"*::onselect":2,"*::onsubmit":2,"*::ontouchcancel":2,"*::ontouchend":2,"*::ontouchenter":2,
66"*::ontouchleave":2,"*::ontouchmove":2,"*::ontouchstart":2,"*::onunload":2,"*::spellcheck":0,"*::style":3,"*::tabindex":0,"*::title":0,"*::translate":0,"a::accesskey":0,"a::coords":0,"a::href":1,"a::hreflang":0,"a::name":7,"a::onblur":2,"a::onfocus":2,"a::shape":0,"a::target":10,"a::type":0,"area::accesskey":0,"area::alt":0,"area::coords":0,"area::href":1,"area::nohref":0,"area::onblur":2,"area::onfocus":2,"area::shape":0,"area::target":10,"audio::controls":0,"audio::loop":0,"audio::mediagroup":5,
67"audio::muted":0,"audio::preload":0,"audio::src":1,"bdo::dir":0,"blockquote::cite":1,"br::clear":0,"button::accesskey":0,"button::disabled":0,"button::name":8,"button::onblur":2,"button::onfocus":2,"button::type":0,"button::value":0,"canvas::height":0,"canvas::width":0,"caption::align":0,"col::align":0,"col::char":0,"col::charoff":0,"col::span":0,"col::valign":0,"col::width":0,"colgroup::align":0,"colgroup::char":0,"colgroup::charoff":0,"colgroup::span":0,"colgroup::valign":0,"colgroup::width":0,
68"command::checked":0,"command::command":5,"command::disabled":0,"command::icon":1,"command::label":0,"command::radiogroup":0,"command::type":0,"data::value":0,"del::cite":1,"del::datetime":0,"details::open":0,"dir::compact":0,"div::align":0,"dl::compact":0,"fieldset::disabled":0,"font::color":0,"font::face":0,"font::size":0,"form::accept":0,"form::action":1,"form::autocomplete":0,"form::enctype":0,"form::method":0,"form::name":7,"form::novalidate":0,"form::onreset":2,"form::onsubmit":2,"form::target":10,
69"h1::align":0,"h2::align":0,"h3::align":0,"h4::align":0,"h5::align":0,"h6::align":0,"hr::align":0,"hr::noshade":0,"hr::size":0,"hr::width":0,"iframe::align":0,"iframe::frameborder":0,"iframe::height":0,"iframe::marginheight":0,"iframe::marginwidth":0,"iframe::width":0,"img::align":0,"img::alt":0,"img::border":0,"img::height":0,"img::hspace":0,"img::ismap":0,"img::name":7,"img::src":1,"img::usemap":11,"img::vspace":0,"img::width":0,"input::accept":0,"input::accesskey":0,"input::align":0,"input::alt":0,
70"input::autocomplete":0,"input::checked":0,"input::disabled":0,"input::inputmode":0,"input::ismap":0,"input::list":5,"input::max":0,"input::maxlength":0,"input::min":0,"input::multiple":0,"input::name":8,"input::onblur":2,"input::onchange":2,"input::onfocus":2,"input::onselect":2,"input::pattern":0,"input::placeholder":0,"input::readonly":0,"input::required":0,"input::size":0,"input::src":1,"input::step":0,"input::type":0,"input::usemap":11,"input::value":0,"ins::cite":1,"ins::datetime":0,"label::accesskey":0,
71"label::for":5,"label::onblur":2,"label::onfocus":2,"legend::accesskey":0,"legend::align":0,"li::type":0,"li::value":0,"map::name":7,"menu::compact":0,"menu::label":0,"menu::type":0,"meter::high":0,"meter::low":0,"meter::max":0,"meter::min":0,"meter::value":0,"ol::compact":0,"ol::reversed":0,"ol::start":0,"ol::type":0,"optgroup::disabled":0,"optgroup::label":0,"option::disabled":0,"option::label":0,"option::selected":0,"option::value":0,"output::for":6,"output::name":8,"p::align":0,"pre::width":0,
72"progress::max":0,"progress::min":0,"progress::value":0,"q::cite":1,"select::autocomplete":0,"select::disabled":0,"select::multiple":0,"select::name":8,"select::onblur":2,"select::onchange":2,"select::onfocus":2,"select::required":0,"select::size":0,"source::type":0,"table::align":0,"table::bgcolor":0,"table::border":0,"table::cellpadding":0,"table::cellspacing":0,"table::frame":0,"table::rules":0,"table::summary":0,"table::width":0,"tbody::align":0,"tbody::char":0,"tbody::charoff":0,"tbody::valign":0,
73"td::abbr":0,"td::align":0,"td::axis":0,"td::bgcolor":0,"td::char":0,"td::charoff":0,"td::colspan":0,"td::headers":6,"td::height":0,"td::nowrap":0,"td::rowspan":0,"td::scope":0,"td::valign":0,"td::width":0,"textarea::accesskey":0,"textarea::autocomplete":0,"textarea::cols":0,"textarea::disabled":0,"textarea::inputmode":0,"textarea::name":8,"textarea::onblur":2,"textarea::onchange":2,"textarea::onfocus":2,"textarea::onselect":2,"textarea::placeholder":0,"textarea::readonly":0,"textarea::required":0,
74"textarea::rows":0,"textarea::wrap":0,"tfoot::align":0,"tfoot::char":0,"tfoot::charoff":0,"tfoot::valign":0,"th::abbr":0,"th::align":0,"th::axis":0,"th::bgcolor":0,"th::char":0,"th::charoff":0,"th::colspan":0,"th::headers":6,"th::height":0,"th::nowrap":0,"th::rowspan":0,"th::scope":0,"th::valign":0,"th::width":0,"thead::align":0,"thead::char":0,"thead::charoff":0,"thead::valign":0,"tr::align":0,"tr::bgcolor":0,"tr::char":0,"tr::charoff":0,"tr::valign":0,"track::default":0,"track::kind":0,"track::label":0,
75"track::srclang":0,"ul::compact":0,"ul::type":0,"video::controls":0,"video::height":0,"video::loop":0,"video::mediagroup":5,"video::muted":0,"video::poster":1,"video::preload":0,"video::src":1,"video::width":0};$.ATTRIBS=$.m;$.c={OPTIONAL_ENDTAG:1,EMPTY:2,CDATA:4,RCDATA:8,UNSAFE:16,FOLDABLE:32,SCRIPT:64,STYLE:128,VIRTUALIZED:256};$.eflags=$.c;
76$.f={a:0,abbr:0,acronym:0,address:0,applet:272,area:2,article:0,aside:0,audio:0,b:0,base:274,basefont:274,bdi:0,bdo:0,big:0,blockquote:0,body:305,br:2,button:0,canvas:0,caption:0,center:0,cite:0,code:0,col:2,colgroup:1,command:2,data:0,datalist:0,dd:1,del:0,details:0,dfn:0,dialog:272,dir:0,div:0,dl:0,dt:1,em:0,fieldset:0,figcaption:0,figure:0,font:0,footer:0,form:0,frame:274,frameset:272,h1:0,h2:0,h3:0,h4:0,h5:0,h6:0,head:305,header:0,hgroup:0,hr:2,html:305,i:0,iframe:4,img:2,input:2,ins:0,isindex:274,
77kbd:0,keygen:274,label:0,legend:0,li:1,link:274,map:0,mark:0,menu:0,meta:274,meter:0,nav:0,nobr:0,noembed:276,noframes:276,noscript:276,object:272,ol:0,optgroup:0,option:1,output:0,p:1,param:274,pre:0,progress:0,q:0,s:0,samp:0,script:84,section:0,select:0,small:0,source:2,span:0,strike:0,strong:0,style:148,sub:0,summary:0,sup:0,table:0,tbody:1,td:1,textarea:8,tfoot:1,th:1,thead:1,time:0,title:280,tr:1,track:2,tt:0,u:0,ul:0,"var":0,video:0,wbr:2};$.ELEMENTS=$.f;
78$.Q={a:"HTMLAnchorElement",abbr:"HTMLElement",acronym:"HTMLElement",address:"HTMLElement",applet:"HTMLAppletElement",area:"HTMLAreaElement",article:"HTMLElement",aside:"HTMLElement",audio:"HTMLAudioElement",b:"HTMLElement",base:"HTMLBaseElement",basefont:"HTMLBaseFontElement",bdi:"HTMLElement",bdo:"HTMLElement",big:"HTMLElement",blockquote:"HTMLQuoteElement",body:"HTMLBodyElement",br:"HTMLBRElement",button:"HTMLButtonElement",canvas:"HTMLCanvasElement",caption:"HTMLTableCaptionElement",center:"HTMLElement",
79cite:"HTMLElement",code:"HTMLElement",col:"HTMLTableColElement",colgroup:"HTMLTableColElement",command:"HTMLCommandElement",data:"HTMLElement",datalist:"HTMLDataListElement",dd:"HTMLElement",del:"HTMLModElement",details:"HTMLDetailsElement",dfn:"HTMLElement",dialog:"HTMLDialogElement",dir:"HTMLDirectoryElement",div:"HTMLDivElement",dl:"HTMLDListElement",dt:"HTMLElement",em:"HTMLElement",fieldset:"HTMLFieldSetElement",figcaption:"HTMLElement",figure:"HTMLElement",font:"HTMLFontElement",footer:"HTMLElement",
80form:"HTMLFormElement",frame:"HTMLFrameElement",frameset:"HTMLFrameSetElement",h1:"HTMLHeadingElement",h2:"HTMLHeadingElement",h3:"HTMLHeadingElement",h4:"HTMLHeadingElement",h5:"HTMLHeadingElement",h6:"HTMLHeadingElement",head:"HTMLHeadElement",header:"HTMLElement",hgroup:"HTMLElement",hr:"HTMLHRElement",html:"HTMLHtmlElement",i:"HTMLElement",iframe:"HTMLIFrameElement",img:"HTMLImageElement",input:"HTMLInputElement",ins:"HTMLModElement",isindex:"HTMLUnknownElement",kbd:"HTMLElement",keygen:"HTMLKeygenElement",
81label:"HTMLLabelElement",legend:"HTMLLegendElement",li:"HTMLLIElement",link:"HTMLLinkElement",map:"HTMLMapElement",mark:"HTMLElement",menu:"HTMLMenuElement",meta:"HTMLMetaElement",meter:"HTMLMeterElement",nav:"HTMLElement",nobr:"HTMLElement",noembed:"HTMLElement",noframes:"HTMLElement",noscript:"HTMLElement",object:"HTMLObjectElement",ol:"HTMLOListElement",optgroup:"HTMLOptGroupElement",option:"HTMLOptionElement",output:"HTMLOutputElement",p:"HTMLParagraphElement",param:"HTMLParamElement",pre:"HTMLPreElement",
82progress:"HTMLProgressElement",q:"HTMLQuoteElement",s:"HTMLElement",samp:"HTMLElement",script:"HTMLScriptElement",section:"HTMLElement",select:"HTMLSelectElement",small:"HTMLElement",source:"HTMLSourceElement",span:"HTMLSpanElement",strike:"HTMLElement",strong:"HTMLElement",style:"HTMLStyleElement",sub:"HTMLElement",summary:"HTMLElement",sup:"HTMLElement",table:"HTMLTableElement",tbody:"HTMLTableSectionElement",td:"HTMLTableDataCellElement",textarea:"HTMLTextAreaElement",tfoot:"HTMLTableSectionElement",
83th:"HTMLTableHeaderCellElement",thead:"HTMLTableSectionElement",time:"HTMLTimeElement",title:"HTMLTitleElement",tr:"HTMLTableRowElement",track:"HTMLTrackElement",tt:"HTMLElement",u:"HTMLElement",ul:"HTMLUListElement","var":"HTMLElement",video:"HTMLVideoElement",wbr:"HTMLElement"};$.ELEMENT_DOM_INTERFACES=$.Q;$.P={NOT_LOADED:0,SAME_DOCUMENT:1,NEW_DOCUMENT:2};$.ueffects=$.P;
84$.J={"a::href":2,"area::href":2,"audio::src":1,"blockquote::cite":0,"command::icon":1,"del::cite":0,"form::action":2,"img::src":1,"input::src":1,"ins::cite":0,"q::cite":0,"video::poster":1,"video::src":1};$.URIEFFECTS=$.J;$.M={UNSANDBOXED:2,SANDBOXED:1,DATA:0};$.ltypes=$.M;$.I={"a::href":2,"area::href":2,"audio::src":2,"blockquote::cite":2,"command::icon":1,"del::cite":2,"form::action":2,"img::src":1,"input::src":1,"ins::cite":2,"q::cite":2,"video::poster":1,"video::src":2};$.LOADERTYPES=$.I;
85"undefined"!==typeof window&&(window.html4=$);var ha=function(g){function w(a){if(i.hasOwnProperty(a))return i[a];var b=a.match(q);return b?String.fromCharCode(parseInt(b[1],10)):(b=a.match(B))?String.fromCharCode(parseInt(b[1],16)):r&&F.test(a)?(r.innerHTML="&"+a+";",b=r.textContent,i[a]=b):"&"+a+";"}function M(a,b){return w(b)}function x(a){return a.replace(j,M)}function E(a){return(""+a).replace(R,"&amp;").replace(P,"&lt;").replace(S,"&gt;").replace(D,"&#34;")}function e(a){return a.replace(ia,"&amp;$1").replace(P,"&lt;").replace(S,"&gt;")}
86function v(b){var d={z:b.z||b.cdata,A:b.A||b.comment,B:b.B||b.endDoc,t:b.t||b.endTag,e:b.e||b.pcdata,F:b.F||b.rcdata,H:b.H||b.startDoc,w:b.w||b.startTag};return function(b,g){var f;var H=/(<\/|<\!--|<[!?]|[&<>])/g;f=b+"";if(G)f=f.split(H);else{for(var e=[],h=0,j;(j=H.exec(f))!==s;)e.push(f.substring(h,j.index)),e.push(j[0]),h=j.index+j[0].length;e.push(f.substring(h));f=e}a(d,f,0,{r:C,C:C},g)}}function b(b,d,g,f,t){return function(){a(b,d,g,f,t)}}function a(a,d,p,e,t){try{a.H&&0==p&&a.H(t);for(var h,
87z,j,i=d.length;p<i;){var o=d[p++],l=d[p];switch(o){case "&":I.test(l)?(a.e&&a.e("&"+l,t,A,b(a,d,p,e,t)),p++):a.e&&a.e("&amp;",t,A,b(a,d,p,e,t));break;case "</":if(h=/^([-\w:]+)[^\'\"]*/.exec(l))if(h[0].length===l.length&&">"===d[p+1])p+=2,j=h[1].toLowerCase(),a.t&&a.t(j,t,A,b(a,d,p,e,t));else{var m=d,q=p,r=a,u=t,v=A,y=e,w=f(m,q);w?(r.t&&r.t(w.name,u,v,b(r,m,q,y,u)),p=w.next):p=m.length}else a.e&&a.e("&lt;/",t,A,b(a,d,p,e,t));break;case "<":if(h=/^([-\w:]+)\s*\/?/.exec(l))if(h[0].length===l.length&&
88">"===d[p+1]){p+=2;j=h[1].toLowerCase();a.w&&a.w(j,[],t,A,b(a,d,p,e,t));var B=g.f[j];B&K&&(p=k(d,{name:j,next:p,c:B},a,t,A,e))}else{var m=d,q=a,r=t,u=A,v=e,x=f(m,p);x?(q.w&&q.w(x.name,x.R,r,u,b(q,m,x.next,v,r)),p=x.c&K?k(m,x,q,r,u,v):x.next):p=m.length}else a.e&&a.e("&lt;",t,A,b(a,d,p,e,t));break;case "<\!--":if(!e.C){for(z=p+1;z<i&&!(">"===d[z]&&/--$/.test(d[z-1]));z++);if(z<i){if(a.A){var D=d.slice(p,z).join("");a.A(D.substr(0,D.length-2),t,A,b(a,d,z+1,e,t))}p=z+1}else e.C=n}e.C&&a.e&&a.e("&lt;!--",
89t,A,b(a,d,p,e,t));break;case "<!":if(/^\w/.test(l)){if(!e.r){for(z=p+1;z<i&&">"!==d[z];z++);z<i?p=z+1:e.r=n}e.r&&a.e&&a.e("&lt;!",t,A,b(a,d,p,e,t))}else a.e&&a.e("&lt;!",t,A,b(a,d,p,e,t));break;case "<?":if(!e.r){for(z=p+1;z<i&&">"!==d[z];z++);z<i?p=z+1:e.r=n}e.r&&a.e&&a.e("&lt;?",t,A,b(a,d,p,e,t));break;case ">":a.e&&a.e("&gt;",t,A,b(a,d,p,e,t));break;case "":break;default:a.e&&a.e(o,t,A,b(a,d,p,e,t))}}a.B&&a.B(t)}catch(E){if(E!==A)throw E;}}function k(a,d,f,h,t,j){var z=a.length;T.hasOwnProperty(d.name)||
90(T[d.name]=RegExp("^"+d.name+"(?:[\\s\\/]|$)","i"));for(var i=T[d.name],k=d.next,l=d.next+1;l<z&&!("</"===a[l-1]&&i.test(a[l]));l++);l<z&&(l-=1);z=a.slice(k,l).join("");if(d.c&g.c.CDATA)f.z&&f.z(z,h,t,b(f,a,l,j,h));else if(d.c&g.c.RCDATA)f.F&&f.F(e(z),h,t,b(f,a,l,j,h));else throw Error("bug");return l}function f(a,b){var d=/^([-\w:]+)/.exec(a[b]),f={};f.name=d[1].toLowerCase();f.c=g.f[f.name];for(var e=a[b].substr(d[0].length),h=b+1,j=a.length;h<j&&">"!==a[h];h++)e+=a[h];if(!(j<=h)){for(var l=[];""!==
91e;)if(d=ja.exec(e))if(d[4]&&!d[5]||d[6]&&!d[7]){for(var d=d[4]||d[6],i=C,e=[e,a[h++]];h<j;h++){if(i){if(">"===a[h])break}else 0<=a[h].indexOf(d)&&(i=n);e.push(a[h])}if(j<=h)break;e=e.join("")}else{var i=d[1].toLowerCase(),k;if(d[2]){k=d[3];var m=k.charCodeAt(0);if(34===m||39===m)k=k.substr(1,k.length-2);k=x(k.replace(o,""))}else k="";l.push(i,k);e=e.substr(d[0].length)}else e=e.replace(/^[\s\S][^a-z\s]*/,"");f.R=l;f.next=h+1;return f}}function h(a){function b(a,d){f||d.push(a)}var d,f;return v({startDoc:function(){d=
92[];f=C},startTag:function(b,e,h){if(!f&&g.f.hasOwnProperty(b)){var j=g.f[b];if(!(j&g.c.FOLDABLE)){var k=a(b,e);if(k){if("object"!==typeof k)throw Error("tagPolicy did not return object (old API?)");if("attribs"in k)e=k.attribs;else throw Error("tagPolicy gave no attribs");var i;"tagName"in k?(i=k.tagName,k=g.f[i]):(i=b,k=j);if(j&g.c.OPTIONAL_ENDTAG){var l=d[d.length-1];l&&l.D===b&&(l.v!==i||b!==i)&&h.push("</",l.v,">")}j&g.c.EMPTY||d.push({D:b,v:i});h.push("<",i);b=0;for(l=e.length;b<l;b+=2){var m=
93e[b],o=e[b+1];o!==s&&o!==c&&h.push(" ",m,'="',E(o),'"')}h.push(">");j&g.c.EMPTY&&!(k&g.c.EMPTY)&&h.push("</",i,">")}else f=!(j&g.c.EMPTY)}}},endTag:function(a,b){if(f)f=C;else if(g.f.hasOwnProperty(a)){var e=g.f[a];if(!(e&(g.c.EMPTY|g.c.FOLDABLE))){if(e&g.c.OPTIONAL_ENDTAG)for(e=d.length;0<=--e;){var h=d[e].D;if(h===a)break;if(!(g.f[h]&g.c.OPTIONAL_ENDTAG))return}else for(e=d.length;0<=--e&&d[e].D!==a;);if(!(0>e)){for(h=d.length;--h>e;){var j=d[h].v;g.f[j]&g.c.OPTIONAL_ENDTAG||b.push("</",j,">")}e<
94d.length&&(a=d[e].v);d.length=e;b.push("</",a,">")}}}},pcdata:b,rcdata:b,cdata:b,endDoc:function(a){for(;d.length;d.length--)a.push("</",d[d.length-1].v,">")}})}function d(a,b,d,f,e){if(!e)return s;try{var g=Y.parse(""+a);if(g&&(!g.K()||ka.test(g.W()))){var h=e(g,b,d,f);return h?h.toString():s}}catch(j){}return s}function y(a,b,d,f,e){d||a(b+" removed",{S:"removed",tagName:b});if(f!==e){var g="changed";f&&!e?g="removed":!f&&e&&(g="added");a(b+"."+d+" "+g,{S:g,tagName:b,la:d,oldValue:f,newValue:e})}}
95function l(a,b,d){b=b+"::"+d;if(a.hasOwnProperty(b))return a[b];b="*::"+d;if(a.hasOwnProperty(b))return a[b]}function V(a,b,f,e,h){for(var j=0;j<b.length;j+=2){var k=b[j],i=b[j+1],m=i,o=s,q;if((q=a+"::"+k,g.m.hasOwnProperty(q))||(q="*::"+k,g.m.hasOwnProperty(q)))o=g.m[q];if(o!==s)switch(o){case g.d.NONE:break;case g.d.SCRIPT:i=s;h&&y(h,a,k,m,i);break;case g.d.STYLE:if("undefined"===typeof N){i=s;h&&y(h,a,k,m,i);break}var r=[];N(i,{declaration:function(a,b){var e=a.toLowerCase();u(e,b,f?function(a){return d(a,
96g.P.ja,g.M.ka,{TYPE:"CSS",CSS_PROP:e},f)}:s);b.length&&r.push(e+": "+b.join(" "))}});i=0<r.length?r.join(" ; "):s;h&&y(h,a,k,m,i);break;case g.d.ID:case g.d.IDREF:case g.d.IDREFS:case g.d.GLOBAL_NAME:case g.d.LOCAL_NAME:case g.d.CLASSES:i=e?e(i):i;h&&y(h,a,k,m,i);break;case g.d.URI:i=d(i,l(g.J,a,k),l(g.I,a,k),{TYPE:"MARKUP",XML_ATTR:k,XML_TAG:a},f);h&&y(h,a,k,m,i);break;case g.d.URI_FRAGMENT:i&&"#"===i.charAt(0)?(i=i.substring(1),i=e?e(i):i,i!==s&&i!==c&&(i="#"+i)):i=s;h&&y(h,a,k,m,i);break;default:i=
97s,h&&y(h,a,k,m,i)}else i=s,h&&y(h,a,k,m,i);b[j+1]=i}return b}function ea(a,b,d){return function(e,f){if(g.f[e]&g.c.UNSAFE)d&&y(d,e,c,c,c);else return{attribs:V(e,f,a,b,d)}}}function Q(a,b){var d=[];h(b)(a,d);return d.join("")}var N,u;"undefined"!==typeof window&&(N=window.parseCssDeclarations,u=window.sanitizeCssProperty);var i={lt:"<",LT:"<",gt:">",GT:">",amp:"&",AMP:"&",quot:'"',apos:"'",nbsp:"\u00a0"},q=/^#(\d+)$/,B=/^#x([0-9A-Fa-f]+)$/,F=/^[A-Za-z][A-za-z0-9]+$/,r="undefined"!==typeof window&&
98window.document?window.document.createElement("textarea"):s,o=/\0/g,j=/&(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/g,I=/^(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/,R=/&/g,ia=/&([^a-z#]|#(?:[^0-9x]|x(?:[^0-9a-f]|$)|$)|$)/gi,P=/[<]/g,S=/>/g,D=/\"/g,ja=/^\s*([-.:\w]+)(?:\s*(=)\s*((")[^"]*("|$)|(')[^']*('|$)|(?=[a-z][-\w]*\s*=)|[^"'\s]*))?/i,G=3==="a,b".split(/(,)/).length,K=g.c.CDATA|g.c.RCDATA,A={},T={},ka=/^(?:https?|mailto|data)$/i,m={};m.pa=m.escapeAttrib=E;m.ra=m.makeHtmlSanitizer=h;m.sa=m.makeSaxParser=v;m.ta=m.makeTagPolicy=
99ea;m.wa=m.normalizeRCData=e;m.xa=m.sanitize=function(a,b,d,e){return Q(a,ea(b,d,e))};m.ya=m.sanitizeAttribs=V;m.za=m.sanitizeWithPolicy=Q;m.Ba=m.unescapeEntities=x;return m}($),la=ha.sanitize;"undefined"!==typeof window&&(window.html=ha,window.html_sanitize=la);})();
100/*! pako 2.0.3 https://github.com/nodeca/pako @license (MIT AND Zlib) */
101!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).pako={})}(this,(function(t){"use strict";function e(t){for(var e=t.length;--e>=0;)t[e]=0}var a=256,i=286,n=30,r=15,s=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),o=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),l=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),h=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),d=new Array(576);e(d);var _=new Array(60);e(_);var f=new Array(512);e(f);var u=new Array(256);e(u);var c=new Array(29);e(c);var w,b,g,p=new Array(n);function m(t,e,a,i,n){this.static_tree=t,this.extra_bits=e,this.extra_base=a,this.elems=i,this.max_length=n,this.has_stree=t&&t.length}function v(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}e(p);var k=function(t){return t<256?f[t]:f[256+(t>>>7)]},y=function(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255},x=function(t,e,a){t.bi_valid>16-a?(t.bi_buf|=e<<t.bi_valid&65535,y(t,t.bi_buf),t.bi_buf=e>>16-t.bi_valid,t.bi_valid+=a-16):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=a)},z=function(t,e,a){x(t,a[2*e],a[2*e+1])},A=function(t,e){var a=0;do{a|=1&t,t>>>=1,a<<=1}while(--e>0);return a>>>1},E=function(t,e,a){var i,n,s=new Array(16),o=0;for(i=1;i<=r;i++)s[i]=o=o+a[i-1]<<1;for(n=0;n<=e;n++){var l=t[2*n+1];0!==l&&(t[2*n]=A(s[l]++,l))}},R=function(t){var e;for(e=0;e<i;e++)t.dyn_ltree[2*e]=0;for(e=0;e<n;e++)t.dyn_dtree[2*e]=0;for(e=0;e<19;e++)t.bl_tree[2*e]=0;t.dyn_ltree[512]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0},Z=function(t){t.bi_valid>8?y(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},S=function(t,e,a,i){var n=2*e,r=2*a;return t[n]<t[r]||t[n]===t[r]&&i[e]<=i[a]},U=function(t,e,a){for(var i=t.heap[a],n=a<<1;n<=t.heap_len&&(n<t.heap_len&&S(e,t.heap[n+1],t.heap[n],t.depth)&&n++,!S(e,i,t.heap[n],t.depth));)t.heap[a]=t.heap[n],a=n,n<<=1;t.heap[a]=i},D=function(t,e,i){var n,r,l,h,d=0;if(0!==t.last_lit)do{n=t.pending_buf[t.d_buf+2*d]<<8|t.pending_buf[t.d_buf+2*d+1],r=t.pending_buf[t.l_buf+d],d++,0===n?z(t,r,e):(l=u[r],z(t,l+a+1,e),0!==(h=s[l])&&(r-=c[l],x(t,r,h)),n--,l=k(n),z(t,l,i),0!==(h=o[l])&&(n-=p[l],x(t,n,h)))}while(d<t.last_lit);z(t,256,e)},O=function(t,e){var a,i,n,s=e.dyn_tree,o=e.stat_desc.static_tree,l=e.stat_desc.has_stree,h=e.stat_desc.elems,d=-1;for(t.heap_len=0,t.heap_max=573,a=0;a<h;a++)0!==s[2*a]?(t.heap[++t.heap_len]=d=a,t.depth[a]=0):s[2*a+1]=0;for(;t.heap_len<2;)s[2*(n=t.heap[++t.heap_len]=d<2?++d:0)]=1,t.depth[n]=0,t.opt_len--,l&&(t.static_len-=o[2*n+1]);for(e.max_code=d,a=t.heap_len>>1;a>=1;a--)U(t,s,a);n=h;do{a=t.heap[1],t.heap[1]=t.heap[t.heap_len--],U(t,s,1),i=t.heap[1],t.heap[--t.heap_max]=a,t.heap[--t.heap_max]=i,s[2*n]=s[2*a]+s[2*i],t.depth[n]=(t.depth[a]>=t.depth[i]?t.depth[a]:t.depth[i])+1,s[2*a+1]=s[2*i+1]=n,t.heap[1]=n++,U(t,s,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],function(t,e){var a,i,n,s,o,l,h=e.dyn_tree,d=e.max_code,_=e.stat_desc.static_tree,f=e.stat_desc.has_stree,u=e.stat_desc.extra_bits,c=e.stat_desc.extra_base,w=e.stat_desc.max_length,b=0;for(s=0;s<=r;s++)t.bl_count[s]=0;for(h[2*t.heap[t.heap_max]+1]=0,a=t.heap_max+1;a<573;a++)(s=h[2*h[2*(i=t.heap[a])+1]+1]+1)>w&&(s=w,b++),h[2*i+1]=s,i>d||(t.bl_count[s]++,o=0,i>=c&&(o=u[i-c]),l=h[2*i],t.opt_len+=l*(s+o),f&&(t.static_len+=l*(_[2*i+1]+o)));if(0!==b){do{for(s=w-1;0===t.bl_count[s];)s--;t.bl_count[s]--,t.bl_count[s+1]+=2,t.bl_count[w]--,b-=2}while(b>0);for(s=w;0!==s;s--)for(i=t.bl_count[s];0!==i;)(n=t.heap[--a])>d||(h[2*n+1]!==s&&(t.opt_len+=(s-h[2*n+1])*h[2*n],h[2*n+1]=s),i--)}}(t,e),E(s,d,t.bl_count)},T=function(t,e,a){var i,n,r=-1,s=e[1],o=0,l=7,h=4;for(0===s&&(l=138,h=3),e[2*(a+1)+1]=65535,i=0;i<=a;i++)n=s,s=e[2*(i+1)+1],++o<l&&n===s||(o<h?t.bl_tree[2*n]+=o:0!==n?(n!==r&&t.bl_tree[2*n]++,t.bl_tree[32]++):o<=10?t.bl_tree[34]++:t.bl_tree[36]++,o=0,r=n,0===s?(l=138,h=3):n===s?(l=6,h=3):(l=7,h=4))},I=function(t,e,a){var i,n,r=-1,s=e[1],o=0,l=7,h=4;for(0===s&&(l=138,h=3),i=0;i<=a;i++)if(n=s,s=e[2*(i+1)+1],!(++o<l&&n===s)){if(o<h)do{z(t,n,t.bl_tree)}while(0!=--o);else 0!==n?(n!==r&&(z(t,n,t.bl_tree),o--),z(t,16,t.bl_tree),x(t,o-3,2)):o<=10?(z(t,17,t.bl_tree),x(t,o-3,3)):(z(t,18,t.bl_tree),x(t,o-11,7));o=0,r=n,0===s?(l=138,h=3):n===s?(l=6,h=3):(l=7,h=4)}},F=!1,L=function(t,e,a,i){x(t,0+(i?1:0),3),function(t,e,a,i){Z(t),i&&(y(t,a),y(t,~a)),t.pending_buf.set(t.window.subarray(e,e+a),t.pending),t.pending+=a}(t,e,a,!0)},N={_tr_init:function(t){F||(!function(){var t,e,a,h,v,k=new Array(16);for(a=0,h=0;h<28;h++)for(c[h]=a,t=0;t<1<<s[h];t++)u[a++]=h;for(u[a-1]=h,v=0,h=0;h<16;h++)for(p[h]=v,t=0;t<1<<o[h];t++)f[v++]=h;for(v>>=7;h<n;h++)for(p[h]=v<<7,t=0;t<1<<o[h]-7;t++)f[256+v++]=h;for(e=0;e<=r;e++)k[e]=0;for(t=0;t<=143;)d[2*t+1]=8,t++,k[8]++;for(;t<=255;)d[2*t+1]=9,t++,k[9]++;for(;t<=279;)d[2*t+1]=7,t++,k[7]++;for(;t<=287;)d[2*t+1]=8,t++,k[8]++;for(E(d,287,k),t=0;t<n;t++)_[2*t+1]=5,_[2*t]=A(t,5);w=new m(d,s,257,i,r),b=new m(_,o,0,n,r),g=new m(new Array(0),l,0,19,7)}(),F=!0),t.l_desc=new v(t.dyn_ltree,w),t.d_desc=new v(t.dyn_dtree,b),t.bl_desc=new v(t.bl_tree,g),t.bi_buf=0,t.bi_valid=0,R(t)},_tr_stored_block:L,_tr_flush_block:function(t,e,i,n){var r,s,o=0;t.level>0?(2===t.strm.data_type&&(t.strm.data_type=function(t){var e,i=4093624447;for(e=0;e<=31;e++,i>>>=1)if(1&i&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e<a;e++)if(0!==t.dyn_ltree[2*e])return 1;return 0}(t)),O(t,t.l_desc),O(t,t.d_desc),o=function(t){var e;for(T(t,t.dyn_ltree,t.l_desc.max_code),T(t,t.dyn_dtree,t.d_desc.max_code),O(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*h[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}(t),r=t.opt_len+3+7>>>3,(s=t.static_len+3+7>>>3)<=r&&(r=s)):r=s=i+5,i+4<=r&&-1!==e?L(t,e,i,n):4===t.strategy||s===r?(x(t,2+(n?1:0),3),D(t,d,_)):(x(t,4+(n?1:0),3),function(t,e,a,i){var n;for(x(t,e-257,5),x(t,a-1,5),x(t,i-4,4),n=0;n<i;n++)x(t,t.bl_tree[2*h[n]+1],3);I(t,t.dyn_ltree,e-1),I(t,t.dyn_dtree,a-1)}(t,t.l_desc.max_code+1,t.d_desc.max_code+1,o+1),D(t,t.dyn_ltree,t.dyn_dtree)),R(t),n&&Z(t)},_tr_tally:function(t,e,i){return t.pending_buf[t.d_buf+2*t.last_lit]=e>>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&i,t.last_lit++,0===e?t.dyn_ltree[2*i]++:(t.matches++,e--,t.dyn_ltree[2*(u[i]+a+1)]++,t.dyn_dtree[2*k(e)]++),t.last_lit===t.lit_bufsize-1},_tr_align:function(t){x(t,2,3),z(t,256,d),function(t){16===t.bi_valid?(y(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}(t)}},B=function(t,e,a,i){for(var n=65535&t|0,r=t>>>16&65535|0,s=0;0!==a;){a-=s=a>2e3?2e3:a;do{r=r+(n=n+e[i++]|0)|0}while(--s);n%=65521,r%=65521}return n|r<<16|0},C=new Uint32Array(function(){for(var t,e=[],a=0;a<256;a++){t=a;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[a]=t}return e}()),M=function(t,e,a,i){var n=C,r=i+a;t^=-1;for(var s=i;s<r;s++)t=t>>>8^n[255&(t^e[s])];return-1^t},H={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},j={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},K=N._tr_init,P=N._tr_stored_block,Y=N._tr_flush_block,G=N._tr_tally,X=N._tr_align,W=j.Z_NO_FLUSH,q=j.Z_PARTIAL_FLUSH,J=j.Z_FULL_FLUSH,Q=j.Z_FINISH,V=j.Z_BLOCK,$=j.Z_OK,tt=j.Z_STREAM_END,et=j.Z_STREAM_ERROR,at=j.Z_DATA_ERROR,it=j.Z_BUF_ERROR,nt=j.Z_DEFAULT_COMPRESSION,rt=j.Z_FILTERED,st=j.Z_HUFFMAN_ONLY,ot=j.Z_RLE,lt=j.Z_FIXED,ht=j.Z_DEFAULT_STRATEGY,dt=j.Z_UNKNOWN,_t=j.Z_DEFLATED,ft=258,ut=262,ct=103,wt=113,bt=666,gt=function(t,e){return t.msg=H[e],e},pt=function(t){return(t<<1)-(t>4?9:0)},mt=function(t){for(var e=t.length;--e>=0;)t[e]=0},vt=function(t,e,a){return(e<<t.hash_shift^a)&t.hash_mask},kt=function(t){var e=t.state,a=e.pending;a>t.avail_out&&(a=t.avail_out),0!==a&&(t.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+a),t.next_out),t.next_out+=a,e.pending_out+=a,t.total_out+=a,t.avail_out-=a,e.pending-=a,0===e.pending&&(e.pending_out=0))},yt=function(t,e){Y(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,kt(t.strm)},xt=function(t,e){t.pending_buf[t.pending++]=e},zt=function(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e},At=function(t,e){var a,i,n=t.max_chain_length,r=t.strstart,s=t.prev_length,o=t.nice_match,l=t.strstart>t.w_size-ut?t.strstart-(t.w_size-ut):0,h=t.window,d=t.w_mask,_=t.prev,f=t.strstart+ft,u=h[r+s-1],c=h[r+s];t.prev_length>=t.good_match&&(n>>=2),o>t.lookahead&&(o=t.lookahead);do{if(h[(a=e)+s]===c&&h[a+s-1]===u&&h[a]===h[r]&&h[++a]===h[r+1]){r+=2,a++;do{}while(h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&r<f);if(i=ft-(f-r),r=f-ft,i>s){if(t.match_start=e,s=i,i>=o)break;u=h[r+s-1],c=h[r+s]}}}while((e=_[e&d])>l&&0!=--n);return s<=t.lookahead?s:t.lookahead},Et=function(t){var e,a,i,n,r,s,o,l,h,d,_=t.w_size;do{if(n=t.window_size-t.lookahead-t.strstart,t.strstart>=_+(_-ut)){t.window.set(t.window.subarray(_,_+_),0),t.match_start-=_,t.strstart-=_,t.block_start-=_,e=a=t.hash_size;do{i=t.head[--e],t.head[e]=i>=_?i-_:0}while(--a);e=a=_;do{i=t.prev[--e],t.prev[e]=i>=_?i-_:0}while(--a);n+=_}if(0===t.strm.avail_in)break;if(s=t.strm,o=t.window,l=t.strstart+t.lookahead,h=n,d=void 0,(d=s.avail_in)>h&&(d=h),a=0===d?0:(s.avail_in-=d,o.set(s.input.subarray(s.next_in,s.next_in+d),l),1===s.state.wrap?s.adler=B(s.adler,o,d,l):2===s.state.wrap&&(s.adler=M(s.adler,o,d,l)),s.next_in+=d,s.total_in+=d,d),t.lookahead+=a,t.lookahead+t.insert>=3)for(r=t.strstart-t.insert,t.ins_h=t.window[r],t.ins_h=vt(t,t.ins_h,t.window[r+1]);t.insert&&(t.ins_h=vt(t,t.ins_h,t.window[r+3-1]),t.prev[r&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=r,r++,t.insert--,!(t.lookahead+t.insert<3)););}while(t.lookahead<ut&&0!==t.strm.avail_in)},Rt=function(t,e){for(var a,i;;){if(t.lookahead<ut){if(Et(t),t.lookahead<ut&&e===W)return 1;if(0===t.lookahead)break}if(a=0,t.lookahead>=3&&(t.ins_h=vt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==a&&t.strstart-a<=t.w_size-ut&&(t.match_length=At(t,a)),t.match_length>=3)if(i=G(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=vt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart}while(0!=--t.match_length);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=vt(t,t.ins_h,t.window[t.strstart+1]);else i=G(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(i&&(yt(t,!1),0===t.strm.avail_out))return 1}return t.insert=t.strstart<2?t.strstart:2,e===Q?(yt(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(yt(t,!1),0===t.strm.avail_out)?1:2},Zt=function(t,e){for(var a,i,n;;){if(t.lookahead<ut){if(Et(t),t.lookahead<ut&&e===W)return 1;if(0===t.lookahead)break}if(a=0,t.lookahead>=3&&(t.ins_h=vt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=2,0!==a&&t.prev_length<t.max_lazy_match&&t.strstart-a<=t.w_size-ut&&(t.match_length=At(t,a),t.match_length<=5&&(t.strategy===rt||3===t.match_length&&t.strstart-t.match_start>4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){n=t.strstart+t.lookahead-3,i=G(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=n&&(t.ins_h=vt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart)}while(0!=--t.prev_length);if(t.match_available=0,t.match_length=2,t.strstart++,i&&(yt(t,!1),0===t.strm.avail_out))return 1}else if(t.match_available){if((i=G(t,0,t.window[t.strstart-1]))&&yt(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return 1}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(i=G(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<2?t.strstart:2,e===Q?(yt(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(yt(t,!1),0===t.strm.avail_out)?1:2};function St(t,e,a,i,n){this.good_length=t,this.max_lazy=e,this.nice_length=a,this.max_chain=i,this.func=n}var Ut=[new St(0,0,0,0,(function(t,e){var a=65535;for(a>t.pending_buf_size-5&&(a=t.pending_buf_size-5);;){if(t.lookahead<=1){if(Et(t),0===t.lookahead&&e===W)return 1;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var i=t.block_start+a;if((0===t.strstart||t.strstart>=i)&&(t.lookahead=t.strstart-i,t.strstart=i,yt(t,!1),0===t.strm.avail_out))return 1;if(t.strstart-t.block_start>=t.w_size-ut&&(yt(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===Q?(yt(t,!0),0===t.strm.avail_out?3:4):(t.strstart>t.block_start&&(yt(t,!1),t.strm.avail_out),1)})),new St(4,4,8,4,Rt),new St(4,5,16,8,Rt),new St(4,6,32,32,Rt),new St(4,4,16,16,Zt),new St(8,16,32,32,Zt),new St(8,16,128,128,Zt),new St(8,32,128,256,Zt),new St(32,128,258,1024,Zt),new St(32,258,258,4096,Zt)];function Dt(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=_t,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),mt(this.dyn_ltree),mt(this.dyn_dtree),mt(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),mt(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),mt(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}var Ot=function(t){if(!t||!t.state)return gt(t,et);t.total_in=t.total_out=0,t.data_type=dt;var e=t.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?42:wt,t.adler=2===e.wrap?0:1,e.last_flush=W,K(e),$},Tt=function(t){var e,a=Ot(t);return a===$&&((e=t.state).window_size=2*e.w_size,mt(e.head),e.max_lazy_match=Ut[e.level].max_lazy,e.good_match=Ut[e.level].good_length,e.nice_match=Ut[e.level].nice_length,e.max_chain_length=Ut[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=2,e.match_available=0,e.ins_h=0),a},It=function(t,e,a,i,n,r){if(!t)return et;var s=1;if(e===nt&&(e=6),i<0?(s=0,i=-i):i>15&&(s=2,i-=16),n<1||n>9||a!==_t||i<8||i>15||e<0||e>9||r<0||r>lt)return gt(t,et);8===i&&(i=9);var o=new Dt;return t.state=o,o.strm=t,o.wrap=s,o.gzhead=null,o.w_bits=i,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=n+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+3-1)/3),o.window=new Uint8Array(2*o.w_size),o.head=new Uint16Array(o.hash_size),o.prev=new Uint16Array(o.w_size),o.lit_bufsize=1<<n+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new Uint8Array(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=3*o.lit_bufsize,o.level=e,o.strategy=r,o.method=a,Tt(t)},Ft={deflateInit:function(t,e){return It(t,e,_t,15,8,ht)},deflateInit2:It,deflateReset:Tt,deflateResetKeep:Ot,deflateSetHeader:function(t,e){return t&&t.state?2!==t.state.wrap?et:(t.state.gzhead=e,$):et},deflate:function(t,e){var a,i;if(!t||!t.state||e>V||e<0)return t?gt(t,et):et;var n=t.state;if(!t.output||!t.input&&0!==t.avail_in||n.status===bt&&e!==Q)return gt(t,0===t.avail_out?it:et);n.strm=t;var r=n.last_flush;if(n.last_flush=e,42===n.status)if(2===n.wrap)t.adler=0,xt(n,31),xt(n,139),xt(n,8),n.gzhead?(xt(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),xt(n,255&n.gzhead.time),xt(n,n.gzhead.time>>8&255),xt(n,n.gzhead.time>>16&255),xt(n,n.gzhead.time>>24&255),xt(n,9===n.level?2:n.strategy>=st||n.level<2?4:0),xt(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(xt(n,255&n.gzhead.extra.length),xt(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(t.adler=M(t.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(xt(n,0),xt(n,0),xt(n,0),xt(n,0),xt(n,0),xt(n,9===n.level?2:n.strategy>=st||n.level<2?4:0),xt(n,3),n.status=wt);else{var s=_t+(n.w_bits-8<<4)<<8;s|=(n.strategy>=st||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(s|=32),s+=31-s%31,n.status=wt,zt(n,s),0!==n.strstart&&(zt(n,t.adler>>>16),zt(n,65535&t.adler)),t.adler=1}if(69===n.status)if(n.gzhead.extra){for(a=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>a&&(t.adler=M(t.adler,n.pending_buf,n.pending-a,a)),kt(t),a=n.pending,n.pending!==n.pending_buf_size));)xt(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>a&&(t.adler=M(t.adler,n.pending_buf,n.pending-a,a)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){a=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>a&&(t.adler=M(t.adler,n.pending_buf,n.pending-a,a)),kt(t),a=n.pending,n.pending===n.pending_buf_size)){i=1;break}i=n.gzindex<n.gzhead.name.length?255&n.gzhead.name.charCodeAt(n.gzindex++):0,xt(n,i)}while(0!==i);n.gzhead.hcrc&&n.pending>a&&(t.adler=M(t.adler,n.pending_buf,n.pending-a,a)),0===i&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){a=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>a&&(t.adler=M(t.adler,n.pending_buf,n.pending-a,a)),kt(t),a=n.pending,n.pending===n.pending_buf_size)){i=1;break}i=n.gzindex<n.gzhead.comment.length?255&n.gzhead.comment.charCodeAt(n.gzindex++):0,xt(n,i)}while(0!==i);n.gzhead.hcrc&&n.pending>a&&(t.adler=M(t.adler,n.pending_buf,n.pending-a,a)),0===i&&(n.status=ct)}else n.status=ct;if(n.status===ct&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&kt(t),n.pending+2<=n.pending_buf_size&&(xt(n,255&t.adler),xt(n,t.adler>>8&255),t.adler=0,n.status=wt)):n.status=wt),0!==n.pending){if(kt(t),0===t.avail_out)return n.last_flush=-1,$}else if(0===t.avail_in&&pt(e)<=pt(r)&&e!==Q)return gt(t,it);if(n.status===bt&&0!==t.avail_in)return gt(t,it);if(0!==t.avail_in||0!==n.lookahead||e!==W&&n.status!==bt){var o=n.strategy===st?function(t,e){for(var a;;){if(0===t.lookahead&&(Et(t),0===t.lookahead)){if(e===W)return 1;break}if(t.match_length=0,a=G(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,a&&(yt(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===Q?(yt(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(yt(t,!1),0===t.strm.avail_out)?1:2}(n,e):n.strategy===ot?function(t,e){for(var a,i,n,r,s=t.window;;){if(t.lookahead<=ft){if(Et(t),t.lookahead<=ft&&e===W)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(i=s[n=t.strstart-1])===s[++n]&&i===s[++n]&&i===s[++n]){r=t.strstart+ft;do{}while(i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&n<r);t.match_length=ft-(r-n),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(a=G(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(a=G(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),a&&(yt(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===Q?(yt(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(yt(t,!1),0===t.strm.avail_out)?1:2}(n,e):Ut[n.level].func(n,e);if(3!==o&&4!==o||(n.status=bt),1===o||3===o)return 0===t.avail_out&&(n.last_flush=-1),$;if(2===o&&(e===q?X(n):e!==V&&(P(n,0,0,!1),e===J&&(mt(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),kt(t),0===t.avail_out))return n.last_flush=-1,$}return e!==Q?$:n.wrap<=0?tt:(2===n.wrap?(xt(n,255&t.adler),xt(n,t.adler>>8&255),xt(n,t.adler>>16&255),xt(n,t.adler>>24&255),xt(n,255&t.total_in),xt(n,t.total_in>>8&255),xt(n,t.total_in>>16&255),xt(n,t.total_in>>24&255)):(zt(n,t.adler>>>16),zt(n,65535&t.adler)),kt(t),n.wrap>0&&(n.wrap=-n.wrap),0!==n.pending?$:tt)},deflateEnd:function(t){if(!t||!t.state)return et;var e=t.state.status;return 42!==e&&69!==e&&73!==e&&91!==e&&e!==ct&&e!==wt&&e!==bt?gt(t,et):(t.state=null,e===wt?gt(t,at):$)},deflateSetDictionary:function(t,e){var a=e.length;if(!t||!t.state)return et;var i=t.state,n=i.wrap;if(2===n||1===n&&42!==i.status||i.lookahead)return et;if(1===n&&(t.adler=B(t.adler,e,a,0)),i.wrap=0,a>=i.w_size){0===n&&(mt(i.head),i.strstart=0,i.block_start=0,i.insert=0);var r=new Uint8Array(i.w_size);r.set(e.subarray(a-i.w_size,a),0),e=r,a=i.w_size}var s=t.avail_in,o=t.next_in,l=t.input;for(t.avail_in=a,t.next_in=0,t.input=e,Et(i);i.lookahead>=3;){var h=i.strstart,d=i.lookahead-2;do{i.ins_h=vt(i,i.ins_h,i.window[h+3-1]),i.prev[h&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=h,h++}while(--d);i.strstart=h,i.lookahead=2,Et(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,t.next_in=o,t.input=l,t.avail_in=s,i.wrap=n,$},deflateInfo:"pako deflate (from Nodeca project)"};function Lt(t){return(Lt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var Nt=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},Bt=function(t){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var a=e.shift();if(a){if("object"!==Lt(a))throw new TypeError(a+"must be non-object");for(var i in a)Nt(a,i)&&(t[i]=a[i])}}return t},Ct=function(t){for(var e=0,a=0,i=t.length;a<i;a++)e+=t[a].length;for(var n=new Uint8Array(e),r=0,s=0,o=t.length;r<o;r++){var l=t[r];n.set(l,s),s+=l.length}return n},Mt=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(t){Mt=!1}for(var Ht=new Uint8Array(256),jt=0;jt<256;jt++)Ht[jt]=jt>=252?6:jt>=248?5:jt>=240?4:jt>=224?3:jt>=192?2:1;Ht[254]=Ht[254]=1;var Kt=function(t){var e,a,i,n,r,s=t.length,o=0;for(n=0;n<s;n++)55296==(64512&(a=t.charCodeAt(n)))&&n+1<s&&56320==(64512&(i=t.charCodeAt(n+1)))&&(a=65536+(a-55296<<10)+(i-56320),n++),o+=a<128?1:a<2048?2:a<65536?3:4;for(e=new Uint8Array(o),r=0,n=0;r<o;n++)55296==(64512&(a=t.charCodeAt(n)))&&n+1<s&&56320==(64512&(i=t.charCodeAt(n+1)))&&(a=65536+(a-55296<<10)+(i-56320),n++),a<128?e[r++]=a:a<2048?(e[r++]=192|a>>>6,e[r++]=128|63&a):a<65536?(e[r++]=224|a>>>12,e[r++]=128|a>>>6&63,e[r++]=128|63&a):(e[r++]=240|a>>>18,e[r++]=128|a>>>12&63,e[r++]=128|a>>>6&63,e[r++]=128|63&a);return e},Pt=function(t,e){var a,i,n=e||t.length,r=new Array(2*n);for(i=0,a=0;a<n;){var s=t[a++];if(s<128)r[i++]=s;else{var o=Ht[s];if(o>4)r[i++]=65533,a+=o-1;else{for(s&=2===o?31:3===o?15:7;o>1&&a<n;)s=s<<6|63&t[a++],o--;o>1?r[i++]=65533:s<65536?r[i++]=s:(s-=65536,r[i++]=55296|s>>10&1023,r[i++]=56320|1023&s)}}}return function(t,e){if(e<65534&&t.subarray&&Mt)return String.fromCharCode.apply(null,t.length===e?t:t.subarray(0,e));for(var a="",i=0;i<e;i++)a+=String.fromCharCode(t[i]);return a}(r,i)},Yt=function(t,e){(e=e||t.length)>t.length&&(e=t.length);for(var a=e-1;a>=0&&128==(192&t[a]);)a--;return a<0||0===a?e:a+Ht[t[a]]>e?a:e};var Gt=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0},Xt=Object.prototype.toString,Wt=j.Z_NO_FLUSH,qt=j.Z_SYNC_FLUSH,Jt=j.Z_FULL_FLUSH,Qt=j.Z_FINISH,Vt=j.Z_OK,$t=j.Z_STREAM_END,te=j.Z_DEFAULT_COMPRESSION,ee=j.Z_DEFAULT_STRATEGY,ae=j.Z_DEFLATED;function ie(t){this.options=Bt({level:te,method:ae,chunkSize:16384,windowBits:15,memLevel:8,strategy:ee},t||{});var e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Gt,this.strm.avail_out=0;var a=Ft.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(a!==Vt)throw new Error(H[a]);if(e.header&&Ft.deflateSetHeader(this.strm,e.header),e.dictionary){var i;if(i="string"==typeof e.dictionary?Kt(e.dictionary):"[object ArrayBuffer]"===Xt.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,(a=Ft.deflateSetDictionary(this.strm,i))!==Vt)throw new Error(H[a]);this._dict_set=!0}}function ne(t,e){var a=new ie(e);if(a.push(t,!0),a.err)throw a.msg||H[a.err];return a.result}ie.prototype.push=function(t,e){var a,i,n=this.strm,r=this.options.chunkSize;if(this.ended)return!1;for(i=e===~~e?e:!0===e?Qt:Wt,"string"==typeof t?n.input=Kt(t):"[object ArrayBuffer]"===Xt.call(t)?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;;)if(0===n.avail_out&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),(i===qt||i===Jt)&&n.avail_out<=6)this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;else{if((a=Ft.deflate(n,i))===$t)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),a=Ft.deflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===Vt;if(0!==n.avail_out){if(i>0&&n.next_out>0)this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;else if(0===n.avail_in)break}else this.onData(n.output)}return!0},ie.prototype.onData=function(t){this.chunks.push(t)},ie.prototype.onEnd=function(t){t===Vt&&(this.result=Ct(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var re={Deflate:ie,deflate:ne,deflateRaw:function(t,e){return(e=e||{}).raw=!0,ne(t,e)},gzip:function(t,e){return(e=e||{}).gzip=!0,ne(t,e)},constants:j},se=function(t,e){var a,i,n,r,s,o,l,h,d,_,f,u,c,w,b,g,p,m,v,k,y,x,z,A,E=t.state;a=t.next_in,z=t.input,i=a+(t.avail_in-5),n=t.next_out,A=t.output,r=n-(e-t.avail_out),s=n+(t.avail_out-257),o=E.dmax,l=E.wsize,h=E.whave,d=E.wnext,_=E.window,f=E.hold,u=E.bits,c=E.lencode,w=E.distcode,b=(1<<E.lenbits)-1,g=(1<<E.distbits)-1;t:do{u<15&&(f+=z[a++]<<u,u+=8,f+=z[a++]<<u,u+=8),p=c[f&b];e:for(;;){if(f>>>=m=p>>>24,u-=m,0===(m=p>>>16&255))A[n++]=65535&p;else{if(!(16&m)){if(0==(64&m)){p=c[(65535&p)+(f&(1<<m)-1)];continue e}if(32&m){E.mode=12;break t}t.msg="invalid literal/length code",E.mode=30;break t}v=65535&p,(m&=15)&&(u<m&&(f+=z[a++]<<u,u+=8),v+=f&(1<<m)-1,f>>>=m,u-=m),u<15&&(f+=z[a++]<<u,u+=8,f+=z[a++]<<u,u+=8),p=w[f&g];a:for(;;){if(f>>>=m=p>>>24,u-=m,!(16&(m=p>>>16&255))){if(0==(64&m)){p=w[(65535&p)+(f&(1<<m)-1)];continue a}t.msg="invalid distance code",E.mode=30;break t}if(k=65535&p,u<(m&=15)&&(f+=z[a++]<<u,(u+=8)<m&&(f+=z[a++]<<u,u+=8)),(k+=f&(1<<m)-1)>o){t.msg="invalid distance too far back",E.mode=30;break t}if(f>>>=m,u-=m,k>(m=n-r)){if((m=k-m)>h&&E.sane){t.msg="invalid distance too far back",E.mode=30;break t}if(y=0,x=_,0===d){if(y+=l-m,m<v){v-=m;do{A[n++]=_[y++]}while(--m);y=n-k,x=A}}else if(d<m){if(y+=l+d-m,(m-=d)<v){v-=m;do{A[n++]=_[y++]}while(--m);if(y=0,d<v){v-=m=d;do{A[n++]=_[y++]}while(--m);y=n-k,x=A}}}else if(y+=d-m,m<v){v-=m;do{A[n++]=_[y++]}while(--m);y=n-k,x=A}for(;v>2;)A[n++]=x[y++],A[n++]=x[y++],A[n++]=x[y++],v-=3;v&&(A[n++]=x[y++],v>1&&(A[n++]=x[y++]))}else{y=n-k;do{A[n++]=A[y++],A[n++]=A[y++],A[n++]=A[y++],v-=3}while(v>2);v&&(A[n++]=A[y++],v>1&&(A[n++]=A[y++]))}break}}break}}while(a<i&&n<s);a-=v=u>>3,f&=(1<<(u-=v<<3))-1,t.next_in=a,t.next_out=n,t.avail_in=a<i?i-a+5:5-(a-i),t.avail_out=n<s?s-n+257:257-(n-s),E.hold=f,E.bits=u},oe=15,le=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),he=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),de=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),_e=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),fe=function(t,e,a,i,n,r,s,o){var l,h,d,_,f,u,c,w,b,g=o.bits,p=0,m=0,v=0,k=0,y=0,x=0,z=0,A=0,E=0,R=0,Z=null,S=0,U=new Uint16Array(16),D=new Uint16Array(16),O=null,T=0;for(p=0;p<=oe;p++)U[p]=0;for(m=0;m<i;m++)U[e[a+m]]++;for(y=g,k=oe;k>=1&&0===U[k];k--);if(y>k&&(y=k),0===k)return n[r++]=20971520,n[r++]=20971520,o.bits=1,0;for(v=1;v<k&&0===U[v];v++);for(y<v&&(y=v),A=1,p=1;p<=oe;p++)if(A<<=1,(A-=U[p])<0)return-1;if(A>0&&(0===t||1!==k))return-1;for(D[1]=0,p=1;p<oe;p++)D[p+1]=D[p]+U[p];for(m=0;m<i;m++)0!==e[a+m]&&(s[D[e[a+m]]++]=m);if(0===t?(Z=O=s,u=19):1===t?(Z=le,S-=257,O=he,T-=257,u=256):(Z=de,O=_e,u=-1),R=0,m=0,p=v,f=r,x=y,z=0,d=-1,_=(E=1<<y)-1,1===t&&E>852||2===t&&E>592)return 1;for(;;){c=p-z,s[m]<u?(w=0,b=s[m]):s[m]>u?(w=O[T+s[m]],b=Z[S+s[m]]):(w=96,b=0),l=1<<p-z,v=h=1<<x;do{n[f+(R>>z)+(h-=l)]=c<<24|w<<16|b|0}while(0!==h);for(l=1<<p-1;R&l;)l>>=1;if(0!==l?(R&=l-1,R+=l):R=0,m++,0==--U[p]){if(p===k)break;p=e[a+s[m]]}if(p>y&&(R&_)!==d){for(0===z&&(z=y),f+=v,A=1<<(x=p-z);x+z<k&&!((A-=U[x+z])<=0);)x++,A<<=1;if(E+=1<<x,1===t&&E>852||2===t&&E>592)return 1;n[d=R&_]=y<<24|x<<16|f-r|0}}return 0!==R&&(n[f+R]=p-z<<24|64<<16|0),o.bits=y,0},ue=j.Z_FINISH,ce=j.Z_BLOCK,we=j.Z_TREES,be=j.Z_OK,ge=j.Z_STREAM_END,pe=j.Z_NEED_DICT,me=j.Z_STREAM_ERROR,ve=j.Z_DATA_ERROR,ke=j.Z_MEM_ERROR,ye=j.Z_BUF_ERROR,xe=j.Z_DEFLATED,ze=12,Ae=30,Ee=function(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)};function Re(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var Ze,Se,Ue=function(t){if(!t||!t.state)return me;var e=t.state;return t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=1,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,be},De=function(t){if(!t||!t.state)return me;var e=t.state;return e.wsize=0,e.whave=0,e.wnext=0,Ue(t)},Oe=function(t,e){var a;if(!t||!t.state)return me;var i=t.state;return e<0?(a=0,e=-e):(a=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?me:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=a,i.wbits=e,De(t))},Te=function(t,e){if(!t)return me;var a=new Re;t.state=a,a.window=null;var i=Oe(t,e);return i!==be&&(t.state=null),i},Ie=!0,Fe=function(t){if(Ie){Ze=new Int32Array(512),Se=new Int32Array(32);for(var e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(fe(1,t.lens,0,288,Ze,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;fe(2,t.lens,0,32,Se,0,t.work,{bits:5}),Ie=!1}t.lencode=Ze,t.lenbits=9,t.distcode=Se,t.distbits=5},Le=function(t,e,a,i){var n,r=t.state;return null===r.window&&(r.wsize=1<<r.wbits,r.wnext=0,r.whave=0,r.window=new Uint8Array(r.wsize)),i>=r.wsize?(r.window.set(e.subarray(a-r.wsize,a),0),r.wnext=0,r.whave=r.wsize):((n=r.wsize-r.wnext)>i&&(n=i),r.window.set(e.subarray(a-i,a-i+n),r.wnext),(i-=n)?(r.window.set(e.subarray(a-i,a),0),r.wnext=i,r.whave=r.wsize):(r.wnext+=n,r.wnext===r.wsize&&(r.wnext=0),r.whave<r.wsize&&(r.whave+=n))),0},Ne={inflateReset:De,inflateReset2:Oe,inflateResetKeep:Ue,inflateInit:function(t){return Te(t,15)},inflateInit2:Te,inflate:function(t,e){var a,i,n,r,s,o,l,h,d,_,f,u,c,w,b,g,p,m,v,k,y,x,z,A,E=0,R=new Uint8Array(4),Z=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(!t||!t.state||!t.output||!t.input&&0!==t.avail_in)return me;(a=t.state).mode===ze&&(a.mode=13),s=t.next_out,n=t.output,l=t.avail_out,r=t.next_in,i=t.input,o=t.avail_in,h=a.hold,d=a.bits,_=o,f=l,x=be;t:for(;;)switch(a.mode){case 1:if(0===a.wrap){a.mode=13;break}for(;d<16;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(2&a.wrap&&35615===h){a.check=0,R[0]=255&h,R[1]=h>>>8&255,a.check=M(a.check,R,2,0),h=0,d=0,a.mode=2;break}if(a.flags=0,a.head&&(a.head.done=!1),!(1&a.wrap)||(((255&h)<<8)+(h>>8))%31){t.msg="incorrect header check",a.mode=Ae;break}if((15&h)!==xe){t.msg="unknown compression method",a.mode=Ae;break}if(d-=4,y=8+(15&(h>>>=4)),0===a.wbits)a.wbits=y;else if(y>a.wbits){t.msg="invalid window size",a.mode=Ae;break}a.dmax=1<<a.wbits,t.adler=a.check=1,a.mode=512&h?10:ze,h=0,d=0;break;case 2:for(;d<16;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(a.flags=h,(255&a.flags)!==xe){t.msg="unknown compression method",a.mode=Ae;break}if(57344&a.flags){t.msg="unknown header flags set",a.mode=Ae;break}a.head&&(a.head.text=h>>8&1),512&a.flags&&(R[0]=255&h,R[1]=h>>>8&255,a.check=M(a.check,R,2,0)),h=0,d=0,a.mode=3;case 3:for(;d<32;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.head&&(a.head.time=h),512&a.flags&&(R[0]=255&h,R[1]=h>>>8&255,R[2]=h>>>16&255,R[3]=h>>>24&255,a.check=M(a.check,R,4,0)),h=0,d=0,a.mode=4;case 4:for(;d<16;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.head&&(a.head.xflags=255&h,a.head.os=h>>8),512&a.flags&&(R[0]=255&h,R[1]=h>>>8&255,a.check=M(a.check,R,2,0)),h=0,d=0,a.mode=5;case 5:if(1024&a.flags){for(;d<16;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.length=h,a.head&&(a.head.extra_len=h),512&a.flags&&(R[0]=255&h,R[1]=h>>>8&255,a.check=M(a.check,R,2,0)),h=0,d=0}else a.head&&(a.head.extra=null);a.mode=6;case 6:if(1024&a.flags&&((u=a.length)>o&&(u=o),u&&(a.head&&(y=a.head.extra_len-a.length,a.head.extra||(a.head.extra=new Uint8Array(a.head.extra_len)),a.head.extra.set(i.subarray(r,r+u),y)),512&a.flags&&(a.check=M(a.check,i,u,r)),o-=u,r+=u,a.length-=u),a.length))break t;a.length=0,a.mode=7;case 7:if(2048&a.flags){if(0===o)break t;u=0;do{y=i[r+u++],a.head&&y&&a.length<65536&&(a.head.name+=String.fromCharCode(y))}while(y&&u<o);if(512&a.flags&&(a.check=M(a.check,i,u,r)),o-=u,r+=u,y)break t}else a.head&&(a.head.name=null);a.length=0,a.mode=8;case 8:if(4096&a.flags){if(0===o)break t;u=0;do{y=i[r+u++],a.head&&y&&a.length<65536&&(a.head.comment+=String.fromCharCode(y))}while(y&&u<o);if(512&a.flags&&(a.check=M(a.check,i,u,r)),o-=u,r+=u,y)break t}else a.head&&(a.head.comment=null);a.mode=9;case 9:if(512&a.flags){for(;d<16;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(h!==(65535&a.check)){t.msg="header crc mismatch",a.mode=Ae;break}h=0,d=0}a.head&&(a.head.hcrc=a.flags>>9&1,a.head.done=!0),t.adler=a.check=0,a.mode=ze;break;case 10:for(;d<32;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}t.adler=a.check=Ee(h),h=0,d=0,a.mode=11;case 11:if(0===a.havedict)return t.next_out=s,t.avail_out=l,t.next_in=r,t.avail_in=o,a.hold=h,a.bits=d,pe;t.adler=a.check=1,a.mode=ze;case ze:if(e===ce||e===we)break t;case 13:if(a.last){h>>>=7&d,d-=7&d,a.mode=27;break}for(;d<3;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}switch(a.last=1&h,d-=1,3&(h>>>=1)){case 0:a.mode=14;break;case 1:if(Fe(a),a.mode=20,e===we){h>>>=2,d-=2;break t}break;case 2:a.mode=17;break;case 3:t.msg="invalid block type",a.mode=Ae}h>>>=2,d-=2;break;case 14:for(h>>>=7&d,d-=7&d;d<32;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if((65535&h)!=(h>>>16^65535)){t.msg="invalid stored block lengths",a.mode=Ae;break}if(a.length=65535&h,h=0,d=0,a.mode=15,e===we)break t;case 15:a.mode=16;case 16:if(u=a.length){if(u>o&&(u=o),u>l&&(u=l),0===u)break t;n.set(i.subarray(r,r+u),s),o-=u,r+=u,l-=u,s+=u,a.length-=u;break}a.mode=ze;break;case 17:for(;d<14;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(a.nlen=257+(31&h),h>>>=5,d-=5,a.ndist=1+(31&h),h>>>=5,d-=5,a.ncode=4+(15&h),h>>>=4,d-=4,a.nlen>286||a.ndist>30){t.msg="too many length or distance symbols",a.mode=Ae;break}a.have=0,a.mode=18;case 18:for(;a.have<a.ncode;){for(;d<3;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.lens[Z[a.have++]]=7&h,h>>>=3,d-=3}for(;a.have<19;)a.lens[Z[a.have++]]=0;if(a.lencode=a.lendyn,a.lenbits=7,z={bits:a.lenbits},x=fe(0,a.lens,0,19,a.lencode,0,a.work,z),a.lenbits=z.bits,x){t.msg="invalid code lengths set",a.mode=Ae;break}a.have=0,a.mode=19;case 19:for(;a.have<a.nlen+a.ndist;){for(;g=(E=a.lencode[h&(1<<a.lenbits)-1])>>>16&255,p=65535&E,!((b=E>>>24)<=d);){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(p<16)h>>>=b,d-=b,a.lens[a.have++]=p;else{if(16===p){for(A=b+2;d<A;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(h>>>=b,d-=b,0===a.have){t.msg="invalid bit length repeat",a.mode=Ae;break}y=a.lens[a.have-1],u=3+(3&h),h>>>=2,d-=2}else if(17===p){for(A=b+3;d<A;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}d-=b,y=0,u=3+(7&(h>>>=b)),h>>>=3,d-=3}else{for(A=b+7;d<A;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}d-=b,y=0,u=11+(127&(h>>>=b)),h>>>=7,d-=7}if(a.have+u>a.nlen+a.ndist){t.msg="invalid bit length repeat",a.mode=Ae;break}for(;u--;)a.lens[a.have++]=y}}if(a.mode===Ae)break;if(0===a.lens[256]){t.msg="invalid code -- missing end-of-block",a.mode=Ae;break}if(a.lenbits=9,z={bits:a.lenbits},x=fe(1,a.lens,0,a.nlen,a.lencode,0,a.work,z),a.lenbits=z.bits,x){t.msg="invalid literal/lengths set",a.mode=Ae;break}if(a.distbits=6,a.distcode=a.distdyn,z={bits:a.distbits},x=fe(2,a.lens,a.nlen,a.ndist,a.distcode,0,a.work,z),a.distbits=z.bits,x){t.msg="invalid distances set",a.mode=Ae;break}if(a.mode=20,e===we)break t;case 20:a.mode=21;case 21:if(o>=6&&l>=258){t.next_out=s,t.avail_out=l,t.next_in=r,t.avail_in=o,a.hold=h,a.bits=d,se(t,f),s=t.next_out,n=t.output,l=t.avail_out,r=t.next_in,i=t.input,o=t.avail_in,h=a.hold,d=a.bits,a.mode===ze&&(a.back=-1);break}for(a.back=0;g=(E=a.lencode[h&(1<<a.lenbits)-1])>>>16&255,p=65535&E,!((b=E>>>24)<=d);){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(g&&0==(240&g)){for(m=b,v=g,k=p;g=(E=a.lencode[k+((h&(1<<m+v)-1)>>m)])>>>16&255,p=65535&E,!(m+(b=E>>>24)<=d);){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}h>>>=m,d-=m,a.back+=m}if(h>>>=b,d-=b,a.back+=b,a.length=p,0===g){a.mode=26;break}if(32&g){a.back=-1,a.mode=ze;break}if(64&g){t.msg="invalid literal/length code",a.mode=Ae;break}a.extra=15&g,a.mode=22;case 22:if(a.extra){for(A=a.extra;d<A;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.length+=h&(1<<a.extra)-1,h>>>=a.extra,d-=a.extra,a.back+=a.extra}a.was=a.length,a.mode=23;case 23:for(;g=(E=a.distcode[h&(1<<a.distbits)-1])>>>16&255,p=65535&E,!((b=E>>>24)<=d);){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(0==(240&g)){for(m=b,v=g,k=p;g=(E=a.distcode[k+((h&(1<<m+v)-1)>>m)])>>>16&255,p=65535&E,!(m+(b=E>>>24)<=d);){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}h>>>=m,d-=m,a.back+=m}if(h>>>=b,d-=b,a.back+=b,64&g){t.msg="invalid distance code",a.mode=Ae;break}a.offset=p,a.extra=15&g,a.mode=24;case 24:if(a.extra){for(A=a.extra;d<A;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}a.offset+=h&(1<<a.extra)-1,h>>>=a.extra,d-=a.extra,a.back+=a.extra}if(a.offset>a.dmax){t.msg="invalid distance too far back",a.mode=Ae;break}a.mode=25;case 25:if(0===l)break t;if(u=f-l,a.offset>u){if((u=a.offset-u)>a.whave&&a.sane){t.msg="invalid distance too far back",a.mode=Ae;break}u>a.wnext?(u-=a.wnext,c=a.wsize-u):c=a.wnext-u,u>a.length&&(u=a.length),w=a.window}else w=n,c=s-a.offset,u=a.length;u>l&&(u=l),l-=u,a.length-=u;do{n[s++]=w[c++]}while(--u);0===a.length&&(a.mode=21);break;case 26:if(0===l)break t;n[s++]=a.length,l--,a.mode=21;break;case 27:if(a.wrap){for(;d<32;){if(0===o)break t;o--,h|=i[r++]<<d,d+=8}if(f-=l,t.total_out+=f,a.total+=f,f&&(t.adler=a.check=a.flags?M(a.check,n,f,s-f):B(a.check,n,f,s-f)),f=l,(a.flags?h:Ee(h))!==a.check){t.msg="incorrect data check",a.mode=Ae;break}h=0,d=0}a.mode=28;case 28:if(a.wrap&&a.flags){for(;d<32;){if(0===o)break t;o--,h+=i[r++]<<d,d+=8}if(h!==(4294967295&a.total)){t.msg="incorrect length check",a.mode=Ae;break}h=0,d=0}a.mode=29;case 29:x=ge;break t;case Ae:x=ve;break t;case 31:return ke;case 32:default:return me}return t.next_out=s,t.avail_out=l,t.next_in=r,t.avail_in=o,a.hold=h,a.bits=d,(a.wsize||f!==t.avail_out&&a.mode<Ae&&(a.mode<27||e!==ue))&&Le(t,t.output,t.next_out,f-t.avail_out),_-=t.avail_in,f-=t.avail_out,t.total_in+=_,t.total_out+=f,a.total+=f,a.wrap&&f&&(t.adler=a.check=a.flags?M(a.check,n,f,t.next_out-f):B(a.check,n,f,t.next_out-f)),t.data_type=a.bits+(a.last?64:0)+(a.mode===ze?128:0)+(20===a.mode||15===a.mode?256:0),(0===_&&0===f||e===ue)&&x===be&&(x=ye),x},inflateEnd:function(t){if(!t||!t.state)return me;var e=t.state;return e.window&&(e.window=null),t.state=null,be},inflateGetHeader:function(t,e){if(!t||!t.state)return me;var a=t.state;return 0==(2&a.wrap)?me:(a.head=e,e.done=!1,be)},inflateSetDictionary:function(t,e){var a,i=e.length;return t&&t.state?0!==(a=t.state).wrap&&11!==a.mode?me:11===a.mode&&B(1,e,i,0)!==a.check?ve:Le(t,e,i,i)?(a.mode=31,ke):(a.havedict=1,be):me},inflateInfo:"pako inflate (from Nodeca project)"};var Be=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1},Ce=Object.prototype.toString,Me=j.Z_NO_FLUSH,He=j.Z_FINISH,je=j.Z_OK,Ke=j.Z_STREAM_END,Pe=j.Z_NEED_DICT,Ye=j.Z_STREAM_ERROR,Ge=j.Z_DATA_ERROR,Xe=j.Z_MEM_ERROR;function We(t){this.options=Bt({chunkSize:65536,windowBits:15,to:""},t||{});var e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Gt,this.strm.avail_out=0;var a=Ne.inflateInit2(this.strm,e.windowBits);if(a!==je)throw new Error(H[a]);if(this.header=new Be,Ne.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=Kt(e.dictionary):"[object ArrayBuffer]"===Ce.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(a=Ne.inflateSetDictionary(this.strm,e.dictionary))!==je))throw new Error(H[a])}function qe(t,e){var a=new We(e);if(a.push(t),a.err)throw a.msg||H[a.err];return a.result}We.prototype.push=function(t,e){var a,i,n,r=this.strm,s=this.options.chunkSize,o=this.options.dictionary;if(this.ended)return!1;for(i=e===~~e?e:!0===e?He:Me,"[object ArrayBuffer]"===Ce.call(t)?r.input=new Uint8Array(t):r.input=t,r.next_in=0,r.avail_in=r.input.length;;){for(0===r.avail_out&&(r.output=new Uint8Array(s),r.next_out=0,r.avail_out=s),(a=Ne.inflate(r,i))===Pe&&o&&((a=Ne.inflateSetDictionary(r,o))===je?a=Ne.inflate(r,i):a===Ge&&(a=Pe));r.avail_in>0&&a===Ke&&r.state.wrap>0&&0!==t[r.next_in];)Ne.inflateReset(r),a=Ne.inflate(r,i);switch(a){case Ye:case Ge:case Pe:case Xe:return this.onEnd(a),this.ended=!0,!1}if(n=r.avail_out,r.next_out&&(0===r.avail_out||a===Ke))if("string"===this.options.to){var l=Yt(r.output,r.next_out),h=r.next_out-l,d=Pt(r.output,l);r.next_out=h,r.avail_out=s-h,h&&r.output.set(r.output.subarray(l,l+h),0),this.onData(d)}else this.onData(r.output.length===r.next_out?r.output:r.output.subarray(0,r.next_out));if(a!==je||0!==n){if(a===Ke)return a=Ne.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(0===r.avail_in)break}}return!0},We.prototype.onData=function(t){this.chunks.push(t)},We.prototype.onEnd=function(t){t===je&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Ct(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var Je={Inflate:We,inflate:qe,inflateRaw:function(t,e){return(e=e||{}).raw=!0,qe(t,e)},ungzip:qe,constants:j},Qe=re.Deflate,Ve=re.deflate,$e=re.deflateRaw,ta=re.gzip,ea=Je.Inflate,aa=Je.inflate,ia=Je.inflateRaw,na=Je.ungzip,ra=j,sa={Deflate:Qe,deflate:Ve,deflateRaw:$e,gzip:ta,Inflate:ea,inflate:aa,inflateRaw:ia,ungzip:na,constants:ra};t.Deflate=Qe,t.Inflate=ea,t.constants=ra,t.default=sa,t.deflate=Ve,t.deflateRaw=$e,t.gzip=ta,t.inflate=aa,t.inflateRaw=ia,t.ungzip=na,Object.defineProperty(t,"__esModule",{value:!0})}));
102var $jscomp={scope:{}};$jscomp.defineProperty="function"==typeof Object.defineProperties?Object.defineProperty:function(d,h,l){if(l.get||l.set)throw new TypeError("ES3 does not support getters and setters.");d!=Array.prototype&&d!=Object.prototype&&(d[h]=l.value)};$jscomp.getGlobal=function(d){return"undefined"!=typeof window&&window===d?d:"undefined"!=typeof global&&null!=global?global:d};$jscomp.global=$jscomp.getGlobal(this);
103$jscomp.polyfill=function(d,h,l,p){if(h){l=$jscomp.global;d=d.split(".");for(p=0;p<d.length-1;p++){var v=d[p];v in l||(l[v]={});l=l[v]}d=d[d.length-1];p=l[d];h=h(p);h!=p&&null!=h&&$jscomp.defineProperty(l,d,{configurable:!0,writable:!0,value:h})}};$jscomp.polyfill("Math.imul",function(d){return d?d:function(d,l){d=Number(d);l=Number(l);var h=d&65535,v=l&65535;return h*v+((d>>>16&65535)*v+h*(l>>>16&65535)<<16>>>0)|0}},"es6-impl","es3");
104$jscomp.polyfill("Object.setPrototypeOf",function(d){return d?d:"object"!=typeof"".__proto__?null:function(d,l){d.__proto__=l;if(d.__proto__!==l)throw new TypeError(d+" is not extensible");return d}},"es6","es5");$jscomp.polyfill("Reflect.apply",function(d){if(d)return d;var h=Function.prototype.apply;return function(d,p,v){return h.call(d,p,v)}},"es6","es3");
105$jscomp.polyfill("Reflect.construct",function(d){return d?d:function(d,l,p){void 0===p&&(p=d);p=Object.create(p.prototype||Object.prototype);return Reflect.apply(d,p,l)||p}},"es6","es5");$jscomp.SYMBOL_PREFIX="jscomp_symbol_";$jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)};$jscomp.symbolCounter_=0;$jscomp.Symbol=function(d){return $jscomp.SYMBOL_PREFIX+(d||"")+$jscomp.symbolCounter_++};
106$jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var d=$jscomp.global.Symbol.iterator;d||(d=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator"));"function"!=typeof Array.prototype[d]&&$jscomp.defineProperty(Array.prototype,d,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}});$jscomp.initSymbolIterator=function(){}};$jscomp.arrayIterator=function(d){var h=0;return $jscomp.iteratorPrototype(function(){return h<d.length?{done:!1,value:d[h++]}:{done:!0}})};
107$jscomp.iteratorPrototype=function(d){$jscomp.initSymbolIterator();d={next:d};d[$jscomp.global.Symbol.iterator]=function(){return this};return d};$jscomp.polyfill("Array.from",function(d){return d?d:function(d,l,p){$jscomp.initSymbolIterator();l=null!=l?l:function(d){return d};var h=[],z=d[Symbol.iterator];if("function"==typeof z)for(d=z.call(d);!(z=d.next()).done;)h.push(l.call(p,z.value));else for(var z=d.length,B=0;B<z;B++)h.push(l.call(p,d[B]));return h}},"es6-impl","es3");
108$jscomp.polyfill("Number.MAX_SAFE_INTEGER",function(){return 9007199254740991},"es6-impl","es3");$jscomp.owns=function(d,h){return Object.prototype.hasOwnProperty.call(d,h)};$jscomp.polyfill("Object.assign",function(d){return d?d:function(d,l){for(var h=1;h<arguments.length;h++){var v=arguments[h];if(v)for(var z in v)$jscomp.owns(v,z)&&(d[z]=v[z])}return d}},"es6-impl","es3");
109$jscomp.polyfill("Array.prototype.fill",function(d){return d?d:function(d,l,p){var h=this.length||0;0>l&&(l=Math.max(0,h+l));if(null==p||p>h)p=h;p=Number(p);0>p&&(p=Math.max(0,h+p));for(l=Number(l||0);l<p;l++)this[l]=d;return this}},"es6-impl","es3");Array.from||(Array.from=function(d){return[].slice.call(d)});Math.imul=Math.imul||function(d,h){var l=d&65535,p=h&65535;return l*p+((d>>>16&65535)*p+l*(h>>>16&65535)<<16>>>0)|0};
110function _instanceof(d,h){return null!=h&&"undefined"!==typeof Symbol&&h[Symbol.hasInstance]?!!h[Symbol.hasInstance](d):d instanceof h}function _inherits(d,h){if("function"!==typeof h&&null!==h)throw new TypeError("Super expression must either be null or a function");d.prototype=Object.create(h&&h.prototype,{constructor:{value:d,writable:!0,configurable:!0}});h&&_setPrototypeOf(d,h)}
111function _setPrototypeOf(d,h){_setPrototypeOf=Object.setPrototypeOf||function(d,h){d.__proto__=h;return d};return _setPrototypeOf(d,h)}function _createSuper(d){var h=_isNativeReflectConstruct();return function(){var l=_getPrototypeOf(d);if(h)var p=_getPrototypeOf(this).constructor,l=Reflect.construct(l,arguments,p);else l=l.apply(this,arguments);return _possibleConstructorReturn(this,l)}}
112function _possibleConstructorReturn(d,h){return!h||"object"!==_typeof(h)&&"function"!==typeof h?_assertThisInitialized(d):h}function _assertThisInitialized(d){if(void 0===d)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return d}
113function _isNativeReflectConstruct(){if("undefined"===typeof Reflect||!Reflect.construct||Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(d){return!1}}function _getPrototypeOf(d){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(d){return d.__proto__||Object.getPrototypeOf(d)};return _getPrototypeOf(d)}
114function _createForOfIteratorHelper(d,h){var l;if("undefined"===typeof Symbol||null==d[Symbol.iterator]){if(Array.isArray(d)||(l=_unsupportedIterableToArray(d))||h&&d&&"number"===typeof d.length){l&&(d=l);var p=0,v=function(){};return{s:v,n:function(){return p>=d.length?{done:!0}:{done:!1,value:d[p++]}},e:function(d){throw d;},f:v}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}var z=!0,
115B=!1,C;return{s:function(){l=d[Symbol.iterator]()},n:function(){var d=l.next();z=d.done;return d},e:function(d){B=!0;C=d},f:function(){try{z||null==l["return"]||l["return"]()}finally{if(B)throw C;}}}}function _classCallCheck(d,h){if(!_instanceof(d,h))throw new TypeError("Cannot call a class as a function");}function _defineProperties(d,h){for(var l=0;l<h.length;l++){var p=h[l];p.enumerable=p.enumerable||!1;p.configurable=!0;"value"in p&&(p.writable=!0);Object.defineProperty(d,p.key,p)}}
116function _createClass(d,h,l){h&&_defineProperties(d.prototype,h);l&&_defineProperties(d,l);return d}function _typeof(d){"@babel/helpers - typeof";_typeof="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(d){return typeof d}:function(d){return d&&"function"===typeof Symbol&&d.constructor===Symbol&&d!==Symbol.prototype?"symbol":typeof d};return _typeof(d)}
117function _toConsumableArray(d){return _arrayWithoutHoles(d)||_iterableToArray(d)||_unsupportedIterableToArray(d)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _iterableToArray(d){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(d))return Array.from(d)}
118function _arrayWithoutHoles(d){if(Array.isArray(d))return _arrayLikeToArray(d)}function _slicedToArray(d,h){return _arrayWithHoles(d)||_iterableToArrayLimit(d,h)||_unsupportedIterableToArray(d,h)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}
119function _unsupportedIterableToArray(d,h){if(d){if("string"===typeof d)return _arrayLikeToArray(d,h);var l=Object.prototype.toString.call(d).slice(8,-1);"Object"===l&&d.constructor&&(l=d.constructor.name);if("Map"===l||"Set"===l)return Array.from(d);if("Arguments"===l||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(l))return _arrayLikeToArray(d,h)}}function _arrayLikeToArray(d,h){if(null==h||h>d.length)h=d.length;for(var l=0,p=Array(h);l<h;l++)p[l]=d[l];return p}
120function _iterableToArrayLimit(d,h){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(d)){var l=[],p=!0,v=!1,z=void 0;try{for(var B=d[Symbol.iterator](),C;!(p=(C=B.next()).done)&&(l.push(C.value),!h||l.length!==h);p=!0);}catch(H){v=!0,z=H}finally{try{if(!p&&null!=B["return"])B["return"]()}finally{if(v)throw z;}}return l}}function _arrayWithHoles(d){if(Array.isArray(d))return d}
121var rough=function(){function d(b,a,e){if(b&&b.length){a=_slicedToArray(a,2);var c=a[0],f=a[1];e*=Math.PI/180;var k=Math.cos(e),d=Math.sin(e);b.forEach(function(a){var e=_slicedToArray(a,2),b=e[0],e=e[1];a[0]=(b-c)*k-(e-f)*d+c;a[1]=(b-c)*d+(e-f)*k+f})}}function h(b){var a=b[0];b=b[1];return Math.sqrt(Math.pow(a[0]-b[0],2)+Math.pow(a[1]-b[1],2))}function l(b,a,e,c){var f=a[1]-b[1];a=b[0]-a[0];b=f*b[0]+a*b[1];var k=c[1]-e[1];c=e[0]-c[0];e=k*e[0]+c*e[1];var d=f*c-k*a;return d?[(c*b-a*e)/d,(f*e-k*b)/
122d]:null}function p(b,a,e){var c=b.length;if(3>c)return!1;var f=[Number.MAX_SAFE_INTEGER,e];a=[a,e];for(var k=e=0;k<c;k++){var d=b[k],g=b[(k+1)%c];if(B(d,g,a,f)){if(0===z(d,a,g))return v(d,a,g);e++}}return 1==e%2}function v(b,a,e){return a[0]<=Math.max(b[0],e[0])&&a[0]>=Math.min(b[0],e[0])&&a[1]<=Math.max(b[1],e[1])&&a[1]>=Math.min(b[1],e[1])}function z(b,a,e){b=(a[1]-b[1])*(e[0]-a[0])-(a[0]-b[0])*(e[1]-a[1]);return 0===b?0:0<b?1:2}function B(b,a,e,c){var f=z(b,a,e),k=z(b,a,c),d=z(e,c,b),g=z(e,c,a);
123return f!==k&&d!==g||!(0!==f||!v(b,e,a))||!(0!==k||!v(b,c,a))||!(0!==d||!v(e,b,c))||!(0!==g||!v(e,a,c))}function C(b,a){var e=[0,0],c=Math.round(a.hachureAngle+90);c&&d(b,e,c);var f=function(a,e){var c=_toConsumableArray(a);c[0].join(",")!==c[c.length-1].join(",")&&c.push([c[0][0],c[0][1]]);var f=[];if(c&&2<c.length){var b=function(){var a=e.hachureGap;0>a&&(a=4*e.strokeWidth);for(var a=Math.max(a,.1),b=[],k=0;k<c.length-1;k++){var g=c[k],d=c[k+1];if(g[1]!==d[1]){var n=Math.min(g[1],d[1]);b.push({ymin:n,
124ymax:Math.max(g[1],d[1]),x:n===g[1]?g[0]:d[0],islope:(d[0]-g[0])/(d[1]-g[1])})}}if(b.sort(function(a,c){return a.ymin<c.ymin?-1:a.ymin>c.ymin?1:a.x<c.x?-1:a.x>c.x?1:a.ymax===c.ymax?0:(a.ymax-c.ymax)/Math.abs(a.ymax-c.ymax)}),!b.length)return{v:f};for(var m=[],r=b[0].ymin;m.length||b.length;){if(b.length){k=-1;for(g=0;g<b.length&&!(b[g].ymin>r);g++)k=g;b.splice(0,k+1).forEach(function(a){m.push({s:r,edge:a})})}if(m=m.filter(function(a){return!(a.edge.ymax<=r)}),m.sort(function(a,c){return a.edge.x===
125c.edge.x?0:(a.edge.x-c.edge.x)/Math.abs(a.edge.x-c.edge.x)}),1<m.length)for(k=0;k<m.length;k+=2){g=k+1;if(g>=m.length)break;f.push([[Math.round(m[k].edge.x),r],[Math.round(m[g].edge.x),r]])}r+=a;m.forEach(function(c){c.edge.x+=a*c.edge.islope})}}();if("object"===_typeof(b))return b.v}return f}(b,a);return c&&(d(b,e,-c),function(a,c,e){var f=[];a.forEach(function(a){return f.push.apply(f,_toConsumableArray(a))});d(f,c,e)}(f,e,-c)),f}function H(b){var a=[],e;a:{e=b;for(var c=[];""!==e;){if(!e.match(/^([ \t\r\n,]+)/))if(e.match(/^([aAcChHlLmMqQsStTvVzZ])/))c[c.length]=
126{type:0,text:RegExp.$1};else{if(!e.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/)){e=[];break a}c[c.length]={type:1,text:"".concat(parseFloat(RegExp.$1))}}e=e.substr(RegExp.$1.length)}e=(c[c.length]={type:2,text:""},c)}for(var c="BOD",f=0,k=e[f];2!==k.type;){var d=0,g=[];if("BOD"===c){if("M"!==k.text&&"m"!==k.text)return H("M0,0"+b);f++;d=K[k.text];c=k.text}else 1===k.type?d=K[c]:(f++,d=K[k.text],c=k.text);if(!(f+d<e.length))throw Error("Path data ended short");for(k=f;k<f+d;k++){var n=
127e[k];if(1!==n.type)throw Error("Param not a number: "+c+","+n.text);g[g.length]=+n.text}if("number"!=typeof K[c])throw Error("Bad segment: "+c);a.push({key:c,data:g});f+=d;k=e[f];"M"===c&&(c="L");"m"===c&&(c="l")}return a}function W(b){var a,e,c,f,k,d,g=0,n=0,m=0,x=0,w=[];b=_createForOfIteratorHelper(b);var t;try{for(b.s();!(t=b.n()).done;){var h=t.value,q=h.data;switch(h.key){case "M":w.push({key:"M",data:_toConsumableArray(q)});a=q;e=_slicedToArray(a,2);g=e[0];n=e[1];a;c=q;f=_slicedToArray(c,2);
128m=f[0];x=f[1];c;break;case "m":g+=q[0];n+=q[1];w.push({key:"M",data:[g,n]});m=g;x=n;break;case "L":w.push({key:"L",data:_toConsumableArray(q)});k=q;d=_slicedToArray(k,2);g=d[0];n=d[1];k;break;case "l":g+=q[0];n+=q[1];w.push({key:"L",data:[g,n]});break;case "C":w.push({key:"C",data:_toConsumableArray(q)});g=q[4];n=q[5];break;case "c":var l=q.map(function(a,c){return c%2?a+n:a+g});w.push({key:"C",data:l});g=l[4];n=l[5];break;case "Q":w.push({key:"Q",data:_toConsumableArray(q)});g=q[2];n=q[3];break;
129case "q":var p=q.map(function(a,c){return c%2?a+n:a+g});w.push({key:"Q",data:p});g=p[2];n=p[3];break;case "A":w.push({key:"A",data:_toConsumableArray(q)});g=q[5];n=q[6];break;case "a":g+=q[5];n+=q[6];w.push({key:"A",data:[q[0],q[1],q[2],q[3],q[4],g,n]});break;case "H":w.push({key:"H",data:_toConsumableArray(q)});g=q[0];break;case "h":g+=q[0];w.push({key:"H",data:[g]});break;case "V":w.push({key:"V",data:_toConsumableArray(q)});n=q[0];break;case "v":n+=q[0];w.push({key:"V",data:[n]});break;case "S":w.push({key:"S",
130data:_toConsumableArray(q)});g=q[2];n=q[3];break;case "s":var u=q.map(function(a,c){return c%2?a+n:a+g});w.push({key:"S",data:u});g=u[2];n=u[3];break;case "T":w.push({key:"T",data:_toConsumableArray(q)});g=q[0];n=q[1];break;case "t":g+=q[0];n+=q[1];w.push({key:"T",data:[g,n]});break;case "Z":case "z":w.push({key:"Z",data:[]}),g=m,n=x}}}catch(y){b.e(y)}finally{b.f()}return w}function X(b){var a,e,c,f,k,d,g=[],n="",m=0,x=0,w=0,t=0,h=0,q=0;b=_createForOfIteratorHelper(b);var l;try{for(b.s();!(l=b.n()).done;){var p=
131l.value,u=p.key,y=p.data;switch(u){case "M":g.push({key:"M",data:_toConsumableArray(y)});a=y;e=_slicedToArray(a,2);m=e[0];x=e[1];a;c=y;f=_slicedToArray(c,2);w=f[0];t=f[1];c;break;case "C":g.push({key:"C",data:_toConsumableArray(y)});m=y[4];x=y[5];h=y[2];q=y[3];break;case "L":g.push({key:"L",data:_toConsumableArray(y)});k=y;d=_slicedToArray(k,2);m=d[0];x=d[1];k;break;case "H":m=y[0];g.push({key:"L",data:[m,x]});break;case "V":x=y[0];g.push({key:"L",data:[m,x]});break;case "S":var F=0,v=0;"C"===n||
132"S"===n?(F=m+(m-h),v=x+(x-q)):(F=m,v=x);g.push({key:"C",data:[F,v].concat(_toConsumableArray(y))});h=y[0];q=y[1];m=y[2];x=y[3];break;case "T":var z=_slicedToArray(y,2),A=z[0],B=z[1],v=F=0;"Q"===n||"T"===n?(F=m+(m-h),v=x+(x-q)):(F=m,v=x);g.push({key:"C",data:[m+2*(F-m)/3,x+2*(v-x)/3,A+2*(F-A)/3,B+2*(v-B)/3,A,B]});h=F;q=v;m=A;x=B;break;case "Q":var C=_slicedToArray(y,4),D=C[0],G=C[1],E=C[2],H=C[3];g.push({key:"C",data:[m+2*(D-m)/3,x+2*(G-x)/3,E+2*(D-E)/3,H+2*(G-H)/3,E,H]});h=D;q=G;m=E;x=H;break;case "A":var I=
133Math.abs(y[0]),J=Math.abs(y[1]),K=y[2],N=y[3],O=y[4],L=y[5],M=y[6];if(0===I||0===J)g.push({key:"C",data:[m,x,L,M,L,M]}),m=L,x=M;else if(m!==L||x!==M)Y(m,x,L,M,I,J,K,N,O).forEach(function(a){g.push({key:"C",data:a})}),m=L,x=M;break;case "Z":g.push({key:"Z",data:[]}),m=w,x=t}n=u}}catch(ka){b.e(ka)}finally{b.f()}return g}function I(b,a,e){return[b*Math.cos(e)-a*Math.sin(e),b*Math.sin(e)+a*Math.cos(e)]}function Y(b,a,e,c,f,k,d,g,n,m){var r=(w=d,Math.PI*w/180),w;w=[];var t,h,q;if(m)q=_slicedToArray(m,
1344),t=q[0],g=q[1],h=q[2],q=q[3];else{t=I(b,a,-r);a=_slicedToArray(t,2);b=a[0];a=a[1];t;t=I(e,c,-r);c=_slicedToArray(t,2);e=c[0];c=c[1];t;t=(b-e)/2;h=(a-c)/2;q=t*t/(f*f)+h*h/(k*k);1<q&&(q=Math.sqrt(q),f*=q,k*=q);q=f*f;var l=k*k;g=(g===n?-1:1)*Math.sqrt(Math.abs((q*l-q*h*h-l*t*t)/(q*h*h+l*t*t)));h=g*f*h/k+(b+e)/2;q=g*-k*t/f+(a+c)/2;t=Math.asin(parseFloat(((a-q)/k).toFixed(9)));g=Math.asin(parseFloat(((c-q)/k).toFixed(9)));b<h&&(t=Math.PI-t);e<h&&(g=Math.PI-g);0>t&&(t=2*Math.PI+t);0>g&&(g=2*Math.PI+g);
135n&&t>g&&(t-=2*Math.PI);!n&&g>t&&(g-=2*Math.PI)}Math.abs(g-t)>120*Math.PI/180&&(g=n&&g>t?t+120*Math.PI/180*1:t+120*Math.PI/180*-1,w=Y(e=h+f*Math.cos(g),c=q+k*Math.sin(g),e,c,f,k,d,0,n,[g,g,h,q]));d=Math.tan((g-t)/4);f=4/3*f*d;d*=4/3*k;k=[b,a];b=[b+f*Math.sin(t),a-d*Math.cos(t)];a=[e+f*Math.sin(g),c-d*Math.cos(g)];e=[e,c];if(b[0]=2*k[0]-b[0],b[1]=2*k[1]-b[1],m)return[b,a,e].concat(w);w=[b,a,e].concat(w);m=[];for(e=0;e<w.length;e+=3)c=I(w[e][0],w[e][1],r),b=I(w[e+1][0],w[e+1][1],r),a=I(w[e+2][0],w[e+
1362][1],r),m.push([c[0],c[1],b[0],b[1],a[0],a[1]]);return m}function N(b,a,e){var c=(b||[]).length;if(2<c){for(var f=[],k=0;k<c-1;k++)f.push.apply(f,_toConsumableArray(D(b[k][0],b[k][1],b[k+1][0],b[k+1][1],e)));return a&&f.push.apply(f,_toConsumableArray(D(b[c-1][0],b[c-1][1],b[0][0],b[0][1],e))),{type:"path",ops:f}}return 2===c?{type:"path",ops:D(b[0][0],b[0][1],b[1][0],b[1][1],e)}:{type:"path",ops:[]}}function la(b,a){var e=Z(b,1*(1+.2*a.roughness),a);if(!a.disableMultiStroke){var c=1.5*(1+.22*a.roughness),
137f=Object.assign({},a);f.randomizer=void 0;a.seed&&(f.seed=a.seed+1);c=Z(b,c,f);e=e.concat(c)}return{type:"path",ops:e}}function aa(b,a,e){var c=2*Math.PI/Math.max(e.curveStepCount,e.curveStepCount/Math.sqrt(200)*Math.sqrt(2*Math.PI*Math.sqrt((Math.pow(b/2,2)+Math.pow(a/2,2))/2)));b=Math.abs(b/2);a=Math.abs(a/2);var f=1-e.curveFitting;return b+=u(b*f,e),a+=u(a*f,e),{increment:c,rx:b,ry:a}}function T(b,a,e,c){var f=ba(c.increment,b,a,c.rx,c.ry,1,c.increment*O(.1,O(.4,1,e),e),e),k=_slicedToArray(f,2),
138f=k[1],k=P(k[0],null,e);e.disableMultiStroke||(b=ba(c.increment,b,a,c.rx,c.ry,1.5,0,e),b=_slicedToArray(b,1)[0],e=P(b,null,e),k=k.concat(e));return{estimatedPoints:f,opset:{type:"path",ops:k}}}function ca(b,a,e,c,f,k,d,g,n){e=Math.abs(e/2);c=Math.abs(c/2);e+=u(.01*e,n);for(c+=u(.01*c,n);0>f;)f+=2*Math.PI,k+=2*Math.PI;k-f>2*Math.PI&&(f=0,k=2*Math.PI);var m=Math.min(2*Math.PI/n.curveStepCount/2,(k-f)/2),r=da(m,b,a,e,c,f,k,1,n);n.disableMultiStroke||(m=da(m,b,a,e,c,f,k,1.5,n),r.push.apply(r,_toConsumableArray(m)));
139return d&&(g?r.push.apply(r,_toConsumableArray(D(b,a,b+e*Math.cos(f),a+c*Math.sin(f),n)).concat(_toConsumableArray(D(b,a,b+e*Math.cos(k),a+c*Math.sin(k),n)))):r.push({op:"lineTo",data:[b,a]},{op:"lineTo",data:[b+e*Math.cos(f),a+c*Math.sin(f)]})),{type:"path",ops:r}}function J(b,a){var e=[];if(b.length){var c=a.maxRandomnessOffset||0,f=b.length;if(2<f){e.push({op:"move",data:[b[0][0]+u(c,a),b[0][1]+u(c,a)]});for(var k=1;k<f;k++)e.push({op:"lineTo",data:[b[k][0]+u(c,a),b[k][1]+u(c,a)]})}}return{type:"fillPath",
140ops:e}}function G(b,a){var e=ma,c=a.fillStyle||"hachure";if(!A[c])switch(c){case "zigzag":A[c]||(A[c]=new na(e));break;case "cross-hatch":A[c]||(A[c]=new oa(e));break;case "dots":A[c]||(A[c]=new pa(e));break;case "dashed":A[c]||(A[c]=new qa(e));break;case "zigzag-line":A[c]||(A[c]=new ra(e));break;default:c="hachure",A[c]||(A[c]=new U(e))}return A[c].fillPolygon(b,a)}function ea(b){return b.randomizer||(b.randomizer=new sa(b.seed||0)),b.randomizer.next()}function O(b,a,e){return e.roughness*(3<arguments.length&&
141void 0!==arguments[3]?arguments[3]:1)*(ea(e)*(a-b)+b)}function u(b,a){return O(-b,b,a,2<arguments.length&&void 0!==arguments[2]?arguments[2]:1)}function D(b,a,e,c,f){var k=5<arguments.length&&void 0!==arguments[5]&&arguments[5]?f.disableMultiStrokeFill:f.disableMultiStroke,d=fa(b,a,e,c,f,!0,!1);if(k)return d;k=fa(b,a,e,c,f,!0,!0);return d.concat(k)}function fa(b,a,e,c,f,k,d){var g=Math.pow(b-e,2)+Math.pow(a-c,2),n=Math.sqrt(g),m=1,m=200>n?1:500<n?.4:-.0016668*n+1.233334,r=f.maxRandomnessOffset||0;
142r*r*100>g&&(r=n/10);var h=r/2,g=.2+.2*ea(f),n=f.bowing*f.maxRandomnessOffset*(c-a)/200,t=f.bowing*f.maxRandomnessOffset*(b-e)/200,n=u(n,f,m),t=u(t,f,m),l=[],q=function(){return u(h,f,m)},p=function(){return u(r,f,m)},v=f.preserveVertices;return k&&(d?l.push({op:"move",data:[b+(v?0:q()),a+(v?0:q())]}):l.push({op:"move",data:[b+(v?0:u(r,f,m)),a+(v?0:u(r,f,m))]})),d?l.push({op:"bcurveTo",data:[n+b+(e-b)*g+q(),t+a+(c-a)*g+q(),n+b+2*(e-b)*g+q(),t+a+2*(c-a)*g+q(),e+(v?0:q()),c+(v?0:q())]}):l.push({op:"bcurveTo",
143data:[n+b+(e-b)*g+p(),t+a+(c-a)*g+p(),n+b+2*(e-b)*g+p(),t+a+2*(c-a)*g+p(),e+(v?0:p()),c+(v?0:p())]}),l}function Z(b,a,e){var c=[];c.push([b[0][0]+u(a,e),b[0][1]+u(a,e)]);c.push([b[0][0]+u(a,e),b[0][1]+u(a,e)]);for(var f=1;f<b.length;f++)c.push([b[f][0]+u(a,e),b[f][1]+u(a,e)]),f===b.length-1&&c.push([b[f][0]+u(a,e),b[f][1]+u(a,e)]);return P(c,null,e)}function P(b,a,e){var c=b.length,f=[];if(3<c){var k=[],d=1-e.curveTightness;f.push({op:"move",data:[b[1][0],b[1][1]]});for(var g=1;g+2<c;g++){var n=b[g];
144k[0]=[n[0],n[1]];k[1]=[n[0]+(d*b[g+1][0]-d*b[g-1][0])/6,n[1]+(d*b[g+1][1]-d*b[g-1][1])/6];k[2]=[b[g+1][0]+(d*b[g][0]-d*b[g+2][0])/6,b[g+1][1]+(d*b[g][1]-d*b[g+2][1])/6];k[3]=[b[g+1][0],b[g+1][1]];f.push({op:"bcurveTo",data:[k[1][0],k[1][1],k[2][0],k[2][1],k[3][0],k[3][1]]})}a&&2===a.length&&(b=e.maxRandomnessOffset,f.push({op:"lineTo",data:[a[0]+u(b,e),a[1]+u(b,e)]}))}else 3===c?(f.push({op:"move",data:[b[1][0],b[1][1]]}),f.push({op:"bcurveTo",data:[b[1][0],b[1][1],b[2][0],b[2][1],b[2][0],b[2][1]]})):
1452===c&&f.push.apply(f,_toConsumableArray(D(b[0][0],b[0][1],b[1][0],b[1][1],e)));return f}function ba(b,a,e,c,f,k,d,g){var n=[],m=[],r=u(.5,g)-Math.PI/2;m.push([u(k,g)+a+.9*c*Math.cos(r-b),u(k,g)+e+.9*f*Math.sin(r-b)]);for(var h=r;h<2*Math.PI+r-.01;h+=b){var t=[u(k,g)+a+c*Math.cos(h),u(k,g)+e+f*Math.sin(h)];n.push(t);m.push(t)}return m.push([u(k,g)+a+c*Math.cos(r+2*Math.PI+.5*d),u(k,g)+e+f*Math.sin(r+2*Math.PI+.5*d)]),m.push([u(k,g)+a+.98*c*Math.cos(r+d),u(k,g)+e+.98*f*Math.sin(r+d)]),m.push([u(k,
146g)+a+.9*c*Math.cos(r+.5*d),u(k,g)+e+.9*f*Math.sin(r+.5*d)]),[m,n]}function da(b,a,e,c,f,k,d,g,n){var m=k+u(.1,n);k=[];for(k.push([u(g,n)+a+.9*c*Math.cos(m-b),u(g,n)+e+.9*f*Math.sin(m-b)]);m<=d;m+=b)k.push([u(g,n)+a+c*Math.cos(m),u(g,n)+e+f*Math.sin(m)]);return k.push([a+c*Math.cos(d),e+f*Math.sin(d)]),k.push([a+c*Math.cos(d),e+f*Math.sin(d)]),P(k,null,n)}function ta(b,a,e,c,f,d,r,g){for(var k=[],m=[g.maxRandomnessOffset||1,(g.maxRandomnessOffset||1)+.3],h,w=g.disableMultiStroke?1:2,t=g.preserveVertices,
147l=0;l<w;l++)0===l?k.push({op:"move",data:[r[0],r[1]]}):k.push({op:"move",data:[r[0]+(t?0:u(m[0],g)),r[1]+(t?0:u(m[0],g))]}),h=t?[f,d]:[f+u(m[l],g),d+u(m[l],g)],k.push({op:"bcurveTo",data:[b+u(m[l],g),a+u(m[l],g),e+u(m[l],g),c+u(m[l],g),h[0],h[1]]});return k}function Q(b,a){return Math.pow(b[0]-a[0],2)+Math.pow(b[1]-a[1],2)}function E(b,a,e){return[b[0]+(a[0]-b[0])*e,b[1]+(a[1]-b[1])*e]}function V(b,a,e,c){c=c||[];var f=b[a+0],d=b[a+1],r=b[a+2],g=b[a+3],n=3*d[0]-2*f[0]-g[0],n=n*n,d=3*d[1]-2*f[1]-g[1],
148d=d*d,m=3*r[0]-2*g[0]-f[0],m=m*m,f=3*r[1]-2*g[1]-f[1];(f*=f,n<m&&(n=m),d<f&&(d=f),n+d)<e?(e=b[a+0],c.length?1<(h=c[c.length-1],l=e,Math.sqrt(Q(h,l)))&&c.push(e):c.push(e),c.push(b[a+3])):(h=b[a+0],n=b[a+1],l=b[a+2],b=b[a+3],a=E(h,n,.5),f=E(n,l,.5),l=E(l,b,.5),n=E(a,f,.5),f=E(f,l,.5),r=E(n,f,.5),V([h,a,n,r],0,e,c),V([r,f,l,b],0,e,c));var h,l;return c}function R(b,a,e,c,f){f=f||[];for(var d=b[a],r=b[e-1],g=0,n=1,m=a+1;m<e-1;++m){var h;h=b[m];var l=d,t=r,p=Q(l,t);0===p?h=Q(h,l):(p=((h[0]-l[0])*(t[0]-
149l[0])+(h[1]-l[1])*(t[1]-l[1]))/p,h=(p=Math.max(0,Math.min(1,p)),Q(h,E(l,t,p))));h>g&&(g=h,n=m)}return Math.sqrt(g)>c?(R(b,a,n+1,c,f),R(b,n,e,c,f)):(f.length||f.push(d),f.push(r)),f}function ga(b){for(var a=1<arguments.length&&void 0!==arguments[1]?arguments[1]:.15,e=2<arguments.length?arguments[2]:void 0,c=[],f=(b.length-1)/3,d=0;d<f;d++)V(b,3*d,a,c);return e&&0<e?R(c,0,c.length,e):c}var U=function(){function b(a){_classCallCheck(this,b);this.helper=a}_createClass(b,[{key:"fillPolygon",value:function(a,
150e){return this._fillPolygon(a,e)}},{key:"_fillPolygon",value:function(a,e){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:!1,f=C(a,e);c&&(c=this.connectingLines(a,f),f=f.concat(c));return{type:"fillSketch",ops:this.renderLines(f,e)}}},{key:"renderLines",value:function(a,e){var c=[],f=_createForOfIteratorHelper(a),b;try{for(f.s();!(b=f.n()).done;){var d=b.value;c.push.apply(c,_toConsumableArray(this.helper.doubleLineOps(d[0][0],d[0][1],d[1][0],d[1][1],e)))}}catch(g){f.e(g)}finally{f.f()}return c}},
151{key:"connectingLines",value:function(a,e){var c=[];if(1<e.length)for(var f=1;f<e.length;f++){var b=e[f-1];3>h(b)||(b=[e[f][0],b[1]],3<h(b)&&(b=this.splitOnIntersections(a,b),c.push.apply(c,_toConsumableArray(b))))}return c}},{key:"midPointInPolygon",value:function(a,e){return p(a,(e[0][0]+e[1][0])/2,(e[0][1]+e[1][1])/2)}},{key:"splitOnIntersections",value:function(a,e){for(var c=Math.max(5,.1*h(e)),b=[],d=0;d<a.length;d++){var r=a[d],g=a[(d+1)%a.length];if(B.apply(void 0,[r,g].concat(_toConsumableArray(e)))&&
152(r=l(r,g,e[0],e[1]))){var g=h([r,e[0]]),n=h([r,e[1]]);g>c&&n>c&&b.push({point:r,distance:g})}}if(1<b.length){c=b.sort(function(a,c){return a.distance-c.distance}).map(function(a){return a.point});if(p.apply(void 0,[a].concat(_toConsumableArray(e[0])))||c.shift(),p.apply(void 0,[a].concat(_toConsumableArray(e[1])))||c.pop(),1>=c.length)return this.midPointInPolygon(a,e)?[e]:[];c=[e[0]].concat(_toConsumableArray(c),[e[1]]);b=[];for(d=0;d<c.length-1;d+=2)r=[c[d],c[d+1]],this.midPointInPolygon(a,r)&&
153b.push(r);return b}return this.midPointInPolygon(a,e)?[e]:[]}}]);return b}(),na=function(b){function a(){_classCallCheck(this,a);return e.apply(this,arguments)}_inherits(a,b);var e=_createSuper(a);_createClass(a,[{key:"fillPolygon",value:function(a,e){return this._fillPolygon(a,e,!0)}}]);return a}(U),oa=function(b){function a(){_classCallCheck(this,a);return e.apply(this,arguments)}_inherits(a,b);var e=_createSuper(a);_createClass(a,[{key:"fillPolygon",value:function(a,e){var c=this._fillPolygon(a,
154e),b=Object.assign({},e,{hachureAngle:e.hachureAngle+90}),b=this._fillPolygon(a,b);return c.ops=c.ops.concat(b.ops),c}}]);return a}(U),pa=function(){function b(a){_classCallCheck(this,b);this.helper=a}_createClass(b,[{key:"fillPolygon",value:function(a,e){var c=C(a,e=Object.assign({},e,{curveStepCount:4,hachureAngle:0,roughness:1}));return this.dotsOnLines(c,e)}},{key:"dotsOnLines",value:function(a,e){var c=[],b=e.hachureGap;0>b&&(b=4*e.strokeWidth);var b=Math.max(b,.1),d=e.fillWeight;0>d&&(d=e.strokeWidth/
1552);var r=b/4,g=_createForOfIteratorHelper(a),n;try{for(g.s();!(n=g.n()).done;)for(var m=n.value,l=h(m),w=Math.ceil(l/b)-1,t=l-w*b,p=(m[0][0]+m[1][0])/2-b/4,q=Math.min(m[0][1],m[1][1]),u=0;u<w;u++){var v=q+t+u*b,z=this.helper.randOffsetWithRange(p-r,p+r,e),y=this.helper.randOffsetWithRange(v-r,v+r,e),F=this.helper.ellipse(z,y,d,d,e);c.push.apply(c,_toConsumableArray(F.ops))}}catch(ha){g.e(ha)}finally{g.f()}return{type:"fillSketch",ops:c}}}]);return b}(),qa=function(){function b(a){_classCallCheck(this,
156b);this.helper=a}_createClass(b,[{key:"fillPolygon",value:function(a,e){var c=C(a,e);return{type:"fillSketch",ops:this.dashedLine(c,e)}}},{key:"dashedLine",value:function(a,e){var c=this,b=0>e.dashOffset?0>e.hachureGap?4*e.strokeWidth:e.hachureGap:e.dashOffset,d=0>e.dashGap?0>e.hachureGap?4*e.strokeWidth:e.hachureGap:e.dashGap,r=[];return a.forEach(function(a){var f=h(a),g=Math.floor(f/(b+d)),f=(f+d-g*(b+d))/2,k=a[0],l=a[1];k[0]>l[0]&&(k=a[1],l=a[0]);a=Math.atan((l[1]-k[1])/(l[0]-k[0]));for(l=0;l<
157g;l++){var t=l*(b+d),p=t+b,t=[k[0]+t*Math.cos(a)+f*Math.cos(a),k[1]+t*Math.sin(a)+f*Math.sin(a)],p=[k[0]+p*Math.cos(a)+f*Math.cos(a),k[1]+p*Math.sin(a)+f*Math.sin(a)];r.push.apply(r,_toConsumableArray(c.helper.doubleLineOps(t[0],t[1],p[0],p[1],e)))}}),r}}]);return b}(),ra=function(){function b(a){_classCallCheck(this,b);this.helper=a}_createClass(b,[{key:"fillPolygon",value:function(a,e){var c=0>e.hachureGap?4*e.strokeWidth:e.hachureGap,b=0>e.zigzagOffset?c:e.zigzagOffset,c=C(a,e=Object.assign({},
158e,{hachureGap:c+b}));return{type:"fillSketch",ops:this.zigzagLines(c,b,e)}}},{key:"zigzagLines",value:function(a,e,c){var b=this,d=[];return a.forEach(function(a){var f=h(a),f=Math.round(f/(2*e)),k=a[0],m=a[1];k[0]>m[0]&&(k=a[1],m=a[0]);a=Math.atan((m[1]-k[1])/(m[0]-k[0]));for(m=0;m<f;m++){var l=2*m*e,r=2*(m+1)*e,t=Math.sqrt(2*Math.pow(e,2)),l=[k[0]+l*Math.cos(a),k[1]+l*Math.sin(a)],r=[k[0]+r*Math.cos(a),k[1]+r*Math.sin(a)],t=[l[0]+t*Math.cos(a+Math.PI/4),l[1]+t*Math.sin(a+Math.PI/4)];d.push.apply(d,
159_toConsumableArray(b.helper.doubleLineOps(l[0],l[1],t[0],t[1],c)).concat(_toConsumableArray(b.helper.doubleLineOps(t[0],t[1],r[0],r[1],c))))}}),d}}]);return b}(),A={},sa=function(){function b(a){_classCallCheck(this,b);this.seed=a}_createClass(b,[{key:"next",value:function(){return this.seed?(Math.pow(2,31)-1&(this.seed=Math.imul(48271,this.seed)))/Math.pow(2,31):Math.random()}}]);return b}(),K={A:7,a:7,C:6,c:6,H:1,h:1,L:2,l:2,M:2,m:2,Q:4,q:4,S:4,s:4,T:2,t:2,V:1,v:1,Z:0,z:0},ma={randOffset:function(b,
160a){return u(b,a)},randOffsetWithRange:function(b,a,e){return O(b,a,e)},ellipse:function(b,a,e,c,d){e=aa(e,c,d);return T(b,a,d,e).opset},doubleLineOps:function(b,a,e,c,d){return D(b,a,e,c,d,!0)}},S=function(){function b(a){_classCallCheck(this,b);this.defaultOptions={maxRandomnessOffset:2,roughness:1,bowing:1,stroke:"#000",strokeWidth:1,curveTightness:0,curveFitting:.95,curveStepCount:9,fillStyle:"hachure",fillWeight:-1,hachureAngle:-41,hachureGap:-1,dashOffset:-1,dashGap:-1,zigzagOffset:-1,seed:0,
161combineNestedSvgPaths:!1,disableMultiStroke:!1,disableMultiStrokeFill:!1,preserveVertices:!1};this.config=a||{};this.config.options&&(this.defaultOptions=this._o(this.config.options))}_createClass(b,[{key:"_o",value:function(a){return a?Object.assign({},this.defaultOptions,a):this.defaultOptions}},{key:"_d",value:function(a,e,c){return{shape:a,sets:e||[],options:c||this.defaultOptions}}},{key:"line",value:function(a,e,c,b,d){d=this._o(d);return this._d("line",[{type:"path",ops:D(a,e,c,b,d)}],d)}},
162{key:"rectangle",value:function(a,e,c,b,d){d=this._o(d);var f=[],g;g=N([[a,e],[a+c,e],[a+c,e+b],[a,e+b]],!0,d);d.fill&&(a=[[a,e],[a+c,e],[a+c,e+b],[a,e+b]],"solid"===d.fillStyle?f.push(J(a,d)):f.push(G(a,d)));return"none"!==d.stroke&&f.push(g),this._d("rectangle",f,d)}},{key:"ellipse",value:function(a,e,c,b,d){d=this._o(d);var f=[];b=aa(c,b,d);c=T(a,e,d,b);d.fill&&("solid"===d.fillStyle?(a=T(a,e,d,b).opset,a.type="fillPath",f.push(a)):f.push(G(c.estimatedPoints,d)));return"none"!==d.stroke&&f.push(c.opset),
163this._d("ellipse",f,d)}},{key:"circle",value:function(a,e,c,b){a=this.ellipse(a,e,c,c,b);return a.shape="circle",a}},{key:"linearPath",value:function(a,e){var c=this._o(e);return this._d("linearPath",[N(a,!1,c)],c)}},{key:"arc",value:function(a,e,c,b,d,h){var f=6<arguments.length&&void 0!==arguments[6]?arguments[6]:!1,k=this._o(7<arguments.length?arguments[7]:void 0),m=[],l=ca(a,e,c,b,d,h,f,!0,k);f&&k.fill&&("solid"===k.fillStyle?(f=ca(a,e,c,b,d,h,!0,!1,k),f.type="fillPath",m.push(f)):m.push(function(a,
164c,e,b,d,f,g){e=Math.abs(e/2);b=Math.abs(b/2);e+=u(.01*e,g);for(b+=u(.01*b,g);0>d;)d+=2*Math.PI,f+=2*Math.PI;f-d>2*Math.PI&&(d=0,f=2*Math.PI);for(var k=(f-d)/g.curveStepCount,m=[];d<=f;d+=k)m.push([a+e*Math.cos(d),c+b*Math.sin(d)]);return m.push([a+e*Math.cos(f),c+b*Math.sin(f)]),m.push([a,c]),G(m,g)}(a,e,c,b,d,h,k)));return"none"!==k.stroke&&m.push(l),this._d("arc",m,k)}},{key:"curve",value:function(a,e){var c=this._o(e),b=[],d=la(a,c);if(c.fill&&"none"!==c.fill&&3<=a.length){var h=ga(function(a){var c=
1651<arguments.length&&void 0!==arguments[1]?arguments[1]:0,e=a.length;if(3>e)throw Error("A curve must have at least three points.");var b=[];if(3===e)b.push(_toConsumableArray(a[0]),_toConsumableArray(a[1]),_toConsumableArray(a[2]),_toConsumableArray(a[2]));else{e=[];e.push(a[0],a[0]);for(var d=1;d<a.length;d++)e.push(a[d]),d===a.length-1&&e.push(a[d]);d=[];c=1-c;b.push(_toConsumableArray(e[0]));for(var f=1;f+2<e.length;f++){var g=e[f];d[0]=[g[0],g[1]];d[1]=[g[0]+(c*e[f+1][0]-c*e[f-1][0])/6,g[1]+(c*
166e[f+1][1]-c*e[f-1][1])/6];d[2]=[e[f+1][0]+(c*e[f][0]-c*e[f+2][0])/6,e[f+1][1]+(c*e[f][1]-c*e[f+2][1])/6];d[3]=[e[f+1][0],e[f+1][1]];b.push(d[1],d[2],d[3])}}return b}(a),10,(1+c.roughness)/2);"solid"===c.fillStyle?b.push(J(h,c)):b.push(G(h,c))}return"none"!==c.stroke&&b.push(d),this._d("curve",b,c)}},{key:"polygon",value:function(a,e){var c=this._o(e),b=[],d=N(a,!0,c);return c.fill&&("solid"===c.fillStyle?b.push(J(a,c)):b.push(G(a,c))),"none"!==c.stroke&&b.push(d),this._d("polygon",b,c)}},{key:"path",
167value:function(a,e){var c=this._o(e),b=[];if(!a)return this._d("path",b,c);a=(a||"").replace(/\n/g," ").replace(/(-\s)/g,"-").replace("/(ss)/g"," ");var d=c.fill&&"transparent"!==c.fill&&"none"!==c.fill,h="none"!==c.stroke,g=!!(c.simplification&&1>c.simplification),l=function(a,c,e){var b=X(W(H(a))),d=[],f=[];a=[0,0];var g=[],k=function(){var a;4<=g.length&&(a=f).push.apply(a,_toConsumableArray(ga(g,c)));g=[]},h=function(){k();f.length&&(d.push(f),f=[])},b=_createForOfIteratorHelper(b),l;try{for(b.s();!(l=
168b.n()).done;){var m=l.value,n=m.data;switch(m.key){case "M":h();a=[n[0],n[1]];f.push(a);break;case "L":k();f.push([n[0],n[1]]);break;case "C":if(!g.length){var r=f.length?f[f.length-1]:a;g.push([r[0],r[1]])}g.push([n[0],n[1]]);g.push([n[2],n[3]]);g.push([n[4],n[5]]);break;case "Z":k(),f.push([a[0],a[1]])}}}catch(ja){b.e(ja)}finally{b.f()}if(h(),!e)return d;l=[];for(m=0;m<d.length;m++)n=d[m],n=R(n,0,n.length,e),n.length&&l.push(n);return l}(a,1,g?4-4*c.simplification:(1+c.roughness)/2);if(d)if(c.combineNestedSvgPaths){var m=
169[];l.forEach(function(a){return m.push.apply(m,_toConsumableArray(a))});"solid"===c.fillStyle?b.push(J(m,c)):b.push(G(m,c))}else l.forEach(function(a){"solid"===c.fillStyle?b.push(J(a,c)):b.push(G(a,c))});return h&&(g?l.forEach(function(a){b.push(N(a,!1,c))}):b.push(function(a,c){var e=X(W(H(a))),b=[],d=[0,0],f=[0,0],e=_createForOfIteratorHelper(e),g;try{for(e.s();!(g=e.n()).done;){var k=g.value,h=k.data;switch(k.key){case "M":if("break"===function(){var a=1*(c.maxRandomnessOffset||0),e=c.preserveVertices;
170b.push({op:"move",data:h.map(function(b){return b+(e?0:u(a,c))})});f=[h[0],h[1]];d=[h[0],h[1]];return"break"}())break;case "L":b.push.apply(b,_toConsumableArray(D(f[0],f[1],h[0],h[1],c)));f=[h[0],h[1]];break;case "C":var l=_slicedToArray(h,6),m=l[4],n=l[5];b.push.apply(b,_toConsumableArray(ta(l[0],l[1],l[2],l[3],m,n,f,c)));f=[m,n];break;case "Z":b.push.apply(b,_toConsumableArray(D(f[0],f[1],d[0],d[1],c))),f=[d[0],d[1]]}}}catch(ia){e.e(ia)}finally{e.f()}return{type:"path",ops:b}}(a,c))),this._d("path",
171b,c)}},{key:"opsToPath",value:function(a,e){var c="",b=_createForOfIteratorHelper(a.ops),d;try{for(b.s();!(d=b.n()).done;){var h=d.value,g="number"==typeof e&&0<=e?h.data.map(function(a){return+a.toFixed(e)}):h.data;switch(h.op){case "move":c+="M".concat(g[0]," ").concat(g[1]," ");break;case "bcurveTo":c+="C".concat(g[0]," ").concat(g[1],", ").concat(g[2]," ").concat(g[3],", ").concat(g[4]," ").concat(g[5]," ");break;case "lineTo":c+="L".concat(g[0]," ").concat(g[1]," ")}}}catch(n){b.e(n)}finally{b.f()}return c.trim()}},
172{key:"toPaths",value:function(a){var e=a.options||this.defaultOptions,c=[];a=_createForOfIteratorHelper(a.sets||[]);var b;try{for(a.s();!(b=a.n()).done;){var d=b.value,h=null;switch(d.type){case "path":h={d:this.opsToPath(d),stroke:e.stroke,strokeWidth:e.strokeWidth,fill:"none"};break;case "fillPath":h={d:this.opsToPath(d),stroke:"none",strokeWidth:0,fill:e.fill||"none"};break;case "fillSketch":h=this.fillSketch(d,e)}h&&c.push(h)}}catch(g){a.e(g)}finally{a.f()}return c}},{key:"fillSketch",value:function(a,
173e){var c=e.fillWeight;return 0>c&&(c=e.strokeWidth/2),{d:this.opsToPath(a),stroke:e.fill||"none",strokeWidth:c,fill:"none"}}}],[{key:"newSeed",value:function(){return Math.floor(Math.random()*Math.pow(2,31))}}]);return b}(),ua=function(){function b(a,e){_classCallCheck(this,b);this.canvas=a;this.ctx=this.canvas.getContext("2d");this.gen=new S(e)}_createClass(b,[{key:"draw",value:function(a){var e=a.sets||[],c=a.options||this.getDefaultOptions(),b=this.ctx,e=_createForOfIteratorHelper(e),d;try{for(e.s();!(d=
174e.n()).done;){var h=d.value;switch(h.type){case "path":b.save();b.strokeStyle="none"===c.stroke?"transparent":c.stroke;b.lineWidth=c.strokeWidth;c.strokeLineDash&&b.setLineDash(c.strokeLineDash);c.strokeLineDashOffset&&(b.lineDashOffset=c.strokeLineDashOffset);this._drawToContext(b,h);b.restore();break;case "fillPath":b.save();b.fillStyle=c.fill||"";this._drawToContext(b,h,"curve"===a.shape||"polygon"===a.shape?"evenodd":"nonzero");b.restore();break;case "fillSketch":this.fillSketch(b,h,c)}}}catch(g){e.e(g)}finally{e.f()}}},
175{key:"fillSketch",value:function(a,e,c){var b=c.fillWeight;0>b&&(b=c.strokeWidth/2);a.save();c.fillLineDash&&a.setLineDash(c.fillLineDash);c.fillLineDashOffset&&(a.lineDashOffset=c.fillLineDashOffset);a.strokeStyle=c.fill||"";a.lineWidth=b;this._drawToContext(a,e);a.restore()}},{key:"_drawToContext",value:function(a,e){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:"nonzero";a.beginPath();var b=_createForOfIteratorHelper(e.ops),d;try{for(b.s();!(d=b.n()).done;){var h=d.value,g=h.data;
176switch(h.op){case "move":a.moveTo(g[0],g[1]);break;case "bcurveTo":a.bezierCurveTo(g[0],g[1],g[2],g[3],g[4],g[5]);break;case "lineTo":a.lineTo(g[0],g[1])}}}catch(n){b.e(n)}finally{b.f()}"fillPath"===e.type?a.fill(c):a.stroke()}},{key:"getDefaultOptions",value:function(){return this.gen.defaultOptions}},{key:"line",value:function(a,b,c,d,k){a=this.gen.line(a,b,c,d,k);return this.draw(a),a}},{key:"rectangle",value:function(a,b,c,d,k){a=this.gen.rectangle(a,b,c,d,k);return this.draw(a),a}},{key:"ellipse",
177value:function(a,b,c,d,k){a=this.gen.ellipse(a,b,c,d,k);return this.draw(a),a}},{key:"circle",value:function(a,b,c,d){a=this.gen.circle(a,b,c,d);return this.draw(a),a}},{key:"linearPath",value:function(a,b){var c=this.gen.linearPath(a,b);return this.draw(c),c}},{key:"polygon",value:function(a,b){var c=this.gen.polygon(a,b);return this.draw(c),c}},{key:"arc",value:function(a,b,c,d,k,h){var e=this.gen.arc(a,b,c,d,k,h,6<arguments.length&&void 0!==arguments[6]?arguments[6]:!1,7<arguments.length?arguments[7]:
178void 0);return this.draw(e),e}},{key:"curve",value:function(a,b){var c=this.gen.curve(a,b);return this.draw(c),c}},{key:"path",value:function(a,b){var c=this.gen.path(a,b);return this.draw(c),c}},{key:"generator",get:function(){return this.gen}}]);return b}(),va=function(){function b(a,e){_classCallCheck(this,b);this.svg=a;this.gen=new S(e)}_createClass(b,[{key:"draw",value:function(a){var b=a.sets||[],c=a.options||this.getDefaultOptions(),d=this.svg.ownerDocument||window.document,k=d.createElementNS("http://www.w3.org/2000/svg",
179"g"),h=a.options.fixedDecimalPlaceDigits,b=_createForOfIteratorHelper(b),g;try{for(b.s();!(g=b.n()).done;){var l=g.value,m=null;switch(l.type){case "path":m=d.createElementNS("http://www.w3.org/2000/svg","path");m.setAttribute("d",this.opsToPath(l,h));m.setAttribute("stroke",c.stroke);m.setAttribute("stroke-width",c.strokeWidth+"");m.setAttribute("fill","none");c.strokeLineDash&&m.setAttribute("stroke-dasharray",c.strokeLineDash.join(" ").trim());c.strokeLineDashOffset&&m.setAttribute("stroke-dashoffset",
180"".concat(c.strokeLineDashOffset));break;case "fillPath":m=d.createElementNS("http://www.w3.org/2000/svg","path");m.setAttribute("d",this.opsToPath(l,h));m.setAttribute("stroke","none");m.setAttribute("stroke-width","0");m.setAttribute("fill",c.fill||"");"curve"!==a.shape&&"polygon"!==a.shape||m.setAttribute("fill-rule","evenodd");break;case "fillSketch":m=this.fillSketch(d,l,c)}m&&k.appendChild(m)}}catch(x){b.e(x)}finally{b.f()}return k}},{key:"fillSketch",value:function(a,b,c){var e=c.fillWeight;
1810>e&&(e=c.strokeWidth/2);a=a.createElementNS("http://www.w3.org/2000/svg","path");return a.setAttribute("d",this.opsToPath(b,c.fixedDecimalPlaceDigits)),a.setAttribute("stroke",c.fill||""),a.setAttribute("stroke-width",e+""),a.setAttribute("fill","none"),c.fillLineDash&&a.setAttribute("stroke-dasharray",c.fillLineDash.join(" ").trim()),c.fillLineDashOffset&&a.setAttribute("stroke-dashoffset","".concat(c.fillLineDashOffset)),a}},{key:"getDefaultOptions",value:function(){return this.gen.defaultOptions}},
182{key:"opsToPath",value:function(a,b){return this.gen.opsToPath(a,b)}},{key:"line",value:function(a,b,c,d,h){a=this.gen.line(a,b,c,d,h);return this.draw(a)}},{key:"rectangle",value:function(a,b,c,d,h){a=this.gen.rectangle(a,b,c,d,h);return this.draw(a)}},{key:"ellipse",value:function(a,b,c,d,h){a=this.gen.ellipse(a,b,c,d,h);return this.draw(a)}},{key:"circle",value:function(a,b,c,d){a=this.gen.circle(a,b,c,d);return this.draw(a)}},{key:"linearPath",value:function(a,b){var c=this.gen.linearPath(a,b);
183return this.draw(c)}},{key:"polygon",value:function(a,b){var c=this.gen.polygon(a,b);return this.draw(c)}},{key:"arc",value:function(a,b,c,d,h,l){var e=this.gen.arc(a,b,c,d,h,l,6<arguments.length&&void 0!==arguments[6]?arguments[6]:!1,7<arguments.length?arguments[7]:void 0);return this.draw(e)}},{key:"curve",value:function(a,b){var c=this.gen.curve(a,b);return this.draw(c)}},{key:"path",value:function(a,b){var c=this.gen.path(a,b);return this.draw(c)}},{key:"generator",get:function(){return this.gen}}]);
184return b}();return{canvas:function(b,a){return new ua(b,a)},svg:function(b,a){return new va(b,a)},generator:function(b){return new S(b)},newSeed:function(){return S.newSeed()}}}();
185var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(a,b){var c="",d,e,f,g,k,l,m=0;for(null!=b&&b||(a=Base64._utf8_encode(a));m<a.length;)d=a.charCodeAt(m++),e=a.charCodeAt(m++),f=a.charCodeAt(m++),g=d>>2,d=(d&3)<<4|e>>4,k=(e&15)<<2|f>>6,l=f&63,isNaN(e)?k=l=64:isNaN(f)&&(l=64),c=c+this._keyStr.charAt(g)+this._keyStr.charAt(d)+this._keyStr.charAt(k)+this._keyStr.charAt(l);return c},decode:function(a,b){b=null!=b?b:!1;var c="",d,e,f,g,k,l=0;for(a=a.replace(/[^A-Za-z0-9\+\/\=]/g,
186"");l<a.length;)d=this._keyStr.indexOf(a.charAt(l++)),e=this._keyStr.indexOf(a.charAt(l++)),g=this._keyStr.indexOf(a.charAt(l++)),k=this._keyStr.indexOf(a.charAt(l++)),d=d<<2|e>>4,e=(e&15)<<4|g>>2,f=(g&3)<<6|k,c+=String.fromCharCode(d),64!=g&&(c+=String.fromCharCode(e)),64!=k&&(c+=String.fromCharCode(f));b||(c=Base64._utf8_decode(c));return c},_utf8_encode:function(a){a=a.replace(/\r\n/g,"\n");for(var b="",c=0;c<a.length;c++){var d=a.charCodeAt(c);128>d?b+=String.fromCharCode(d):(127<d&&2048>d?b+=
187String.fromCharCode(d>>6|192):(b+=String.fromCharCode(d>>12|224),b+=String.fromCharCode(d>>6&63|128)),b+=String.fromCharCode(d&63|128))}return b},_utf8_decode:function(a){var b="",c=0,d;for(c1=c2=0;c<a.length;)d=a.charCodeAt(c),128>d?(b+=String.fromCharCode(d),c++):191<d&&224>d?(c2=a.charCodeAt(c+1),b+=String.fromCharCode((d&31)<<6|c2&63),c+=2):(c2=a.charCodeAt(c+1),c3=a.charCodeAt(c+2),b+=String.fromCharCode((d&15)<<12|(c2&63)<<6|c3&63),c+=3);return b}};window.urlParams=window.urlParams||{};window.isLocalStorage=window.isLocalStorage||!1;window.mxLoadSettings=window.mxLoadSettings||"1"!=urlParams.configure;window.isSvgBrowser=!0;window.DRAWIO_BASE_URL=window.DRAWIO_BASE_URL||(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname)?window.location.protocol+"//"+window.location.hostname:"https://app.diagrams.net");window.DRAWIO_LIGHTBOX_URL=window.DRAWIO_LIGHTBOX_URL||"https://viewer.diagrams.net";
188window.EXPORT_URL=window.EXPORT_URL||"https://convert.diagrams.net/node/export";window.PLANT_URL=window.PLANT_URL||"https://plant-aws.diagrams.net";window.DRAW_MATH_URL=window.DRAW_MATH_URL||window.DRAWIO_BASE_URL+"/math";window.VSD_CONVERT_URL=window.VSD_CONVERT_URL||"https://convert.diagrams.net/VsdConverter/api/converter";window.EMF_CONVERT_URL=window.EMF_CONVERT_URL||"https://convert.diagrams.net/emf2png/convertEMF";window.REALTIME_URL=window.REALTIME_URL||"cache";
189window.DRAWIO_GITLAB_URL=window.DRAWIO_GITLAB_URL||"https://gitlab.com";window.DRAWIO_GITLAB_ID=window.DRAWIO_GITLAB_ID||"c9b9d3fcdce2dec7abe3ab21ad8123d89ac272abb7d0883f08923043e80f3e36";window.DRAWIO_GITHUB_URL=window.DRAWIO_GITHUB_URL||"https://github.com";window.DRAWIO_GITHUB_API_URL=window.DRAWIO_GITHUB_API_URL||"https://api.github.com";window.DRAWIO_GITHUB_ID=window.DRAWIO_GITHUB_ID||"4f88e2ec436d76c2ee6e";window.DRAWIO_DROPBOX_ID=window.DRAWIO_DROPBOX_ID||"libwls2fa9szdji";
190window.SAVE_URL=window.SAVE_URL||"save";window.OPEN_URL=window.OPEN_URL||"import";window.PROXY_URL=window.PROXY_URL||"proxy";window.DRAWIO_VIEWER_URL=window.DRAWIO_VIEWER_URL||null;window.NOTIFICATIONS_URL=window.NOTIFICATIONS_URL||"https://www.draw.io/notifications";window.SHAPES_PATH=window.SHAPES_PATH||"shapes";window.GRAPH_IMAGE_PATH=window.GRAPH_IMAGE_PATH||"img";
191window.ICONSEARCH_PATH=window.ICONSEARCH_PATH||((null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE")||urlParams.dev)&&"file:"!=window.location.protocol?"iconSearch":window.DRAWIO_BASE_URL+"/iconSearch");window.TEMPLATE_PATH=window.TEMPLATE_PATH||"templates";window.NEW_DIAGRAM_CATS_PATH=window.NEW_DIAGRAM_CATS_PATH||"newDiagramCats";window.PLUGINS_BASE_PATH=window.PLUGINS_BASE_PATH||"";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";
192window.RESOURCE_BASE=window.RESOURCE_BASE||RESOURCES_PATH+"/dia";window.DRAWIO_CONFIG=window.DRAWIO_CONFIG||null;window.mxLoadResources=window.mxLoadResources||!1;
193window.mxLanguage=window.mxLanguage||function(){var a=urlParams.lang;if(null==a&&"undefined"!=typeof JSON&&isLocalStorage)try{var b=localStorage.getItem(".drawio-config");null!=b&&(a=JSON.parse(b).language||null);if(!a&&window.mxIsElectron&&(a=require("@electron/remote").app.getLocale(),null!=a)){var c=a.indexOf("-");0<=c&&(a=a.substring(0,c));a=a.toLowerCase()}}catch(d){isLocalStorage=!1}return a}();
194window.mxLanguageMap=window.mxLanguageMap||{i18n:"",id:"Bahasa Indonesia",ms:"Bahasa Melayu",bs:"Bosanski",bg:"Bulgarian",ca:"Català",cs:"Čeština",da:"Dansk",de:"Deutsch",et:"Eesti",en:"English",es:"Español",eu:"Euskara",fil:"Filipino",fr:"Français",gl:"Galego",it:"Italiano",hu:"Magyar",nl:"Nederlands",no:"Norsk",pl:"Polski","pt-br":"Português (Brasil)",pt:"Português (Portugal)",ro:"Română",fi:"Suomi",sv:"Svenska",vi:"Tiếng Việt",tr:"Türkçe",el:"Ελληνικά",ru:"Русский",sr:"Српски",uk:"Українська",
195he:"עברית",ar:"العربية",fa:"فارسی",th:"ไทย",ko:"한국어",ja:"日本語",zh:"简体中文","zh-tw":"繁體中文"};"undefined"===typeof window.mxBasePath&&(window.mxBasePath="mxgraph",window.mxImageBasePath="mxgraph/images");if(null==window.mxLanguages){window.mxLanguages=[];for(var lang in mxLanguageMap)"en"!=lang&&window.mxLanguages.push(lang)}
196"1"==urlParams.extAuth&&/((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent)&&(urlParams.gapi="0",urlParams.noDevice="1","1"!=urlParams.lightbox&&(urlParams.lightbox="1",urlParams.layers="1",urlParams.viewerOnlyMsg="1"));window.location.hostname==DRAWIO_LIGHTBOX_URL.substring(DRAWIO_LIGHTBOX_URL.indexOf("//")+2)&&(urlParams.lightbox="1");"1"==urlParams.lightbox&&(urlParams.chrome="0");
197"1"==urlParams.embedInline&&(urlParams.embed="1",urlParams.ui="sketch",urlParams.plugins="0",urlParams.proto="json",urlParams.prefetchFonts="1");
198window.uiTheme=window.uiTheme||function(){var a=urlParams.ui;"1"==urlParams.extAuth&&(a="sketch");if(null==a&&isLocalStorage&&"undefined"!==typeof JSON&&"1"!=urlParams.lightbox)try{var b=localStorage.getItem(".drawio-config");null!=b&&(a=JSON.parse(b).ui||null)}catch(c){isLocalStorage=!1}try{null==a&&768>=(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)&&(null==urlParams.pages&&(urlParams.pages="1"),a="sketch")}catch(c){}"sketch"==a&&(urlParams.sketch="1",a="min");
199return a}();function setCurrentXml(a,b){null!=window.parent&&null!=window.parent.openFile&&window.parent.openFile.setData(a,b)}
200(function(){if("undefined"!==typeof JSON&&isLocalStorage)try{var a=localStorage.getItem(".drawio-config"),b=!0;null!=a&&(b=JSON.parse(a).showStartScreen);0==b&&(urlParams.splash="0")}catch(d){}a=urlParams["export"];null!=a&&(a=decodeURIComponent(a),"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&(a="http://"+a),EXPORT_URL=a);a=urlParams.gitlab;null!=a&&(a=decodeURIComponent(a),"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&(a="http://"+a),DRAWIO_GITLAB_URL=a);a=urlParams["gitlab-id"];
201null!=a&&(DRAWIO_GITLAB_ID=a);window.DRAWIO_LOG_URL=window.DRAWIO_LOG_URL||"";a=window.location.host;if("test.draw.io"!=a){var c="diagrams.net",b=a.length-c.length,c=a.lastIndexOf(c,b);-1!==c&&c===b?window.DRAWIO_LOG_URL="https://log.diagrams.net":(c="draw.io",b=a.length-c.length,c=a.lastIndexOf(c,b),-1!==c&&c===b&&(window.DRAWIO_LOG_URL="https://log.draw.io"))}})();
202if("1"==urlParams.offline||"1"==urlParams.demo||"1"==urlParams.stealth||"1"==urlParams.local||"1"==urlParams.lockdown)urlParams.picker="0",urlParams.gapi="0",urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0";
203"se.diagrams.net"==window.location.hostname&&(urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0",urlParams.plugins="0",urlParams.mode="google",urlParams.lockdown="1",window.DRAWIO_GOOGLE_APP_ID=window.DRAWIO_GOOGLE_APP_ID||"184079235871",window.DRAWIO_GOOGLE_CLIENT_ID=window.DRAWIO_GOOGLE_CLIENT_ID||"184079235871-pjf5nn0lff27lk8qf0770gmffiv9gt61.apps.googleusercontent.com");"trello"==urlParams.mode&&(urlParams.tr="1");
204"embed.diagrams.net"==window.location.hostname&&(urlParams.embed="1");(null==window.location.hash||1>=window.location.hash.length)&&null!=urlParams.open&&(window.location.hash=urlParams.open);window.urlParams=window.urlParams||{};window.MAX_REQUEST_SIZE=window.MAX_REQUEST_SIZE||10485760;window.MAX_AREA=window.MAX_AREA||225E6;window.EXPORT_URL=window.EXPORT_URL||"/export";window.SAVE_URL=window.SAVE_URL||"/save";window.OPEN_URL=window.OPEN_URL||"/open";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||window.RESOURCES_PATH+"/grapheditor";window.STENCIL_PATH=window.STENCIL_PATH||"stencils";window.IMAGE_PATH=window.IMAGE_PATH||"images";
205window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"mxgraph";window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"15.7.3",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
206IS_OP:null!=navigator.userAgent&&(0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/")),IS_OT:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:/Apple Computer, Inc/.test(navigator.vendor),
207IS_ANDROID:0<=navigator.appVersion.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform),IS_WEBVIEW:/((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent),IS_GC:/Google Inc/.test(navigator.vendor),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:"undefined"!==typeof InstallTrigger,IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&
2080>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS||"[object SVGForeignObjectElement]"!=document.createElementNS("http://www.w3.org/2000/svg","foreignObject")||0<=navigator.userAgent.indexOf("Opera/"),
209IS_WIN:0<navigator.appVersion.indexOf("Win"),IS_MAC:0<navigator.appVersion.indexOf("Mac"),IS_CHROMEOS:/\bCrOS\b/.test(navigator.appVersion),IS_TOUCH:"ontouchstart"in document.documentElement,IS_POINTER:null!=window.PointerEvent&&!(0<navigator.appVersion.indexOf("Mac")),IS_LOCAL:0>document.location.href.indexOf("http://")&&0>document.location.href.indexOf("https://"),defaultBundles:[],isBrowserSupported:function(){return mxClient.IS_SVG},link:function(a,b,c,d){c=c||document;var e=c.createElement("link");
210e.setAttribute("rel",a);e.setAttribute("href",b);e.setAttribute("charset","UTF-8");e.setAttribute("type","text/css");d&&e.setAttribute("id",d);c.getElementsByTagName("head")[0].appendChild(e)},loadResources:function(a,b){function c(){0==--d&&a()}for(var d=mxClient.defaultBundles.length,e=0;e<mxClient.defaultBundles.length;e++)mxResources.add(mxClient.defaultBundles[e],b,c)},include:function(a){document.write('<script src="'+a+'">\x3c/script>')}};
211"undefined"==typeof mxLoadResources&&(mxLoadResources=!0);"undefined"==typeof mxForceIncludes&&(mxForceIncludes=!1);"undefined"==typeof mxResourceExtension&&(mxResourceExtension=".txt");"undefined"==typeof mxLoadStylesheets&&(mxLoadStylesheets=!0);"undefined"!=typeof mxBasePath&&0<mxBasePath.length?("/"==mxBasePath.substring(mxBasePath.length-1)&&(mxBasePath=mxBasePath.substring(0,mxBasePath.length-1)),mxClient.basePath=mxBasePath):mxClient.basePath=".";
212"undefined"!=typeof mxImageBasePath&&0<mxImageBasePath.length?("/"==mxImageBasePath.substring(mxImageBasePath.length-1)&&(mxImageBasePath=mxImageBasePath.substring(0,mxImageBasePath.length-1)),mxClient.imageBasePath=mxImageBasePath):mxClient.imageBasePath="images";mxClient.language="undefined"!=typeof mxLanguage&&null!=mxLanguage?mxLanguage:mxClient.IS_IE?navigator.userLanguage:navigator.language;
213mxClient.defaultLanguage="undefined"!=typeof mxDefaultLanguage&&null!=mxDefaultLanguage?mxDefaultLanguage:"en";mxLoadStylesheets&&mxClient.link("stylesheet","mxgraph/css/common.css");"undefined"!=typeof mxLanguages&&null!=mxLanguages&&(mxClient.languages=mxLanguages);
214var mxLog={consoleName:"Console",TRACE:!1,DEBUG:!0,WARN:!0,buffer:"",init:function(){if(null==mxLog.window&&null!=document.body){var a=mxLog.consoleName+" - mxGraph "+mxClient.VERSION,b=document.createElement("table");b.setAttribute("width","100%");b.setAttribute("height","100%");var c=document.createElement("tbody"),d=document.createElement("tr"),e=document.createElement("td");e.style.verticalAlign="top";mxLog.textarea=document.createElement("textarea");mxLog.textarea.setAttribute("wrap","off");
215mxLog.textarea.setAttribute("readOnly","true");mxLog.textarea.style.height="100%";mxLog.textarea.style.resize="none";mxLog.textarea.value=mxLog.buffer;mxLog.textarea.style.width=mxClient.IS_NS&&"BackCompat"!=document.compatMode?"99%":"100%";e.appendChild(mxLog.textarea);d.appendChild(e);c.appendChild(d);d=document.createElement("tr");mxLog.td=document.createElement("td");mxLog.td.style.verticalAlign="top";mxLog.td.setAttribute("height","30px");d.appendChild(mxLog.td);c.appendChild(d);b.appendChild(c);
216mxLog.addButton("Info",function(a){mxLog.info()});mxLog.addButton("DOM",function(a){a=mxUtils.getInnerHtml(document.body);mxLog.debug(a)});mxLog.addButton("Trace",function(a){mxLog.TRACE=!mxLog.TRACE;mxLog.TRACE?mxLog.debug("Tracing enabled"):mxLog.debug("Tracing disabled")});mxLog.addButton("Copy",function(a){try{mxUtils.copy(mxLog.textarea.value)}catch(k){mxUtils.alert(k)}});mxLog.addButton("Show",function(a){try{mxUtils.popup(mxLog.textarea.value)}catch(k){mxUtils.alert(k)}});mxLog.addButton("Clear",
217function(a){mxLog.textarea.value=""});d=c=0;"number"===typeof window.innerWidth?(c=window.innerHeight,d=window.innerWidth):(c=document.documentElement.clientHeight||document.body.clientHeight,d=document.body.clientWidth);mxLog.window=new mxWindow(a,b,Math.max(0,d-320),Math.max(0,c-210),300,160);mxLog.window.setMaximizable(!0);mxLog.window.setScrollable(!1);mxLog.window.setResizable(!0);mxLog.window.setClosable(!0);mxLog.window.destroyOnClose=!1;if((mxClient.IS_NS||mxClient.IS_IE)&&!mxClient.IS_GC&&
218!mxClient.IS_SF&&"BackCompat"!=document.compatMode||11==document.documentMode){var f=mxLog.window.getElement(),a=function(a,b){mxLog.textarea.style.height=Math.max(0,f.offsetHeight-70)+"px"};mxLog.window.addListener(mxEvent.RESIZE_END,a);mxLog.window.addListener(mxEvent.MAXIMIZE,a);mxLog.window.addListener(mxEvent.NORMALIZE,a);mxLog.textarea.style.height="92px"}}},info:function(){mxLog.writeln(mxUtils.toString(navigator))},addButton:function(a,b){var c=document.createElement("button");mxUtils.write(c,
219a);mxEvent.addListener(c,"click",b);mxLog.td.appendChild(c)},isVisible:function(){return null!=mxLog.window?mxLog.window.isVisible():!1},show:function(){mxLog.setVisible(!0)},setVisible:function(a){null==mxLog.window&&mxLog.init();null!=mxLog.window&&mxLog.window.setVisible(a)},enter:function(a){if(mxLog.TRACE)return mxLog.writeln("Entering "+a),(new Date).getTime()},leave:function(a,b){if(mxLog.TRACE){var c=0!=b?" ("+((new Date).getTime()-b)+" ms)":"";mxLog.writeln("Leaving "+a+c)}},debug:function(){mxLog.DEBUG&&
220mxLog.writeln.apply(this,arguments)},warn:function(){mxLog.WARN&&mxLog.writeln.apply(this,arguments)},write:function(){for(var a="",b=0;b<arguments.length;b++)a+=arguments[b],b<arguments.length-1&&(a+=" ");null!=mxLog.textarea?(mxLog.textarea.value+=a,null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Presto/2.5")&&(mxLog.textarea.style.visibility="hidden",mxLog.textarea.style.visibility="visible"),mxLog.textarea.scrollTop=mxLog.textarea.scrollHeight):mxLog.buffer+=a},writeln:function(){for(var a=
221"",b=0;b<arguments.length;b++)a+=arguments[b],b<arguments.length-1&&(a+=" ");mxLog.write(a+"\n")}},mxObjectIdentity={FIELD_NAME:"mxObjectId",counter:0,get:function(a){if(null!=a){if(null==a[mxObjectIdentity.FIELD_NAME])if("object"===typeof a){var b=mxUtils.getFunctionName(a.constructor);a[mxObjectIdentity.FIELD_NAME]=b+"#"+mxObjectIdentity.counter++}else"function"===typeof a&&(a[mxObjectIdentity.FIELD_NAME]="Function#"+mxObjectIdentity.counter++);return a[mxObjectIdentity.FIELD_NAME]}return null},
222clear:function(a){"object"!==typeof a&&"function"!==typeof a||delete a[mxObjectIdentity.FIELD_NAME]}};function mxDictionary(){this.clear()}mxDictionary.prototype.map=null;mxDictionary.prototype.clear=function(){this.map={}};mxDictionary.prototype.get=function(a){a=mxObjectIdentity.get(a);return this.map[a]};mxDictionary.prototype.put=function(a,b){var c=mxObjectIdentity.get(a),d=this.map[c];this.map[c]=b;return d};
223mxDictionary.prototype.remove=function(a){a=mxObjectIdentity.get(a);var b=this.map[a];delete this.map[a];return b};mxDictionary.prototype.getKeys=function(){var a=[],b;for(b in this.map)a.push(b);return a};mxDictionary.prototype.getValues=function(){var a=[],b;for(b in this.map)a.push(this.map[b]);return a};mxDictionary.prototype.visit=function(a){for(var b in this.map)a(b,this.map[b])};
224var mxResources={resources:{},extension:mxResourceExtension,resourcesEncoded:!1,loadDefaultBundle:!0,loadSpecialBundle:!0,isLanguageSupported:function(a){return null!=mxClient.languages?0<=mxUtils.indexOf(mxClient.languages,a):!0},getDefaultBundle:function(a,b){return mxResources.loadDefaultBundle||!mxResources.isLanguageSupported(b)?a+mxResources.extension:null},getSpecialBundle:function(a,b){if(null==mxClient.languages||!this.isLanguageSupported(b)){var c=b.indexOf("-");0<c&&(b=b.substring(0,c))}return mxResources.loadSpecialBundle&&
225mxResources.isLanguageSupported(b)&&b!=mxClient.defaultLanguage?a+"_"+b+mxResources.extension:null},add:function(a,b,c){b=null!=b?b:null!=mxClient.language?mxClient.language.toLowerCase():mxConstants.NONE;if(b!=mxConstants.NONE){var d=mxResources.getDefaultBundle(a,b),e=mxResources.getSpecialBundle(a,b),f=function(){if(null!=e)if(c)mxUtils.get(e,function(a){mxResources.parse(a.getText());c()},function(){c()});else try{var a=mxUtils.load(e);a.isReady()&&mxResources.parse(a.getText())}catch(l){}else null!=
226c&&c()};if(null!=d)if(c)mxUtils.get(d,function(a){mxResources.parse(a.getText());f()},function(){f()});else try{var g=mxUtils.load(d);g.isReady()&&mxResources.parse(g.getText());f()}catch(k){}else f()}},parse:function(a){if(null!=a){a=a.split("\n");for(var b=0;b<a.length;b++)if("#"!=a[b].charAt(0)){var c=a[b].indexOf("=");if(0<c){var d=a[b].substring(0,c),e=a[b].length;13==a[b].charCodeAt(e-1)&&e--;c=a[b].substring(c+1,e);this.resourcesEncoded?(c=c.replace(/\\(?=u[a-fA-F\d]{4})/g,"%"),mxResources.resources[d]=
227unescape(c)):mxResources.resources[d]=c}}}},get:function(a,b,c){a=mxResources.resources[a];null==a&&(a=c);null!=a&&null!=b&&(a=mxResources.replacePlaceholders(a,b));return a},replacePlaceholders:function(a,b){for(var c=[],d=null,e=0;e<a.length;e++){var f=a.charAt(e);"{"==f?d="":null!=d&&"}"==f?(d=parseInt(d)-1,0<=d&&d<b.length&&c.push(b[d]),d=null):null!=d?d+=f:c.push(f)}return c.join("")},loadResources:function(a){mxResources.add(mxClient.basePath+"/resources/editor",null,function(){mxResources.add(mxClient.basePath+
228"/resources/graph",null,a)})}};function mxPoint(a,b){this.x=null!=a?a:0;this.y=null!=b?b:0}mxPoint.prototype.x=null;mxPoint.prototype.y=null;mxPoint.prototype.equals=function(a){return null!=a&&a.x==this.x&&a.y==this.y};mxPoint.prototype.clone=function(){return mxUtils.clone(this)};function mxRectangle(a,b,c,d){mxPoint.call(this,a,b);this.width=null!=c?c:0;this.height=null!=d?d:0}mxRectangle.prototype=new mxPoint;mxRectangle.prototype.constructor=mxRectangle;mxRectangle.prototype.width=null;
229mxRectangle.prototype.height=null;mxRectangle.prototype.setRect=function(a,b,c,d){this.x=a;this.y=b;this.width=c;this.height=d};mxRectangle.prototype.getCenterX=function(){return this.x+this.width/2};mxRectangle.prototype.getCenterY=function(){return this.y+this.height/2};
230mxRectangle.prototype.add=function(a){if(null!=a){var b=Math.min(this.x,a.x),c=Math.min(this.y,a.y),d=Math.max(this.x+this.width,a.x+a.width);a=Math.max(this.y+this.height,a.y+a.height);this.x=b;this.y=c;this.width=d-b;this.height=a-c}};mxRectangle.prototype.intersect=function(a){if(null!=a){var b=this.x+this.width,c=a.x+a.width,d=this.y+this.height,e=a.y+a.height;this.x=Math.max(this.x,a.x);this.y=Math.max(this.y,a.y);this.width=Math.min(b,c)-this.x;this.height=Math.min(d,e)-this.y}};
231mxRectangle.prototype.grow=function(a){this.x-=a;this.y-=a;this.width+=2*a;this.height+=2*a;return this};mxRectangle.prototype.getPoint=function(){return new mxPoint(this.x,this.y)};mxRectangle.prototype.rotate90=function(){var a=(this.width-this.height)/2;this.x+=a;this.y-=a;a=this.width;this.width=this.height;this.height=a};mxRectangle.prototype.equals=function(a){return null!=a&&a.x==this.x&&a.y==this.y&&a.width==this.width&&a.height==this.height};
232mxRectangle.fromRectangle=function(a){return new mxRectangle(a.x,a.y,a.width,a.height)};
233var mxEffects={animateChanges:function(a,b,c){var d=0,e=function(){for(var g=!1,k=0;k<b.length;k++){var l=b[k];if(l instanceof mxGeometryChange||l instanceof mxTerminalChange||l instanceof mxValueChange||l instanceof mxChildChange||l instanceof mxStyleChange){var m=a.getView().getState(l.cell||l.child,!1);if(null!=m)if(g=!0,l.constructor!=mxGeometryChange||a.model.isEdge(l.cell))mxUtils.setOpacity(m.shape.node,100*d/10);else{var n=a.getView().scale,p=(l.geometry.x-l.previous.x)*n,q=(l.geometry.y-
234l.previous.y)*n,r=(l.geometry.width-l.previous.width)*n,n=(l.geometry.height-l.previous.height)*n;0==d?(m.x-=p,m.y-=q,m.width-=r,m.height-=n):(m.x+=p/10,m.y+=q/10,m.width+=r/10,m.height+=n/10);a.cellRenderer.redraw(m);mxEffects.cascadeOpacity(a,l.cell,100*d/10)}}}10>d&&g?(d++,window.setTimeout(e,f)):null!=c&&c()},f=30;e()},cascadeOpacity:function(a,b,c){for(var d=a.model.getChildCount(b),e=0;e<d;e++){var f=a.model.getChildAt(b,e),g=a.getView().getState(f);null!=g&&(mxUtils.setOpacity(g.shape.node,
235c),mxEffects.cascadeOpacity(a,f,c))}b=a.model.getEdges(b);if(null!=b)for(e=0;e<b.length;e++)d=a.getView().getState(b[e]),null!=d&&mxUtils.setOpacity(d.shape.node,c)},fadeOut:function(a,b,c,d,e,f){d=d||40;e=e||30;var g=b||100;mxUtils.setOpacity(a,g);if(f||null==f){var k=function(){g=Math.max(g-d,0);mxUtils.setOpacity(a,g);0<g?window.setTimeout(k,e):(a.style.visibility="hidden",c&&a.parentNode&&a.parentNode.removeChild(a))};window.setTimeout(k,e)}else a.style.visibility="hidden",c&&a.parentNode&&a.parentNode.removeChild(a)}},
236mxUtils={errorResource:"none"!=mxClient.language?"error":"",closeResource:"none"!=mxClient.language?"close":"",errorImage:mxClient.imageBasePath+"/error.gif",removeCursors:function(a){null!=a.style&&(a.style.cursor="");a=a.childNodes;if(null!=a)for(var b=a.length,c=0;c<b;c+=1)mxUtils.removeCursors(a[c])},getCurrentStyle:function(){return mxClient.IS_IE&&(null==document.documentMode||9>document.documentMode)?function(a){return null!=a?a.currentStyle:null}:function(a){return null!=a?window.getComputedStyle(a,
237""):null}}(),parseCssNumber:function(a){"thin"==a?a="2":"medium"==a?a="4":"thick"==a&&(a="6");a=parseFloat(a);isNaN(a)&&(a=0);return a},setPrefixedStyle:function(){var a=null;mxClient.IS_OT?a="O":mxClient.IS_SF||mxClient.IS_GC?a="Webkit":mxClient.IS_MT?a="Moz":mxClient.IS_IE&&9<=document.documentMode&&10>document.documentMode&&(a="ms");return function(b,c,d){b[c]=d;null!=a&&0<c.length&&(c=a+c.substring(0,1).toUpperCase()+c.substring(1),b[c]=d)}}(),hasScrollbars:function(a){a=mxUtils.getCurrentStyle(a);
238return null!=a&&("scroll"==a.overflow||"auto"==a.overflow)},bind:function(a,b){return function(){return b.apply(a,arguments)}},eval:function(a){var b=null;if(0<=a.indexOf("function"))try{eval("var _mxJavaScriptExpression="+a),b=_mxJavaScriptExpression,_mxJavaScriptExpression=null}catch(c){mxLog.warn(c.message+" while evaluating "+a)}else try{b=eval(a)}catch(c){mxLog.warn(c.message+" while evaluating "+a)}return b},findNode:function(a,b,c){if(a.nodeType==mxConstants.NODETYPE_ELEMENT){var d=a.getAttribute(b);
239if(null!=d&&d==c)return a}for(a=a.firstChild;null!=a;){d=mxUtils.findNode(a,b,c);if(null!=d)return d;a=a.nextSibling}return null},getFunctionName:function(a){var b=null;null!=a&&(null!=a.name?b=a.name:(b=mxUtils.trim(a.toString()),/^function\s/.test(b)&&(b=mxUtils.ltrim(b.substring(9)),a=b.indexOf("("),0<a&&(b=b.substring(0,a)))));return b},indexOf:function(a,b){if(null!=a&&null!=b)for(var c=0;c<a.length;c++)if(a[c]==b)return c;return-1},forEach:function(a,b){if(null!=a&&null!=b)for(var c=0;c<a.length;c++)b(a[c]);
240return a},remove:function(a,b){var c=null;if("object"==typeof b)for(var d=mxUtils.indexOf(b,a);0<=d;)b.splice(d,1),c=a,d=mxUtils.indexOf(b,a);for(var e in b)b[e]==a&&(delete b[e],c=a);return c},isNode:function(a,b,c,d){return null==a||isNaN(a.nodeType)||null!=b&&a.nodeName.toLowerCase()!=b.toLowerCase()?!1:null==c||a.getAttribute(c)==d},isAncestorNode:function(a,b){for(var c=b;null!=c;){if(c==a)return!0;c=c.parentNode}return!1},getChildNodes:function(a,b){b=b||mxConstants.NODETYPE_ELEMENT;for(var c=
241[],d=a.firstChild;null!=d;)d.nodeType==b&&c.push(d),d=d.nextSibling;return c},importNode:function(a,b,c){return mxClient.IS_IE&&(null==document.documentMode||10>document.documentMode)?mxUtils.importNodeImplementation(a,b,c):a.importNode(b,c)},importNodeImplementation:function(a,b,c){switch(b.nodeType){case 1:var d=a.createElement(b.nodeName);if(b.attributes&&0<b.attributes.length)for(var e=0;e<b.attributes.length;e++)d.setAttribute(b.attributes[e].nodeName,b.getAttribute(b.attributes[e].nodeName));
242if(c&&b.childNodes&&0<b.childNodes.length)for(e=0;e<b.childNodes.length;e++)d.appendChild(mxUtils.importNodeImplementation(a,b.childNodes[e],c));return d;case 3:case 4:case 8:return a.createTextNode(null!=b.nodeValue?b.nodeValue:b.value)}},createXmlDocument:function(){var a=null;document.implementation&&document.implementation.createDocument?a=document.implementation.createDocument("","",null):"ActiveXObject"in window&&(a=mxUtils.createMsXmlDocument());return a},createMsXmlDocument:function(){var a=
243new ActiveXObject("Microsoft.XMLDOM");a.async=!1;a.validateOnParse=!1;a.resolveExternals=!1;return a},parseXml:function(){return window.DOMParser?function(a){return(new DOMParser).parseFromString(a,"text/xml")}:function(a){var b=mxUtils.createMsXmlDocument();b.loadXML(a);return b}}(),clearSelection:function(){return document.selection?function(){document.selection.empty()}:window.getSelection?function(){window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&
244window.getSelection().removeAllRanges()}:function(){}}(),removeWhitespace:function(a,b){for(var c=b?a.previousSibling:a.nextSibling;null!=c&&c.nodeType==mxConstants.NODETYPE_TEXT;){var d=b?c.previousSibling:c.nextSibling,e=mxUtils.getTextContent(c);0==mxUtils.trim(e).length&&c.parentNode.removeChild(c);c=d}},htmlEntities:function(a,b){a=String(a||"");a=a.replace(/&/g,"&amp;");a=a.replace(/"/g,"&quot;");a=a.replace(/\'/g,"&#39;");a=a.replace(/</g,"&lt;");a=a.replace(/>/g,"&gt;");if(null==b||b)a=a.replace(/\n/g,
245"&#xa;");return a},getXml:function(a,b){var c="";mxClient.IS_IE||mxClient.IS_IE11?c=mxUtils.getPrettyXml(a,"","",""):null!=window.XMLSerializer?c=(new XMLSerializer).serializeToString(a):null!=a.xml&&(c=a.xml.replace(/\r\n\t[\t]*/g,"").replace(/>\r\n/g,">").replace(/\r\n/g,"\n"));return c.replace(/\n/g,b||"&#xa;")},getPrettyXml:function(a,b,c,d,e){var f=[];if(null!=a)if(b=null!=b?b:"  ",c=null!=c?c:"",d=null!=d?d:"\n",null!=a.namespaceURI&&a.namespaceURI!=e&&(e=a.namespaceURI,null==a.getAttribute("xmlns")&&
246a.setAttribute("xmlns",a.namespaceURI)),a.nodeType==mxConstants.NODETYPE_DOCUMENT)f.push(mxUtils.getPrettyXml(a.documentElement,b,c,d,e));else if(a.nodeType==mxConstants.NODETYPE_DOCUMENT_FRAGMENT){var g=a.firstChild;if(null!=g)for(;null!=g;)f.push(mxUtils.getPrettyXml(g,b,c,d,e)),g=g.nextSibling}else if(a.nodeType==mxConstants.NODETYPE_COMMENT)a=mxUtils.getTextContent(a),0<a.length&&f.push(c+"\x3c!--"+a+"--\x3e"+d);else if(a.nodeType==mxConstants.NODETYPE_TEXT)a=mxUtils.trim(mxUtils.getTextContent(a)),
2470<a.length&&f.push(c+mxUtils.htmlEntities(a,!1)+d);else if(a.nodeType==mxConstants.NODETYPE_CDATA)a=mxUtils.getTextContent(a),0<a.length&&f.push(c+"<![CDATA["+a+"]]"+d);else{f.push(c+"<"+a.nodeName);g=a.attributes;if(null!=g)for(var k=0;k<g.length;k++){var l=mxUtils.htmlEntities(g[k].value);f.push(" "+g[k].nodeName+'="'+l+'"')}g=a.firstChild;if(null!=g){for(f.push(">"+d);null!=g;)f.push(mxUtils.getPrettyXml(g,b,c+b,d,e)),g=g.nextSibling;f.push(c+"</"+a.nodeName+">"+d)}else f.push(" />"+d)}return f.join("")},
248extractTextWithWhitespace:function(a){function b(a){if(1!=a.length||"BR"!=a[0].nodeName&&"\n"!=a[0].innerHTML)for(var e=0;e<a.length;e++){var g=a[e];"BR"==g.nodeName||"\n"==g.innerHTML||(1==a.length||0==e)&&"DIV"==g.nodeName&&"<br>"==g.innerHTML.toLowerCase()?d.push("\n"):(3===g.nodeType||4===g.nodeType?0<g.nodeValue.length&&d.push(g.nodeValue):8!==g.nodeType&&0<g.childNodes.length&&b(g.childNodes),e<a.length-1&&0<=mxUtils.indexOf(c,a[e+1].nodeName)&&d.push("\n"))}}var c="BLOCKQUOTE DIV H1 H2 H3 H4 H5 H6 OL P PRE TABLE UL".split(" "),
249d=[];b(a);return d.join("")},replaceTrailingNewlines:function(a,b){for(var c="";0<a.length&&"\n"==a.charAt(a.length-1);)a=a.substring(0,a.length-1),c+=b;return a+c},getTextContent:function(a){return mxClient.IS_IE&&void 0!==a.innerText?a.innerText:null!=a?a[void 0===a.textContent?"text":"textContent"]:""},setTextContent:function(a,b){void 0!==a.innerText?a.innerText=b:a[void 0===a.textContent?"text":"textContent"]=b},getInnerHtml:function(){return mxClient.IS_IE?function(a){return null!=a?a.innerHTML:
250""}:function(a){return null!=a?(new XMLSerializer).serializeToString(a):""}}(),getOuterHtml:function(){return mxClient.IS_IE?function(a){if(null!=a){if(null!=a.outerHTML)return a.outerHTML;var b=[];b.push("<"+a.nodeName);var c=a.attributes;if(null!=c)for(var d=0;d<c.length;d++){var e=c[d].value;null!=e&&0<e.length&&(b.push(" "),b.push(c[d].nodeName),b.push('="'),b.push(e),b.push('"'))}0==a.innerHTML.length?b.push("/>"):(b.push(">"),b.push(a.innerHTML),b.push("</"+a.nodeName+">"));return b.join("")}return""}:
251function(a){return null!=a?(new XMLSerializer).serializeToString(a):""}}(),write:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&a.appendChild(c);return c},writeln:function(a,b){var c=a.ownerDocument.createTextNode(b);null!=a&&(a.appendChild(c),a.appendChild(document.createElement("br")));return c},br:function(a,b){b=b||1;for(var c=null,d=0;d<b;d++)null!=a&&(c=a.ownerDocument.createElement("br"),a.appendChild(c));return c},button:function(a,b,c){c=null!=c?c:document;c=c.createElement("button");
252mxUtils.write(c,a);mxEvent.addListener(c,"click",function(a){b(a)});return c},para:function(a,b){var c=document.createElement("p");mxUtils.write(c,b);null!=a&&a.appendChild(c);return c},addTransparentBackgroundFilter:function(a){a.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+mxClient.imageBasePath+"/transparent.gif', sizingMethod='scale')"},linkAction:function(a,b,c,d,e){return mxUtils.link(a,b,function(){c.execute(d)},e)},linkInvoke:function(a,b,c,d,e,f){return mxUtils.link(a,
253b,function(){c[d](e)},f)},link:function(a,b,c,d){var e=document.createElement("span");e.style.color="blue";e.style.textDecoration="underline";e.style.cursor="pointer";null!=d&&(e.style.paddingLeft=d+"px");mxEvent.addListener(e,"click",c);mxUtils.write(e,b);null!=a&&a.appendChild(e);return e},getDocumentSize:function(){var a=document.body,b=document.documentElement;try{return new mxRectangle(0,0,a.clientWidth||b.clientWidth,Math.max(a.clientHeight||0,b.clientHeight))}catch(c){return new mxRectangle}},
254fit:function(a){var b=mxUtils.getDocumentSize(),c=parseInt(a.offsetLeft),d=parseInt(a.offsetWidth),e=mxUtils.getDocumentScrollOrigin(a.ownerDocument),f=e.x,e=e.y,g=f+b.width;c+d>g&&(a.style.left=Math.max(f,g-d)+"px");c=parseInt(a.offsetTop);d=parseInt(a.offsetHeight);b=e+b.height;c+d>b&&(a.style.top=Math.max(e,b-d)+"px")},load:function(a){a=new mxXmlRequest(a,null,"GET",!1);a.send();return a},get:function(a,b,c,d,e,f,g){a=new mxXmlRequest(a,null,"GET");var k=a.setRequestHeaders;g&&(a.setRequestHeaders=
255function(a,b){k.apply(this,arguments);for(var c in g)a.setRequestHeader(c,g[c])});null!=d&&a.setBinary(d);a.send(b,c,e,f);return a},getAll:function(a,b,c){for(var d=a.length,e=[],f=0,g=function(){0==f&&null!=c&&c();f++},k=0;k<a.length;k++)(function(a,c){mxUtils.get(a,function(a){var f=a.getStatus();200>f||299<f?g():(e[c]=a,d--,0==d&&b(e))},g)})(a[k],k);0==d&&b(e)},post:function(a,b,c,d){return(new mxXmlRequest(a,b)).send(c,d)},submit:function(a,b,c,d){return(new mxXmlRequest(a,b)).simulate(c,d)},
256loadInto:function(a,b,c){mxClient.IS_IE?b.onreadystatechange=function(){4==b.readyState&&c()}:b.addEventListener("load",c,!1);b.load(a)},getValue:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c);return a},getNumber:function(a,b,c){a=null!=a?a[b]:null;null==a&&(a=c||0);return Number(a)},getColor:function(a,b,c){a=null!=a?a[b]:null;null==a?a=c:a==mxConstants.NONE&&(a=null);return a},clone:function(a,b,c){c=null!=c?c:!1;var d=null;if(null!=a&&"function"==typeof a.constructor){var d=new a.constructor,
257e;for(e in a)e!=mxObjectIdentity.FIELD_NAME&&(null==b||0>mxUtils.indexOf(b,e))&&(d[e]=c||"object"!=typeof a[e]?a[e]:mxUtils.clone(a[e]))}return d},equalPoints:function(a,b){if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b)for(var c=0;c<a.length;c++)if(null!=a[c]&&null==b[c]||null==a[c]&&null!=b[c]||null!=a[c]&&null!=b[c]&&(a[c].x!=b[c].x||a[c].y!=b[c].y))return!1;return!0},equalEntries:function(a,b){var c=0;if(null==a&&null!=b||null!=a&&null==
258b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b){for(var d in b)c++;for(d in a)if(c--,!(mxUtils.isNaN(a[d])&&mxUtils.isNaN(b[d])||a[d]==b[d]))return!1}return 0==c},removeDuplicates:function(a){for(var b=new mxDictionary,c=[],d=0;d<a.length;d++)b.get(a[d])||(c.push(a[d]),b.put(a[d],!0));return c},isNaN:function(a){return"number"==typeof a&&isNaN(a)},extend:function(a,b){var c=function(){};c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a},toString:function(a){var b=
259"",c;for(c in a)try{if(null==a[c])b+=c+" = [null]\n";else if("function"==typeof a[c])b+=c+" => [Function]\n";else if("object"==typeof a[c])var d=mxUtils.getFunctionName(a[c].constructor),b=b+(c+" => ["+d+"]\n");else b+=c+" = "+a[c]+"\n"}catch(e){b+=c+"="+e.message}return b},toRadians:function(a){return Math.PI*a/180},toDegree:function(a){return 180*a/Math.PI},arcToCurves:function(a,b,c,d,e,f,g,k,l){k-=a;l-=b;if(0===c||0===d)return q;c=Math.abs(c);d=Math.abs(d);var m=-k/2,n=-l/2,p=Math.cos(e*Math.PI/
260180),q=Math.sin(e*Math.PI/180);e=p*m+q*n;var m=-1*q*m+p*n,n=e*e,r=m*m,t=c*c,u=d*d,x=n/t+r/u;1<x?(c*=Math.sqrt(x),d*=Math.sqrt(x),f=0):(x=1,f===g&&(x=-1),f=x*Math.sqrt((t*u-t*r-u*n)/(t*r+u*n)));n=f*c*m/d;r=-1*f*d*e/c;k=p*n-q*r+k/2;l=q*n+p*r+l/2;t=Math.atan2((m-r)/d,(e-n)/c)-Math.atan2(0,1);f=0<=t?t:2*Math.PI+t;t=Math.atan2((-m-r)/d,(-e-n)/c)-Math.atan2((m-r)/d,(e-n)/c);e=0<=t?t:2*Math.PI+t;0==g&&0<e?e-=2*Math.PI:0!=g&&0>e&&(e+=2*Math.PI);g=2*e/Math.PI;g=Math.ceil(0>g?-1*g:g);e/=g;m=8/3*Math.sin(e/
2614)*Math.sin(e/4)/Math.sin(e/2);n=p*c;p*=d;c*=q;d*=q;for(var y=Math.cos(f),B=Math.sin(f),r=-m*(n*B+d*y),t=-m*(c*B-p*y),q=[],A=0;A<g;++A){f+=e;var y=Math.cos(f),B=Math.sin(f),u=n*y-d*B+k,x=c*y+p*B+l,z=-m*(n*B+d*y),y=-m*(c*B-p*y),B=6*A;q[B]=Number(r+a);q[B+1]=Number(t+b);q[B+2]=Number(u-z+a);q[B+3]=Number(x-y+b);q[B+4]=Number(u+a);q[B+5]=Number(x+b);r=u+z;t=x+y}return q},getBoundingBox:function(a,b,c){var d=null;if(null!=a&&null!=b&&0!=b){b=mxUtils.toRadians(b);var d=Math.cos(b),e=Math.sin(b);c=null!=
262c?c:new mxPoint(a.x+a.width/2,a.y+a.height/2);var f=new mxPoint(a.x,a.y);b=new mxPoint(a.x+a.width,a.y);var g=new mxPoint(b.x,a.y+a.height);a=new mxPoint(a.x,g.y);f=mxUtils.getRotatedPoint(f,d,e,c);b=mxUtils.getRotatedPoint(b,d,e,c);g=mxUtils.getRotatedPoint(g,d,e,c);a=mxUtils.getRotatedPoint(a,d,e,c);d=new mxRectangle(f.x,f.y,0,0);d.add(new mxRectangle(b.x,b.y,0,0));d.add(new mxRectangle(g.x,g.y,0,0));d.add(new mxRectangle(a.x,a.y,0,0))}return d},getRotatedPoint:function(a,b,c,d){d=null!=d?d:new mxPoint;
263var e=a.x-d.x;a=a.y-d.y;return new mxPoint(e*b-a*c+d.x,a*b+e*c+d.y)},getPortConstraints:function(a,b,c,d){b=mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT,mxUtils.getValue(b.style,c?mxConstants.STYLE_SOURCE_PORT_CONSTRAINT:mxConstants.STYLE_TARGET_PORT_CONSTRAINT,null));if(null==b)return d;d=b.toString();b=mxConstants.DIRECTION_MASK_NONE;c=0;1==mxUtils.getValue(a.style,mxConstants.STYLE_PORT_CONSTRAINT_ROTATION,0)&&(c=mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0));a=0;45<c?(a=
2641,135<=c&&(a=2)):-45>c&&(a=3,-135>=c&&(a=2));if(0<=d.indexOf(mxConstants.DIRECTION_NORTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 1:b|=mxConstants.DIRECTION_MASK_EAST;break;case 2:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 3:b|=mxConstants.DIRECTION_MASK_WEST}if(0<=d.indexOf(mxConstants.DIRECTION_WEST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_WEST;break;case 1:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 2:b|=mxConstants.DIRECTION_MASK_EAST;break;case 3:b|=mxConstants.DIRECTION_MASK_SOUTH}if(0<=
265d.indexOf(mxConstants.DIRECTION_SOUTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 1:b|=mxConstants.DIRECTION_MASK_WEST;break;case 2:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 3:b|=mxConstants.DIRECTION_MASK_EAST}if(0<=d.indexOf(mxConstants.DIRECTION_EAST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_EAST;break;case 1:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 2:b|=mxConstants.DIRECTION_MASK_WEST;break;case 3:b|=mxConstants.DIRECTION_MASK_NORTH}return b},reversePortConstraints:function(a){var b;
266b=(a&mxConstants.DIRECTION_MASK_WEST)<<3;b|=(a&mxConstants.DIRECTION_MASK_NORTH)<<1;b|=(a&mxConstants.DIRECTION_MASK_SOUTH)>>1;return b|(a&mxConstants.DIRECTION_MASK_EAST)>>3},findNearestSegment:function(a,b,c){var d=-1;if(0<a.absolutePoints.length)for(var e=a.absolutePoints[0],f=null,g=1;g<a.absolutePoints.length;g++){var k=a.absolutePoints[g],e=mxUtils.ptSegDistSq(e.x,e.y,k.x,k.y,b,c);if(null==f||e<f)f=e,d=g-1;e=k}return d},getDirectedBounds:function(a,b,c,d,e){var f=mxUtils.getValue(c,mxConstants.STYLE_DIRECTION,
267mxConstants.DIRECTION_EAST);d=null!=d?d:mxUtils.getValue(c,mxConstants.STYLE_FLIPH,!1);e=null!=e?e:mxUtils.getValue(c,mxConstants.STYLE_FLIPV,!1);b.x=Math.round(Math.max(0,Math.min(a.width,b.x)));b.y=Math.round(Math.max(0,Math.min(a.height,b.y)));b.width=Math.round(Math.max(0,Math.min(a.width,b.width)));b.height=Math.round(Math.max(0,Math.min(a.height,b.height)));if(e&&(f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH)||d&&(f==mxConstants.DIRECTION_EAST||f==mxConstants.DIRECTION_WEST))c=
268b.x,b.x=b.width,b.width=c;if(d&&(f==mxConstants.DIRECTION_SOUTH||f==mxConstants.DIRECTION_NORTH)||e&&(f==mxConstants.DIRECTION_EAST||f==mxConstants.DIRECTION_WEST))c=b.y,b.y=b.height,b.height=c;d=mxRectangle.fromRectangle(b);f==mxConstants.DIRECTION_SOUTH?(d.y=b.x,d.x=b.height,d.width=b.y,d.height=b.width):f==mxConstants.DIRECTION_WEST?(d.y=b.height,d.x=b.width,d.width=b.x,d.height=b.y):f==mxConstants.DIRECTION_NORTH&&(d.y=b.width,d.x=b.y,d.width=b.height,d.height=b.x);return new mxRectangle(a.x+
269d.x,a.y+d.y,a.width-d.width-d.x,a.height-d.height-d.y)},getPerimeterPoint:function(a,b,c){for(var d=null,e=0;e<a.length-1;e++){var f=mxUtils.intersection(a[e].x,a[e].y,a[e+1].x,a[e+1].y,b.x,b.y,c.x,c.y);if(null!=f){var g=c.x-f.x,k=c.y-f.y,f={p:f,distSq:k*k+g*g};null!=f&&(null==d||d.distSq>f.distSq)&&(d=f)}}return null!=d?d.p:null},intersectsPoints:function(a,b){for(var c=0;c<b.length-1;c++)if(mxUtils.rectangleIntersectsSegment(a,b[c],b[c+1]))return!0;return!1},rectangleIntersectsSegment:function(a,
270b,c){var d=a.y,e=a.x,f=d+a.height,g=e+a.width;a=b.x;var k=c.x;b.x>c.x&&(a=c.x,k=b.x);k>g&&(k=g);a<e&&(a=e);if(a>k)return!1;var e=b.y,g=c.y,l=c.x-b.x;1E-7<Math.abs(l)&&(c=(c.y-b.y)/l,b=b.y-c*b.x,e=c*a+b,g=c*k+b);e>g&&(b=g,g=e,e=b);g>f&&(g=f);e<d&&(e=d);return e>g?!1:!0},contains:function(a,b,c){return a.x<=b&&a.x+a.width>=b&&a.y<=c&&a.y+a.height>=c},intersects:function(a,b){var c=a.width,d=a.height,e=b.width,f=b.height;if(0>=e||0>=f||0>=c||0>=d)return!1;var g=a.x,k=a.y,l=b.x,m=b.y,e=e+l,f=f+m,c=c+
271g,d=d+k;return(e<l||e>g)&&(f<m||f>k)&&(c<g||c>l)&&(d<k||d>m)},intersectsHotspot:function(a,b,c,d,e,f){d=null!=d?d:1;e=null!=e?e:0;f=null!=f?f:0;if(0<d){var g=a.getCenterX(),k=a.getCenterY(),l=a.width,m=a.height,n=mxUtils.getValue(a.style,mxConstants.STYLE_STARTSIZE)*a.view.scale;0<n&&(mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,!0)?(k=a.y+n/2,m=n):(g=a.x+n/2,l=n));l=Math.max(e,l*d);m=Math.max(e,m*d);0<f&&(l=Math.min(l,f),m=Math.min(m,f));d=new mxRectangle(g-l/2,k-m/2,l,m);g=mxUtils.toRadians(mxUtils.getValue(a.style,
272mxConstants.STYLE_ROTATION)||0);0!=g&&(e=Math.cos(-g),f=Math.sin(-g),g=new mxPoint(a.getCenterX(),a.getCenterY()),a=mxUtils.getRotatedPoint(new mxPoint(b,c),e,f,g),b=a.x,c=a.y);return mxUtils.contains(d,b,c)}return!0},getOffset:function(a,b){for(var c=0,d=0,e=!1,f=a,g=document.body,k=document.documentElement;null!=f&&f!=g&&f!=k&&!e;){var l=mxUtils.getCurrentStyle(f);null!=l&&(e=e||"fixed"==l.position);f=f.parentNode}b||e||(e=mxUtils.getDocumentScrollOrigin(a.ownerDocument),c+=e.x,d+=e.y);e=a.getBoundingClientRect();
273null!=e&&(c+=e.left,d+=e.top);return new mxPoint(c,d)},getDocumentScrollOrigin:function(a){a=a.defaultView||a.parentWindow;return new mxPoint(null!=a&&void 0!==window.pageXOffset?window.pageXOffset:(document.documentElement||document.body.parentNode||document.body).scrollLeft,null!=a&&void 0!==window.pageYOffset?window.pageYOffset:(document.documentElement||document.body.parentNode||document.body).scrollTop)},getScrollOrigin:function(a,b,c){b=null!=b?b:!1;c=null!=c?c:!0;for(var d=null!=a?a.ownerDocument:
274document,e=d.body,f=d.documentElement,g=new mxPoint,k=!1;null!=a&&a!=e&&a!=f;){isNaN(a.scrollLeft)||isNaN(a.scrollTop)||(g.x+=a.scrollLeft,g.y+=a.scrollTop);var l=mxUtils.getCurrentStyle(a);null!=l&&(k=k||"fixed"==l.position);a=b?a.parentNode:null}!k&&c&&(a=mxUtils.getDocumentScrollOrigin(d),g.x+=a.x,g.y+=a.y);return g},convertPoint:function(a,b,c){var d=mxUtils.getScrollOrigin(a,!1);a=mxUtils.getOffset(a);a.x-=d.x;a.y-=d.y;return new mxPoint(b-a.x,c-a.y)},ltrim:function(a,b){return null!=a?a.replace(new RegExp("^["+
275(b||"\\s")+"]+","g"),""):null},rtrim:function(a,b){return null!=a?a.replace(new RegExp("["+(b||"\\s")+"]+$","g"),""):null},trim:function(a,b){return mxUtils.ltrim(mxUtils.rtrim(a,b),b)},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)&&("string"!=typeof a||0>a.toLowerCase().indexOf("0x"))},isInteger:function(a){return String(parseInt(a))===String(a)},mod:function(a,b){return(a%b+b)%b},intersection:function(a,b,c,d,e,f,g,k){var l=(k-f)*(c-a)-(g-e)*(d-b);g=((g-e)*(b-f)-(k-f)*(a-e))/l;
276e=((c-a)*(b-f)-(d-b)*(a-e))/l;return 0<=g&&1>=g&&0<=e&&1>=e?new mxPoint(a+g*(c-a),b+g*(d-b)):null},ptSegDistSq:function(a,b,c,d,e,f){c-=a;d-=b;e-=a;f-=b;0>=e*c+f*d?c=0:(e=c-e,f=d-f,a=e*c+f*d,c=0>=a?0:a*a/(c*c+d*d));e=e*e+f*f-c;0>e&&(e=0);return e},ptLineDist:function(a,b,c,d,e,f){return Math.abs((d-b)*e-(c-a)*f+c*b-d*a)/Math.sqrt((d-b)*(d-b)+(c-a)*(c-a))},relativeCcw:function(a,b,c,d,e,f){c-=a;d-=b;e-=a;f-=b;a=e*d-f*c;0==a&&(a=e*c+f*d,0<a&&(a=(e-c)*c+(f-d)*d,0>a&&(a=0)));return 0>a?-1:0<a?1:0},animateChanges:function(a,
277b){mxEffects.animateChanges.apply(this,arguments)},cascadeOpacity:function(a,b,c){mxEffects.cascadeOpacity.apply(this,arguments)},fadeOut:function(a,b,c,d,e,f){mxEffects.fadeOut.apply(this,arguments)},setOpacity:function(a,b){mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?a.style.filter=100<=b?"":"alpha(opacity="+b+")":a.style.opacity=b/100},createImage:function(a){var b;b=document.createElement("img");b.setAttribute("src",a);b.setAttribute("border","0");return b},
278sortCells:function(a,b){b=null!=b?b:!0;var c=new mxDictionary;a.sort(function(a,e){var d=c.get(a);null==d&&(d=mxCellPath.create(a).split(mxCellPath.PATH_SEPARATOR),c.put(a,d));var g=c.get(e);null==g&&(g=mxCellPath.create(e).split(mxCellPath.PATH_SEPARATOR),c.put(e,g));d=mxCellPath.compare(d,g);return 0==d?0:0<d==b?1:-1});return a},getStylename:function(a){return null!=a&&(a=a.split(";")[0],0>a.indexOf("="))?a:""},getStylenames:function(a){var b=[];if(null!=a){a=a.split(";");for(var c=0;c<a.length;c++)0>
279a[c].indexOf("=")&&b.push(a[c])}return b},indexOfStylename:function(a,b){if(null!=a&&null!=b)for(var c=a.split(";"),d=0,e=0;e<c.length;e++){if(c[e]==b)return d;d+=c[e].length+1}return-1},addStylename:function(a,b){0>mxUtils.indexOfStylename(a,b)&&(null==a?a="":0<a.length&&";"!=a.charAt(a.length-1)&&(a+=";"),a+=b);return a},removeStylename:function(a,b){var c=[];if(null!=a)for(var d=a.split(";"),e=0;e<d.length;e++)d[e]!=b&&c.push(d[e]);return c.join(";")},removeAllStylenames:function(a){var b=[];if(null!=
280a){a=a.split(";");for(var c=0;c<a.length;c++)0<=a[c].indexOf("=")&&b.push(a[c])}return b.join(";")},setCellStyles:function(a,b,c,d){if(null!=b&&0<b.length){a.beginUpdate();try{for(var e=0;e<b.length;e++)if(null!=b[e]){var f=mxUtils.setStyle(a.getStyle(b[e]),c,d);a.setStyle(b[e],f)}}finally{a.endUpdate()}}},hex2rgba:function(a){if(null!=a&&7<=a.length&&"#"==a.charAt(0)){var b=parseInt(a.substring(1,3),16),c=parseInt(a.substring(3,5),16),d=parseInt(a.substring(5,7),16),e=1;7<a.length&&(e=parseInt(a.substring(7,
2819),16)/255);a="rgba("+b+", "+c+", "+d+", "+e+")"}return a},setCssText:function(a,b){if(null!=a&&null!=b)for(var c=b.split(";"),d=0;d<c.length;d++){var e=c[d].split(":");1<e.length&&(e[0]=mxUtils.trim(e[0].replace(/-([a-z])/gi,function(a,b){return b.toUpperCase()})),a[e[0]]=mxUtils.trim(e[1]))}},setStyle:function(a,b,c){var d=null!=c&&("undefined"==typeof c.length||0<c.length);if(null==a||0==a.length)d&&(a=b+"="+c+";");else if(a.substring(0,b.length+1)==b+"="){var e=a.indexOf(";");a=d?b+"="+c+(0>e?
282";":a.substring(e)):0>e||e==a.length-1?"":a.substring(e+1)}else{var f=a.indexOf(";"+b+"=");0>f?d&&(d=";"==a.charAt(a.length-1)?"":";",a=a+d+b+"="+c+";"):(e=a.indexOf(";",f+1),a=d?a.substring(0,f+1)+b+"="+c+(0>e?";":a.substring(e)):a.substring(0,f)+(0>e?";":a.substring(e)))}return a},setCellStyleFlags:function(a,b,c,d,e){if(null!=b&&0<b.length){a.beginUpdate();try{for(var f=0;f<b.length;f++)if(null!=b[f]){var g=mxUtils.setStyleFlag(a.getStyle(b[f]),c,d,e);a.setStyle(b[f],g)}}finally{a.endUpdate()}}},
283setStyleFlag:function(a,b,c,d){if(null==a||0==a.length)a=d||null==d?b+"="+c:b+"=0";else{var e=a.indexOf(b+"=");if(0>e)e=";"==a.charAt(a.length-1)?"":";",a=d||null==d?a+e+b+"="+c:a+e+b+"=0";else{var f=a.indexOf(";",e),g;g=0>f?a.substring(e+b.length+1):a.substring(e+b.length+1,f);g=null==d?parseInt(g)^c:d?parseInt(g)|c:parseInt(g)&~c;a=a.substring(0,e)+b+"="+g+(0<=f?a.substring(f):"")}}return a},getAlignmentAsPoint:function(a,b){var c=-.5,d=-.5;a==mxConstants.ALIGN_LEFT?c=0:a==mxConstants.ALIGN_RIGHT&&
284(c=-1);b==mxConstants.ALIGN_TOP?d=0:b==mxConstants.ALIGN_BOTTOM&&(d=-1);return new mxPoint(c,d)},getSizeForString:function(a,b,c,d,e){b=null!=b?b:mxConstants.DEFAULT_FONTSIZE;c=null!=c?c:mxConstants.DEFAULT_FONTFAMILY;var f=document.createElement("div");f.style.fontFamily=c;f.style.fontSize=Math.round(b)+"px";f.style.lineHeight=Math.round(b*mxConstants.LINE_HEIGHT)+"px";null!=e&&((e&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(f.style.fontWeight="bold"),(e&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&
285(f.style.fontStyle="italic"),b=[],(e&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&b.push("underline"),(e&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&b.push("line-through"),0<b.length&&(f.style.textDecoration=b.join(" ")));f.style.position="absolute";f.style.visibility="hidden";f.style.display="inline-block";f.style.zoom="1";null!=d?(f.style.width=d+"px",f.style.whiteSpace="normal"):f.style.whiteSpace="nowrap";f.innerHTML=a;document.body.appendChild(f);a=new mxRectangle(0,
2860,f.offsetWidth,f.offsetHeight);document.body.removeChild(f);return a},getViewXml:function(a,b,c,d,e){d=null!=d?d:0;e=null!=e?e:0;b=null!=b?b:1;null==c&&(c=[a.getModel().getRoot()]);var f=a.getView(),g=null,k=f.isEventsEnabled();f.setEventsEnabled(!1);var l=f.drawPane,m=f.overlayPane;a.dialect==mxConstants.DIALECT_SVG?(f.drawPane=document.createElementNS(mxConstants.NS_SVG,"g"),f.canvas.appendChild(f.drawPane),f.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g")):(f.drawPane=f.drawPane.cloneNode(!1),
287f.canvas.appendChild(f.drawPane),f.overlayPane=f.overlayPane.cloneNode(!1));f.canvas.appendChild(f.overlayPane);var n=f.getTranslate();f.translate=new mxPoint(d,e);b=new mxTemporaryCellStates(a.getView(),b,c);try{g=(new mxCodec).encode(a.getView())}finally{b.destroy(),f.translate=n,f.canvas.removeChild(f.drawPane),f.canvas.removeChild(f.overlayPane),f.drawPane=l,f.overlayPane=m,f.setEventsEnabled(k)}return g},getScaleForPageCount:function(a,b,c,d){if(1>a)return 1;c=null!=c?c:mxConstants.PAGE_FORMAT_A4_PORTRAIT;
288d=null!=d?d:0;var e=c.width-2*d;c=c.height-2*d;d=b.getGraphBounds().clone();b=b.getView().getScale();d.width/=b;d.height/=b;b=d.width;var f=Math.sqrt(a);d=Math.sqrt(b/d.height/(e/c));c=f*d;d=f/d;if(1>c&&d>a){var g=d/a;d=a;c/=g}1>d&&c>a&&(g=c/a,c=a,d/=g);g=Math.ceil(c)*Math.ceil(d);for(f=0;g>a;){var g=Math.floor(c)/c,k=Math.floor(d)/d;1==g&&(g=Math.floor(c-1)/c);1==k&&(k=Math.floor(d-1)/d);g=g>k?g:k;c*=g;d*=g;g=Math.ceil(c)*Math.ceil(d);f++;if(10<f)break}return e*c/b*.99999},show:function(a,b,c,d,
289e,f){c=null!=c?c:0;d=null!=d?d:0;null==b?b=window.open().document:b.open();9==document.documentMode&&b.writeln('\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=9"><![endif]--\x3e');var g=a.getGraphBounds(),k=Math.ceil(c-g.x),l=Math.ceil(d-g.y);null==e&&(e=Math.ceil(g.width+c)+Math.ceil(Math.ceil(g.x)-g.x));null==f&&(f=Math.ceil(g.height+d)+Math.ceil(Math.ceil(g.y)-g.y));if(mxClient.IS_IE||11==document.documentMode){d="<html><head>";g=document.getElementsByTagName("base");for(c=0;c<g.length;c++)d+=
290g[c].outerHTML;d+="<style>";for(c=0;c<document.styleSheets.length;c++)try{d+=document.styleSheets[c].cssText}catch(m){}d=d+'</style></head><body style="margin:0px;">'+('<div style="position:absolute;overflow:hidden;width:'+e+"px;height:"+f+'px;"><div style="position:relative;left:'+k+"px;top:"+l+'px;">')+a.container.innerHTML;b.writeln(d+"</div></div></body><html>");b.close()}else{b.writeln("<html><head>");g=document.getElementsByTagName("base");for(c=0;c<g.length;c++)b.writeln(mxUtils.getOuterHtml(g[c]));
291d=document.getElementsByTagName("link");for(c=0;c<d.length;c++)b.writeln(mxUtils.getOuterHtml(d[c]));d=document.getElementsByTagName("style");for(c=0;c<d.length;c++)b.writeln(mxUtils.getOuterHtml(d[c]));b.writeln('</head><body style="margin:0px;"></body></html>');b.close();c=b.createElement("div");c.position="absolute";c.overflow="hidden";c.style.width=e+"px";c.style.height=f+"px";e=b.createElement("div");e.style.position="absolute";e.style.left=k+"px";e.style.top=l+"px";f=a.container.firstChild;
292for(d=null;null!=f;)g=f.cloneNode(!0),f==a.view.drawPane.ownerSVGElement?(c.appendChild(g),d=g):e.appendChild(g),f=f.nextSibling;b.body.appendChild(c);null!=e.firstChild&&b.body.appendChild(e);null!=d&&(d.style.minWidth="",d.style.minHeight="",d.firstChild.setAttribute("transform","translate("+k+","+l+")"))}mxUtils.removeCursors(b.body);return b},printScreen:function(a){var b=window.open();a.getGraphBounds();mxUtils.show(a,b.document);a=function(){b.focus();b.print();b.close()};mxClient.IS_GC?b.setTimeout(a,
293500):a()},popup:function(a,b){if(b){var c=document.createElement("div");c.style.overflow="scroll";c.style.width="636px";c.style.height="460px";var d=document.createElement("pre");d.innerHTML=mxUtils.htmlEntities(a,!1).replace(/\n/g,"<br>").replace(/ /g,"&nbsp;");c.appendChild(d);c=new mxWindow("Popup Window",c,document.body.clientWidth/2-320,Math.max(document.body.clientHeight||0,document.documentElement.clientHeight)/2-240,640,480,!1,!0);c.setClosable(!0);c.setVisible(!0)}else mxClient.IS_NS?(c=
294window.open(),c.document.writeln("<pre>"+mxUtils.htmlEntities(a)+"</pre"),c.document.close()):(c=window.open(),d=c.document.createElement("pre"),d.innerHTML=mxUtils.htmlEntities(a,!1).replace(/\n/g,"<br>").replace(/ /g,"&nbsp;"),c.document.body.appendChild(d))},alert:function(a){alert(a)},prompt:function(a,b){return prompt(a,null!=b?b:"")},confirm:function(a){return confirm(a)},error:function(a,b,c,d){var e=document.createElement("div");e.style.padding="20px";var f=document.createElement("img");f.setAttribute("src",
295d||mxUtils.errorImage);f.setAttribute("valign","bottom");f.style.verticalAlign="middle";e.appendChild(f);e.appendChild(document.createTextNode(" "));e.appendChild(document.createTextNode(" "));e.appendChild(document.createTextNode(" "));mxUtils.write(e,a);a=document.body.clientWidth;d=document.body.clientHeight||document.documentElement.clientHeight;var g=new mxWindow(mxResources.get(mxUtils.errorResource)||mxUtils.errorResource,e,(a-b)/2,d/4,b,null,!1,!0);c&&(mxUtils.br(e),b=document.createElement("p"),
296c=document.createElement("button"),mxClient.IS_IE?c.style.cssText="float:right":c.setAttribute("style","float:right"),mxEvent.addListener(c,"click",function(a){g.destroy()}),mxUtils.write(c,mxResources.get(mxUtils.closeResource)||mxUtils.closeResource),b.appendChild(c),e.appendChild(b),mxUtils.br(e),g.setClosable(!0));g.setVisible(!0);return g},makeDraggable:function(a,b,c,d,e,f,g,k,l,m){a=new mxDragSource(a,c);a.dragOffset=new mxPoint(null!=e?e:0,null!=f?f:mxConstants.TOOLTIP_VERTICAL_OFFSET);a.autoscroll=
297g;a.setGuidesEnabled(!1);null!=l&&(a.highlightDropTargets=l);null!=m&&(a.getDropTarget=m);a.getGraphForEvent=function(a){return"function"==typeof b?b(a):b};null!=d&&(a.createDragElement=function(){return d.cloneNode(!0)},k&&(a.createPreviewElement=function(a){var b=d.cloneNode(!0),c=parseInt(b.style.width),e=parseInt(b.style.height);b.style.width=Math.round(c*a.view.scale)+"px";b.style.height=Math.round(e*a.view.scale)+"px";return b}));return a}},mxConstants={DEFAULT_HOTSPOT:.3,MIN_HOTSPOT_SIZE:8,
298MAX_HOTSPOT_SIZE:0,RENDERING_HINT_EXACT:"exact",RENDERING_HINT_FASTER:"faster",RENDERING_HINT_FASTEST:"fastest",DIALECT_SVG:"svg",DIALECT_MIXEDHTML:"mixedHtml",DIALECT_PREFERHTML:"preferHtml",DIALECT_STRICTHTML:"strictHtml",NS_SVG:"http://www.w3.org/2000/svg",NS_XHTML:"http://www.w3.org/1999/xhtml",NS_XLINK:"http://www.w3.org/1999/xlink",SHADOWCOLOR:"gray",VML_SHADOWCOLOR:"gray",SHADOW_OFFSET_X:2,SHADOW_OFFSET_Y:3,SHADOW_OPACITY:1,NODETYPE_ELEMENT:1,NODETYPE_ATTRIBUTE:2,NODETYPE_TEXT:3,NODETYPE_CDATA:4,
299NODETYPE_ENTITY_REFERENCE:5,NODETYPE_ENTITY:6,NODETYPE_PROCESSING_INSTRUCTION:7,NODETYPE_COMMENT:8,NODETYPE_DOCUMENT:9,NODETYPE_DOCUMENTTYPE:10,NODETYPE_DOCUMENT_FRAGMENT:11,NODETYPE_NOTATION:12,TOOLTIP_VERTICAL_OFFSET:16,DEFAULT_VALID_COLOR:"#00FF00",DEFAULT_INVALID_COLOR:"#FF0000",OUTLINE_HIGHLIGHT_COLOR:"#00FF00",OUTLINE_HIGHLIGHT_STROKEWIDTH:5,HIGHLIGHT_STROKEWIDTH:3,HIGHLIGHT_SIZE:2,HIGHLIGHT_OPACITY:100,CURSOR_MOVABLE_VERTEX:"move",CURSOR_MOVABLE_EDGE:"move",CURSOR_LABEL_HANDLE:"default",CURSOR_TERMINAL_HANDLE:"pointer",
300CURSOR_BEND_HANDLE:"crosshair",CURSOR_VIRTUAL_BEND_HANDLE:"crosshair",CURSOR_CONNECT:"pointer",HIGHLIGHT_COLOR:"#00FF00",CONNECT_TARGET_COLOR:"#0000FF",INVALID_CONNECT_TARGET_COLOR:"#FF0000",DROP_TARGET_COLOR:"#0000FF",VALID_COLOR:"#00FF00",INVALID_COLOR:"#FF0000",EDGE_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_STROKEWIDTH:1,EDGE_SELECTION_STROKEWIDTH:1,VERTEX_SELECTION_DASHED:!0,EDGE_SELECTION_DASHED:!0,GUIDE_COLOR:"#FF0000",GUIDE_STROKEWIDTH:1,OUTLINE_COLOR:"#0099FF",
301OUTLINE_STROKEWIDTH:mxClient.IS_IE?2:3,HANDLE_SIZE:6,LABEL_HANDLE_SIZE:4,HANDLE_FILLCOLOR:"#00FF00",HANDLE_STROKECOLOR:"black",LABEL_HANDLE_FILLCOLOR:"yellow",CONNECT_HANDLE_FILLCOLOR:"#0000FF",LOCKED_HANDLE_FILLCOLOR:"#FF0000",OUTLINE_HANDLE_FILLCOLOR:"#00FFFF",OUTLINE_HANDLE_STROKECOLOR:"#0033FF",DEFAULT_FONTFAMILY:"Arial,Helvetica",DEFAULT_FONTSIZE:11,DEFAULT_TEXT_DIRECTION:"",LINE_HEIGHT:1.2,WORD_WRAP:"normal",ABSOLUTE_LINE_HEIGHT:!1,DEFAULT_FONTSTYLE:0,DEFAULT_STARTSIZE:40,DEFAULT_MARKERSIZE:6,
302DEFAULT_IMAGESIZE:24,ENTITY_SEGMENT:30,RECTANGLE_ROUNDING_FACTOR:.15,LINE_ARCSIZE:20,ARROW_SPACING:0,ARROW_WIDTH:30,ARROW_SIZE:30,PAGE_FORMAT_A4_PORTRAIT:new mxRectangle(0,0,827,1169),PAGE_FORMAT_A4_LANDSCAPE:new mxRectangle(0,0,1169,827),PAGE_FORMAT_LETTER_PORTRAIT:new mxRectangle(0,0,850,1100),PAGE_FORMAT_LETTER_LANDSCAPE:new mxRectangle(0,0,1100,850),NONE:"none",STYLE_PERIMETER:"perimeter",STYLE_SOURCE_PORT:"sourcePort",STYLE_TARGET_PORT:"targetPort",STYLE_PORT_CONSTRAINT:"portConstraint",STYLE_PORT_CONSTRAINT_ROTATION:"portConstraintRotation",
303STYLE_SOURCE_PORT_CONSTRAINT:"sourcePortConstraint",STYLE_TARGET_PORT_CONSTRAINT:"targetPortConstraint",STYLE_OPACITY:"opacity",STYLE_FILL_OPACITY:"fillOpacity",STYLE_STROKE_OPACITY:"strokeOpacity",STYLE_TEXT_OPACITY:"textOpacity",STYLE_TEXT_DIRECTION:"textDirection",STYLE_OVERFLOW:"overflow",STYLE_BLOCK_SPACING:"blockSpacing",STYLE_ORTHOGONAL:"orthogonal",STYLE_EXIT_X:"exitX",STYLE_EXIT_Y:"exitY",STYLE_EXIT_DX:"exitDx",STYLE_EXIT_DY:"exitDy",STYLE_EXIT_PERIMETER:"exitPerimeter",STYLE_ENTRY_X:"entryX",
304STYLE_ENTRY_Y:"entryY",STYLE_ENTRY_DX:"entryDx",STYLE_ENTRY_DY:"entryDy",STYLE_ENTRY_PERIMETER:"entryPerimeter",STYLE_WHITE_SPACE:"whiteSpace",STYLE_ROTATION:"rotation",STYLE_FILLCOLOR:"fillColor",STYLE_POINTER_EVENTS:"pointerEvents",STYLE_SWIMLANE_FILLCOLOR:"swimlaneFillColor",STYLE_MARGIN:"margin",STYLE_GRADIENTCOLOR:"gradientColor",STYLE_GRADIENT_DIRECTION:"gradientDirection",STYLE_STROKECOLOR:"strokeColor",STYLE_SEPARATORCOLOR:"separatorColor",STYLE_STROKEWIDTH:"strokeWidth",STYLE_ALIGN:"align",
305STYLE_VERTICAL_ALIGN:"verticalAlign",STYLE_LABEL_WIDTH:"labelWidth",STYLE_LABEL_POSITION:"labelPosition",STYLE_VERTICAL_LABEL_POSITION:"verticalLabelPosition",STYLE_IMAGE_ASPECT:"imageAspect",STYLE_IMAGE_ALIGN:"imageAlign",STYLE_IMAGE_VERTICAL_ALIGN:"imageVerticalAlign",STYLE_GLASS:"glass",STYLE_IMAGE:"image",STYLE_IMAGE_WIDTH:"imageWidth",STYLE_IMAGE_HEIGHT:"imageHeight",STYLE_IMAGE_BACKGROUND:"imageBackground",STYLE_IMAGE_BORDER:"imageBorder",STYLE_FLIPH:"flipH",STYLE_FLIPV:"flipV",STYLE_NOLABEL:"noLabel",
306STYLE_NOEDGESTYLE:"noEdgeStyle",STYLE_LABEL_BACKGROUNDCOLOR:"labelBackgroundColor",STYLE_LABEL_BORDERCOLOR:"labelBorderColor",STYLE_LABEL_PADDING:"labelPadding",STYLE_INDICATOR_SHAPE:"indicatorShape",STYLE_INDICATOR_IMAGE:"indicatorImage",STYLE_INDICATOR_COLOR:"indicatorColor",STYLE_INDICATOR_STROKECOLOR:"indicatorStrokeColor",STYLE_INDICATOR_GRADIENTCOLOR:"indicatorGradientColor",STYLE_INDICATOR_SPACING:"indicatorSpacing",STYLE_INDICATOR_WIDTH:"indicatorWidth",STYLE_INDICATOR_HEIGHT:"indicatorHeight",
307STYLE_INDICATOR_DIRECTION:"indicatorDirection",STYLE_SHADOW:"shadow",STYLE_SEGMENT:"segment",STYLE_ENDARROW:"endArrow",STYLE_STARTARROW:"startArrow",STYLE_ENDSIZE:"endSize",STYLE_STARTSIZE:"startSize",STYLE_SWIMLANE_LINE:"swimlaneLine",STYLE_ENDFILL:"endFill",STYLE_STARTFILL:"startFill",STYLE_DASHED:"dashed",STYLE_DASH_PATTERN:"dashPattern",STYLE_FIX_DASH:"fixDash",STYLE_ROUNDED:"rounded",STYLE_CURVED:"curved",STYLE_ARCSIZE:"arcSize",STYLE_ABSOLUTE_ARCSIZE:"absoluteArcSize",STYLE_SOURCE_PERIMETER_SPACING:"sourcePerimeterSpacing",
308STYLE_TARGET_PERIMETER_SPACING:"targetPerimeterSpacing",STYLE_PERIMETER_SPACING:"perimeterSpacing",STYLE_SPACING:"spacing",STYLE_SPACING_TOP:"spacingTop",STYLE_SPACING_LEFT:"spacingLeft",STYLE_SPACING_BOTTOM:"spacingBottom",STYLE_SPACING_RIGHT:"spacingRight",STYLE_HORIZONTAL:"horizontal",STYLE_DIRECTION:"direction",STYLE_ANCHOR_POINT_DIRECTION:"anchorPointDirection",STYLE_ELBOW:"elbow",STYLE_FONTCOLOR:"fontColor",STYLE_FONTFAMILY:"fontFamily",STYLE_FONTSIZE:"fontSize",STYLE_FONTSTYLE:"fontStyle",
309STYLE_ASPECT:"aspect",STYLE_AUTOSIZE:"autosize",STYLE_FOLDABLE:"foldable",STYLE_EDITABLE:"editable",STYLE_BACKGROUND_OUTLINE:"backgroundOutline",STYLE_BENDABLE:"bendable",STYLE_MOVABLE:"movable",STYLE_RESIZABLE:"resizable",STYLE_RESIZE_WIDTH:"resizeWidth",STYLE_RESIZE_HEIGHT:"resizeHeight",STYLE_ROTATABLE:"rotatable",STYLE_CLONEABLE:"cloneable",STYLE_DELETABLE:"deletable",STYLE_SHAPE:"shape",STYLE_EDGE:"edgeStyle",STYLE_JETTY_SIZE:"jettySize",STYLE_SOURCE_JETTY_SIZE:"sourceJettySize",STYLE_TARGET_JETTY_SIZE:"targetJettySize",
310STYLE_LOOP:"loopStyle",STYLE_ORTHOGONAL_LOOP:"orthogonalLoop",STYLE_ROUTING_CENTER_X:"routingCenterX",STYLE_ROUTING_CENTER_Y:"routingCenterY",FONT_BOLD:1,FONT_ITALIC:2,FONT_UNDERLINE:4,FONT_STRIKETHROUGH:8,SHAPE_RECTANGLE:"rectangle",SHAPE_ELLIPSE:"ellipse",SHAPE_DOUBLE_ELLIPSE:"doubleEllipse",SHAPE_RHOMBUS:"rhombus",SHAPE_LINE:"line",SHAPE_IMAGE:"image",SHAPE_ARROW:"arrow",SHAPE_ARROW_CONNECTOR:"arrowConnector",SHAPE_LABEL:"label",SHAPE_CYLINDER:"cylinder",SHAPE_SWIMLANE:"swimlane",SHAPE_CONNECTOR:"connector",
311SHAPE_ACTOR:"actor",SHAPE_CLOUD:"cloud",SHAPE_TRIANGLE:"triangle",SHAPE_HEXAGON:"hexagon",ARROW_CLASSIC:"classic",ARROW_CLASSIC_THIN:"classicThin",ARROW_BLOCK:"block",ARROW_BLOCK_THIN:"blockThin",ARROW_OPEN:"open",ARROW_OPEN_THIN:"openThin",ARROW_OVAL:"oval",ARROW_DIAMOND:"diamond",ARROW_DIAMOND_THIN:"diamondThin",ALIGN_LEFT:"left",ALIGN_CENTER:"center",ALIGN_RIGHT:"right",ALIGN_TOP:"top",ALIGN_MIDDLE:"middle",ALIGN_BOTTOM:"bottom",DIRECTION_NORTH:"north",DIRECTION_SOUTH:"south",DIRECTION_EAST:"east",
312DIRECTION_WEST:"west",DIRECTION_RADIAL:"radial",TEXT_DIRECTION_DEFAULT:"",TEXT_DIRECTION_AUTO:"auto",TEXT_DIRECTION_LTR:"ltr",TEXT_DIRECTION_RTL:"rtl",DIRECTION_MASK_NONE:0,DIRECTION_MASK_WEST:1,DIRECTION_MASK_NORTH:2,DIRECTION_MASK_SOUTH:4,DIRECTION_MASK_EAST:8,DIRECTION_MASK_ALL:15,ELBOW_VERTICAL:"vertical",ELBOW_HORIZONTAL:"horizontal",EDGESTYLE_ELBOW:"elbowEdgeStyle",EDGESTYLE_ENTITY_RELATION:"entityRelationEdgeStyle",EDGESTYLE_LOOP:"loopEdgeStyle",EDGESTYLE_SIDETOSIDE:"sideToSideEdgeStyle",EDGESTYLE_TOPTOBOTTOM:"topToBottomEdgeStyle",
313EDGESTYLE_ORTHOGONAL:"orthogonalEdgeStyle",EDGESTYLE_SEGMENT:"segmentEdgeStyle",PERIMETER_ELLIPSE:"ellipsePerimeter",PERIMETER_RECTANGLE:"rectanglePerimeter",PERIMETER_RHOMBUS:"rhombusPerimeter",PERIMETER_HEXAGON:"hexagonPerimeter",PERIMETER_TRIANGLE:"trianglePerimeter"};function mxEventObject(a){this.name=a;this.properties=[];for(var b=1;b<arguments.length;b+=2)null!=arguments[b+1]&&(this.properties[arguments[b]]=arguments[b+1])}mxEventObject.prototype.name=null;
314mxEventObject.prototype.properties=null;mxEventObject.prototype.consumed=!1;mxEventObject.prototype.getName=function(){return this.name};mxEventObject.prototype.getProperties=function(){return this.properties};mxEventObject.prototype.getProperty=function(a){return this.properties[a]};mxEventObject.prototype.isConsumed=function(){return this.consumed};mxEventObject.prototype.consume=function(){this.consumed=!0};function mxMouseEvent(a,b){this.evt=a;this.sourceState=this.state=b}
315mxMouseEvent.prototype.consumed=!1;mxMouseEvent.prototype.evt=null;mxMouseEvent.prototype.graphX=null;mxMouseEvent.prototype.graphY=null;mxMouseEvent.prototype.state=null;mxMouseEvent.prototype.sourceState=null;mxMouseEvent.prototype.getEvent=function(){return this.evt};mxMouseEvent.prototype.getSource=function(){return mxEvent.getSource(this.evt)};mxMouseEvent.prototype.isSource=function(a){return null!=a?mxUtils.isAncestorNode(a.node,this.getSource()):!1};mxMouseEvent.prototype.getX=function(){return mxEvent.getClientX(this.getEvent())};
316mxMouseEvent.prototype.getY=function(){return mxEvent.getClientY(this.getEvent())};mxMouseEvent.prototype.getGraphX=function(){return this.graphX};mxMouseEvent.prototype.getGraphY=function(){return this.graphY};mxMouseEvent.prototype.getState=function(){return this.state};mxMouseEvent.prototype.getCell=function(){var a=this.getState();return null!=a?a.cell:null};mxMouseEvent.prototype.isPopupTrigger=function(){return mxEvent.isPopupTrigger(this.getEvent())};mxMouseEvent.prototype.isConsumed=function(){return this.consumed};
317mxMouseEvent.prototype.consume=function(a){(null!=a?a:null!=this.evt.touches||mxEvent.isMouseEvent(this.evt))&&this.evt.preventDefault&&this.evt.preventDefault();mxClient.IS_IE&&(this.evt.returnValue=!0);this.consumed=!0};function mxEventSource(a){this.setEventSource(a)}mxEventSource.prototype.eventListeners=null;mxEventSource.prototype.eventsEnabled=!0;mxEventSource.prototype.eventSource=null;mxEventSource.prototype.isEventsEnabled=function(){return this.eventsEnabled};
318mxEventSource.prototype.setEventsEnabled=function(a){this.eventsEnabled=a};mxEventSource.prototype.getEventSource=function(){return this.eventSource};mxEventSource.prototype.setEventSource=function(a){this.eventSource=a};mxEventSource.prototype.addListener=function(a,b){null==this.eventListeners&&(this.eventListeners=[]);this.eventListeners.push(a);this.eventListeners.push(b)};
319mxEventSource.prototype.removeListener=function(a){if(null!=this.eventListeners)for(var b=0;b<this.eventListeners.length;)this.eventListeners[b+1]==a?this.eventListeners.splice(b,2):b+=2};
320mxEventSource.prototype.fireEvent=function(a,b){if(null!=this.eventListeners&&this.isEventsEnabled()){null==a&&(a=new mxEventObject);null==b&&(b=this.getEventSource());null==b&&(b=this);for(var c=[b,a],d=0;d<this.eventListeners.length;d+=2){var e=this.eventListeners[d];null!=e&&e!=a.getName()||this.eventListeners[d+1].apply(this,c)}}};
321var mxEvent={addListener:function(){if(window.addEventListener){var a=!1;try{document.addEventListener("test",function(){},Object.defineProperty&&Object.defineProperty({},"passive",{get:function(){a=!0}}))}catch(b){}return function(b,c,d){b.addEventListener(c,d,a?{passive:!1}:!1);null==b.mxListenerList&&(b.mxListenerList=[]);b.mxListenerList.push({name:c,f:d})}}return function(a,c,d){a.attachEvent("on"+c,d);null==a.mxListenerList&&(a.mxListenerList=[]);a.mxListenerList.push({name:c,f:d})}}(),removeListener:function(){var a=
322function(a,c,d){if(null!=a.mxListenerList){c=a.mxListenerList.length;for(var b=0;b<c;b++)if(a.mxListenerList[b].f==d){a.mxListenerList.splice(b,1);break}0==a.mxListenerList.length&&(a.mxListenerList=null)}};return window.removeEventListener?function(b,c,d){b.removeEventListener(c,d,!1);a(b,c,d)}:function(b,c,d){b.detachEvent("on"+c,d);a(b,c,d)}}(),removeAllListeners:function(a){var b=a.mxListenerList;if(null!=b)for(;0<b.length;){var c=b[0];mxEvent.removeListener(a,c.name,c.f)}},addGestureListeners:function(a,
323b,c,d){null!=b&&mxEvent.addListener(a,mxClient.IS_POINTER?"pointerdown":"mousedown",b);null!=c&&mxEvent.addListener(a,mxClient.IS_POINTER?"pointermove":"mousemove",c);null!=d&&mxEvent.addListener(a,mxClient.IS_POINTER?"pointerup":"mouseup",d);!mxClient.IS_POINTER&&mxClient.IS_TOUCH&&(null!=b&&mxEvent.addListener(a,"touchstart",b),null!=c&&mxEvent.addListener(a,"touchmove",c),null!=d&&mxEvent.addListener(a,"touchend",d))},removeGestureListeners:function(a,b,c,d){null!=b&&mxEvent.removeListener(a,mxClient.IS_POINTER?
324"pointerdown":"mousedown",b);null!=c&&mxEvent.removeListener(a,mxClient.IS_POINTER?"pointermove":"mousemove",c);null!=d&&mxEvent.removeListener(a,mxClient.IS_POINTER?"pointerup":"mouseup",d);!mxClient.IS_POINTER&&mxClient.IS_TOUCH&&(null!=b&&mxEvent.removeListener(a,"touchstart",b),null!=c&&mxEvent.removeListener(a,"touchmove",c),null!=d&&mxEvent.removeListener(a,"touchend",d))},redirectMouseEvents:function(a,b,c,d,e,f,g){var k=function(a){return"function"==typeof c?c(a):c};mxEvent.addGestureListeners(a,
325function(a){null!=d?d(a):mxEvent.isConsumed(a)||b.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(a,k(a)))},function(a){null!=e?e(a):mxEvent.isConsumed(a)||b.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(a,k(a)))},function(a){null!=f?f(a):mxEvent.isConsumed(a)||b.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(a,k(a)))});mxEvent.addListener(a,"dblclick",function(a){if(null!=g)g(a);else if(!mxEvent.isConsumed(a)){var c=k(a);b.dblClick(a,null!=c?c.cell:null)}})},release:function(a){try{if(null!=
326a){mxEvent.removeAllListeners(a);var b=a.childNodes;if(null!=b){var c=b.length;for(a=0;a<c;a+=1)mxEvent.release(b[a])}}}catch(d){}},addMouseWheelListener:function(a,b){if(null!=a){b=null!=b?b:window;if(mxClient.IS_SF&&!mxClient.IS_TOUCH){var c=1;mxEvent.addListener(b,"gesturestart",function(a){mxEvent.consume(a);c=1});mxEvent.addListener(b,"gesturechange",function(b){mxEvent.consume(b);var d=c-b.scale;.2<Math.abs(d)&&(a(b,0>d,!0),c=b.scale)});mxEvent.addListener(b,"gestureend",function(a){mxEvent.consume(a)})}else{var d=
327[],e=0,f=0;mxEvent.addGestureListeners(b,mxUtils.bind(this,function(a){mxEvent.isMouseEvent(a)||null==a.pointerId||d.push(a)}),mxUtils.bind(this,function(b){if(!mxEvent.isMouseEvent(b)&&2==d.length){for(var c=0;c<d.length;c++)if(b.pointerId==d[c].pointerId){d[c]=b;break}b=Math.abs(d[0].clientX-d[1].clientX);var c=Math.abs(d[0].clientY-d[1].clientY),g=Math.abs(b-e),m=Math.abs(c-f);if(g>mxEvent.PINCH_THRESHOLD||m>mxEvent.PINCH_THRESHOLD)a(d[0],g>m?b>e:c>f,!0,d[0].clientX+(d[1].clientX-d[0].clientX)/
3282,d[0].clientY+(d[1].clientY-d[0].clientY)/2),e=b,f=c}}),mxUtils.bind(this,function(a){d=[];f=e=0}))}mxEvent.addListener(b,"wheel",function(b){null==b&&(b=window.event);b.ctrlKey&&b.preventDefault();(.5<Math.abs(b.deltaX)||.5<Math.abs(b.deltaY))&&a(b,0==b.deltaY?0<-b.deltaX:0<-b.deltaY)})}},disableContextMenu:function(a){mxEvent.addListener(a,"contextmenu",function(a){a.preventDefault&&a.preventDefault();return!1})},getSource:function(a){return null!=a.srcElement?a.srcElement:a.target},isConsumed:function(a){return null!=
329a.isConsumed&&a.isConsumed},isTouchEvent:function(a){return null!=a.pointerType?"touch"==a.pointerType||a.pointerType===a.MSPOINTER_TYPE_TOUCH:null!=a.mozInputSource?5==a.mozInputSource:0==a.type.indexOf("touch")},isPenEvent:function(a){return null!=a.pointerType?"pen"==a.pointerType||a.pointerType===a.MSPOINTER_TYPE_PEN:null!=a.mozInputSource?2==a.mozInputSource:0==a.type.indexOf("pen")},isMultiTouchEvent:function(a){return null!=a.type&&0==a.type.indexOf("touch")&&null!=a.touches&&1<a.touches.length},
330isMouseEvent:function(a){return null!=a.pointerType?"mouse"==a.pointerType||a.pointerType===a.MSPOINTER_TYPE_MOUSE:null!=a.mozInputSource?1==a.mozInputSource:0==a.type.indexOf("mouse")},isLeftMouseButton:function(a){return"buttons"in a&&("mousedown"==a.type||"mousemove"==a.type)?1==a.buttons:"which"in a?1===a.which:1===a.button},isMiddleMouseButton:function(a){return"which"in a?2===a.which:4===a.button},isRightMouseButton:function(a){return"which"in a?3===a.which:2===a.button},isPopupTrigger:function(a){return mxEvent.isRightMouseButton(a)||
331mxClient.IS_MAC&&mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)&&!mxEvent.isMetaDown(a)&&!mxEvent.isAltDown(a)},isShiftDown:function(a){return null!=a?a.shiftKey:!1},isAltDown:function(a){return null!=a?a.altKey:!1},isControlDown:function(a){return null!=a?a.ctrlKey:!1},isMetaDown:function(a){return null!=a?a.metaKey:!1},getMainEvent:function(a){"touchstart"!=a.type&&"touchmove"!=a.type||null==a.touches||null==a.touches[0]?"touchend"==a.type&&null!=a.changedTouches&&null!=a.changedTouches[0]&&
332(a=a.changedTouches[0]):a=a.touches[0];return a},getClientX:function(a){return mxEvent.getMainEvent(a).clientX},getClientY:function(a){return mxEvent.getMainEvent(a).clientY},consume:function(a,b,c){c=null!=c?c:!0;if(null!=b?b:1)a.preventDefault?(c&&a.stopPropagation(),a.preventDefault()):c&&(a.cancelBubble=!0);a.isConsumed=!0;a.preventDefault||(a.returnValue=!1)},LABEL_HANDLE:-1,ROTATION_HANDLE:-2,CUSTOM_HANDLE:-100,VIRTUAL_HANDLE:-1E5,MOUSE_DOWN:"mouseDown",MOUSE_MOVE:"mouseMove",MOUSE_UP:"mouseUp",
333ACTIVATE:"activate",RESIZE_START:"resizeStart",RESIZE:"resize",RESIZE_END:"resizeEnd",MOVE_START:"moveStart",MOVE:"move",MOVE_END:"moveEnd",PAN_START:"panStart",PAN:"pan",PAN_END:"panEnd",MINIMIZE:"minimize",NORMALIZE:"normalize",MAXIMIZE:"maximize",HIDE:"hide",SHOW:"show",CLOSE:"close",DESTROY:"destroy",REFRESH:"refresh",SIZE:"size",SELECT:"select",FIRED:"fired",FIRE_MOUSE_EVENT:"fireMouseEvent",GESTURE:"gesture",TAP_AND_HOLD:"tapAndHold",GET:"get",RECEIVE:"receive",CONNECT:"connect",DISCONNECT:"disconnect",
334SUSPEND:"suspend",RESUME:"resume",MARK:"mark",ROOT:"root",POST:"post",OPEN:"open",SAVE:"save",BEFORE_ADD_VERTEX:"beforeAddVertex",ADD_VERTEX:"addVertex",AFTER_ADD_VERTEX:"afterAddVertex",DONE:"done",EXECUTE:"execute",EXECUTED:"executed",BEGIN_UPDATE:"beginUpdate",START_EDIT:"startEdit",END_UPDATE:"endUpdate",END_EDIT:"endEdit",BEFORE_UNDO:"beforeUndo",UNDO:"undo",REDO:"redo",CHANGE:"change",NOTIFY:"notify",LAYOUT_CELLS:"layoutCells",CLICK:"click",SCALE:"scale",TRANSLATE:"translate",SCALE_AND_TRANSLATE:"scaleAndTranslate",
335UP:"up",DOWN:"down",ADD:"add",REMOVE:"remove",CLEAR:"clear",ADD_CELLS:"addCells",CELLS_ADDED:"cellsAdded",MOVE_CELLS:"moveCells",CELLS_MOVED:"cellsMoved",RESIZE_CELLS:"resizeCells",CELLS_RESIZED:"cellsResized",TOGGLE_CELLS:"toggleCells",CELLS_TOGGLED:"cellsToggled",ORDER_CELLS:"orderCells",CELLS_ORDERED:"cellsOrdered",REMOVE_CELLS:"removeCells",CELLS_REMOVED:"cellsRemoved",GROUP_CELLS:"groupCells",UNGROUP_CELLS:"ungroupCells",REMOVE_CELLS_FROM_PARENT:"removeCellsFromParent",FOLD_CELLS:"foldCells",
336CELLS_FOLDED:"cellsFolded",ALIGN_CELLS:"alignCells",LABEL_CHANGED:"labelChanged",CONNECT_CELL:"connectCell",CELL_CONNECTED:"cellConnected",SPLIT_EDGE:"splitEdge",FLIP_EDGE:"flipEdge",START_EDITING:"startEditing",EDITING_STARTED:"editingStarted",EDITING_STOPPED:"editingStopped",ADD_OVERLAY:"addOverlay",REMOVE_OVERLAY:"removeOverlay",UPDATE_CELL_SIZE:"updateCellSize",ESCAPE:"escape",DOUBLE_CLICK:"doubleClick",START:"start",RESET:"reset",PINCH_THRESHOLD:10};
337function mxXmlRequest(a,b,c,d,e,f){this.url=a;this.params=b;this.method=c||"POST";this.async=null!=d?d:!0;this.username=e;this.password=f}mxXmlRequest.prototype.url=null;mxXmlRequest.prototype.params=null;mxXmlRequest.prototype.method=null;mxXmlRequest.prototype.async=null;mxXmlRequest.prototype.binary=!1;mxXmlRequest.prototype.withCredentials=!1;mxXmlRequest.prototype.username=null;mxXmlRequest.prototype.password=null;mxXmlRequest.prototype.request=null;
338mxXmlRequest.prototype.decodeSimulateValues=!1;mxXmlRequest.prototype.isBinary=function(){return this.binary};mxXmlRequest.prototype.setBinary=function(a){this.binary=a};mxXmlRequest.prototype.getText=function(){return this.request.responseText};mxXmlRequest.prototype.isReady=function(){return 4==this.request.readyState};mxXmlRequest.prototype.getDocumentElement=function(){var a=this.getXml();return null!=a?a.documentElement:null};
339mxXmlRequest.prototype.getXml=function(){var a=this.request.responseXML;if(9<=document.documentMode||null==a||null==a.documentElement)a=mxUtils.parseXml(this.request.responseText);return a};mxXmlRequest.prototype.getStatus=function(){return null!=this.request?this.request.status:null};
340mxXmlRequest.prototype.create=function(){if(window.XMLHttpRequest)return function(){var a=new XMLHttpRequest;this.isBinary()&&a.overrideMimeType&&a.overrideMimeType("text/plain; charset=x-user-defined");return a};if("undefined"!=typeof ActiveXObject)return function(){return new ActiveXObject("Microsoft.XMLHTTP")}}();
341mxXmlRequest.prototype.send=function(a,b,c,d){this.request=this.create();null!=this.request&&(null!=a&&(this.request.onreadystatechange=mxUtils.bind(this,function(){this.isReady()&&(a(this),this.request.onreadystatechange=null)})),this.request.open(this.method,this.url,this.async,this.username,this.password),this.setRequestHeaders(this.request,this.params),window.XMLHttpRequest&&this.withCredentials&&(this.request.withCredentials="true"),(null==document.documentMode||9<document.documentMode)&&window.XMLHttpRequest&&
342null!=c&&null!=d&&(this.request.timeout=c,this.request.ontimeout=d),this.request.send(this.params))};mxXmlRequest.prototype.setRequestHeaders=function(a,b){null!=b&&a.setRequestHeader("Content-Type","application/x-www-form-urlencoded")};
343mxXmlRequest.prototype.simulate=function(a,b){a=a||document;var c=null;a==document&&(c=window.onbeforeunload,window.onbeforeunload=null);var d=a.createElement("form");d.setAttribute("method",this.method);d.setAttribute("action",this.url);null!=b&&d.setAttribute("target",b);d.style.display="none";d.style.visibility="hidden";for(var e=0<this.params.indexOf("&")?this.params.split("&"):this.params.split(),f=0;f<e.length;f++){var g=e[f].indexOf("=");if(0<g){var k=e[f].substring(0,g),g=e[f].substring(g+
3441);this.decodeSimulateValues&&(g=decodeURIComponent(g));var l=a.createElement("textarea");l.setAttribute("wrap","off");l.setAttribute("name",k);mxUtils.write(l,g);d.appendChild(l)}}a.body.appendChild(d);d.submit();null!=d.parentNode&&d.parentNode.removeChild(d);null!=c&&(window.onbeforeunload=c)};
345var mxClipboard={STEPSIZE:10,insertCount:1,cells:null,setCells:function(a){mxClipboard.cells=a},getCells:function(){return mxClipboard.cells},isEmpty:function(){return null==mxClipboard.getCells()},cut:function(a,b){b=mxClipboard.copy(a,b);mxClipboard.insertCount=0;mxClipboard.removeCells(a,b,!1);return b},removeCells:function(a,b,c){a.removeCells(b,c)},copy:function(a,b){b=b||a.getSelectionCells();var c=a.getExportableCells(a.model.getTopmostCells(b));mxClipboard.insertCount=1;mxClipboard.setCells(a.cloneCells(c));
346return c},paste:function(a){var b=null;if(!mxClipboard.isEmpty()){var b=a.getImportableCells(mxClipboard.getCells()),c=mxClipboard.insertCount*mxClipboard.STEPSIZE,d=a.getDefaultParent(),b=a.importCells(b,c,c,d);mxClipboard.insertCount++;a.setSelectionCells(b)}return b}};
347function mxWindow(a,b,c,d,e,f,g,k,l,m){null!=b&&(g=null!=g?g:!0,this.content=b,this.init(c,d,e,f,m),this.installMaximizeHandler(),this.installMinimizeHandler(),this.installCloseHandler(),this.setMinimizable(g),this.setTitle(a),(null==k||k)&&this.installMoveHandler(),null!=l&&null!=l.parentNode?l.parentNode.replaceChild(this.div,l):document.body.appendChild(this.div))}mxWindow.prototype=new mxEventSource;mxWindow.prototype.constructor=mxWindow;mxWindow.prototype.closeImage=mxClient.imageBasePath+"/close.gif";
348mxWindow.prototype.minimizeImage=mxClient.imageBasePath+"/minimize.gif";mxWindow.prototype.normalizeImage=mxClient.imageBasePath+"/normalize.gif";mxWindow.prototype.maximizeImage=mxClient.imageBasePath+"/maximize.gif";mxWindow.prototype.resizeImage=mxClient.imageBasePath+"/resize.gif";mxWindow.prototype.visible=!1;mxWindow.prototype.minimumSize=new mxRectangle(0,0,50,40);mxWindow.prototype.destroyOnClose=!0;
349mxWindow.prototype.contentHeightCorrection=8==document.documentMode||7==document.documentMode?6:2;mxWindow.prototype.title=null;mxWindow.prototype.content=null;
350mxWindow.prototype.init=function(a,b,c,d,e){e=null!=e?e:"mxWindow";this.div=document.createElement("div");this.div.className=e;this.div.style.left=a+"px";this.div.style.top=b+"px";this.table=document.createElement("table");this.table.className=e;mxClient.IS_POINTER&&(this.div.style.touchAction="none");null!=c&&(this.div.style.width=c+"px",this.table.style.width=c+"px");null!=d&&(this.div.style.height=d+"px",this.table.style.height=d+"px");a=document.createElement("tbody");b=document.createElement("tr");
351this.title=document.createElement("td");this.title.className=e+"Title";this.buttons=document.createElement("div");this.buttons.style.position="absolute";this.buttons.style.display="inline-block";this.buttons.style.right="4px";this.buttons.style.top="5px";this.title.appendChild(this.buttons);b.appendChild(this.title);a.appendChild(b);b=document.createElement("tr");this.td=document.createElement("td");this.td.className=e+"Pane";7==document.documentMode&&(this.td.style.height="100%");this.contentWrapper=
352document.createElement("div");this.contentWrapper.className=e+"Pane";this.contentWrapper.style.width="100%";this.contentWrapper.appendChild(this.content);"DIV"!=this.content.nodeName.toUpperCase()&&(this.contentWrapper.style.height="100%");this.td.appendChild(this.contentWrapper);b.appendChild(this.td);a.appendChild(b);this.table.appendChild(a);this.div.appendChild(this.table);e=mxUtils.bind(this,function(a){this.activate()});mxEvent.addGestureListeners(this.title,e);mxEvent.addGestureListeners(this.table,
353e);this.hide()};mxWindow.prototype.setTitle=function(a){for(var b=this.title.firstChild;null!=b;){var c=b.nextSibling;b.nodeType==mxConstants.NODETYPE_TEXT&&b.parentNode.removeChild(b);b=c}mxUtils.write(this.title,a||"");this.title.appendChild(this.buttons)};mxWindow.prototype.setScrollable=function(a){if(null==navigator.userAgent||0>navigator.userAgent.indexOf("Presto/2.5"))this.contentWrapper.style.overflow=a?"auto":"hidden"};
354mxWindow.prototype.activate=function(){if(mxWindow.activeWindow!=this){var a=mxUtils.getCurrentStyle(this.getElement()),a=null!=a?a.zIndex:3;if(mxWindow.activeWindow){var b=mxWindow.activeWindow.getElement();null!=b&&null!=b.style&&(b.style.zIndex=a)}b=mxWindow.activeWindow;this.getElement().style.zIndex=parseInt(a)+1;mxWindow.activeWindow=this;this.fireEvent(new mxEventObject(mxEvent.ACTIVATE,"previousWindow",b))}};mxWindow.prototype.getElement=function(){return this.div};
355mxWindow.prototype.fit=function(){mxUtils.fit(this.div)};mxWindow.prototype.isResizable=function(){return null!=this.resize?"none"!=this.resize.style.display:!1};
356mxWindow.prototype.setResizable=function(a){if(a)if(null==this.resize){this.resize=document.createElement("img");this.resize.style.position="absolute";this.resize.style.bottom="2px";this.resize.style.right="2px";this.resize.setAttribute("src",this.resizeImage);this.resize.style.cursor="nw-resize";var b=null,c=null,d=null,e=null;a=mxUtils.bind(this,function(a){this.activate();b=mxEvent.getClientX(a);c=mxEvent.getClientY(a);d=this.div.offsetWidth;e=this.div.offsetHeight;mxEvent.addGestureListeners(document,
357null,f,g);this.fireEvent(new mxEventObject(mxEvent.RESIZE_START,"event",a));mxEvent.consume(a)});var f=mxUtils.bind(this,function(a){if(null!=b&&null!=c){var f=mxEvent.getClientX(a)-b,g=mxEvent.getClientY(a)-c;this.setSize(d+f,e+g);this.fireEvent(new mxEventObject(mxEvent.RESIZE,"event",a));mxEvent.consume(a)}}),g=mxUtils.bind(this,function(a){null!=b&&null!=c&&(c=b=null,mxEvent.removeGestureListeners(document,null,f,g),this.fireEvent(new mxEventObject(mxEvent.RESIZE_END,"event",a)),mxEvent.consume(a))});
358mxEvent.addGestureListeners(this.resize,a,f,g);this.div.appendChild(this.resize)}else this.resize.style.display="inline";else null!=this.resize&&(this.resize.style.display="none")};
359mxWindow.prototype.setSize=function(a,b){a=Math.max(this.minimumSize.width,a);b=Math.max(this.minimumSize.height,b);this.div.style.width=a+"px";this.div.style.height=b+"px";this.table.style.width=a+"px";this.table.style.height=b+"px";this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-this.contentHeightCorrection+"px"};mxWindow.prototype.setMinimizable=function(a){this.minimizeImg.style.display=a?"":"none"};
360mxWindow.prototype.getMinimumSize=function(){return new mxRectangle(0,0,0,this.title.offsetHeight)};
361mxWindow.prototype.toggleMinimized=function(a){this.activate();if(this.minimized)this.minimized=!1,this.minimizeImg.setAttribute("src",this.minimizeImage),this.minimizeImg.setAttribute("title","Minimize"),this.contentWrapper.style.display="",this.maximize.style.display=this.maxDisplay,this.div.style.height=this.height,this.table.style.height=this.height,null!=this.resize&&(this.resize.style.visibility=""),this.fireEvent(new mxEventObject(mxEvent.NORMALIZE,"event",a));else{this.minimized=!0;this.minimizeImg.setAttribute("src",
362this.normalizeImage);this.minimizeImg.setAttribute("title","Normalize");this.contentWrapper.style.display="none";this.maxDisplay=this.maximize.style.display;this.maximize.style.display="none";this.height=this.table.style.height;var b=this.getMinimumSize();0<b.height&&(this.div.style.height=b.height+"px",this.table.style.height=b.height+"px");0<b.width&&(this.div.style.width=b.width+"px",this.table.style.width=b.width+"px");null!=this.resize&&(this.resize.style.visibility="hidden");this.fireEvent(new mxEventObject(mxEvent.MINIMIZE,
363"event",a))}};
364mxWindow.prototype.installMinimizeHandler=function(){this.minimizeImg=document.createElement("img");this.minimizeImg.setAttribute("src",this.minimizeImage);this.minimizeImg.setAttribute("title","Minimize");this.minimizeImg.style.cursor="pointer";this.minimizeImg.style.marginLeft="2px";this.minimizeImg.style.display="none";this.buttons.appendChild(this.minimizeImg);this.minimized=!1;this.height=this.maxDisplay=null;var a=mxUtils.bind(this,function(a){this.toggleMinimized(a);mxEvent.consume(a)});mxEvent.addGestureListeners(this.minimizeImg,
365a)};mxWindow.prototype.setMaximizable=function(a){this.maximize.style.display=a?"":"none"};
366mxWindow.prototype.installMaximizeHandler=function(){this.maximize=document.createElement("img");this.maximize.setAttribute("src",this.maximizeImage);this.maximize.setAttribute("title","Maximize");this.maximize.style.cursor="default";this.maximize.style.marginLeft="2px";this.maximize.style.cursor="pointer";this.maximize.style.display="none";this.buttons.appendChild(this.maximize);var a=!1,b=null,c=null,d=null,e=null,f=null,g=mxUtils.bind(this,function(g){this.activate();if("none"!=this.maximize.style.display){if(a){a=
367!1;this.maximize.setAttribute("src",this.maximizeImage);this.maximize.setAttribute("title","Maximize");this.contentWrapper.style.display="";this.minimizeImg.style.display=f;this.div.style.left=b+"px";this.div.style.top=c+"px";this.div.style.height=d;this.div.style.width=e;k=mxUtils.getCurrentStyle(this.contentWrapper);if("auto"==k.overflow||null!=this.resize)this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-this.contentHeightCorrection+"px";this.table.style.height=d;this.table.style.width=
368e;null!=this.resize&&(this.resize.style.visibility="");this.fireEvent(new mxEventObject(mxEvent.NORMALIZE,"event",g))}else{a=!0;this.maximize.setAttribute("src",this.normalizeImage);this.maximize.setAttribute("title","Normalize");this.contentWrapper.style.display="";f=this.minimizeImg.style.display;this.minimizeImg.style.display="none";b=parseInt(this.div.style.left);c=parseInt(this.div.style.top);d=this.table.style.height;e=this.table.style.width;this.div.style.left="0px";this.div.style.top="0px";
369k=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0);this.div.style.width=document.body.clientWidth-2+"px";this.div.style.height=k-2+"px";this.table.style.width=document.body.clientWidth-2+"px";this.table.style.height=k-2+"px";null!=this.resize&&(this.resize.style.visibility="hidden");var k=mxUtils.getCurrentStyle(this.contentWrapper);if("auto"==k.overflow||null!=this.resize)this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-this.contentHeightCorrection+
370"px";this.fireEvent(new mxEventObject(mxEvent.MAXIMIZE,"event",g))}mxEvent.consume(g)}});mxEvent.addGestureListeners(this.maximize,g);mxEvent.addListener(this.title,"dblclick",g)};
371mxWindow.prototype.installMoveHandler=function(){this.title.style.cursor="move";mxEvent.addGestureListeners(this.title,mxUtils.bind(this,function(a){var b=mxEvent.getClientX(a),c=mxEvent.getClientY(a),d=this.getX(),e=this.getY(),f=mxUtils.bind(this,function(a){var f=mxEvent.getClientX(a)-b,g=mxEvent.getClientY(a)-c;this.setLocation(d+f,e+g);this.fireEvent(new mxEventObject(mxEvent.MOVE,"event",a));mxEvent.consume(a)}),g=mxUtils.bind(this,function(a){mxEvent.removeGestureListeners(document,null,f,
372g);this.fireEvent(new mxEventObject(mxEvent.MOVE_END,"event",a));mxEvent.consume(a)});mxEvent.addGestureListeners(document,null,f,g);this.fireEvent(new mxEventObject(mxEvent.MOVE_START,"event",a));mxEvent.consume(a)}));mxClient.IS_POINTER&&(this.title.style.touchAction="none")};mxWindow.prototype.setLocation=function(a,b){this.div.style.left=a+"px";this.div.style.top=b+"px"};mxWindow.prototype.getX=function(){return parseInt(this.div.style.left)};mxWindow.prototype.getY=function(){return parseInt(this.div.style.top)};
373mxWindow.prototype.installCloseHandler=function(){this.closeImg=document.createElement("img");this.closeImg.setAttribute("src",this.closeImage);this.closeImg.setAttribute("title","Close");this.closeImg.style.marginLeft="2px";this.closeImg.style.cursor="pointer";this.closeImg.style.display="none";this.buttons.appendChild(this.closeImg);mxEvent.addGestureListeners(this.closeImg,mxUtils.bind(this,function(a){this.fireEvent(new mxEventObject(mxEvent.CLOSE,"event",a));this.destroyOnClose?this.destroy():
374this.setVisible(!1);mxEvent.consume(a)}))};mxWindow.prototype.setImage=function(a){this.image=document.createElement("img");this.image.setAttribute("src",a);this.image.setAttribute("align","left");this.image.style.marginRight="4px";this.image.style.marginLeft="0px";this.image.style.marginTop="-2px";this.title.insertBefore(this.image,this.title.firstChild)};mxWindow.prototype.setClosable=function(a){this.closeImg.style.display=a?"":"none"};
375mxWindow.prototype.isVisible=function(){return null!=this.div?"none"!=this.div.style.display:!1};mxWindow.prototype.setVisible=function(a){null!=this.div&&this.isVisible()!=a&&(a?this.show():this.hide())};
376mxWindow.prototype.show=function(){this.div.style.display="";this.activate();"auto"!=mxUtils.getCurrentStyle(this.contentWrapper).overflow&&null==this.resize||"none"==this.contentWrapper.style.display||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-this.contentHeightCorrection+"px");this.fireEvent(new mxEventObject(mxEvent.SHOW))};mxWindow.prototype.hide=function(){this.div.style.display="none";this.fireEvent(new mxEventObject(mxEvent.HIDE))};
377mxWindow.prototype.destroy=function(){this.fireEvent(new mxEventObject(mxEvent.DESTROY));null!=this.div&&(mxEvent.release(this.div),this.div.parentNode.removeChild(this.div),this.div=null);this.contentWrapper=this.content=this.title=null};function mxForm(a){this.table=document.createElement("table");this.table.className=a;this.body=document.createElement("tbody");this.table.appendChild(this.body)}mxForm.prototype.table=null;mxForm.prototype.body=!1;mxForm.prototype.getTable=function(){return this.table};
378mxForm.prototype.addButtons=function(a,b){var c=document.createElement("tr"),d=document.createElement("td");c.appendChild(d);var d=document.createElement("td"),e=document.createElement("button");mxUtils.write(e,mxResources.get("ok")||"OK");d.appendChild(e);mxEvent.addListener(e,"click",function(){a()});e=document.createElement("button");mxUtils.write(e,mxResources.get("cancel")||"Cancel");d.appendChild(e);mxEvent.addListener(e,"click",function(){b()});c.appendChild(d);this.body.appendChild(c)};
379mxForm.prototype.addText=function(a,b,c){var d=document.createElement("input");d.setAttribute("type",c||"text");d.value=b;return this.addField(a,d)};mxForm.prototype.addCheckbox=function(a,b){var c=document.createElement("input");c.setAttribute("type","checkbox");this.addField(a,c);b&&(c.checked=!0);return c};mxForm.prototype.addTextarea=function(a,b,c){var d=document.createElement("textarea");mxClient.IS_NS&&c--;d.setAttribute("rows",c||2);d.value=b;return this.addField(a,d)};
380mxForm.prototype.addCombo=function(a,b,c){var d=document.createElement("select");null!=c&&d.setAttribute("size",c);b&&d.setAttribute("multiple","true");return this.addField(a,d)};mxForm.prototype.addOption=function(a,b,c,d){var e=document.createElement("option");mxUtils.writeln(e,b);e.setAttribute("value",c);d&&e.setAttribute("selected",d);a.appendChild(e)};
381mxForm.prototype.addField=function(a,b){var c=document.createElement("tr"),d=document.createElement("td");mxUtils.write(d,a);c.appendChild(d);d=document.createElement("td");d.appendChild(b);c.appendChild(d);this.body.appendChild(c);return b};function mxImage(a,b,c,d,e){this.src=a;this.width=null!=b?b:this.width;this.height=null!=c?c:this.height;this.x=null!=d?d:this.x;this.y=null!=e?e:this.y}mxImage.prototype.src=null;mxImage.prototype.width=0;mxImage.prototype.height=0;mxImage.prototype.x=0;
382mxImage.prototype.y=0;function mxDivResizer(a,b){if("div"==a.nodeName.toLowerCase()){null==b&&(b=window);this.div=a;var c=mxUtils.getCurrentStyle(a);null!=c&&(this.resizeWidth="auto"==c.width,this.resizeHeight="auto"==c.height);mxEvent.addListener(b,"resize",mxUtils.bind(this,function(a){this.handlingResize||(this.handlingResize=!0,this.resize(),this.handlingResize=!1)}));this.resize()}}mxDivResizer.prototype.resizeWidth=!0;mxDivResizer.prototype.resizeHeight=!0;
383mxDivResizer.prototype.handlingResize=!1;mxDivResizer.prototype.resize=function(){var a=this.getDocumentWidth(),b=this.getDocumentHeight(),c=parseInt(this.div.style.left),d=parseInt(this.div.style.right),e=parseInt(this.div.style.top),f=parseInt(this.div.style.bottom);this.resizeWidth&&!isNaN(c)&&!isNaN(d)&&0<=c&&0<=d&&0<a-d-c&&(this.div.style.width=a-d-c+"px");this.resizeHeight&&!isNaN(e)&&!isNaN(f)&&0<=e&&0<=f&&0<b-e-f&&(this.div.style.height=b-e-f+"px")};
384mxDivResizer.prototype.getDocumentWidth=function(){return document.body.clientWidth};mxDivResizer.prototype.getDocumentHeight=function(){return document.body.clientHeight};
385function mxDragSource(a,b){this.element=a;this.dropHandler=b;mxEvent.addGestureListeners(a,mxUtils.bind(this,function(a){this.mouseDown(a)}));mxEvent.addListener(a,"dragstart",function(a){mxEvent.consume(a)});this.eventConsumer=function(a,b){var c=b.getProperty("eventName"),d=b.getProperty("event");c!=mxEvent.MOUSE_DOWN&&d.consume()}}mxDragSource.prototype.element=null;mxDragSource.prototype.dropHandler=null;mxDragSource.prototype.dragOffset=null;mxDragSource.prototype.dragElement=null;
386mxDragSource.prototype.previewElement=null;mxDragSource.prototype.previewOffset=null;mxDragSource.prototype.enabled=!0;mxDragSource.prototype.currentGraph=null;mxDragSource.prototype.currentDropTarget=null;mxDragSource.prototype.currentPoint=null;mxDragSource.prototype.currentGuide=null;mxDragSource.prototype.currentHighlight=null;mxDragSource.prototype.autoscroll=!0;mxDragSource.prototype.guidesEnabled=!0;mxDragSource.prototype.gridEnabled=!0;mxDragSource.prototype.highlightDropTargets=!0;
387mxDragSource.prototype.dragElementZIndex=100;mxDragSource.prototype.dragElementOpacity=70;mxDragSource.prototype.checkEventSource=!0;mxDragSource.prototype.isEnabled=function(){return this.enabled};mxDragSource.prototype.setEnabled=function(a){this.enabled=a};mxDragSource.prototype.isGuidesEnabled=function(){return this.guidesEnabled};mxDragSource.prototype.setGuidesEnabled=function(a){this.guidesEnabled=a};mxDragSource.prototype.isGridEnabled=function(){return this.gridEnabled};
388mxDragSource.prototype.setGridEnabled=function(a){this.gridEnabled=a};mxDragSource.prototype.getGraphForEvent=function(a){return null};mxDragSource.prototype.getDropTarget=function(a,b,c,d){return a.getCellAt(b,c)};mxDragSource.prototype.createDragElement=function(a){return this.element.cloneNode(!0)};mxDragSource.prototype.createPreviewElement=function(a){return null};mxDragSource.prototype.isActive=function(){return null!=this.mouseMoveHandler};
389mxDragSource.prototype.reset=function(){null!=this.currentGraph&&(this.dragExit(this.currentGraph),this.currentGraph=null);this.removeDragElement();this.removeListeners();this.stopDrag()};
390mxDragSource.prototype.mouseDown=function(a){this.enabled&&!mxEvent.isConsumed(a)&&null==this.mouseMoveHandler&&(this.startDrag(a),this.mouseMoveHandler=mxUtils.bind(this,this.mouseMove),this.mouseUpHandler=mxUtils.bind(this,this.mouseUp),mxEvent.addGestureListeners(document,null,this.mouseMoveHandler,this.mouseUpHandler),mxClient.IS_TOUCH&&!mxEvent.isMouseEvent(a)&&(this.eventSource=mxEvent.getSource(a),mxEvent.addGestureListeners(this.eventSource,null,this.mouseMoveHandler,this.mouseUpHandler)))};
391mxDragSource.prototype.startDrag=function(a){this.dragElement=this.createDragElement(a);this.dragElement.style.position="absolute";this.dragElement.style.zIndex=this.dragElementZIndex;mxUtils.setOpacity(this.dragElement,this.dragElementOpacity);this.checkEventSource&&mxClient.IS_SVG&&(this.dragElement.style.pointerEvents="none")};mxDragSource.prototype.stopDrag=function(){this.removeDragElement()};
392mxDragSource.prototype.removeDragElement=function(){null!=this.dragElement&&(null!=this.dragElement.parentNode&&this.dragElement.parentNode.removeChild(this.dragElement),this.dragElement=null)};mxDragSource.prototype.getElementForEvent=function(a){return mxEvent.isTouchEvent(a)||mxEvent.isPenEvent(a)?document.elementFromPoint(mxEvent.getClientX(a),mxEvent.getClientY(a)):mxEvent.getSource(a)};
393mxDragSource.prototype.graphContainsEvent=function(a,b){var c=mxEvent.getClientX(b),d=mxEvent.getClientY(b),e=mxUtils.getOffset(a.container),f=mxUtils.getScrollOrigin(),g=this.getElementForEvent(b);if(this.checkEventSource)for(;null!=g&&g!=a.container;)g=g.parentNode;return null!=g&&c>=e.x-f.x&&d>=e.y-f.y&&c<=e.x-f.x+a.container.offsetWidth&&d<=e.y-f.y+a.container.offsetHeight};
394mxDragSource.prototype.mouseMove=function(a){var b=this.getGraphForEvent(a);null==b||this.graphContainsEvent(b,a)||(b=null);b!=this.currentGraph&&(null!=this.currentGraph&&this.dragExit(this.currentGraph,a),this.currentGraph=b,null!=this.currentGraph&&this.dragEnter(this.currentGraph,a));null!=this.currentGraph&&this.dragOver(this.currentGraph,a);if(null==this.dragElement||null!=this.previewElement&&"visible"==this.previewElement.style.visibility)null!=this.dragElement&&(this.dragElement.style.visibility=
395"hidden");else{var b=mxEvent.getClientX(a),c=mxEvent.getClientY(a);null==this.dragElement.parentNode&&document.body.appendChild(this.dragElement);this.dragElement.style.visibility="visible";null!=this.dragOffset&&(b+=this.dragOffset.x,c+=this.dragOffset.y);var d=mxUtils.getDocumentScrollOrigin(document);this.dragElement.style.left=b+d.x+"px";this.dragElement.style.top=c+d.y+"px"}mxEvent.consume(a)};
396mxDragSource.prototype.mouseUp=function(a){if(null!=this.currentGraph){if(null!=this.currentPoint&&(null==this.previewElement||"hidden"!=this.previewElement.style.visibility)){var b=this.currentGraph.view.scale,c=this.currentGraph.view.translate;this.drop(this.currentGraph,a,this.currentDropTarget,this.currentPoint.x/b-c.x,this.currentPoint.y/b-c.y)}this.dragExit(this.currentGraph);this.currentGraph=null}this.stopDrag();this.removeListeners();mxEvent.consume(a)};
397mxDragSource.prototype.removeListeners=function(){null!=this.eventSource&&(mxEvent.removeGestureListeners(this.eventSource,null,this.mouseMoveHandler,this.mouseUpHandler),this.eventSource=null);mxEvent.removeGestureListeners(document,null,this.mouseMoveHandler,this.mouseUpHandler);this.mouseUpHandler=this.mouseMoveHandler=null};
398mxDragSource.prototype.dragEnter=function(a,b){a.isMouseDown=!0;a.isMouseTrigger=mxEvent.isMouseEvent(b);this.previewElement=this.createPreviewElement(a);null!=this.previewElement&&this.checkEventSource&&mxClient.IS_SVG&&(this.previewElement.style.pointerEvents="none");this.isGuidesEnabled()&&null!=this.previewElement&&(this.currentGuide=new mxGuide(a,a.graphHandler.getGuideStates()));this.highlightDropTargets&&(this.currentHighlight=new mxCellHighlight(a,mxConstants.DROP_TARGET_COLOR));a.addListener(mxEvent.FIRE_MOUSE_EVENT,
399this.eventConsumer)};mxDragSource.prototype.dragExit=function(a,b){this.currentPoint=this.currentDropTarget=null;a.isMouseDown=!1;a.removeListener(this.eventConsumer);null!=this.previewElement&&(null!=this.previewElement.parentNode&&this.previewElement.parentNode.removeChild(this.previewElement),this.previewElement=null);null!=this.currentGuide&&(this.currentGuide.destroy(),this.currentGuide=null);null!=this.currentHighlight&&(this.currentHighlight.destroy(),this.currentHighlight=null)};
400mxDragSource.prototype.dragOver=function(a,b){var c=mxUtils.getOffset(a.container),d=mxUtils.getScrollOrigin(a.container),e=mxEvent.getClientX(b)-c.x+d.x-a.panDx,c=mxEvent.getClientY(b)-c.y+d.y-a.panDy;a.autoScroll&&(null==this.autoscroll||this.autoscroll)&&a.scrollPointToVisible(e,c,a.autoExtend);null!=this.currentHighlight&&a.isDropEnabled()&&(this.currentDropTarget=this.getDropTarget(a,e,c,b),d=a.getView().getState(this.currentDropTarget),this.currentHighlight.highlight(d));if(null!=this.previewElement){null==
401this.previewElement.parentNode&&(a.container.appendChild(this.previewElement),this.previewElement.style.zIndex="3",this.previewElement.style.position="absolute");var d=this.isGridEnabled()&&a.isGridEnabledEvent(b),f=!0;if(null!=this.currentGuide&&this.currentGuide.isEnabledForEvent(b))var f=parseInt(this.previewElement.style.width),g=parseInt(this.previewElement.style.height),f=new mxRectangle(0,0,f,g),c=new mxPoint(e,c),c=this.currentGuide.move(f,c,d,!0),f=!1,e=c.x,c=c.y;else if(d)var d=a.view.scale,
402g=a.view.translate,k=a.gridSize/2,e=(a.snap(e/d-g.x-k)+g.x)*d,c=(a.snap(c/d-g.y-k)+g.y)*d;null!=this.currentGuide&&f&&this.currentGuide.hide();null!=this.previewOffset&&(e+=this.previewOffset.x,c+=this.previewOffset.y);this.previewElement.style.left=Math.round(e)+"px";this.previewElement.style.top=Math.round(c)+"px";this.previewElement.style.visibility="visible"}this.currentPoint=new mxPoint(e,c)};
403mxDragSource.prototype.drop=function(a,b,c,d,e){this.dropHandler.apply(this,arguments);"hidden"!=a.container.style.visibility&&a.container.focus()};function mxToolbar(a){this.container=a}mxToolbar.prototype=new mxEventSource;mxToolbar.prototype.constructor=mxToolbar;mxToolbar.prototype.container=null;mxToolbar.prototype.enabled=!0;mxToolbar.prototype.noReset=!1;mxToolbar.prototype.updateDefaultMode=!0;
404mxToolbar.prototype.addItem=function(a,b,c,d,e,f){var g=document.createElement(null!=b?"img":"button"),k=e||(null!=f?"mxToolbarMode":"mxToolbarItem");g.className=k;g.setAttribute("src",b);null!=a&&(null!=b?g.setAttribute("title",a):mxUtils.write(g,a));this.container.appendChild(g);null!=c&&(mxEvent.addListener(g,"click",c),mxClient.IS_TOUCH&&mxEvent.addListener(g,"touchend",c));a=mxUtils.bind(this,function(a){null!=d?g.setAttribute("src",b):g.style.backgroundColor=""});mxEvent.addGestureListeners(g,
405mxUtils.bind(this,function(a){null!=d?g.setAttribute("src",d):g.style.backgroundColor="gray";if(null!=f){null==this.menu&&(this.menu=new mxPopupMenu,this.menu.init());var b=this.currentImg;this.menu.isMenuShowing()&&this.menu.hideMenu();b!=g&&(this.currentImg=g,this.menu.factoryMethod=f,b=new mxPoint(g.offsetLeft,g.offsetTop+g.offsetHeight),this.menu.popup(b.x,b.y,null,a),this.menu.isMenuShowing()&&(g.className=k+"Selected",this.menu.hideMenu=function(){mxPopupMenu.prototype.hideMenu.apply(this);
406g.className=k;this.currentImg=null}))}}),null,a);mxEvent.addListener(g,"mouseout",a);return g};mxToolbar.prototype.addCombo=function(a){var b=document.createElement("div");b.style.display="inline";b.className="mxToolbarComboContainer";var c=document.createElement("select");c.className=a||"mxToolbarCombo";b.appendChild(c);this.container.appendChild(b);return c};
407mxToolbar.prototype.addActionCombo=function(a,b){var c=document.createElement("select");c.className=b||"mxToolbarCombo";this.addOption(c,a,null);mxEvent.addListener(c,"change",function(a){var b=c.options[c.selectedIndex];c.selectedIndex=0;null!=b.funct&&b.funct(a)});this.container.appendChild(c);return c};mxToolbar.prototype.addOption=function(a,b,c){var d=document.createElement("option");mxUtils.writeln(d,b);"function"==typeof c?d.funct=c:d.setAttribute("value",c);a.appendChild(d);return d};
408mxToolbar.prototype.addSwitchMode=function(a,b,c,d,e){var f=document.createElement("img");f.initialClassName=e||"mxToolbarMode";f.className=f.initialClassName;f.setAttribute("src",b);f.altIcon=d;null!=a&&f.setAttribute("title",a);mxEvent.addListener(f,"click",mxUtils.bind(this,function(a){a=this.selectedMode.altIcon;null!=a?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",a)):this.selectedMode.className=this.selectedMode.initialClassName;this.updateDefaultMode&&
409(this.defaultMode=f);this.selectedMode=f;a=f.altIcon;null!=a?(f.altIcon=f.getAttribute("src"),f.setAttribute("src",a)):f.className=f.initialClassName+"Selected";this.fireEvent(new mxEventObject(mxEvent.SELECT));c()}));this.container.appendChild(f);null==this.defaultMode&&(this.defaultMode=f,this.selectMode(f),c());return f};
410mxToolbar.prototype.addMode=function(a,b,c,d,e,f){f=null!=f?f:!0;var g=document.createElement(null!=b?"img":"button");g.initialClassName=e||"mxToolbarMode";g.className=g.initialClassName;g.setAttribute("src",b);g.altIcon=d;null!=a&&g.setAttribute("title",a);this.enabled&&f&&(mxEvent.addListener(g,"click",mxUtils.bind(this,function(a){this.selectMode(g,c);this.noReset=!1})),mxEvent.addListener(g,"dblclick",mxUtils.bind(this,function(a){this.selectMode(g,c);this.noReset=!0})),null==this.defaultMode&&
411(this.defaultMode=g,this.defaultFunction=c,this.selectMode(g,c)));this.container.appendChild(g);return g};
412mxToolbar.prototype.selectMode=function(a,b){if(this.selectedMode!=a){if(null!=this.selectedMode){var c=this.selectedMode.altIcon;null!=c?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",c)):this.selectedMode.className=this.selectedMode.initialClassName}this.selectedMode=a;c=this.selectedMode.altIcon;null!=c?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",c)):this.selectedMode.className=this.selectedMode.initialClassName+
413"Selected";this.fireEvent(new mxEventObject(mxEvent.SELECT,"function",b))}};mxToolbar.prototype.resetMode=function(a){!a&&this.noReset||this.selectedMode==this.defaultMode||this.selectMode(this.defaultMode,this.defaultFunction)};mxToolbar.prototype.addSeparator=function(a){return this.addItem(null,a,null)};mxToolbar.prototype.addBreak=function(){mxUtils.br(this.container)};
414mxToolbar.prototype.addLine=function(){var a=document.createElement("hr");a.style.marginRight="6px";a.setAttribute("size","1");this.container.appendChild(a)};mxToolbar.prototype.destroy=function(){mxEvent.release(this.container);this.selectedMode=this.defaultFunction=this.defaultMode=this.container=null;null!=this.menu&&this.menu.destroy()};function mxUndoableEdit(a,b){this.source=a;this.changes=[];this.significant=null!=b?b:!0}mxUndoableEdit.prototype.source=null;
415mxUndoableEdit.prototype.changes=null;mxUndoableEdit.prototype.significant=null;mxUndoableEdit.prototype.undone=!1;mxUndoableEdit.prototype.redone=!1;mxUndoableEdit.prototype.isEmpty=function(){return 0==this.changes.length};mxUndoableEdit.prototype.isSignificant=function(){return this.significant};mxUndoableEdit.prototype.add=function(a){this.changes.push(a)};mxUndoableEdit.prototype.notify=function(){};mxUndoableEdit.prototype.die=function(){};
416mxUndoableEdit.prototype.undo=function(){if(!this.undone){this.source.fireEvent(new mxEventObject(mxEvent.START_EDIT));for(var a=this.changes.length-1;0<=a;a--){var b=this.changes[a];null!=b.execute?b.execute():null!=b.undo&&b.undo();this.source.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",b))}this.undone=!0;this.redone=!1;this.source.fireEvent(new mxEventObject(mxEvent.END_EDIT))}this.notify()};
417mxUndoableEdit.prototype.redo=function(){if(!this.redone){this.source.fireEvent(new mxEventObject(mxEvent.START_EDIT));for(var a=this.changes.length,b=0;b<a;b++){var c=this.changes[b];null!=c.execute?c.execute():null!=c.redo&&c.redo();this.source.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",c))}this.undone=!1;this.redone=!0;this.source.fireEvent(new mxEventObject(mxEvent.END_EDIT))}this.notify()};function mxUndoManager(a){this.size=null!=a?a:100;this.clear()}mxUndoManager.prototype=new mxEventSource;
418mxUndoManager.prototype.constructor=mxUndoManager;mxUndoManager.prototype.size=null;mxUndoManager.prototype.history=null;mxUndoManager.prototype.indexOfNextAdd=0;mxUndoManager.prototype.isEmpty=function(){return 0==this.history.length};mxUndoManager.prototype.clear=function(){this.history=[];this.indexOfNextAdd=0;this.fireEvent(new mxEventObject(mxEvent.CLEAR))};mxUndoManager.prototype.canUndo=function(){return 0<this.indexOfNextAdd};
419mxUndoManager.prototype.undo=function(){for(;0<this.indexOfNextAdd;){var a=this.history[--this.indexOfNextAdd];a.undo();if(a.isSignificant()){this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",a));break}}};mxUndoManager.prototype.canRedo=function(){return this.indexOfNextAdd<this.history.length};
420mxUndoManager.prototype.redo=function(){for(var a=this.history.length;this.indexOfNextAdd<a;){var b=this.history[this.indexOfNextAdd++];b.redo();if(b.isSignificant()){this.fireEvent(new mxEventObject(mxEvent.REDO,"edit",b));break}}};mxUndoManager.prototype.undoableEditHappened=function(a){this.trim();0<this.size&&this.size==this.history.length&&this.history.shift();this.history.push(a);this.indexOfNextAdd=this.history.length;this.fireEvent(new mxEventObject(mxEvent.ADD,"edit",a))};
421mxUndoManager.prototype.trim=function(){if(this.history.length>this.indexOfNextAdd)for(var a=this.history.splice(this.indexOfNextAdd,this.history.length-this.indexOfNextAdd),b=0;b<a.length;b++)a[b].die()};var mxUrlConverter=function(){};mxUrlConverter.prototype.enabled=!0;mxUrlConverter.prototype.baseUrl=null;mxUrlConverter.prototype.baseDomain=null;
422mxUrlConverter.prototype.updateBaseUrl=function(){this.baseDomain=location.protocol+"//"+location.host;this.baseUrl=this.baseDomain+location.pathname;var a=this.baseUrl.lastIndexOf("/");0<a&&(this.baseUrl=this.baseUrl.substring(0,a+1))};mxUrlConverter.prototype.isEnabled=function(){return this.enabled};mxUrlConverter.prototype.setEnabled=function(a){this.enabled=a};mxUrlConverter.prototype.getBaseUrl=function(){return this.baseUrl};mxUrlConverter.prototype.setBaseUrl=function(a){this.baseUrl=a};
423mxUrlConverter.prototype.getBaseDomain=function(){return this.baseDomain};mxUrlConverter.prototype.setBaseDomain=function(a){this.baseDomain=a};mxUrlConverter.prototype.isRelativeUrl=function(a){return null!=a&&"//"!=a.substring(0,2)&&"http://"!=a.substring(0,7)&&"https://"!=a.substring(0,8)&&"data:image"!=a.substring(0,10)&&"file://"!=a.substring(0,7)};
424mxUrlConverter.prototype.convert=function(a){this.isEnabled()&&this.isRelativeUrl(a)&&(null==this.getBaseUrl()&&this.updateBaseUrl(),a="/"==a.charAt(0)?this.getBaseDomain()+a:this.getBaseUrl()+a);return a};
425function mxPanningManager(a){this.thread=null;this.active=!1;this.dy=this.dx=this.t0y=this.t0x=this.tdy=this.tdx=0;this.scrollbars=!1;this.scrollTop=this.scrollLeft=0;this.mouseListener={mouseDown:function(a,b){},mouseMove:function(a,b){},mouseUp:mxUtils.bind(this,function(a,b){this.active&&this.stop()})};a.addMouseListener(this.mouseListener);this.mouseUpListener=mxUtils.bind(this,function(){this.active&&this.stop()});mxEvent.addListener(document,"mouseup",this.mouseUpListener);var b=mxUtils.bind(this,
426function(){this.scrollbars=mxUtils.hasScrollbars(a.container);this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop;return window.setInterval(mxUtils.bind(this,function(){this.tdx-=this.dx;this.tdy-=this.dy;this.scrollbars?(a.panGraph(-a.container.scrollLeft-Math.ceil(this.dx),-a.container.scrollTop-Math.ceil(this.dy)),a.panDx=this.scrollLeft-a.container.scrollLeft,a.panDy=this.scrollTop-a.container.scrollTop,a.fireEvent(new mxEventObject(mxEvent.PAN))):a.panGraph(this.getDx(),
427this.getDy())}),this.delay)});this.isActive=function(){return active};this.getDx=function(){return Math.round(this.tdx)};this.getDy=function(){return Math.round(this.tdy)};this.start=function(){this.t0x=a.view.translate.x;this.t0y=a.view.translate.y;this.active=!0};this.panTo=function(c,d,e,f){this.active||this.start();this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop;var g=a.container;this.dx=c+(null!=e?e:0)-g.scrollLeft-g.clientWidth;this.dx=0>this.dx&&Math.abs(this.dx)<
428this.border?this.border+this.dx:this.handleMouseOut?Math.max(this.dx,0):0;0==this.dx&&(this.dx=c-g.scrollLeft,this.dx=0<this.dx&&this.dx<this.border?this.dx-this.border:this.handleMouseOut?Math.min(0,this.dx):0);this.dy=d+(null!=f?f:0)-g.scrollTop-g.clientHeight;this.dy=0>this.dy&&Math.abs(this.dy)<this.border?this.border+this.dy:this.handleMouseOut?Math.max(this.dy,0):0;0==this.dy&&(this.dy=d-g.scrollTop,this.dy=0<this.dy&&this.dy<this.border?this.dy-this.border:this.handleMouseOut?Math.min(0,this.dy):
4290);0!=this.dx||0!=this.dy?(this.dx*=this.damper,this.dy*=this.damper,null==this.thread&&(this.thread=b())):null!=this.thread&&(window.clearInterval(this.thread),this.thread=null)};this.stop=function(){if(this.active)if(this.active=!1,null!=this.thread&&(window.clearInterval(this.thread),this.thread=null),this.tdy=this.tdx=0,this.scrollbars)a.panDx=0,a.panDy=0,a.fireEvent(new mxEventObject(mxEvent.PAN));else{var b=a.panDx,d=a.panDy;if(0!=b||0!=d)a.panGraph(0,0),a.view.setTranslate(this.t0x+b/a.view.scale,
430this.t0y+d/a.view.scale)}};this.destroy=function(){a.removeMouseListener(this.mouseListener);mxEvent.removeListener(document,"mouseup",this.mouseUpListener)}}mxPanningManager.prototype.damper=1/6;mxPanningManager.prototype.delay=10;mxPanningManager.prototype.handleMouseOut=!0;mxPanningManager.prototype.border=0;function mxPopupMenu(a){this.factoryMethod=a;null!=a&&this.init()}mxPopupMenu.prototype=new mxEventSource;mxPopupMenu.prototype.constructor=mxPopupMenu;
431mxPopupMenu.prototype.submenuImage=mxClient.imageBasePath+"/submenu.gif";mxPopupMenu.prototype.zIndex=10006;mxPopupMenu.prototype.factoryMethod=null;mxPopupMenu.prototype.useLeftButtonForPopup=!1;mxPopupMenu.prototype.enabled=!0;mxPopupMenu.prototype.itemCount=0;mxPopupMenu.prototype.autoExpand=!1;mxPopupMenu.prototype.smartSeparators=!1;mxPopupMenu.prototype.labels=!0;
432mxPopupMenu.prototype.init=function(){this.table=document.createElement("table");this.table.className="mxPopupMenu";this.tbody=document.createElement("tbody");this.table.appendChild(this.tbody);this.div=document.createElement("div");this.div.className="mxPopupMenu";this.div.style.display="inline";this.div.style.zIndex=this.zIndex;this.div.appendChild(this.table);mxEvent.disableContextMenu(this.div)};mxPopupMenu.prototype.isEnabled=function(){return this.enabled};
433mxPopupMenu.prototype.setEnabled=function(a){this.enabled=a};mxPopupMenu.prototype.isPopupTrigger=function(a){return a.isPopupTrigger()||this.useLeftButtonForPopup&&mxEvent.isLeftMouseButton(a.getEvent())};
434mxPopupMenu.prototype.addItem=function(a,b,c,d,e,f,g,k){d=d||this;this.itemCount++;d.willAddSeparator&&(d.containsItems&&this.addSeparator(d,!0),d.willAddSeparator=!1);d.containsItems=!0;var l=document.createElement("tr");l.className="mxPopupMenuItem";var m=document.createElement("td");m.className="mxPopupMenuIcon";null!=b?(e=document.createElement("img"),e.src=b,m.appendChild(e)):null!=e&&(b=document.createElement("div"),b.className=e,m.appendChild(b));l.appendChild(m);this.labels&&(m=document.createElement("td"),
435m.className="mxPopupMenuItem"+(null==f||f?"":" mxDisabled"),mxUtils.write(m,a),m.align="left",l.appendChild(m),a=document.createElement("td"),a.className="mxPopupMenuItem"+(null==f||f?"":" mxDisabled"),a.style.paddingRight="6px",a.style.textAlign="right",l.appendChild(a),null==d.div&&this.createSubmenu(d));d.tbody.appendChild(l);if(0!=g&&0!=f){var n=null;mxEvent.addGestureListeners(l,mxUtils.bind(this,function(a){this.eventReceiver=l;d.activeRow!=l&&d.activeRow!=d&&(null!=d.activeRow&&null!=d.activeRow.div.parentNode&&
436this.hideSubmenu(d),null!=l.div&&(this.showSubmenu(d,l),d.activeRow=l));null!=document.selection&&8==document.documentMode&&(n=document.selection.createRange());mxEvent.consume(a)}),mxUtils.bind(this,function(a){d.activeRow!=l&&d.activeRow!=d&&(null!=d.activeRow&&null!=d.activeRow.div.parentNode&&this.hideSubmenu(d),this.autoExpand&&null!=l.div&&(this.showSubmenu(d,l),d.activeRow=l));k||(l.className="mxPopupMenuItemHover")}),mxUtils.bind(this,function(a){if(this.eventReceiver==l){d.activeRow!=l&&
437this.hideMenu();if(null!=n){try{n.select()}catch(q){}n=null}null!=c&&c(a)}this.eventReceiver=null;mxEvent.consume(a)}));k||mxEvent.addListener(l,"mouseout",mxUtils.bind(this,function(a){l.className="mxPopupMenuItem"}))}return l};mxPopupMenu.prototype.addCheckmark=function(a,b){var c=a.firstChild.nextSibling;c.style.backgroundImage="url('"+b+"')";c.style.backgroundRepeat="no-repeat";c.style.backgroundPosition="2px 50%"};
438mxPopupMenu.prototype.createSubmenu=function(a){a.table=document.createElement("table");a.table.className="mxPopupMenu";a.tbody=document.createElement("tbody");a.table.appendChild(a.tbody);a.div=document.createElement("div");a.div.className="mxPopupMenu";a.div.style.position="absolute";a.div.style.display="inline";a.div.style.zIndex=this.zIndex;a.div.appendChild(a.table);var b=document.createElement("img");b.setAttribute("src",this.submenuImage);td=a.firstChild.nextSibling.nextSibling;td.appendChild(b)};
439mxPopupMenu.prototype.showSubmenu=function(a,b){if(null!=b.div){b.div.style.left=a.div.offsetLeft+b.offsetLeft+b.offsetWidth-1+"px";b.div.style.top=a.div.offsetTop+b.offsetTop+"px";document.body.appendChild(b.div);var c=parseInt(b.div.offsetLeft),d=parseInt(b.div.offsetWidth),e=mxUtils.getDocumentScrollOrigin(document),f=document.documentElement;c+d>e.x+(document.body.clientWidth||f.clientWidth)&&(b.div.style.left=Math.max(0,a.div.offsetLeft-d+(mxClient.IS_IE?6:-6))+"px");b.div.style.overflowY="auto";
440b.div.style.overflowX="hidden";b.div.style.maxHeight=Math.max(document.body.clientHeight,document.documentElement.clientHeight)-10+"px";mxUtils.fit(b.div)}};
441mxPopupMenu.prototype.addSeparator=function(a,b){a=a||this;if(this.smartSeparators&&!b)a.willAddSeparator=!0;else if(null!=a.tbody){a.willAddSeparator=!1;var c=document.createElement("tr"),d=document.createElement("td");d.className="mxPopupMenuIcon";d.style.padding="0 0 0 0px";c.appendChild(d);d=document.createElement("td");d.style.padding="0 0 0 0px";d.setAttribute("colSpan","2");var e=document.createElement("hr");e.setAttribute("size","1");d.appendChild(e);c.appendChild(d);a.tbody.appendChild(c)}};
442mxPopupMenu.prototype.popup=function(a,b,c,d){if(null!=this.div&&null!=this.tbody&&null!=this.factoryMethod){this.div.style.left=a+"px";for(this.div.style.top=b+"px";null!=this.tbody.firstChild;)mxEvent.release(this.tbody.firstChild),this.tbody.removeChild(this.tbody.firstChild);this.itemCount=0;this.factoryMethod(this,c,d);0<this.itemCount&&(this.showMenu(),this.fireEvent(new mxEventObject(mxEvent.SHOW)))}};
443mxPopupMenu.prototype.isMenuShowing=function(){return null!=this.div&&this.div.parentNode==document.body};mxPopupMenu.prototype.showMenu=function(){9<=document.documentMode&&(this.div.style.filter="none");document.body.appendChild(this.div);mxUtils.fit(this.div)};mxPopupMenu.prototype.hideMenu=function(){null!=this.div&&(null!=this.div.parentNode&&this.div.parentNode.removeChild(this.div),this.hideSubmenu(this),this.containsItems=!1,this.fireEvent(new mxEventObject(mxEvent.HIDE)))};
444mxPopupMenu.prototype.hideSubmenu=function(a){null!=a.activeRow&&(this.hideSubmenu(a.activeRow),null!=a.activeRow.div.parentNode&&a.activeRow.div.parentNode.removeChild(a.activeRow.div),a.activeRow=null)};mxPopupMenu.prototype.destroy=function(){null!=this.div&&(mxEvent.release(this.div),null!=this.div.parentNode&&this.div.parentNode.removeChild(this.div),this.div=null)};
445function mxAutoSaveManager(a){this.changeHandler=mxUtils.bind(this,function(a,c){this.isEnabled()&&this.graphModelChanged(c.getProperty("edit").changes)});this.setGraph(a)}mxAutoSaveManager.prototype=new mxEventSource;mxAutoSaveManager.prototype.constructor=mxAutoSaveManager;mxAutoSaveManager.prototype.graph=null;mxAutoSaveManager.prototype.autoSaveDelay=10;mxAutoSaveManager.prototype.autoSaveThrottle=2;mxAutoSaveManager.prototype.autoSaveThreshold=5;mxAutoSaveManager.prototype.ignoredChanges=0;
446mxAutoSaveManager.prototype.lastSnapshot=0;mxAutoSaveManager.prototype.enabled=!0;mxAutoSaveManager.prototype.changeHandler=null;mxAutoSaveManager.prototype.isEnabled=function(){return this.enabled};mxAutoSaveManager.prototype.setEnabled=function(a){this.enabled=a};mxAutoSaveManager.prototype.setGraph=function(a){null!=this.graph&&this.graph.getModel().removeListener(this.changeHandler);this.graph=a;null!=this.graph&&this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler)};
447mxAutoSaveManager.prototype.save=function(){};mxAutoSaveManager.prototype.graphModelChanged=function(a){a=((new Date).getTime()-this.lastSnapshot)/1E3;a>this.autoSaveDelay||this.ignoredChanges>=this.autoSaveThreshold&&a>this.autoSaveThrottle?(this.save(),this.reset()):this.ignoredChanges++};mxAutoSaveManager.prototype.reset=function(){this.lastSnapshot=(new Date).getTime();this.ignoredChanges=0};mxAutoSaveManager.prototype.destroy=function(){this.setGraph(null)};
448function mxAnimation(a){this.delay=null!=a?a:20}mxAnimation.prototype=new mxEventSource;mxAnimation.prototype.constructor=mxAnimation;mxAnimation.prototype.delay=null;mxAnimation.prototype.thread=null;mxAnimation.prototype.isRunning=function(){return null!=this.thread};mxAnimation.prototype.startAnimation=function(){null==this.thread&&(this.thread=window.setInterval(mxUtils.bind(this,this.updateAnimation),this.delay))};mxAnimation.prototype.updateAnimation=function(){this.fireEvent(new mxEventObject(mxEvent.EXECUTE))};
449mxAnimation.prototype.stopAnimation=function(){null!=this.thread&&(window.clearInterval(this.thread),this.thread=null,this.fireEvent(new mxEventObject(mxEvent.DONE)))};function mxMorphing(a,b,c,d){mxAnimation.call(this,d);this.graph=a;this.steps=null!=b?b:6;this.ease=null!=c?c:1.5}mxMorphing.prototype=new mxAnimation;mxMorphing.prototype.constructor=mxMorphing;mxMorphing.prototype.graph=null;mxMorphing.prototype.steps=null;mxMorphing.prototype.step=0;mxMorphing.prototype.ease=null;
450mxMorphing.prototype.cells=null;mxMorphing.prototype.updateAnimation=function(){mxAnimation.prototype.updateAnimation.apply(this,arguments);var a=new mxCellStatePreview(this.graph);if(null!=this.cells)for(var b=0;b<this.cells.length;b++)this.animateCell(this.cells[b],a,!1);else this.animateCell(this.graph.getModel().getRoot(),a,!0);this.show(a);(a.isEmpty()||this.step++>=this.steps)&&this.stopAnimation()};mxMorphing.prototype.show=function(a){a.show()};
451mxMorphing.prototype.animateCell=function(a,b,c){var d=this.graph.getView().getState(a),e=null;if(null!=d&&(e=this.getDelta(d),this.graph.getModel().isVertex(a)&&(0!=e.x||0!=e.y))){var f=this.graph.view.getTranslate(),g=this.graph.view.getScale();e.x+=f.x*g;e.y+=f.y*g;b.moveState(d,-e.x/this.ease,-e.y/this.ease)}if(c&&!this.stopRecursion(d,e))for(d=this.graph.getModel().getChildCount(a),e=0;e<d;e++)this.animateCell(this.graph.getModel().getChildAt(a,e),b,c)};
452mxMorphing.prototype.stopRecursion=function(a,b){return null!=b&&(0!=b.x||0!=b.y)};mxMorphing.prototype.getDelta=function(a){var b=this.getOriginForCell(a.cell),c=this.graph.getView().getTranslate(),d=this.graph.getView().getScale();return new mxPoint((b.x-(a.x/d-c.x))*d,(b.y-(a.y/d-c.y))*d)};
453mxMorphing.prototype.getOriginForCell=function(a){var b=null;if(null!=a){var c=this.graph.getModel().getParent(a);a=this.graph.getCellGeometry(a);b=this.getOriginForCell(c);null!=a&&(a.relative?(c=this.graph.getCellGeometry(c),null!=c&&(b.x+=a.x*c.width,b.y+=a.y*c.height)):(b.x+=a.x,b.y+=a.y))}null==b&&(b=this.graph.view.getTranslate(),b=new mxPoint(-b.x,-b.y));return b};function mxImageBundle(a){this.images=[];this.alt=null!=a?a:!1}mxImageBundle.prototype.images=null;
454mxImageBundle.prototype.alt=null;mxImageBundle.prototype.putImage=function(a,b,c){this.images[a]={value:b,fallback:c}};mxImageBundle.prototype.getImage=function(a){var b=null;null!=a&&(a=this.images[a],null!=a&&(b=this.alt?a.fallback:a.value));return b};function mxImageExport(){}mxImageExport.prototype.includeOverlays=!1;
455mxImageExport.prototype.drawState=function(a,b){null!=a&&(this.visitStatesRecursive(a,b,mxUtils.bind(this,function(){this.drawCellState.apply(this,arguments)})),this.includeOverlays&&this.visitStatesRecursive(a,b,mxUtils.bind(this,function(){this.drawOverlays.apply(this,arguments)})))};
456mxImageExport.prototype.visitStatesRecursive=function(a,b,c){if(null!=a){c(a,b);for(var d=a.view.graph,e=d.model.getChildCount(a.cell),f=0;f<e;f++){var g=d.view.getState(d.model.getChildAt(a.cell,f));this.visitStatesRecursive(g,b,c)}}};mxImageExport.prototype.getLinkForCellState=function(a,b){return null};mxImageExport.prototype.getLinkTargetForCellState=function(a,b){return null};
457mxImageExport.prototype.drawCellState=function(a,b){var c=this.getLinkForCellState(a,b);null!=c&&b.setLink(c,this.getLinkTargetForCellState(a,b));this.drawShape(a,b);this.drawText(a,b);null!=c&&b.setLink(null)};mxImageExport.prototype.drawShape=function(a,b){a.shape instanceof mxShape&&a.shape.checkBounds()&&(b.save(),a.shape.beforePaint(b),a.shape.paint(b),a.shape.afterPaint(b),b.restore())};
458mxImageExport.prototype.drawText=function(a,b){null!=a.text&&a.text.checkBounds()&&(b.save(),a.text.beforePaint(b),a.text.paint(b),a.text.afterPaint(b),b.restore())};mxImageExport.prototype.drawOverlays=function(a,b){null!=a.overlays&&a.overlays.visit(function(a,d){d instanceof mxShape&&d.paint(b)})};function mxAbstractCanvas2D(){this.converter=this.createUrlConverter();this.reset()}mxAbstractCanvas2D.prototype.state=null;mxAbstractCanvas2D.prototype.states=null;
459mxAbstractCanvas2D.prototype.path=null;mxAbstractCanvas2D.prototype.rotateHtml=!0;mxAbstractCanvas2D.prototype.lastX=0;mxAbstractCanvas2D.prototype.lastY=0;mxAbstractCanvas2D.prototype.moveOp="M";mxAbstractCanvas2D.prototype.lineOp="L";mxAbstractCanvas2D.prototype.quadOp="Q";mxAbstractCanvas2D.prototype.curveOp="C";mxAbstractCanvas2D.prototype.closeOp="Z";mxAbstractCanvas2D.prototype.pointerEvents=!1;mxAbstractCanvas2D.prototype.createUrlConverter=function(){return new mxUrlConverter};
460mxAbstractCanvas2D.prototype.reset=function(){this.state=this.createState();this.states=[]};
461mxAbstractCanvas2D.prototype.createState=function(){return{dx:0,dy:0,scale:1,alpha:1,fillAlpha:1,strokeAlpha:1,fillColor:null,gradientFillAlpha:1,gradientColor:null,gradientAlpha:1,gradientDirection:null,strokeColor:null,strokeWidth:1,dashed:!1,dashPattern:"3 3",fixDash:!1,lineCap:"flat",lineJoin:"miter",miterLimit:10,fontColor:"#000000",fontBackgroundColor:null,fontBorderColor:null,fontSize:mxConstants.DEFAULT_FONTSIZE,fontFamily:mxConstants.DEFAULT_FONTFAMILY,fontStyle:0,shadow:!1,shadowColor:mxConstants.SHADOWCOLOR,
462shadowAlpha:mxConstants.SHADOW_OPACITY,shadowDx:mxConstants.SHADOW_OFFSET_X,shadowDy:mxConstants.SHADOW_OFFSET_Y,rotation:0,rotationCx:0,rotationCy:0}};mxAbstractCanvas2D.prototype.format=function(a){return Math.round(parseFloat(a))};
463mxAbstractCanvas2D.prototype.addOp=function(){if(null!=this.path&&(this.path.push(arguments[0]),2<arguments.length))for(var a=this.state,b=2;b<arguments.length;b+=2)this.lastX=arguments[b-1],this.lastY=arguments[b],this.path.push(this.format((this.lastX+a.dx)*a.scale)),this.path.push(this.format((this.lastY+a.dy)*a.scale))};mxAbstractCanvas2D.prototype.rotatePoint=function(a,b,c,d,e){c*=Math.PI/180;return mxUtils.getRotatedPoint(new mxPoint(a,b),Math.cos(c),Math.sin(c),new mxPoint(d,e))};
464mxAbstractCanvas2D.prototype.save=function(){this.states.push(this.state);this.state=mxUtils.clone(this.state)};mxAbstractCanvas2D.prototype.restore=function(){0<this.states.length&&(this.state=this.states.pop())};mxAbstractCanvas2D.prototype.setLink=function(a,b){};mxAbstractCanvas2D.prototype.scale=function(a){this.state.scale*=a;this.state.strokeWidth*=a};mxAbstractCanvas2D.prototype.translate=function(a,b){this.state.dx+=a;this.state.dy+=b};
465mxAbstractCanvas2D.prototype.rotate=function(a,b,c,d,e){};mxAbstractCanvas2D.prototype.setAlpha=function(a){this.state.alpha=a};mxAbstractCanvas2D.prototype.setFillAlpha=function(a){this.state.fillAlpha=a};mxAbstractCanvas2D.prototype.setStrokeAlpha=function(a){this.state.strokeAlpha=a};mxAbstractCanvas2D.prototype.setFillColor=function(a){a==mxConstants.NONE&&(a=null);this.state.fillColor=a;this.state.gradientColor=null};
466mxAbstractCanvas2D.prototype.setGradient=function(a,b,c,d,e,f,g,k,l){c=this.state;c.fillColor=a;c.gradientFillAlpha=null!=k?k:1;c.gradientColor=b;c.gradientAlpha=null!=l?l:1;c.gradientDirection=g};mxAbstractCanvas2D.prototype.setStrokeColor=function(a){a==mxConstants.NONE&&(a=null);this.state.strokeColor=a};mxAbstractCanvas2D.prototype.setStrokeWidth=function(a){this.state.strokeWidth=a};mxAbstractCanvas2D.prototype.setDashed=function(a,b){this.state.dashed=a;this.state.fixDash=b};
467mxAbstractCanvas2D.prototype.setDashPattern=function(a){this.state.dashPattern=a};mxAbstractCanvas2D.prototype.setLineCap=function(a){this.state.lineCap=a};mxAbstractCanvas2D.prototype.setLineJoin=function(a){this.state.lineJoin=a};mxAbstractCanvas2D.prototype.setMiterLimit=function(a){this.state.miterLimit=a};mxAbstractCanvas2D.prototype.setFontColor=function(a){a==mxConstants.NONE&&(a=null);this.state.fontColor=a};
468mxAbstractCanvas2D.prototype.setFontBackgroundColor=function(a){a==mxConstants.NONE&&(a=null);this.state.fontBackgroundColor=a};mxAbstractCanvas2D.prototype.setFontBorderColor=function(a){a==mxConstants.NONE&&(a=null);this.state.fontBorderColor=a};mxAbstractCanvas2D.prototype.setFontSize=function(a){this.state.fontSize=parseFloat(a)};mxAbstractCanvas2D.prototype.setFontFamily=function(a){this.state.fontFamily=a};
469mxAbstractCanvas2D.prototype.setFontStyle=function(a){null==a&&(a=0);this.state.fontStyle=a};mxAbstractCanvas2D.prototype.setShadow=function(a){this.state.shadow=a};mxAbstractCanvas2D.prototype.setShadowColor=function(a){a==mxConstants.NONE&&(a=null);this.state.shadowColor=a};mxAbstractCanvas2D.prototype.setShadowAlpha=function(a){this.state.shadowAlpha=a};mxAbstractCanvas2D.prototype.setShadowOffset=function(a,b){this.state.shadowDx=a;this.state.shadowDy=b};
470mxAbstractCanvas2D.prototype.begin=function(){this.lastY=this.lastX=0;this.path=[]};mxAbstractCanvas2D.prototype.moveTo=function(a,b){this.addOp(this.moveOp,a,b)};mxAbstractCanvas2D.prototype.lineTo=function(a,b){this.addOp(this.lineOp,a,b)};mxAbstractCanvas2D.prototype.quadTo=function(a,b,c,d){this.addOp(this.quadOp,a,b,c,d)};mxAbstractCanvas2D.prototype.curveTo=function(a,b,c,d,e,f){this.addOp(this.curveOp,a,b,c,d,e,f)};
471mxAbstractCanvas2D.prototype.arcTo=function(a,b,c,d,e,f,g){a=mxUtils.arcToCurves(this.lastX,this.lastY,a,b,c,d,e,f,g);if(null!=a)for(b=0;b<a.length;b+=6)this.curveTo(a[b],a[b+1],a[b+2],a[b+3],a[b+4],a[b+5])};mxAbstractCanvas2D.prototype.close=function(a,b,c,d,e,f){this.addOp(this.closeOp)};mxAbstractCanvas2D.prototype.end=function(){};function mxXmlCanvas2D(a){mxAbstractCanvas2D.call(this);this.root=a;this.writeDefaults()}mxUtils.extend(mxXmlCanvas2D,mxAbstractCanvas2D);
472mxXmlCanvas2D.prototype.textEnabled=!0;mxXmlCanvas2D.prototype.compressed=!0;
473mxXmlCanvas2D.prototype.writeDefaults=function(){var a;a=this.createElement("fontfamily");a.setAttribute("family",mxConstants.DEFAULT_FONTFAMILY);this.root.appendChild(a);a=this.createElement("fontsize");a.setAttribute("size",mxConstants.DEFAULT_FONTSIZE);this.root.appendChild(a);a=this.createElement("shadowcolor");a.setAttribute("color",mxConstants.SHADOWCOLOR);this.root.appendChild(a);a=this.createElement("shadowalpha");a.setAttribute("alpha",mxConstants.SHADOW_OPACITY);this.root.appendChild(a);
474a=this.createElement("shadowoffset");a.setAttribute("dx",mxConstants.SHADOW_OFFSET_X);a.setAttribute("dy",mxConstants.SHADOW_OFFSET_Y);this.root.appendChild(a)};mxXmlCanvas2D.prototype.format=function(a){return parseFloat(parseFloat(a).toFixed(2))};mxXmlCanvas2D.prototype.createElement=function(a){return this.root.ownerDocument.createElement(a)};mxXmlCanvas2D.prototype.save=function(){this.compressed&&mxAbstractCanvas2D.prototype.save.apply(this,arguments);this.root.appendChild(this.createElement("save"))};
475mxXmlCanvas2D.prototype.restore=function(){this.compressed&&mxAbstractCanvas2D.prototype.restore.apply(this,arguments);this.root.appendChild(this.createElement("restore"))};mxXmlCanvas2D.prototype.scale=function(a){var b=this.createElement("scale");b.setAttribute("scale",a);this.root.appendChild(b)};mxXmlCanvas2D.prototype.translate=function(a,b){var c=this.createElement("translate");c.setAttribute("dx",this.format(a));c.setAttribute("dy",this.format(b));this.root.appendChild(c)};
476mxXmlCanvas2D.prototype.rotate=function(a,b,c,d,e){var f=this.createElement("rotate");if(0!=a||b||c)f.setAttribute("theta",this.format(a)),f.setAttribute("flipH",b?"1":"0"),f.setAttribute("flipV",c?"1":"0"),f.setAttribute("cx",this.format(d)),f.setAttribute("cy",this.format(e)),this.root.appendChild(f)};
477mxXmlCanvas2D.prototype.setAlpha=function(a){if(this.compressed){if(this.state.alpha==a)return;mxAbstractCanvas2D.prototype.setAlpha.apply(this,arguments)}var b=this.createElement("alpha");b.setAttribute("alpha",this.format(a));this.root.appendChild(b)};mxXmlCanvas2D.prototype.setFillAlpha=function(a){if(this.compressed){if(this.state.fillAlpha==a)return;mxAbstractCanvas2D.prototype.setFillAlpha.apply(this,arguments)}var b=this.createElement("fillalpha");b.setAttribute("alpha",this.format(a));this.root.appendChild(b)};
478mxXmlCanvas2D.prototype.setStrokeAlpha=function(a){if(this.compressed){if(this.state.strokeAlpha==a)return;mxAbstractCanvas2D.prototype.setStrokeAlpha.apply(this,arguments)}var b=this.createElement("strokealpha");b.setAttribute("alpha",this.format(a));this.root.appendChild(b)};
479mxXmlCanvas2D.prototype.setFillColor=function(a){a==mxConstants.NONE&&(a=null);if(this.compressed){if(this.state.fillColor==a)return;mxAbstractCanvas2D.prototype.setFillColor.apply(this,arguments)}var b=this.createElement("fillcolor");b.setAttribute("color",null!=a?a:mxConstants.NONE);this.root.appendChild(b)};
480mxXmlCanvas2D.prototype.setGradient=function(a,b,c,d,e,f,g,k,l){if(null!=a&&null!=b){mxAbstractCanvas2D.prototype.setGradient.apply(this,arguments);var m=this.createElement("gradient");m.setAttribute("c1",a);m.setAttribute("c2",b);m.setAttribute("x",this.format(c));m.setAttribute("y",this.format(d));m.setAttribute("w",this.format(e));m.setAttribute("h",this.format(f));null!=g&&m.setAttribute("direction",g);null!=k&&m.setAttribute("alpha1",k);null!=l&&m.setAttribute("alpha2",l);this.root.appendChild(m)}};
481mxXmlCanvas2D.prototype.setStrokeColor=function(a){a==mxConstants.NONE&&(a=null);if(this.compressed){if(this.state.strokeColor==a)return;mxAbstractCanvas2D.prototype.setStrokeColor.apply(this,arguments)}var b=this.createElement("strokecolor");b.setAttribute("color",null!=a?a:mxConstants.NONE);this.root.appendChild(b)};
482mxXmlCanvas2D.prototype.setStrokeWidth=function(a){if(this.compressed){if(this.state.strokeWidth==a)return;mxAbstractCanvas2D.prototype.setStrokeWidth.apply(this,arguments)}var b=this.createElement("strokewidth");b.setAttribute("width",this.format(a));this.root.appendChild(b)};
483mxXmlCanvas2D.prototype.setDashed=function(a,b){if(this.compressed){if(this.state.dashed==a)return;mxAbstractCanvas2D.prototype.setDashed.apply(this,arguments)}var c=this.createElement("dashed");c.setAttribute("dashed",a?"1":"0");null!=b&&c.setAttribute("fixDash",b?"1":"0");this.root.appendChild(c)};
484mxXmlCanvas2D.prototype.setDashPattern=function(a){if(this.compressed){if(this.state.dashPattern==a)return;mxAbstractCanvas2D.prototype.setDashPattern.apply(this,arguments)}var b=this.createElement("dashpattern");b.setAttribute("pattern",a);this.root.appendChild(b)};mxXmlCanvas2D.prototype.setLineCap=function(a){if(this.compressed){if(this.state.lineCap==a)return;mxAbstractCanvas2D.prototype.setLineCap.apply(this,arguments)}var b=this.createElement("linecap");b.setAttribute("cap",a);this.root.appendChild(b)};
485mxXmlCanvas2D.prototype.setLineJoin=function(a){if(this.compressed){if(this.state.lineJoin==a)return;mxAbstractCanvas2D.prototype.setLineJoin.apply(this,arguments)}var b=this.createElement("linejoin");b.setAttribute("join",a);this.root.appendChild(b)};mxXmlCanvas2D.prototype.setMiterLimit=function(a){if(this.compressed){if(this.state.miterLimit==a)return;mxAbstractCanvas2D.prototype.setMiterLimit.apply(this,arguments)}var b=this.createElement("miterlimit");b.setAttribute("limit",a);this.root.appendChild(b)};
486mxXmlCanvas2D.prototype.setFontColor=function(a){if(this.textEnabled){a==mxConstants.NONE&&(a=null);if(this.compressed){if(this.state.fontColor==a)return;mxAbstractCanvas2D.prototype.setFontColor.apply(this,arguments)}var b=this.createElement("fontcolor");b.setAttribute("color",null!=a?a:mxConstants.NONE);this.root.appendChild(b)}};
487mxXmlCanvas2D.prototype.setFontBackgroundColor=function(a){if(this.textEnabled){a==mxConstants.NONE&&(a=null);if(this.compressed){if(this.state.fontBackgroundColor==a)return;mxAbstractCanvas2D.prototype.setFontBackgroundColor.apply(this,arguments)}var b=this.createElement("fontbackgroundcolor");b.setAttribute("color",null!=a?a:mxConstants.NONE);this.root.appendChild(b)}};
488mxXmlCanvas2D.prototype.setFontBorderColor=function(a){if(this.textEnabled){a==mxConstants.NONE&&(a=null);if(this.compressed){if(this.state.fontBorderColor==a)return;mxAbstractCanvas2D.prototype.setFontBorderColor.apply(this,arguments)}var b=this.createElement("fontbordercolor");b.setAttribute("color",null!=a?a:mxConstants.NONE);this.root.appendChild(b)}};
489mxXmlCanvas2D.prototype.setFontSize=function(a){if(this.textEnabled){if(this.compressed){if(this.state.fontSize==a)return;mxAbstractCanvas2D.prototype.setFontSize.apply(this,arguments)}var b=this.createElement("fontsize");b.setAttribute("size",a);this.root.appendChild(b)}};
490mxXmlCanvas2D.prototype.setFontFamily=function(a){if(this.textEnabled){if(this.compressed){if(this.state.fontFamily==a)return;mxAbstractCanvas2D.prototype.setFontFamily.apply(this,arguments)}var b=this.createElement("fontfamily");b.setAttribute("family",a);this.root.appendChild(b)}};
491mxXmlCanvas2D.prototype.setFontStyle=function(a){if(this.textEnabled){null==a&&(a=0);if(this.compressed){if(this.state.fontStyle==a)return;mxAbstractCanvas2D.prototype.setFontStyle.apply(this,arguments)}var b=this.createElement("fontstyle");b.setAttribute("style",a);this.root.appendChild(b)}};
492mxXmlCanvas2D.prototype.setShadow=function(a){if(this.compressed){if(this.state.shadow==a)return;mxAbstractCanvas2D.prototype.setShadow.apply(this,arguments)}var b=this.createElement("shadow");b.setAttribute("enabled",a?"1":"0");this.root.appendChild(b)};
493mxXmlCanvas2D.prototype.setShadowColor=function(a){if(this.compressed){a==mxConstants.NONE&&(a=null);if(this.state.shadowColor==a)return;mxAbstractCanvas2D.prototype.setShadowColor.apply(this,arguments)}var b=this.createElement("shadowcolor");b.setAttribute("color",null!=a?a:mxConstants.NONE);this.root.appendChild(b)};
494mxXmlCanvas2D.prototype.setShadowAlpha=function(a){if(this.compressed){if(this.state.shadowAlpha==a)return;mxAbstractCanvas2D.prototype.setShadowAlpha.apply(this,arguments)}var b=this.createElement("shadowalpha");b.setAttribute("alpha",a);this.root.appendChild(b)};
495mxXmlCanvas2D.prototype.setShadowOffset=function(a,b){if(this.compressed){if(this.state.shadowDx==a&&this.state.shadowDy==b)return;mxAbstractCanvas2D.prototype.setShadowOffset.apply(this,arguments)}var c=this.createElement("shadowoffset");c.setAttribute("dx",a);c.setAttribute("dy",b);this.root.appendChild(c)};
496mxXmlCanvas2D.prototype.rect=function(a,b,c,d){var e=this.createElement("rect");e.setAttribute("x",this.format(a));e.setAttribute("y",this.format(b));e.setAttribute("w",this.format(c));e.setAttribute("h",this.format(d));this.root.appendChild(e)};
497mxXmlCanvas2D.prototype.roundrect=function(a,b,c,d,e,f){var g=this.createElement("roundrect");g.setAttribute("x",this.format(a));g.setAttribute("y",this.format(b));g.setAttribute("w",this.format(c));g.setAttribute("h",this.format(d));g.setAttribute("dx",this.format(e));g.setAttribute("dy",this.format(f));this.root.appendChild(g)};
498mxXmlCanvas2D.prototype.ellipse=function(a,b,c,d){var e=this.createElement("ellipse");e.setAttribute("x",this.format(a));e.setAttribute("y",this.format(b));e.setAttribute("w",this.format(c));e.setAttribute("h",this.format(d));this.root.appendChild(e)};
499mxXmlCanvas2D.prototype.image=function(a,b,c,d,e,f,g,k){e=this.converter.convert(e);var l=this.createElement("image");l.setAttribute("x",this.format(a));l.setAttribute("y",this.format(b));l.setAttribute("w",this.format(c));l.setAttribute("h",this.format(d));l.setAttribute("src",e);l.setAttribute("aspect",f?"1":"0");l.setAttribute("flipH",g?"1":"0");l.setAttribute("flipV",k?"1":"0");this.root.appendChild(l)};
500mxXmlCanvas2D.prototype.begin=function(){this.root.appendChild(this.createElement("begin"));this.lastY=this.lastX=0};mxXmlCanvas2D.prototype.moveTo=function(a,b){var c=this.createElement("move");c.setAttribute("x",this.format(a));c.setAttribute("y",this.format(b));this.root.appendChild(c);this.lastX=a;this.lastY=b};
501mxXmlCanvas2D.prototype.lineTo=function(a,b){var c=this.createElement("line");c.setAttribute("x",this.format(a));c.setAttribute("y",this.format(b));this.root.appendChild(c);this.lastX=a;this.lastY=b};mxXmlCanvas2D.prototype.quadTo=function(a,b,c,d){var e=this.createElement("quad");e.setAttribute("x1",this.format(a));e.setAttribute("y1",this.format(b));e.setAttribute("x2",this.format(c));e.setAttribute("y2",this.format(d));this.root.appendChild(e);this.lastX=c;this.lastY=d};
502mxXmlCanvas2D.prototype.curveTo=function(a,b,c,d,e,f){var g=this.createElement("curve");g.setAttribute("x1",this.format(a));g.setAttribute("y1",this.format(b));g.setAttribute("x2",this.format(c));g.setAttribute("y2",this.format(d));g.setAttribute("x3",this.format(e));g.setAttribute("y3",this.format(f));this.root.appendChild(g);this.lastX=e;this.lastY=f};mxXmlCanvas2D.prototype.close=function(){this.root.appendChild(this.createElement("close"))};
503mxXmlCanvas2D.prototype.text=function(a,b,c,d,e,f,g,k,l,m,n,p,q){if(this.textEnabled&&null!=e){mxUtils.isNode(e)&&(e=mxUtils.getOuterHtml(e));var r=this.createElement("text");r.setAttribute("x",this.format(a));r.setAttribute("y",this.format(b));r.setAttribute("w",this.format(c));r.setAttribute("h",this.format(d));r.setAttribute("str",e);null!=f&&r.setAttribute("align",f);null!=g&&r.setAttribute("valign",g);r.setAttribute("wrap",k?"1":"0");null==l&&(l="");r.setAttribute("format",l);null!=m&&r.setAttribute("overflow",
504m);null!=n&&r.setAttribute("clip",n?"1":"0");null!=p&&r.setAttribute("rotation",p);null!=q&&r.setAttribute("dir",q);this.root.appendChild(r)}};mxXmlCanvas2D.prototype.stroke=function(){this.root.appendChild(this.createElement("stroke"))};mxXmlCanvas2D.prototype.fill=function(){this.root.appendChild(this.createElement("fill"))};mxXmlCanvas2D.prototype.fillAndStroke=function(){this.root.appendChild(this.createElement("fillstroke"))};
505function mxSvgCanvas2D(a,b){mxAbstractCanvas2D.call(this);this.root=a;this.gradients=[];this.defs=null;this.styleEnabled=null!=b?b:!1;var c=null;if(a.ownerDocument!=document)for(c=a;null!=c&&"svg"!=c.nodeName;)c=c.parentNode;null!=c&&(0<c.getElementsByTagName("defs").length&&(this.defs=c.getElementsByTagName("defs")[0]),null==this.defs&&(this.defs=this.createElement("defs"),null!=c.firstChild?c.insertBefore(this.defs,c.firstChild):c.appendChild(this.defs)),this.styleEnabled&&this.defs.appendChild(this.createStyle()))}
506mxUtils.extend(mxSvgCanvas2D,mxAbstractCanvas2D);
507(function(){mxSvgCanvas2D.prototype.useDomParser=!mxClient.IS_IE&&"function"===typeof DOMParser&&"function"===typeof XMLSerializer;if(mxSvgCanvas2D.prototype.useDomParser)try{var a=(new DOMParser).parseFromString("test text","text/html");mxSvgCanvas2D.prototype.useDomParser=null!=a}catch(b){mxSvgCanvas2D.prototype.useDomParser=!1}mxSvgCanvas2D.prototype.useAbsoluteIds=!mxClient.IS_CHROMEAPP&&!mxClient.IS_IE&&!mxClient.IS_IE11&&!mxClient.IS_EDGE&&0<document.getElementsByTagName("base").length})();
508mxSvgCanvas2D.prototype.node=null;mxSvgCanvas2D.prototype.matchHtmlAlignment=!0;mxSvgCanvas2D.prototype.textEnabled=!0;mxSvgCanvas2D.prototype.foEnabled=!0;mxSvgCanvas2D.prototype.foAltText="[Object]";mxSvgCanvas2D.prototype.foOffset=0;mxSvgCanvas2D.prototype.textOffset=0;mxSvgCanvas2D.prototype.imageOffset=0;mxSvgCanvas2D.prototype.strokeTolerance=0;mxSvgCanvas2D.prototype.minStrokeWidth=1;mxSvgCanvas2D.prototype.refCount=0;mxSvgCanvas2D.prototype.lineHeightCorrection=1;
509mxSvgCanvas2D.prototype.pointerEventsValue="all";mxSvgCanvas2D.prototype.fontMetricsPadding=10;mxSvgCanvas2D.prototype.cacheOffsetSize=!0;mxSvgCanvas2D.prototype.setCssText=function(a,b){mxClient.IS_IE||mxClient.IS_IE11?a.setAttribute("style",b):mxUtils.setCssText(a.style,b)};mxSvgCanvas2D.prototype.format=function(a){return parseFloat(parseFloat(a).toFixed(2))};mxSvgCanvas2D.prototype.getBaseUrl=function(){var a=window.location.href,b=a.lastIndexOf("#");0<b&&(a=a.substring(0,b));return a};
510mxSvgCanvas2D.prototype.reset=function(){mxAbstractCanvas2D.prototype.reset.apply(this,arguments);this.gradients=[]};mxSvgCanvas2D.prototype.createStyle=function(a){a=this.createElement("style");a.setAttribute("type","text/css");mxUtils.write(a,"svg{font-family:"+mxConstants.DEFAULT_FONTFAMILY+";font-size:"+mxConstants.DEFAULT_FONTSIZE+";fill:none;stroke-miterlimit:10}");return a};
511mxSvgCanvas2D.prototype.createElement=function(a,b){if(null!=this.root.ownerDocument.createElementNS)return this.root.ownerDocument.createElementNS(b||mxConstants.NS_SVG,a);var c=this.root.ownerDocument.createElement(a);null!=b&&c.setAttribute("xmlns",b);return c};mxSvgCanvas2D.prototype.getAlternateText=function(a,b,c,d,e,f,g,k,l,m,n,p,q){return null!=f?this.foAltText:null};
512mxSvgCanvas2D.prototype.createAlternateContent=function(a,b,c,d,e,f,g,k,l,m,n,p,q){a=this.getAlternateText(a,b,c,d,e,f,g,k,l,m,n,p,q);d=this.state;return null!=a&&0<d.fontSize?(k=k==mxConstants.ALIGN_TOP?1:k==mxConstants.ALIGN_BOTTOM?0:.3,e=g==mxConstants.ALIGN_RIGHT?"end":g==mxConstants.ALIGN_LEFT?"start":"middle",g=this.createElement("text"),g.setAttribute("x",Math.round(b+d.dx)),g.setAttribute("y",Math.round(c+d.dy+k*d.fontSize)),g.setAttribute("fill",d.fontColor||"black"),g.setAttribute("font-family",
513d.fontFamily),g.setAttribute("font-size",Math.round(d.fontSize)+"px"),"start"!=e&&g.setAttribute("text-anchor",e),(d.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&g.setAttribute("font-weight","bold"),(d.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&g.setAttribute("font-style","italic"),b=[],(d.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&b.push("underline"),(d.fontStyle&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&b.push("line-through"),
5140<b.length&&g.setAttribute("text-decoration",b.join(" ")),mxUtils.write(g,a),g):null};
515mxSvgCanvas2D.prototype.createGradientId=function(a,b,c,d,e){"#"==a.charAt(0)&&(a=a.substring(1));"#"==b.charAt(0)&&(b=b.substring(1));a=a.toLowerCase()+"-"+c;b=b.toLowerCase()+"-"+d;c=null;null==e||e==mxConstants.DIRECTION_SOUTH?c="s":e==mxConstants.DIRECTION_EAST?c="e":e==mxConstants.DIRECTION_RADIAL?c="r":(d=a,a=b,b=d,e==mxConstants.DIRECTION_NORTH?c="s":e==mxConstants.DIRECTION_WEST&&(c="e"));return"mx-gradient-"+a+"-"+b+"-"+c};
516mxSvgCanvas2D.prototype.getSvgGradient=function(a,b,c,d,e){var f=this.createGradientId(a,b,c,d,e),g=this.gradients[f];if(null==g){var k=this.root.ownerSVGElement,l=0,m=f+"-"+l;if(null!=k)for(g=k.ownerDocument.getElementById(m);null!=g&&g.ownerSVGElement!=k;)m=f+"-"+l++,g=k.ownerDocument.getElementById(m);else m="id"+ ++this.refCount;null==g&&(g=this.createSvgGradient(a,b,c,d,e),g.setAttribute("id",m),null!=this.defs?this.defs.appendChild(g):k.appendChild(g));this.gradients[f]=g}return g.getAttribute("id")};
517mxSvgCanvas2D.prototype.createSvgGradient=function(a,b,c,d,e){var f=this.createElement(e==mxConstants.DIRECTION_RADIAL?"radialGradient":"linearGradient");f.setAttribute("x1","0%");f.setAttribute("y1","0%");f.setAttribute("x2","0%");f.setAttribute("y2","0%");null==e||e==mxConstants.DIRECTION_SOUTH?f.setAttribute("y2","100%"):e==mxConstants.DIRECTION_EAST?f.setAttribute("x2","100%"):e==mxConstants.DIRECTION_NORTH?f.setAttribute("y1","100%"):e==mxConstants.DIRECTION_WEST&&f.setAttribute("x1","100%");
518e=this.createElement("stop");e.setAttribute("offset","0%");e.style.stopColor=a;e.style.stopOpacity=c;f.appendChild(e);e=this.createElement("stop");e.setAttribute("offset","100%");e.style.stopColor=b;e.style.stopOpacity=d;f.appendChild(e);return f};
519mxSvgCanvas2D.prototype.addNode=function(a,b){var c=this.node,d=this.state;if(null!=c){if("path"==c.nodeName)if(null!=this.path&&0<this.path.length)c.setAttribute("d",this.path.join(" "));else return;a&&null!=d.fillColor?this.updateFill():this.styleEnabled||("ellipse"==c.nodeName&&mxClient.IS_FF?c.setAttribute("fill","transparent"):c.setAttribute("fill","none"),a=!1);b&&null!=d.strokeColor?this.updateStroke():this.styleEnabled||c.setAttribute("stroke","none");null!=d.transform&&0<d.transform.length&&
520c.setAttribute("transform",d.transform);this.pointerEvents?c.setAttribute("pointer-events",this.pointerEventsValue):this.pointerEvents||null!=this.originalRoot||c.setAttribute("pointer-events","none");d.shadow&&this.root.appendChild(this.createShadow(c));0<this.strokeTolerance&&(!a||null==d.fillColor)&&this.addTolerance(c);("rect"!=c.nodeName&&"path"!=c.nodeName&&"ellipse"!=c.nodeName||"none"!=c.getAttribute("fill")&&"transparent"!=c.getAttribute("fill")||"none"!=c.getAttribute("stroke")||"none"!=
521c.getAttribute("pointer-events"))&&this.root.appendChild(c);this.node=null}};mxSvgCanvas2D.prototype.addTolerance=function(a){this.root.appendChild(this.createTolerance(a))};
522mxSvgCanvas2D.prototype.updateFill=function(){var a=this.state;(1>a.alpha||1>a.fillAlpha)&&this.node.setAttribute("fill-opacity",a.alpha*a.fillAlpha);if(null!=a.fillColor)if(null!=a.gradientColor&&a.gradientColor!=mxConstants.NONE)if(a=this.getSvgGradient(String(a.fillColor),String(a.gradientColor),a.gradientFillAlpha,a.gradientAlpha,a.gradientDirection),this.root.ownerDocument==document&&this.useAbsoluteIds){var b=this.getBaseUrl().replace(/([\(\)])/g,"\\$1");this.node.setAttribute("fill","url("+
523b+"#"+a+")")}else this.node.setAttribute("fill","url(#"+a+")");else this.node.setAttribute("fill",String(a.fillColor).toLowerCase())};mxSvgCanvas2D.prototype.getCurrentStrokeWidth=function(){return Math.max(this.minStrokeWidth,Math.max(.01,this.format(this.state.strokeWidth*this.state.scale)))};
524mxSvgCanvas2D.prototype.updateStroke=function(){var a=this.state;this.node.setAttribute("stroke",String(a.strokeColor).toLowerCase());(1>a.alpha||1>a.strokeAlpha)&&this.node.setAttribute("stroke-opacity",a.alpha*a.strokeAlpha);var b=this.getCurrentStrokeWidth();1!=b&&this.node.setAttribute("stroke-width",b);"path"==this.node.nodeName&&this.updateStrokeAttributes();a.dashed&&this.node.setAttribute("stroke-dasharray",this.createDashPattern((a.fixDash?1:a.strokeWidth)*a.scale))};
525mxSvgCanvas2D.prototype.updateStrokeAttributes=function(){var a=this.state;null!=a.lineJoin&&"miter"!=a.lineJoin&&this.node.setAttribute("stroke-linejoin",a.lineJoin);if(null!=a.lineCap){var b=a.lineCap;"flat"==b&&(b="butt");"butt"!=b&&this.node.setAttribute("stroke-linecap",b)}null==a.miterLimit||this.styleEnabled&&10==a.miterLimit||this.node.setAttribute("stroke-miterlimit",a.miterLimit)};
526mxSvgCanvas2D.prototype.createDashPattern=function(a){var b=[];if("string"===typeof this.state.dashPattern){var c=this.state.dashPattern.split(" ");if(0<c.length)for(var d=0;d<c.length;d++)b[d]=Number(c[d])*a}return b.join(" ")};
527mxSvgCanvas2D.prototype.createTolerance=function(a){a=a.cloneNode(!0);var b=parseFloat(a.getAttribute("stroke-width")||1)+this.strokeTolerance;a.setAttribute("pointer-events","stroke");a.setAttribute("visibility","hidden");a.removeAttribute("stroke-dasharray");a.setAttribute("stroke-width",b);a.setAttribute("fill","none");a.setAttribute("stroke",mxClient.IS_OT?"none":"white");return a};
528mxSvgCanvas2D.prototype.createShadow=function(a){a=a.cloneNode(!0);var b=this.state;"none"==a.getAttribute("fill")||mxClient.IS_FF&&"transparent"==a.getAttribute("fill")||a.setAttribute("fill",b.shadowColor);"none"!=a.getAttribute("stroke")&&a.setAttribute("stroke",b.shadowColor);a.setAttribute("transform","translate("+this.format(b.shadowDx*b.scale)+","+this.format(b.shadowDy*b.scale)+")"+(b.transform||""));a.setAttribute("opacity",b.shadowAlpha);return a};
529mxSvgCanvas2D.prototype.setLink=function(a,b){if(null==a)this.root=this.originalRoot;else{this.originalRoot=this.root;var c=this.createElement("a");null==c.setAttributeNS||this.root.ownerDocument!=document&&null==document.documentMode?c.setAttribute("xlink:href",a):c.setAttributeNS(mxConstants.NS_XLINK,"xlink:href",a);null!=b&&c.setAttribute("target",b);this.root.appendChild(c);this.root=c}};
530mxSvgCanvas2D.prototype.rotate=function(a,b,c,d,e){if(0!=a||b||c){var f=this.state;d+=f.dx;e+=f.dy;d*=f.scale;e*=f.scale;f.transform=f.transform||"";if(b&&c)a+=180;else if(b!=c){var g=b?d:0,k=b?-1:1,l=c?e:0,m=c?-1:1;f.transform+="translate("+this.format(g)+","+this.format(l)+")scale("+this.format(k)+","+this.format(m)+")translate("+this.format(-g)+","+this.format(-l)+")"}if(b?!c:c)a*=-1;0!=a&&(f.transform+="rotate("+this.format(a)+","+this.format(d)+","+this.format(e)+")");f.rotation+=a;f.rotationCx=
531d;f.rotationCy=e}};mxSvgCanvas2D.prototype.begin=function(){mxAbstractCanvas2D.prototype.begin.apply(this,arguments);this.node=this.createElement("path")};mxSvgCanvas2D.prototype.rect=function(a,b,c,d){var e=this.state,f=this.createElement("rect");f.setAttribute("x",this.format((a+e.dx)*e.scale));f.setAttribute("y",this.format((b+e.dy)*e.scale));f.setAttribute("width",this.format(c*e.scale));f.setAttribute("height",this.format(d*e.scale));this.node=f};
532mxSvgCanvas2D.prototype.roundrect=function(a,b,c,d,e,f){this.rect(a,b,c,d);0<e&&this.node.setAttribute("rx",this.format(e*this.state.scale));0<f&&this.node.setAttribute("ry",this.format(f*this.state.scale))};mxSvgCanvas2D.prototype.ellipse=function(a,b,c,d){var e=this.state,f=this.createElement("ellipse");f.setAttribute("cx",this.format((a+c/2+e.dx)*e.scale));f.setAttribute("cy",this.format((b+d/2+e.dy)*e.scale));f.setAttribute("rx",c/2*e.scale);f.setAttribute("ry",d/2*e.scale);this.node=f};
533mxSvgCanvas2D.prototype.image=function(a,b,c,d,e,f,g,k){e=this.converter.convert(e);f=null!=f?f:!0;g=null!=g?g:!1;k=null!=k?k:!1;var l=this.state;a+=l.dx;b+=l.dy;var m=this.createElement("image");m.setAttribute("x",this.format(a*l.scale)+this.imageOffset);m.setAttribute("y",this.format(b*l.scale)+this.imageOffset);m.setAttribute("width",this.format(c*l.scale));m.setAttribute("height",this.format(d*l.scale));null==m.setAttributeNS?m.setAttribute("xlink:href",e):m.setAttributeNS(mxConstants.NS_XLINK,
534"xlink:href",e);f||m.setAttribute("preserveAspectRatio","none");(1>l.alpha||1>l.fillAlpha)&&m.setAttribute("opacity",l.alpha*l.fillAlpha);e=this.state.transform||"";if(g||k){var n=f=1,p=0,q=0;g&&(f=-1,p=-c-2*a);k&&(n=-1,q=-d-2*b);e+="scale("+f+","+n+")translate("+p*l.scale+","+q*l.scale+")"}0<e.length&&m.setAttribute("transform",e);this.pointerEvents||m.setAttribute("pointer-events","none");this.root.appendChild(m)};
535mxSvgCanvas2D.prototype.convertHtml=function(a){if(this.useDomParser){var b=(new DOMParser).parseFromString(a,"text/html");null!=b&&(a=(new XMLSerializer).serializeToString(b.body),"<body"==a.substring(0,5)&&(a=a.substring(a.indexOf(">",5)+1)),"</body>"==a.substring(a.length-7,a.length)&&(a=a.substring(0,a.length-7)))}else{if(null!=document.implementation&&null!=document.implementation.createDocument){var b=document.implementation.createDocument("http://www.w3.org/1999/xhtml","html",null),c=b.createElement("body");
536b.documentElement.appendChild(c);var d=document.createElement("div");d.innerHTML=a;for(a=d.firstChild;null!=a;)d=a.nextSibling,c.appendChild(b.adoptNode(a)),a=d;return c.innerHTML}b=document.createElement("textarea");b.innerHTML=a.replace(/&amp;/g,"&amp;amp;").replace(/&#60;/g,"&amp;lt;").replace(/&#62;/g,"&amp;gt;").replace(/&lt;/g,"&amp;lt;").replace(/&gt;/g,"&amp;gt;").replace(/</g,"&lt;").replace(/>/g,"&gt;");a=b.value.replace(/&/g,"&amp;").replace(/&amp;lt;/g,"&lt;").replace(/&amp;gt;/g,"&gt;").replace(/&amp;amp;/g,
537"&amp;").replace(/<br>/g,"<br />").replace(/<hr>/g,"<hr />").replace(/(<img[^>]+)>/gm,"$1 />")}return a};
538mxSvgCanvas2D.prototype.createDiv=function(a){mxUtils.isNode(a)||(a="<div><div>"+this.convertHtml(a)+"</div></div>");if(mxClient.IS_IE||mxClient.IS_IE11||!document.createElementNS)return mxUtils.isNode(a)&&(a="<div><div>"+mxUtils.getXml(a)+"</div></div>"),mxUtils.parseXml('<div xmlns="http://www.w3.org/1999/xhtml">'+a+"</div>").documentElement;var b=document.createElementNS("http://www.w3.org/1999/xhtml","div");if(mxUtils.isNode(a)){var c=document.createElement("div"),d=c.cloneNode(!1);this.root.ownerDocument!=
539document?c.appendChild(a.cloneNode(!0)):c.appendChild(a);d.appendChild(c);b.appendChild(d)}else b.innerHTML=a;return b};mxSvgCanvas2D.prototype.updateText=function(a,b,c,d,e,f,g,k,l,m,n){null!=n&&null!=n.firstChild&&null!=n.firstChild.firstChild&&this.updateTextNodes(a,b,c,d,e,f,g,k,l,m,n.firstChild)};
540mxSvgCanvas2D.prototype.addForeignObject=function(a,b,c,d,e,f,g,k,l,m,n,p,q,r,t){q=this.createElement("g");var u=this.createElement("foreignObject");this.setCssText(u,"overflow: visible; text-align: left;");u.setAttribute("pointer-events","none");r.ownerDocument!=document&&(r=mxUtils.importNodeImplementation(u.ownerDocument,r,!0));u.appendChild(r);q.appendChild(u);this.updateTextNodes(a,b,c,d,f,g,k,m,n,p,q);this.root.ownerDocument!=document&&(a=this.createAlternateContent(u,a,b,c,d,e,f,g,k,l,m,n,
541p),null!=a&&(u.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility"),b=this.createElement("switch"),b.appendChild(u),b.appendChild(a),q.appendChild(b)));t.appendChild(q)};
542mxSvgCanvas2D.prototype.updateTextNodes=function(a,b,c,d,e,f,g,k,l,m,n){var p=this.state.scale;mxSvgCanvas2D.createCss(c+2,d,e,f,g,k,l,null!=this.state.fontBackgroundColor?this.state.fontBackgroundColor:null,null!=this.state.fontBorderColor?this.state.fontBorderColor:null,"display: flex; align-items: unsafe "+(f==mxConstants.ALIGN_TOP?"flex-start":f==mxConstants.ALIGN_BOTTOM?"flex-end":"center")+"; justify-content: unsafe "+(e==mxConstants.ALIGN_LEFT?"flex-start":e==mxConstants.ALIGN_RIGHT?"flex-end":
543"center")+"; ",this.getTextCss(),p,mxUtils.bind(this,function(c,d,e,f,g){a+=this.state.dx;b+=this.state.dy;var k=n.firstChild,l=k.firstChild,q=l.firstChild,r=(this.rotateHtml?this.state.rotation:0)+(null!=m?m:0),t=(0!=this.foOffset?"translate("+this.foOffset+" "+this.foOffset+")":"")+(1!=p?"scale("+p+")":"");this.setCssText(q.firstChild,g);this.setCssText(q,f);q.setAttribute("data-drawio-colors","color: "+this.state.fontColor+"; "+(null==this.state.fontBackgroundColor?"":"background-color: "+this.state.fontBackgroundColor+
544"; ")+(null==this.state.fontBorderColor?"":"border-color: "+this.state.fontBorderColor+"; "));k.setAttribute("width",Math.ceil(1/Math.min(1,p)*100)+"%");k.setAttribute("height",Math.ceil(1/Math.min(1,p)*100)+"%");d=Math.round(b+d);0>d?k.setAttribute("y",d):(k.removeAttribute("y"),e+="padding-top: "+d+"px; ");this.setCssText(l,e+"margin-left: "+Math.round(a+c)+"px;");t+=0!=r?"rotate("+r+" "+a+" "+b+")":"";""!=t?n.setAttribute("transform",t):n.removeAttribute("transform");1!=this.state.alpha?n.setAttribute("opacity",
545this.state.alpha):n.removeAttribute("opacity")}))};
546mxSvgCanvas2D.createCss=function(a,b,c,d,e,f,g,k,l,m,n,p,q){p="box-sizing: border-box; font-size: 0; text-align: "+(c==mxConstants.ALIGN_LEFT?"left":c==mxConstants.ALIGN_RIGHT?"right":"center")+"; ";var r=mxUtils.getAlignmentAsPoint(c,d);c="overflow: hidden; ";var t="width: 1px; ",u="height: 1px; ",x=r.x*a,r=r.y*b;g?(t="width: "+Math.round(a)+"px; ",p+="max-height: "+Math.round(b)+"px; ",r=0):"fill"==f?(t="width: "+Math.round(a)+"px; ",u="height: "+Math.round(b)+"px; ",n+="width: 100%; height: 100%; ",
547p+="width: "+Math.round(a-2)+"px; "+u):"width"==f?(t="width: "+Math.round(a-2)+"px; ",n+="width: 100%; ",p+=t,r=0,0<b&&(p+="max-height: "+Math.round(b)+"px; ")):"block"==f?(t="width: "+Math.round(a-2)+"px; ",n+="width: 100%; ",c="",r=0,p+=t,"middle"==d&&(p+="max-height: "+Math.round(b)+"px; ")):(c="",r=0);b="";null!=k&&(b+="background-color: "+k+"; ");null!=l&&(b+="border: 1px solid "+l+"; ");""==c||g?n+=b:p+=b;e&&0<a?(n+="white-space: normal; word-wrap: "+mxConstants.WORD_WRAP+"; ",t="width: "+Math.round(a)+
548"px; ",""!=c&&"fill"!=f&&(r=0)):(n+="white-space: nowrap; ",""==c&&"block"!=f&&(x=0));q(x,r,m+t+u,p+c,n,c)};
549mxSvgCanvas2D.prototype.getTextCss=function(){var a=this.state,b="display: inline-block; font-size: "+a.fontSize+"px; font-family: "+a.fontFamily+"; color: "+a.fontColor+"; line-height: "+(mxConstants.ABSOLUTE_LINE_HEIGHT?a.fontSize*mxConstants.LINE_HEIGHT+"px":mxConstants.LINE_HEIGHT*this.lineHeightCorrection)+"; pointer-events: "+(this.pointerEvents?this.pointerEventsValue:"none")+"; ";(a.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(b+="font-weight: bold; ");(a.fontStyle&mxConstants.FONT_ITALIC)==
550mxConstants.FONT_ITALIC&&(b+="font-style: italic; ");var c=[];(a.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&c.push("underline");(a.fontStyle&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&c.push("line-through");0<c.length&&(b+="text-decoration: "+c.join(" ")+"; ");return b};
551mxSvgCanvas2D.prototype.text=function(a,b,c,d,e,f,g,k,l,m,n,p,q){if(this.textEnabled&&null!=e)if(p=null!=p?p:0,this.foEnabled&&"html"==l){var r=this.createDiv(e);null!=r&&(null!=q&&r.setAttribute("dir",q),this.addForeignObject(a,b,c,d,e,f,g,k,l,m,n,p,q,r,this.root))}else this.plainText(a+this.state.dx,b+this.state.dy,c,d,e,f,g,k,m,n,p,q)};
552mxSvgCanvas2D.prototype.createClip=function(a,b,c,d){a=Math.round(a);b=Math.round(b);c=Math.round(c);d=Math.round(d);for(var e="mx-clip-"+a+"-"+b+"-"+c+"-"+d,f=0,g=e+"-"+f;null!=document.getElementById(g);)g=e+"-"+ ++f;clip=this.createElement("clipPath");clip.setAttribute("id",g);e=this.createElement("rect");e.setAttribute("x",a);e.setAttribute("y",b);e.setAttribute("width",c);e.setAttribute("height",d);clip.appendChild(e);return clip};
553mxSvgCanvas2D.prototype.plainText=function(a,b,c,d,e,f,g,k,l,m,n,p){n=null!=n?n:0;k=this.state;var q=k.fontSize,r=this.createElement("g"),t=k.transform||"";this.updateFont(r);this.pointerEvents||null!=this.originalRoot||r.setAttribute("pointer-events","none");0!=n&&(t+="rotate("+n+","+this.format(a*k.scale)+","+this.format(b*k.scale)+")");null!=p&&r.setAttribute("direction",p);m&&0<c&&0<d&&(p=a,n=b,f==mxConstants.ALIGN_CENTER?p-=c/2:f==mxConstants.ALIGN_RIGHT&&(p-=c),"fill"!=l&&(g==mxConstants.ALIGN_MIDDLE?
554n-=d/2:g==mxConstants.ALIGN_BOTTOM&&(n-=d)),n=this.createClip(p*k.scale-2,n*k.scale-2,c*k.scale+4,d*k.scale+4),null!=this.defs?this.defs.appendChild(n):this.root.appendChild(n),mxClient.IS_CHROMEAPP||mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE||this.root.ownerDocument!=document?r.setAttribute("clip-path","url(#"+n.getAttribute("id")+")"):(p=this.getBaseUrl().replace(/([\(\)])/g,"\\$1"),r.setAttribute("clip-path","url("+p+"#"+n.getAttribute("id")+")")));n=f==mxConstants.ALIGN_RIGHT?"end":f==
555mxConstants.ALIGN_CENTER?"middle":"start";"start"!=n&&r.setAttribute("text-anchor",n);this.styleEnabled&&q==mxConstants.DEFAULT_FONTSIZE||r.setAttribute("font-size",q*k.scale+"px");0<t.length&&r.setAttribute("transform",t);1>k.alpha&&r.setAttribute("opacity",k.alpha);t=e.split("\n");p=Math.round(q*mxConstants.LINE_HEIGHT);var u=q+(t.length-1)*p;n=b+q-1;g==mxConstants.ALIGN_MIDDLE?"fill"==l?n-=d/2:(m=(this.matchHtmlAlignment&&m&&0<d?Math.min(u,d):u)/2,n-=m):g==mxConstants.ALIGN_BOTTOM&&("fill"==l?
556n-=d:(m=this.matchHtmlAlignment&&m&&0<d?Math.min(u,d):u,n-=m+1));for(m=0;m<t.length;m++)0<t[m].length&&0<mxUtils.trim(t[m]).length&&(q=this.createElement("text"),q.setAttribute("x",this.format(a*k.scale)+this.textOffset),q.setAttribute("y",this.format(n*k.scale)+this.textOffset),mxUtils.write(q,t[m]),r.appendChild(q)),n+=p;this.root.appendChild(r);this.addTextBackground(r,e,a,b,c,"fill"==l?d:u,f,g,l)};
557mxSvgCanvas2D.prototype.updateFont=function(a){var b=this.state;a.setAttribute("fill",b.fontColor);this.styleEnabled&&b.fontFamily==mxConstants.DEFAULT_FONTFAMILY||a.setAttribute("font-family",b.fontFamily);(b.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&a.setAttribute("font-weight","bold");(b.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&a.setAttribute("font-style","italic");var c=[];(b.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&c.push("underline");
558(b.fontStyle&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&c.push("line-through");0<c.length&&a.setAttribute("text-decoration",c.join(" "))};
559mxSvgCanvas2D.prototype.addTextBackground=function(a,b,c,d,e,f,g,k,l){var m=this.state;if(null!=m.fontBackgroundColor||null!=m.fontBorderColor){var n=null;if("fill"==l||"width"==l)g==mxConstants.ALIGN_CENTER?c-=e/2:g==mxConstants.ALIGN_RIGHT&&(c-=e),k==mxConstants.ALIGN_MIDDLE?d-=f/2:k==mxConstants.ALIGN_BOTTOM&&(d-=f),n=new mxRectangle((c+1)*m.scale,d*m.scale,(e-2)*m.scale,(f+2)*m.scale);else if(null!=a.getBBox&&this.root.ownerDocument==document)try{var n=a.getBBox(),p=mxClient.IS_IE&&mxClient.IS_SVG,
560n=new mxRectangle(n.x,n.y+(p?0:1),n.width,n.height+(p?1:0))}catch(q){}if(null==n||0==n.width||0==n.height)n=document.createElement("div"),n.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?m.fontSize*mxConstants.LINE_HEIGHT+"px":mxConstants.LINE_HEIGHT,n.style.fontSize=m.fontSize+"px",n.style.fontFamily=m.fontFamily,n.style.whiteSpace="nowrap",n.style.position="absolute",n.style.visibility="hidden",n.style.display="inline-block",n.style.zoom="1",(m.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&
561(n.style.fontWeight="bold"),(m.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(n.style.fontStyle="italic"),b=mxUtils.htmlEntities(b,!1),n.innerHTML=b.replace(/\n/g,"<br/>"),document.body.appendChild(n),e=n.offsetWidth,f=n.offsetHeight,n.parentNode.removeChild(n),g==mxConstants.ALIGN_CENTER?c-=e/2:g==mxConstants.ALIGN_RIGHT&&(c-=e),k==mxConstants.ALIGN_MIDDLE?d-=f/2:k==mxConstants.ALIGN_BOTTOM&&(d-=f),n=new mxRectangle((c+1)*m.scale,(d+2)*m.scale,e*m.scale,(f+1)*m.scale);null!=n&&(b=
562this.createElement("rect"),b.setAttribute("fill",m.fontBackgroundColor||"none"),b.setAttribute("stroke",m.fontBorderColor||"none"),b.setAttribute("x",Math.floor(n.x-1)),b.setAttribute("y",Math.floor(n.y-1)),b.setAttribute("width",Math.ceil(n.width+2)),b.setAttribute("height",Math.ceil(n.height)),m=null!=m.fontBorderColor?Math.max(1,this.format(m.scale)):0,b.setAttribute("stroke-width",m),this.root.ownerDocument==document&&1==mxUtils.mod(m,2)&&b.setAttribute("transform","translate(0.5, 0.5)"),a.insertBefore(b,
563a.firstChild))}};mxSvgCanvas2D.prototype.stroke=function(){this.addNode(!1,!0)};mxSvgCanvas2D.prototype.fill=function(){this.addNode(!0,!1)};mxSvgCanvas2D.prototype.fillAndStroke=function(){this.addNode(!0,!0)};function mxGuide(a,b){this.graph=a;this.setStates(b)}mxGuide.prototype.graph=null;mxGuide.prototype.states=null;mxGuide.prototype.horizontal=!0;mxGuide.prototype.vertical=!0;mxGuide.prototype.guideX=null;mxGuide.prototype.guideY=null;mxGuide.prototype.rounded=!1;
564mxGuide.prototype.tolerance=2;mxGuide.prototype.setStates=function(a){this.states=a};mxGuide.prototype.isEnabledForEvent=function(a){return!0};mxGuide.prototype.getGuideTolerance=function(a){return a&&this.graph.gridEnabled?this.graph.gridSize/2:this.tolerance};mxGuide.prototype.createGuideShape=function(a){a=new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH);a.isDashed=!0;return a};mxGuide.prototype.isStateIgnored=function(a){return!1};
565mxGuide.prototype.move=function(a,b,c,d){if(null!=this.states&&(this.horizontal||this.vertical)&&null!=a&&null!=b){d=function(c,d,e){var f=!1;e&&Math.abs(c-z)<t?(b.y=c-a.getCenterY(),t=Math.abs(c-z),f=!0):e||(Math.abs(c-B)<t?(b.y=c-a.y,t=Math.abs(c-B),f=!0):Math.abs(c-A)<t&&(b.y=c-a.y-a.height,t=Math.abs(c-A),f=!0));f&&(p=d,q=c,null==this.guideY&&(this.guideY=this.createGuideShape(!1),this.guideY.dialect=mxConstants.DIALECT_SVG,this.guideY.pointerEvents=!1,this.guideY.init(this.graph.getView().getOverlayPane())));
566n=n||f};var e=function(c,d,e){var f=!1;e&&Math.abs(c-y)<r?(b.x=c-a.getCenterX(),r=Math.abs(c-y),f=!0):e||(Math.abs(c-u)<r?(b.x=c-a.x,r=Math.abs(c-u),f=!0):Math.abs(c-x)<r&&(b.x=c-a.x-a.width,r=Math.abs(c-x),f=!0));f&&(l=d,m=c,null==this.guideX&&(this.guideX=this.createGuideShape(!0),this.guideX.dialect=mxConstants.DIALECT_SVG,this.guideX.pointerEvents=!1,this.guideX.init(this.graph.getView().getOverlayPane())));k=k||f},f=this.graph.getView().scale,f=this.getGuideTolerance(c)*f,g=a.clone();g.x+=b.x;
567g.y+=b.y;for(var k=!1,l=null,m=null,n=!1,p=null,q=null,r=f,t=f,u=g.x,x=g.x+g.width,y=g.getCenterX(),B=g.y,A=g.y+g.height,z=g.getCenterY(),f=0;f<this.states.length;f++)g=this.states[f],null==g||this.isStateIgnored(g)||(this.horizontal&&(e.call(this,g.getCenterX(),g,!0),e.call(this,g.x,g,!1),e.call(this,g.x+g.width,g,!1),null==g.cell&&e.call(this,g.getCenterX(),g,!1)),this.vertical&&(d.call(this,g.getCenterY(),g,!0),d.call(this,g.y,g,!1),d.call(this,g.y+g.height,g,!1),null==g.cell&&d.call(this,g.getCenterY(),
568g,!1)));this.graph.snapDelta(b,a,!c,k,n);b=this.getDelta(a,l,b.x,p,b.y);c=this.graph.container;k||null==this.guideX?null!=this.guideX&&(e=d=null,null!=l&&null!=a&&(d=Math.min(a.y+b.y-this.graph.panDy,l.y),e=Math.max(a.y+a.height+b.y-this.graph.panDy,l.y+l.height)),this.guideX.points=null!=d&&null!=e?[new mxPoint(m,d),new mxPoint(m,e)]:[new mxPoint(m,-this.graph.panDy),new mxPoint(m,c.scrollHeight-3-this.graph.panDy)],this.guideX.stroke=this.getGuideColor(l,!0),this.guideX.node.style.visibility="visible",
569this.guideX.redraw()):this.guideX.node.style.visibility="hidden";n||null==this.guideY?null!=this.guideY&&(e=d=null,null!=p&&null!=a&&(d=Math.min(a.x+b.x-this.graph.panDx,p.x),e=Math.max(a.x+a.width+b.x-this.graph.panDx,p.x+p.width)),this.guideY.points=null!=d&&null!=e?[new mxPoint(d,q),new mxPoint(e,q)]:[new mxPoint(-this.graph.panDx,q),new mxPoint(c.scrollWidth-3-this.graph.panDx,q)],this.guideY.stroke=this.getGuideColor(p,!1),this.guideY.node.style.visibility="visible",this.guideY.redraw()):this.guideY.node.style.visibility=
570"hidden"}return b};mxGuide.prototype.getDelta=function(a,b,c,d,e){var f=this.graph.view.scale;if(this.rounded||null!=b&&null==b.cell)c=Math.round((a.x+c)/f)*f-a.x;if(this.rounded||null!=d&&null==d.cell)e=Math.round((a.y+e)/f)*f-a.y;return new mxPoint(c,e)};mxGuide.prototype.getGuideColor=function(a,b){return mxConstants.GUIDE_COLOR};mxGuide.prototype.hide=function(){this.setVisible(!1)};
571mxGuide.prototype.setVisible=function(a){null!=this.guideX&&(this.guideX.node.style.visibility=a?"visible":"hidden");null!=this.guideY&&(this.guideY.node.style.visibility=a?"visible":"hidden")};mxGuide.prototype.destroy=function(){null!=this.guideX&&(this.guideX.destroy(),this.guideX=null);null!=this.guideY&&(this.guideY.destroy(),this.guideY=null)};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;
572mxShape.prototype.minSvgStrokeWidth=1;mxShape.prototype.bounds=null;mxShape.prototype.points=null;mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.outline=!1;
573mxShape.prototype.visible=!0;mxShape.prototype.useSvgBoundingBox=!1;mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isHtmlAllowed=function(){return!1};
574mxShape.prototype.getSvgScreenOffset=function(){return 1==mxUtils.mod(Math.max(1,Math.round((this.stencil&&"inherit"!=this.stencil.strokewidth?Number(this.stencil.strokewidth):this.strokewidth)*this.scale)),2)?.5:0};mxShape.prototype.create=function(a){return null!=a&&null!=a.ownerSVGElement?this.createSvg(a):this.createHtml(a)};mxShape.prototype.createSvg=function(){return document.createElementNS(mxConstants.NS_SVG,"g")};
575mxShape.prototype.createHtml=function(){var a=document.createElement("div");a.style.position="absolute";return a};mxShape.prototype.reconfigure=function(){this.redraw()};mxShape.prototype.redraw=function(){this.updateBoundsFromPoints();this.visible&&this.checkBounds()?(this.node.style.visibility="visible",this.clear(),"DIV"==this.node.nodeName?this.redrawHtmlShape():this.redrawShape(),this.updateBoundingBox()):(this.node.style.visibility="hidden",this.boundingBox=null)};
576mxShape.prototype.clear=function(){if(null!=this.node.ownerSVGElement)for(;null!=this.node.lastChild;)this.node.removeChild(this.node.lastChild);else this.node.style.cssText="position:absolute;"+(null!=this.cursor?"cursor:"+this.cursor+";":""),this.node.innerHTML=""};
577mxShape.prototype.updateBoundsFromPoints=function(){var a=this.points;if(null!=a&&0<a.length&&null!=a[0]){this.bounds=new mxRectangle(Number(a[0].x),Number(a[0].y),1,1);for(var b=1;b<this.points.length;b++)null!=a[b]&&this.bounds.add(new mxRectangle(Number(a[b].x),Number(a[b].y),1,1))}};
578mxShape.prototype.getLabelBounds=function(a){var b=mxUtils.getValue(this.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST),c=a;b!=mxConstants.DIRECTION_SOUTH&&b!=mxConstants.DIRECTION_NORTH&&null!=this.state&&null!=this.state.text&&this.state.text.isPaintBoundsInverted()&&(c=c.clone(),b=c.width,c.width=c.height,c.height=b);c=this.getLabelMargins(c);if(null!=c){var d="1"==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPH,!1),e="1"==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPV,
579!1);null!=this.state&&null!=this.state.text&&this.state.text.isPaintBoundsInverted()&&(b=c.x,c.x=c.height,c.height=c.width,c.width=c.y,c.y=b,b=d,d=e,e=b);return mxUtils.getDirectedBounds(a,c,this.style,d,e)}return a};mxShape.prototype.getLabelMargins=function(a){return null};
580mxShape.prototype.checkBounds=function(){return!isNaN(this.scale)&&isFinite(this.scale)&&0<this.scale&&null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)&&0<this.bounds.width&&0<this.bounds.height};
581mxShape.prototype.redrawShape=function(){var a=this.createCanvas();null!=a&&(a.pointerEvents=this.pointerEvents,this.beforePaint(a),this.paint(a),this.afterPaint(a),this.node!=a.root&&this.node.insertAdjacentHTML("beforeend",a.root.outerHTML),"DIV"==this.node.nodeName&&8==document.documentMode&&(this.node.style.filter="",mxUtils.addTransparentBackgroundFilter(this.node)),this.destroyCanvas(a))};
582mxShape.prototype.createCanvas=function(){var a=null;null!=this.node.ownerSVGElement&&(a=this.createSvgCanvas());null!=a&&this.outline&&(a.setStrokeWidth(this.strokewidth),a.setStrokeColor(this.stroke),null!=this.isDashed&&a.setDashed(this.isDashed),a.setStrokeWidth=function(){},a.setStrokeColor=function(){},a.setFillColor=function(){},a.setGradient=function(){},a.setDashed=function(){},a.text=function(){});return a};
583mxShape.prototype.createSvgCanvas=function(){var a=new mxSvgCanvas2D(this.node,!1);a.strokeTolerance=this.svgStrokeTolerance;a.pointerEventsValue=this.svgPointerEvents;var b=this.getSvgScreenOffset();0!=b?this.node.setAttribute("transform","translate("+b+","+b+")"):this.node.removeAttribute("transform");a.minStrokeWidth=this.minSvgStrokeWidth;this.antiAlias||(a.format=function(a){return Math.round(parseFloat(a))});return a};
584mxShape.prototype.redrawHtmlShape=function(){this.updateHtmlBounds(this.node);this.updateHtmlFilters(this.node);this.updateHtmlColors(this.node)};
585mxShape.prototype.updateHtmlFilters=function(a){var b="";100>this.opacity&&(b+="alpha(opacity="+this.opacity+")");this.isShadow&&(b+="progid:DXImageTransform.Microsoft.dropShadow (OffX='"+Math.round(mxConstants.SHADOW_OFFSET_X*this.scale)+"', OffY='"+Math.round(mxConstants.SHADOW_OFFSET_Y*this.scale)+"', Color='"+mxConstants.VML_SHADOWCOLOR+"')");if(null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE){var c=this.fill,d=this.gradient,e="0",f={east:0,south:1,
586west:2,north:3},g=null!=this.direction?f[this.direction]:0;null!=this.gradientDirection&&(g=mxUtils.mod(g+f[this.gradientDirection]-1,4));1==g?(e="1",f=c,c=d,d=f):2==g?(f=c,c=d,d=f):3==g&&(e="1");b+="progid:DXImageTransform.Microsoft.gradient(startColorStr='"+c+"', endColorStr='"+d+"', gradientType='"+e+"')"}a.style.filter=b};
587mxShape.prototype.updateHtmlColors=function(a){var b=this.stroke;null!=b&&b!=mxConstants.NONE?(a.style.borderColor=b,this.isDashed?a.style.borderStyle="dashed":0<this.strokewidth&&(a.style.borderStyle="solid"),a.style.borderWidth=Math.max(1,Math.ceil(this.strokewidth*this.scale))+"px"):a.style.borderWidth="0px";b=this.outline?null:this.fill;null!=b&&b!=mxConstants.NONE?(a.style.backgroundColor=b,a.style.backgroundImage="none"):this.pointerEvents?a.style.backgroundColor="transparent":8==document.documentMode?
588mxUtils.addTransparentBackgroundFilter(a):this.setTransparentBackgroundImage(a)};
589mxShape.prototype.updateHtmlBounds=function(a){var b=9<=document.documentMode?0:Math.ceil(this.strokewidth*this.scale);a.style.borderWidth=Math.max(1,b)+"px";a.style.overflow="hidden";a.style.left=Math.round(this.bounds.x-b/2)+"px";a.style.top=Math.round(this.bounds.y-b/2)+"px";"CSS1Compat"==document.compatMode&&(b=-b);a.style.width=Math.round(Math.max(0,this.bounds.width+b))+"px";a.style.height=Math.round(Math.max(0,this.bounds.height+b))+"px"};
590mxShape.prototype.destroyCanvas=function(a){if(a instanceof mxSvgCanvas2D){for(var b in a.gradients){var c=a.gradients[b];null!=c&&(c.mxRefCount=(c.mxRefCount||0)+1)}this.releaseSvgGradients(this.oldGradients);this.oldGradients=a.gradients}};mxShape.prototype.beforePaint=function(a){};mxShape.prototype.afterPaint=function(a){};
591mxShape.prototype.paint=function(a){var b=!1;if(null!=a&&this.outline){var c=a.stroke;a.stroke=function(){b=!0;c.apply(this,arguments)};var d=a.fillAndStroke;a.fillAndStroke=function(){b=!0;d.apply(this,arguments)}}var e=this.scale,f=this.bounds.x/e,g=this.bounds.y/e,k=this.bounds.width/e,l=this.bounds.height/e;if(this.isPaintBoundsInverted())var m=(k-l)/2,f=f+m,g=g-m,m=k,k=l,l=m;this.updateTransform(a,f,g,k,l);this.configureCanvas(a,f,g,k,l);m=null;if(null==this.stencil&&null==this.points&&this.shapePointerEvents||
592null!=this.stencil&&this.stencilPointerEvents){var n=this.createBoundingBox();this.dialect==mxConstants.DIALECT_SVG?(m=this.createTransparentSvgRectangle(n.x,n.y,n.width,n.height),this.node.appendChild(m)):(e=a.createRect("rect",n.x/e,n.y/e,n.width/e,n.height/e),e.appendChild(a.createTransparentFill()),e.stroked="false",a.root.appendChild(e))}null!=this.stencil?this.stencil.drawShape(a,this,f,g,k,l):(a.setStrokeWidth(this.strokewidth),e=this.getWaypoints(),null!=e?1<e.length&&this.paintEdgeShape(a,
593e):this.paintVertexShape(a,f,g,k,l));null!=m&&null!=a.state&&null!=a.state.transform&&m.setAttribute("transform",a.state.transform);null!=a&&this.outline&&!b&&(a.rect(f,g,k,l),a.stroke())};mxShape.prototype.getWaypoints=function(){var a=this.points,b=null;if(null!=a&&(b=[],0<a.length)){var c=this.scale,d=Math.max(c,1),e=a[0];b.push(new mxPoint(e.x/c,e.y/c));for(var f=1;f<a.length;f++){var g=a[f];(Math.abs(e.x-g.x)>=d||Math.abs(e.y-g.y)>=d)&&b.push(new mxPoint(g.x/c,g.y/c));e=g}}return b};
594mxShape.prototype.configureCanvas=function(a,b,c,d,e){var f=null;null!=this.style&&(f=this.style.dashPattern);a.setAlpha(this.opacity/100);a.setFillAlpha(this.fillOpacity/100);a.setStrokeAlpha(this.strokeOpacity/100);null!=this.isShadow&&a.setShadow(this.isShadow);null!=this.isDashed&&a.setDashed(this.isDashed,null!=this.style?1==mxUtils.getValue(this.style,mxConstants.STYLE_FIX_DASH,!1):!1);null!=f&&a.setDashPattern(f);null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?
595(b=this.getGradientBounds(a,b,c,d,e),a.setGradient(this.fill,this.gradient,b.x,b.y,b.width,b.height,this.gradientDirection)):a.setFillColor(this.fill);a.setStrokeColor(this.stroke);this.configurePointerEvents(a)};mxShape.prototype.configurePointerEvents=function(a){null==this.style||null!=this.fill&&this.fill!=mxConstants.NONE||"0"!=mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||(a.pointerEvents=!1)};
596mxShape.prototype.getGradientBounds=function(a,b,c,d,e){return new mxRectangle(b,c,d,e)};mxShape.prototype.updateTransform=function(a,b,c,d,e){a.scale(this.scale);a.rotate(this.getShapeRotation(),this.flipH,this.flipV,b+d/2,c+e/2)};mxShape.prototype.paintVertexShape=function(a,b,c,d,e){this.paintBackground(a,b,c,d,e);this.outline&&null!=this.style&&0!=mxUtils.getValue(this.style,mxConstants.STYLE_BACKGROUND_OUTLINE,0)||(a.setShadow(!1),this.paintForeground(a,b,c,d,e))};
597mxShape.prototype.paintBackground=function(a,b,c,d,e){};mxShape.prototype.paintForeground=function(a,b,c,d,e){};mxShape.prototype.paintEdgeShape=function(a,b){};
598mxShape.prototype.getArcSize=function(a,b){var c;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?c=Math.min(a/2,Math.min(b/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,c=Math.min(a*c,b*c));return c};
599mxShape.prototype.paintGlassEffect=function(a,b,c,d,e,f){var g=Math.ceil(this.strokewidth/2);a.setGradient("#ffffff","#ffffff",b,c,d,.6*e,"south",.9,.1);a.begin();f+=2*g;this.isRounded?(a.moveTo(b-g+f,c-g),a.quadTo(b-g,c-g,b-g,c-g+f),a.lineTo(b-g,c+.4*e),a.quadTo(b+.5*d,c+.7*e,b+d+g,c+.4*e),a.lineTo(b+d+g,c-g+f),a.quadTo(b+d+g,c-g,b+d+g-f,c-g)):(a.moveTo(b-g,c-g),a.lineTo(b-g,c+.4*e),a.quadTo(b+.5*d,c+.7*e,b+d+g,c+.4*e),a.lineTo(b+d+g,c-g));a.close();a.fill()};
600mxShape.prototype.addPoints=function(a,b,c,d,e,f,g){if(null!=b&&0<b.length){g=null!=g?g:!0;var k=b[b.length-1];if(e&&c){b=b.slice();var l=b[0],l=new mxPoint(k.x+(l.x-k.x)/2,k.y+(l.y-k.y)/2);b.splice(0,0,l)}var m=b[0],l=1;for(g?a.moveTo(m.x,m.y):a.lineTo(m.x,m.y);l<(e?b.length:b.length-1);){g=b[mxUtils.mod(l,b.length)];var n=m.x-g.x,m=m.y-g.y;if(c&&(0!=n||0!=m)&&(null==f||0>mxUtils.indexOf(f,l-1))){var p=Math.sqrt(n*n+m*m);a.lineTo(g.x+n*Math.min(d,p/2)/p,g.y+m*Math.min(d,p/2)/p);for(m=b[mxUtils.mod(l+
6011,b.length)];l<b.length-2&&0==Math.round(m.x-g.x)&&0==Math.round(m.y-g.y);)m=b[mxUtils.mod(l+2,b.length)],l++;n=m.x-g.x;m=m.y-g.y;p=Math.max(1,Math.sqrt(n*n+m*m));n=g.x+n*Math.min(d,p/2)/p;m=g.y+m*Math.min(d,p/2)/p;a.quadTo(g.x,g.y,n,m);g=new mxPoint(n,m)}else a.lineTo(g.x,g.y);m=g;l++}e?a.close():a.lineTo(k.x,k.y)}};
602mxShape.prototype.resetStyles=function(){this.initStyles();this.spacing=0;delete this.fill;delete this.gradient;delete this.gradientDirection;delete this.stroke;delete this.startSize;delete this.endSize;delete this.startArrow;delete this.endArrow;delete this.direction;delete this.isShadow;delete this.isDashed;delete this.isRounded;delete this.glass};
603mxShape.prototype.apply=function(a){this.state=a;this.style=a.style;if(null!=this.style){this.fill=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,this.fill);this.gradient=mxUtils.getValue(this.style,mxConstants.STYLE_GRADIENTCOLOR,this.gradient);this.gradientDirection=mxUtils.getValue(this.style,mxConstants.STYLE_GRADIENT_DIRECTION,this.gradientDirection);this.opacity=mxUtils.getValue(this.style,mxConstants.STYLE_OPACITY,this.opacity);this.fillOpacity=mxUtils.getValue(this.style,mxConstants.STYLE_FILL_OPACITY,
604this.fillOpacity);this.strokeOpacity=mxUtils.getValue(this.style,mxConstants.STYLE_STROKE_OPACITY,this.strokeOpacity);this.stroke=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,this.stroke);this.strokewidth=mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth);this.spacing=mxUtils.getValue(this.style,mxConstants.STYLE_SPACING,this.spacing);this.startSize=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,this.startSize);this.endSize=mxUtils.getNumber(this.style,
605mxConstants.STYLE_ENDSIZE,this.endSize);this.startArrow=mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,this.startArrow);this.endArrow=mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,this.endArrow);this.rotation=mxUtils.getValue(this.style,mxConstants.STYLE_ROTATION,this.rotation);this.direction=mxUtils.getValue(this.style,mxConstants.STYLE_DIRECTION,this.direction);this.flipH=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPH,0);this.flipV=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPV,
6060);null!=this.stencil&&(this.flipH=1==mxUtils.getValue(this.style,"stencilFlipH",0)||this.flipH,this.flipV=1==mxUtils.getValue(this.style,"stencilFlipV",0)||this.flipV);if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)a=this.flipH,this.flipH=this.flipV,this.flipV=a;this.isShadow=1==mxUtils.getValue(this.style,mxConstants.STYLE_SHADOW,this.isShadow);this.isDashed=1==mxUtils.getValue(this.style,mxConstants.STYLE_DASHED,this.isDashed);this.isRounded=1==mxUtils.getValue(this.style,
607mxConstants.STYLE_ROUNDED,this.isRounded);this.glass=1==mxUtils.getValue(this.style,mxConstants.STYLE_GLASS,this.glass);this.fill==mxConstants.NONE&&(this.fill=null);this.gradient==mxConstants.NONE&&(this.gradient=null);this.stroke==mxConstants.NONE&&(this.stroke=null)}};mxShape.prototype.setCursor=function(a){null==a&&(a="");this.cursor=a;null!=this.node&&(this.node.style.cursor=a)};mxShape.prototype.getCursor=function(){return this.cursor};mxShape.prototype.isRoundable=function(){return!1};
608mxShape.prototype.updateBoundingBox=function(){if(this.useSvgBoundingBox&&null!=this.node&&null!=this.node.ownerSVGElement)try{var a=this.node.getBBox();if(0<a.width&&0<a.height){this.boundingBox=new mxRectangle(a.x,a.y,a.width,a.height);this.boundingBox.grow(this.strokewidth*this.scale/2);return}}catch(c){}if(null!=this.bounds){a=this.createBoundingBox();if(null!=a){this.augmentBoundingBox(a);var b=this.getShapeRotation();0!=b&&(a=mxUtils.getBoundingBox(a,b))}this.boundingBox=a}};
609mxShape.prototype.createBoundingBox=function(){var a=this.bounds.clone();(null!=this.stencil&&(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)||this.isPaintBoundsInverted())&&a.rotate90();return a};mxShape.prototype.augmentBoundingBox=function(a){this.isShadow&&(a.width+=Math.ceil(mxConstants.SHADOW_OFFSET_X*this.scale),a.height+=Math.ceil(mxConstants.SHADOW_OFFSET_Y*this.scale));a.grow(this.strokewidth*this.scale/2)};
610mxShape.prototype.isPaintBoundsInverted=function(){return null==this.stencil&&(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)};mxShape.prototype.getRotation=function(){return null!=this.rotation?this.rotation:0};mxShape.prototype.getTextRotation=function(){var a=this.getRotation();1!=mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,1)&&(a+=mxText.prototype.verticalTextRotation);return a};
611mxShape.prototype.getShapeRotation=function(){var a=this.getRotation();null!=this.direction&&(this.direction==mxConstants.DIRECTION_NORTH?a+=270:this.direction==mxConstants.DIRECTION_WEST?a+=180:this.direction==mxConstants.DIRECTION_SOUTH&&(a+=90));return a};
612mxShape.prototype.createTransparentSvgRectangle=function(a,b,c,d){var e=document.createElementNS(mxConstants.NS_SVG,"rect");e.setAttribute("x",a);e.setAttribute("y",b);e.setAttribute("width",c);e.setAttribute("height",d);e.setAttribute("fill","none");e.setAttribute("stroke","none");e.setAttribute("pointer-events","all");return e};mxShape.prototype.setTransparentBackgroundImage=function(a){a.style.backgroundImage="url('"+mxClient.imageBasePath+"/transparent.gif')"};
613mxShape.prototype.releaseSvgGradients=function(a){if(null!=a)for(var b in a){var c=a[b];null!=c&&(c.mxRefCount=(c.mxRefCount||0)-1,0==c.mxRefCount&&null!=c.parentNode&&c.parentNode.removeChild(c))}};mxShape.prototype.destroy=function(){null!=this.node&&(mxEvent.release(this.node),null!=this.node.parentNode&&this.node.parentNode.removeChild(this.node),this.node=null);this.releaseSvgGradients(this.oldGradients);this.oldGradients=null};
614function mxStencil(a){this.desc=a;this.parseDescription();this.parseConstraints()}mxUtils.extend(mxStencil,mxShape);mxStencil.defaultLocalized=!1;mxStencil.allowEval=!1;mxStencil.prototype.desc=null;mxStencil.prototype.constraints=null;mxStencil.prototype.aspect=null;mxStencil.prototype.w0=null;mxStencil.prototype.h0=null;mxStencil.prototype.bgNode=null;mxStencil.prototype.fgNode=null;mxStencil.prototype.strokewidth=null;
615mxStencil.prototype.parseDescription=function(){this.fgNode=this.desc.getElementsByTagName("foreground")[0];this.bgNode=this.desc.getElementsByTagName("background")[0];this.w0=Number(this.desc.getAttribute("w")||100);this.h0=Number(this.desc.getAttribute("h")||100);var a=this.desc.getAttribute("aspect");this.aspect=null!=a?a:"variable";a=this.desc.getAttribute("strokewidth");this.strokewidth=null!=a?a:"1"};
616mxStencil.prototype.parseConstraints=function(){var a=this.desc.getElementsByTagName("connections")[0];if(null!=a&&(a=mxUtils.getChildNodes(a),null!=a&&0<a.length)){this.constraints=[];for(var b=0;b<a.length;b++)this.constraints.push(this.parseConstraint(a[b]))}};mxStencil.prototype.parseConstraint=function(a){var b=Number(a.getAttribute("x")),c=Number(a.getAttribute("y")),d="1"==a.getAttribute("perimeter");a=a.getAttribute("name");return new mxConnectionConstraint(new mxPoint(b,c),d,a)};
617mxStencil.prototype.evaluateTextAttribute=function(a,b,c){b=this.evaluateAttribute(a,b,c);a=a.getAttribute("localized");if(mxStencil.defaultLocalized&&null==a||"1"==a)b=mxResources.get(b);return b};mxStencil.prototype.evaluateAttribute=function(a,b,c){b=a.getAttribute(b);null==b&&(a=mxUtils.getTextContent(a),null!=a&&mxStencil.allowEval&&(a=mxUtils.eval(a),"function"==typeof a&&(b=a(c))));return b};
618mxStencil.prototype.drawShape=function(a,b,c,d,e,f){var g=a.states.slice(),k=mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,null),k=this.computeAspect(b.style,c,d,e,f,k),l=Math.min(k.width,k.height),l="inherit"==this.strokewidth?Number(mxUtils.getNumber(b.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*l;a.setStrokeWidth(l);null!=b.style&&"1"==mxUtils.getValue(b.style,mxConstants.STYLE_POINTER_EVENTS,"0")&&(a.setStrokeColor(mxConstants.NONE),a.rect(c,d,e,f),a.stroke(),a.setStrokeColor(b.stroke));
619this.drawChildren(a,b,c,d,e,f,this.bgNode,k,!1,!0);this.drawChildren(a,b,c,d,e,f,this.fgNode,k,!0,!b.outline||null==b.style||0==mxUtils.getValue(b.style,mxConstants.STYLE_BACKGROUND_OUTLINE,0));a.states.length!=g.length&&(a.states=g)};mxStencil.prototype.drawChildren=function(a,b,c,d,e,f,g,k,l,m){if(null!=g&&0<e&&0<f)for(c=g.firstChild;null!=c;)c.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,c,k,l,m),c=c.nextSibling};
620mxStencil.prototype.computeAspect=function(a,b,c,d,e,f){a=b;b=d/this.w0;var g=e/this.h0;if(f=f==mxConstants.DIRECTION_NORTH||f==mxConstants.DIRECTION_SOUTH){g=d/this.h0;b=e/this.w0;var k=(d-e)/2;a+=k;c-=k}"fixed"==this.aspect&&(b=g=Math.min(b,g),f?(a+=(e-this.w0*b)/2,c+=(d-this.h0*g)/2):(a+=(d-this.w0*b)/2,c+=(e-this.h0*g)/2));return new mxRectangle(a,c,b,g)};
621mxStencil.prototype.drawNode=function(a,b,c,d,e,f){var g=c.nodeName,k=d.x,l=d.y,m=d.width,n=d.height,p=Math.min(m,n);if("save"==g)a.save();else if("restore"==g)a.restore();else if(f){if("path"==g){a.begin();p=!0;if("1"==c.getAttribute("rounded")){for(var p=!1,q=Number(c.getAttribute("arcSize")),r=0,t=[],u=c.firstChild;null!=u;){if(u.nodeType==mxConstants.NODETYPE_ELEMENT){var x=u.nodeName;if("move"==x||"line"==x)"move"!=x&&0!=t.length||t.push([]),t[t.length-1].push(new mxPoint(k+Number(u.getAttribute("x"))*
622m,l+Number(u.getAttribute("y"))*n)),r++;else{p=!0;break}}u=u.nextSibling}if(!p&&0<r)for(m=0;m<t.length;m++)n=!1,l=t[m][0],k=t[m][t[m].length-1],l.x==k.x&&l.y==k.y&&(t[m].pop(),n=!0),this.addPoints(a,t[m],!0,q,n);else p=!0}if(p)for(u=c.firstChild;null!=u;)u.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(a,b,u,d,e,f),u=u.nextSibling}else if("close"==g)a.close();else if("move"==g)a.moveTo(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n);else if("line"==g)a.lineTo(k+Number(c.getAttribute("x"))*
623m,l+Number(c.getAttribute("y"))*n);else if("quad"==g)a.quadTo(k+Number(c.getAttribute("x1"))*m,l+Number(c.getAttribute("y1"))*n,k+Number(c.getAttribute("x2"))*m,l+Number(c.getAttribute("y2"))*n);else if("curve"==g)a.curveTo(k+Number(c.getAttribute("x1"))*m,l+Number(c.getAttribute("y1"))*n,k+Number(c.getAttribute("x2"))*m,l+Number(c.getAttribute("y2"))*n,k+Number(c.getAttribute("x3"))*m,l+Number(c.getAttribute("y3"))*n);else if("arc"==g)a.arcTo(Number(c.getAttribute("rx"))*m,Number(c.getAttribute("ry"))*
624n,Number(c.getAttribute("x-axis-rotation")),Number(c.getAttribute("large-arc-flag")),Number(c.getAttribute("sweep-flag")),k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n);else if("rect"==g)a.rect(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n,Number(c.getAttribute("w"))*m,Number(c.getAttribute("h"))*n);else if("roundrect"==g)b=Number(c.getAttribute("arcsize")),0==b&&(b=100*mxConstants.RECTANGLE_ROUNDING_FACTOR),d=Number(c.getAttribute("w"))*m,f=Number(c.getAttribute("h"))*
625n,b=Number(b)/100,b=Math.min(d*b,f*b),a.roundrect(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n,d,f,b,b);else if("ellipse"==g)a.ellipse(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n,Number(c.getAttribute("w"))*m,Number(c.getAttribute("h"))*n);else if("image"==g)b.outline||(b=this.evaluateAttribute(c,"src",b),a.image(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n,Number(c.getAttribute("w"))*m,Number(c.getAttribute("h"))*n,b,!1,"1"==c.getAttribute("flipH"),
626"1"==c.getAttribute("flipV")));else if("text"==g)b.outline||(d=this.evaluateTextAttribute(c,"str",b),f="1"==c.getAttribute("vertical")?-90:0,"0"==c.getAttribute("align-shape")&&(p=b.rotation,q=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPH,0),b=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPV,0),f=q&&b?f-p:q||b?f+p:f-p),f-=c.getAttribute("rotation"),a.text(k+Number(c.getAttribute("x"))*m,l+Number(c.getAttribute("y"))*n,0,0,d,c.getAttribute("align")||"left",c.getAttribute("valign")||"top",
627!1,"",null,!1,f));else if("include-shape"==g)p=mxStencilRegistry.getStencil(c.getAttribute("name")),null!=p&&(k+=Number(c.getAttribute("x"))*m,l+=Number(c.getAttribute("y"))*n,d=Number(c.getAttribute("w"))*m,f=Number(c.getAttribute("h"))*n,p.drawShape(a,b,k,l,d,f));else if("fillstroke"==g)a.fillAndStroke();else if("fill"==g)a.fill();else if("stroke"==g)a.stroke();else if("strokewidth"==g)m="1"==c.getAttribute("fixed")?1:p,a.setStrokeWidth(Number(c.getAttribute("width"))*m);else if("dashed"==g)a.setDashed("1"==
628c.getAttribute("dashed"));else if("dashpattern"==g){if(c=c.getAttribute("pattern"),null!=c){c=c.split(" ");n=[];for(m=0;m<c.length;m++)0<c[m].length&&n.push(Number(c[m])*p);c=n.join(" ");a.setDashPattern(c)}}else"strokecolor"==g?a.setStrokeColor(c.getAttribute("color")):"linecap"==g?a.setLineCap(c.getAttribute("cap")):"linejoin"==g?a.setLineJoin(c.getAttribute("join")):"miterlimit"==g?a.setMiterLimit(Number(c.getAttribute("limit"))):"fillcolor"==g?a.setFillColor(c.getAttribute("color")):"alpha"==
629g?a.setAlpha(c.getAttribute("alpha")):"fillalpha"==g?a.setAlpha(c.getAttribute("alpha")):"strokealpha"==g?a.setAlpha(c.getAttribute("alpha")):"fontcolor"==g?a.setFontColor(c.getAttribute("color")):"fontstyle"==g?a.setFontStyle(c.getAttribute("style")):"fontfamily"==g?a.setFontFamily(c.getAttribute("family")):"fontsize"==g&&a.setFontSize(Number(c.getAttribute("size"))*p);!e||"fillstroke"!=g&&"fill"!=g&&"stroke"!=g||a.setShadow(!1)}};
630var mxStencilRegistry={stencils:{},addStencil:function(a,b){mxStencilRegistry.stencils[a]=b},getStencil:function(a){return mxStencilRegistry.stencils[a]}},mxMarker={markers:[],addMarker:function(a,b){mxMarker.markers[a]=b},createMarker:function(a,b,c,d,e,f,g,k,l,m){var n=mxMarker.markers[c];return null!=n?n(a,b,c,d,e,f,g,k,l,m):null}};
631(function(){function a(a){a=null!=a?a:2;return function(b,c,d,k,l,m,n,p,q,r){c=l*q*1.118;p=m*q*1.118;l*=n+q;m*=n+q;var e=k.clone();e.x-=c;e.y-=p;n=d!=mxConstants.ARROW_CLASSIC&&d!=mxConstants.ARROW_CLASSIC_THIN?1:.75;k.x+=-l*n-c;k.y+=-m*n-p;return function(){b.begin();b.moveTo(e.x,e.y);b.lineTo(e.x-l-m/a,e.y-m+l/a);d!=mxConstants.ARROW_CLASSIC&&d!=mxConstants.ARROW_CLASSIC_THIN||b.lineTo(e.x-3*l/4,e.y-3*m/4);b.lineTo(e.x+m/a-l,e.y-m-l/a);b.close();r?b.fillAndStroke():b.stroke()}}}function b(a){a=
632null!=a?a:2;return function(b,c,d,k,l,m,n,p,q,r){c=l*q*1.118;d=m*q*1.118;l*=n+q;m*=n+q;var e=k.clone();e.x-=c;e.y-=d;k.x+=2*-c;k.y+=2*-d;return function(){b.begin();b.moveTo(e.x-l-m/a,e.y-m+l/a);b.lineTo(e.x,e.y);b.lineTo(e.x+m/a-l,e.y-m-l/a);b.stroke()}}}function c(a,b,c,g,k,l,m,n,p,q){n=c==mxConstants.ARROW_DIAMOND?.7071:.9862;b=k*p*n;n*=l*p;k*=m+p;l*=m+p;var d=g.clone();d.x-=b;d.y-=n;g.x+=-k-b;g.y+=-l-n;var e=c==mxConstants.ARROW_DIAMOND?2:3.4;return function(){a.begin();a.moveTo(d.x,d.y);a.lineTo(d.x-
633k/2-l/e,d.y+k/e-l/2);a.lineTo(d.x-k,d.y-l);a.lineTo(d.x-k/2+l/e,d.y-l/2-k/e);a.close();q?a.fillAndStroke():a.stroke()}}mxMarker.addMarker("classic",a(2));mxMarker.addMarker("classicThin",a(3));mxMarker.addMarker("block",a(2));mxMarker.addMarker("blockThin",a(3));mxMarker.addMarker("open",b(2));mxMarker.addMarker("openThin",b(3));mxMarker.addMarker("oval",function(a,b,c,g,k,l,m,n,p,q){var d=m/2,e=g.clone();g.x-=k*d;g.y-=l*d;return function(){a.ellipse(e.x-d,e.y-d,m,m);q?a.fillAndStroke():a.stroke()}});
634mxMarker.addMarker("baseDash",function(a,b,c,g,k,l,m,n,p,q){var d=k*(m+p+1),e=l*(m+p+1);return function(){a.begin();a.moveTo(g.x-e/2,g.y+d/2);a.lineTo(g.x+e/2,g.y-d/2);a.stroke()}});mxMarker.addMarker("doubleBlock",function(a,b,c,g,k,l,m,n,p,q){b=k*p*1.118;n=l*p*1.118;k*=m+p;l*=m+p;var d=g.clone();d.x-=b;d.y-=n;c=c!=mxConstants.ARROW_CLASSIC&&c!=mxConstants.ARROW_CLASSIC_THIN?1:.75;g.x+=-k*c*2-b;g.y+=-l*c*2-n;return function(){a.begin();a.moveTo(d.x,d.y);a.lineTo(d.x-k-l/2,d.y-l+k/2);a.lineTo(d.x+
635l/2-k,d.y-l-k/2);a.close();a.moveTo(d.x-k,d.y-l);a.lineTo(d.x-2*k-.5*l,d.y+.5*k-2*l);a.lineTo(d.x-2*k+.5*l,d.y-.5*k-2*l);a.close();q?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("diamond",c);mxMarker.addMarker("diamondThin",c)})();function mxActor(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxActor,mxShape);mxActor.prototype.paintVertexShape=function(a,b,c,d,e){a.translate(b,c);a.begin();this.redrawPath(a,b,c,d,e);a.fillAndStroke()};
636mxActor.prototype.redrawPath=function(a,b,c,d,e){b=d/3;a.moveTo(0,e);a.curveTo(0,3*e/5,0,2*e/5,d/2,2*e/5);a.curveTo(d/2-b,2*e/5,d/2-b,0,d/2,0);a.curveTo(d/2+b,0,d/2+b,2*e/5,d/2,2*e/5);a.curveTo(d,2*e/5,d,3*e/5,d,e);a.close()};function mxCloud(a,b,c,d){mxActor.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxCloud,mxActor);
637mxCloud.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(.25*d,.25*e);a.curveTo(.05*d,.25*e,0,.5*e,.16*d,.55*e);a.curveTo(0,.66*e,.18*d,.9*e,.31*d,.8*e);a.curveTo(.4*d,e,.7*d,e,.8*d,.8*e);a.curveTo(d,.8*e,d,.6*e,.875*d,.5*e);a.curveTo(d,.3*e,.8*d,.1*e,.625*d,.2*e);a.curveTo(.5*d,.05*e,.3*d,.05*e,.25*d,.25*e);a.close()};function mxRectangleShape(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxRectangleShape,mxShape);
638mxRectangleShape.prototype.isHtmlAllowed=function(){var a=!0;null!=this.style&&(a="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));return!this.isRounded&&!this.glass&&0==this.rotation&&(a||null!=this.fill&&this.fill!=mxConstants.NONE)};
639mxRectangleShape.prototype.paintBackground=function(a,b,c,d,e){if(this.isRounded){var f;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?f=Math.min(d/2,Math.min(e/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.min(d*f,e*f));a.roundrect(b,c,d,e,f,f)}else a.rect(b,c,d,e);a.fillAndStroke()};
640mxRectangleShape.prototype.isRoundable=function(a,b,c,d,e){return!0};mxRectangleShape.prototype.paintForeground=function(a,b,c,d,e){this.glass&&!this.outline&&null!=this.fill&&this.fill!=mxConstants.NONE&&this.paintGlassEffect(a,b,c,d,e,this.getArcSize(d+this.strokewidth,e+this.strokewidth))};function mxEllipse(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxEllipse,mxShape);
641mxEllipse.prototype.paintVertexShape=function(a,b,c,d,e){a.ellipse(b,c,d,e);a.fillAndStroke()};function mxDoubleEllipse(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxDoubleEllipse,mxShape);mxDoubleEllipse.prototype.paintBackground=function(a,b,c,d,e){a.ellipse(b,c,d,e);a.fillAndStroke()};
642mxDoubleEllipse.prototype.paintForeground=function(a,b,c,d,e){if(!this.outline){var f=mxUtils.getValue(this.style,mxConstants.STYLE_MARGIN,Math.min(3+this.strokewidth,Math.min(d/5,e/5)));d-=2*f;e-=2*f;0<d&&0<e&&a.ellipse(b+f,c+f,d,e);a.stroke()}};
643mxDoubleEllipse.prototype.getLabelBounds=function(a){var b=mxUtils.getValue(this.style,mxConstants.STYLE_MARGIN,Math.min(3+this.strokewidth,Math.min(a.width/5/this.scale,a.height/5/this.scale)))*this.scale;return new mxRectangle(a.x+b,a.y+b,a.width-2*b,a.height-2*b)};function mxRhombus(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxRhombus,mxShape);mxRhombus.prototype.isRoundable=function(){return!0};
644mxRhombus.prototype.paintVertexShape=function(a,b,c,d,e){var f=d/2,g=e/2,k=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;a.begin();this.addPoints(a,[new mxPoint(b+f,c),new mxPoint(b+d,c+g),new mxPoint(b+f,c+e),new mxPoint(b,c+g)],this.isRounded,k,!0);a.fillAndStroke()};function mxPolyline(a,b,c){mxShape.call(this);this.points=a;this.stroke=b;this.strokewidth=null!=c?c:1}mxUtils.extend(mxPolyline,mxShape);mxPolyline.prototype.getRotation=function(){return 0};
645mxPolyline.prototype.getShapeRotation=function(){return 0};mxPolyline.prototype.isPaintBoundsInverted=function(){return!1};mxPolyline.prototype.paintEdgeShape=function(a,b){var c=a.pointerEventsValue;a.pointerEventsValue="stroke";null==this.style||1!=this.style[mxConstants.STYLE_CURVED]?this.paintLine(a,b,this.isRounded):this.paintCurvedLine(a,b);a.pointerEventsValue=c};
646mxPolyline.prototype.paintLine=function(a,b,c){var d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;a.begin();this.addPoints(a,b,c,d,!1);a.stroke()};mxPolyline.prototype.paintCurvedLine=function(a,b){a.begin();var c=b[0],d=b.length;a.moveTo(c.x,c.y);for(c=1;c<d-2;c++){var e=b[c],f=b[c+1];a.quadTo(e.x,e.y,(e.x+f.x)/2,(e.y+f.y)/2)}e=b[d-2];f=b[d-1];a.quadTo(e.x,e.y,f.x,f.y);a.stroke()};
647function mxArrow(a,b,c,d,e,f,g){mxShape.call(this);this.points=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1;this.arrowWidth=null!=e?e:mxConstants.ARROW_WIDTH;this.spacing=null!=f?f:mxConstants.ARROW_SPACING;this.endSize=null!=g?g:mxConstants.ARROW_SIZE}mxUtils.extend(mxArrow,mxShape);mxArrow.prototype.augmentBoundingBox=function(a){mxShape.prototype.augmentBoundingBox.apply(this,arguments);a.grow((Math.max(this.arrowWidth,this.endSize)/2+this.strokewidth)*this.scale)};
648mxArrow.prototype.paintEdgeShape=function(a,b){var c=mxConstants.ARROW_SPACING,d=mxConstants.ARROW_WIDTH,e=b[0],f=b[b.length-1],g=f.x-e.x,k=f.y-e.y,l=Math.sqrt(g*g+k*k),m=l-2*c-mxConstants.ARROW_SIZE,g=g/l,k=k/l,l=d*k/3,d=-d*g/3,n=e.x-l/2+c*g,e=e.y-d/2+c*k,p=n+l,q=e+d,r=p+m*g,m=q+m*k,t=r+l,u=m+d,x=t-3*l,y=u-3*d;a.begin();a.moveTo(n,e);a.lineTo(p,q);a.lineTo(r,m);a.lineTo(t,u);a.lineTo(f.x-c*g,f.y-c*k);a.lineTo(x,y);a.lineTo(x+l,y+d);a.close();a.fillAndStroke()};
649function mxArrowConnector(a,b,c,d,e,f,g){mxShape.call(this);this.points=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1;this.arrowWidth=null!=e?e:mxConstants.ARROW_WIDTH;this.arrowSpacing=null!=f?f:mxConstants.ARROW_SPACING;this.startSize=mxConstants.ARROW_SIZE/5;this.endSize=mxConstants.ARROW_SIZE/5}mxUtils.extend(mxArrowConnector,mxShape);mxArrowConnector.prototype.useSvgBoundingBox=!0;mxArrowConnector.prototype.isRoundable=function(){return!0};
650mxArrowConnector.prototype.resetStyles=function(){mxShape.prototype.resetStyles.apply(this,arguments);this.arrowSpacing=mxConstants.ARROW_SPACING};mxArrowConnector.prototype.apply=function(a){mxShape.prototype.apply.apply(this,arguments);null!=this.style&&(this.startSize=3*mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5),this.endSize=3*mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5))};
651mxArrowConnector.prototype.augmentBoundingBox=function(a){mxShape.prototype.augmentBoundingBox.apply(this,arguments);var b=this.getEdgeWidth();this.isMarkerStart()&&(b=Math.max(b,this.getStartArrowWidth()));this.isMarkerEnd()&&(b=Math.max(b,this.getEndArrowWidth()));a.grow((b/2+this.strokewidth)*this.scale)};
652mxArrowConnector.prototype.paintEdgeShape=function(a,b){var c=this.strokewidth;this.outline&&(c=Math.max(1,mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth)));var d=this.getStartArrowWidth()+c,e=this.getEndArrowWidth()+c,f=this.outline?this.getEdgeWidth()+c:this.getEdgeWidth(),g=this.isOpenEnded(),k=this.isMarkerStart(),l=this.isMarkerEnd(),m=g?0:this.arrowSpacing+c/2,n=this.startSize+c,c=this.endSize+c,p=this.isArrowRounded(),q=b[b.length-1],r=b[1].x-b[0].x,t=b[1].y-b[0].y,
653u=Math.sqrt(r*r+t*t);if(0!=u){var x=r/u,y,B=x,A=t/u,z,C=A,u=f*A,v=-f*x,D=[];p?a.setLineJoin("round"):2<b.length&&a.setMiterLimit(1.42);a.begin();r=x;t=A;if(k&&!g)this.paintMarker(a,b[0].x,b[0].y,x,A,n,d,f,m,!0);else{y=b[0].x+u/2+m*x;z=b[0].y+v/2+m*A;var G=b[0].x-u/2+m*x,J=b[0].y-v/2+m*A;g?(a.moveTo(y,z),D.push(function(){a.lineTo(G,J)})):(a.moveTo(G,J),a.lineTo(y,z))}for(var E=z=y=0,u=0;u<b.length-2;u++)if(v=mxUtils.relativeCcw(b[u].x,b[u].y,b[u+1].x,b[u+1].y,b[u+2].x,b[u+2].y),y=b[u+2].x-b[u+1].x,
654z=b[u+2].y-b[u+1].y,E=Math.sqrt(y*y+z*z),0!=E){B=y/E;C=z/E;E=Math.max(Math.sqrt((x*B+A*C+1)/2),.04);y=x+B;z=A+C;var H=Math.sqrt(y*y+z*z);if(0!=H){y/=H;z/=H;var H=Math.max(E,Math.min(this.strokewidth/200+.04,.35)),E=0!=v&&p?Math.max(.1,H):Math.max(E,.06),I=b[u+1].x+z*f/2/E,F=b[u+1].y-y*f/2/E;z=b[u+1].x-z*f/2/E;y=b[u+1].y+y*f/2/E;0!=v&&p?-1==v?(v=z+C*f,E=y-B*f,a.lineTo(z+A*f,y-x*f),a.quadTo(I,F,v,E),function(b,c){D.push(function(){a.lineTo(b,c)})}(z,y)):(a.lineTo(I,F),function(b,c){var d=I-A*f,e=F+
655x*f,g=I-C*f,k=F+B*f;D.push(function(){a.quadTo(b,c,d,e)});D.push(function(){a.lineTo(g,k)})}(z,y)):(a.lineTo(I,F),function(b,c){D.push(function(){a.lineTo(b,c)})}(z,y));x=B;A=C}}u=f*C;v=-f*B;if(l&&!g)this.paintMarker(a,q.x,q.y,-x,-A,c,e,f,m,!1);else{a.lineTo(q.x-m*B+u/2,q.y-m*C+v/2);var K=q.x-m*B-u/2,L=q.y-m*C-v/2;g?(a.moveTo(K,L),D.splice(0,0,function(){a.moveTo(K,L)})):a.lineTo(K,L)}for(u=D.length-1;0<=u;u--)D[u]();g?(a.end(),a.stroke()):(a.close(),a.fillAndStroke());a.setShadow(!1);a.setMiterLimit(4);
656p&&a.setLineJoin("flat");2<b.length&&(a.setMiterLimit(4),k&&!g&&(a.begin(),this.paintMarker(a,b[0].x,b[0].y,r,t,n,d,f,m,!0),a.stroke(),a.end()),l&&!g&&(a.begin(),this.paintMarker(a,q.x,q.y,-x,-A,c,e,f,m,!0),a.stroke(),a.end()))}};mxArrowConnector.prototype.paintMarker=function(a,b,c,d,e,f,g,k,l,m){g=k/g;var n=k*e/2;k=-k*d/2;var p=(l+f)*d;f=(l+f)*e;m?a.moveTo(b-n+p,c-k+f):a.lineTo(b-n+p,c-k+f);a.lineTo(b-n/g+p,c-k/g+f);a.lineTo(b+l*d,c+l*e);a.lineTo(b+n/g+p,c+k/g+f);a.lineTo(b+n+p,c+k+f)};
657mxArrowConnector.prototype.isArrowRounded=function(){return this.isRounded};mxArrowConnector.prototype.getStartArrowWidth=function(){return mxConstants.ARROW_WIDTH};mxArrowConnector.prototype.getEndArrowWidth=function(){return mxConstants.ARROW_WIDTH};mxArrowConnector.prototype.getEdgeWidth=function(){return mxConstants.ARROW_WIDTH/3};mxArrowConnector.prototype.isOpenEnded=function(){return!1};
658mxArrowConnector.prototype.isMarkerStart=function(){return mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE};mxArrowConnector.prototype.isMarkerEnd=function(){return mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE};
659function mxText(a,b,c,d,e,f,g,k,l,m,n,p,q,r,t,u,x,y,B,A,z){mxShape.call(this);this.value=a;this.bounds=b;this.color=null!=e?e:"black";this.align=null!=c?c:mxConstants.ALIGN_CENTER;this.valign=null!=d?d:mxConstants.ALIGN_MIDDLE;this.family=null!=f?f:mxConstants.DEFAULT_FONTFAMILY;this.size=null!=g?g:mxConstants.DEFAULT_FONTSIZE;this.fontStyle=null!=k?k:mxConstants.DEFAULT_FONTSTYLE;this.spacing=parseInt(l||2);this.spacingTop=this.spacing+parseInt(m||0);this.spacingRight=this.spacing+parseInt(n||0);
660this.spacingBottom=this.spacing+parseInt(p||0);this.spacingLeft=this.spacing+parseInt(q||0);this.horizontal=null!=r?r:!0;this.background=t;this.border=u;this.wrap=null!=x?x:!1;this.clipped=null!=y?y:!1;this.overflow=null!=B?B:"visible";this.labelPadding=null!=A?A:0;this.textDirection=z;this.rotation=0;this.updateMargin()}mxUtils.extend(mxText,mxShape);mxText.prototype.baseSpacingTop=0;mxText.prototype.baseSpacingBottom=0;mxText.prototype.baseSpacingLeft=0;mxText.prototype.baseSpacingRight=0;
661mxText.prototype.replaceLinefeeds=!0;mxText.prototype.verticalTextRotation=-90;mxText.prototype.ignoreClippedStringSize=!0;mxText.prototype.ignoreStringSize=!1;mxText.prototype.textWidthPadding=8!=document.documentMode||mxClient.IS_EM?3:4;mxText.prototype.lastValue=null;mxText.prototype.cacheEnabled=!0;mxText.prototype.isHtmlAllowed=function(){return 8!=document.documentMode||mxClient.IS_EM};mxText.prototype.getSvgScreenOffset=function(){return 0};
662mxText.prototype.checkBounds=function(){return!isNaN(this.scale)&&isFinite(this.scale)&&0<this.scale&&null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)};mxText.prototype.configurePointerEvents=function(a){};
663mxText.prototype.paint=function(a,b){var c=this.scale,d=this.bounds.x/c,e=this.bounds.y/c,f=this.bounds.width/c,c=this.bounds.height/c;this.updateTransform(a,d,e,f,c);this.configureCanvas(a,d,e,f,c);if(b)a.updateText(d,e,f,c,this.align,this.valign,this.wrap,this.overflow,this.clipped,this.getTextRotation(),this.node);else{var g=mxUtils.isNode(this.value)||this.dialect==mxConstants.DIALECT_STRICTHTML,k=g?"html":"",l=this.value;g||"html"!=k||(l=mxUtils.htmlEntities(l,!1));"html"!=k||mxUtils.isNode(this.value)||
664(l=mxUtils.replaceTrailingNewlines(l,"<div><br></div>"));var l=!mxUtils.isNode(this.value)&&this.replaceLinefeeds&&"html"==k?l.replace(/\n/g,"<br/>"):l,m=this.textDirection;m!=mxConstants.TEXT_DIRECTION_AUTO||g||(m=this.getAutoDirection());m!=mxConstants.TEXT_DIRECTION_LTR&&m!=mxConstants.TEXT_DIRECTION_RTL&&(m=null);a.text(d,e,f,c,l,this.align,this.valign,this.wrap,k,this.overflow,this.clipped,this.getTextRotation(),m)}};
665mxText.prototype.redraw=function(){if(this.visible&&this.checkBounds()&&this.cacheEnabled&&this.lastValue==this.value&&(mxUtils.isNode(this.value)||this.dialect==mxConstants.DIALECT_STRICTHTML))if("DIV"==this.node.nodeName)mxClient.IS_SVG?this.redrawHtmlShapeWithCss3():(this.updateSize(this.node,null==this.state||null==this.state.view.textDiv),mxClient.IS_IE&&(null==document.documentMode||8>=document.documentMode)?this.updateHtmlFilter():this.updateHtmlTransform()),this.updateBoundingBox();else{var a=
666this.createCanvas();null!=a&&null!=a.updateText?(a.pointerEvents=this.pointerEvents,this.paint(a,!0),this.destroyCanvas(a),this.updateBoundingBox()):mxShape.prototype.redraw.apply(this,arguments)}else mxShape.prototype.redraw.apply(this,arguments),mxUtils.isNode(this.value)||this.dialect==mxConstants.DIALECT_STRICTHTML?this.lastValue=this.value:this.lastValue=null};
667mxText.prototype.resetStyles=function(){mxShape.prototype.resetStyles.apply(this,arguments);this.color="black";this.align=mxConstants.ALIGN_CENTER;this.valign=mxConstants.ALIGN_MIDDLE;this.family=mxConstants.DEFAULT_FONTFAMILY;this.size=mxConstants.DEFAULT_FONTSIZE;this.fontStyle=mxConstants.DEFAULT_FONTSTYLE;this.spacingLeft=this.spacingBottom=this.spacingRight=this.spacingTop=this.spacing=2;this.horizontal=!0;delete this.background;delete this.border;this.textDirection=mxConstants.DEFAULT_TEXT_DIRECTION;
668delete this.margin};
669mxText.prototype.apply=function(a){var b=this.spacing;mxShape.prototype.apply.apply(this,arguments);null!=this.style&&(this.fontStyle=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSTYLE,this.fontStyle),this.family=mxUtils.getValue(this.style,mxConstants.STYLE_FONTFAMILY,this.family),this.size=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,this.size),this.color=mxUtils.getValue(this.style,mxConstants.STYLE_FONTCOLOR,this.color),this.align=mxUtils.getValue(this.style,mxConstants.STYLE_ALIGN,
670this.align),this.valign=mxUtils.getValue(this.style,mxConstants.STYLE_VERTICAL_ALIGN,this.valign),this.spacing=parseInt(mxUtils.getValue(this.style,mxConstants.STYLE_SPACING,this.spacing)),this.spacingTop=parseInt(mxUtils.getValue(this.style,mxConstants.STYLE_SPACING_TOP,this.spacingTop-b))+this.spacing,this.spacingRight=parseInt(mxUtils.getValue(this.style,mxConstants.STYLE_SPACING_RIGHT,this.spacingRight-b))+this.spacing,this.spacingBottom=parseInt(mxUtils.getValue(this.style,mxConstants.STYLE_SPACING_BOTTOM,
671this.spacingBottom-b))+this.spacing,this.spacingLeft=parseInt(mxUtils.getValue(this.style,mxConstants.STYLE_SPACING_LEFT,this.spacingLeft-b))+this.spacing,this.horizontal=mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,this.horizontal),this.background=mxUtils.getValue(this.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,this.background),this.border=mxUtils.getValue(this.style,mxConstants.STYLE_LABEL_BORDERCOLOR,this.border),this.textDirection=mxUtils.getValue(this.style,mxConstants.STYLE_TEXT_DIRECTION,
672mxConstants.DEFAULT_TEXT_DIRECTION),this.opacity=mxUtils.getValue(this.style,mxConstants.STYLE_TEXT_OPACITY,100),this.updateMargin());this.flipH=this.flipV=null};mxText.prototype.getAutoDirection=function(){var a=/[A-Za-z\u05d0-\u065f\u066a-\u06ef\u06fa-\u07ff\ufb1d-\ufdff\ufe70-\ufefc]/.exec(this.value);return null!=a&&0<a.length&&"z"<a[0]?mxConstants.TEXT_DIRECTION_RTL:mxConstants.TEXT_DIRECTION_LTR};
673mxText.prototype.getContentNode=function(){var a=this.node;null!=a&&(a=null==a.ownerSVGElement?this.node.firstChild.firstChild:a.firstChild.firstChild.firstChild.firstChild.firstChild);return a};
674mxText.prototype.updateBoundingBox=function(){var a=this.node;this.boundingBox=this.bounds.clone();var b=this.getTextRotation(),c=null!=this.style?mxUtils.getValue(this.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER):null,d=null!=this.style?mxUtils.getValue(this.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE):null;if(!(this.ignoreStringSize||null==a||"fill"==this.overflow||this.clipped&&this.ignoreClippedStringSize&&c==mxConstants.ALIGN_CENTER&&d==mxConstants.ALIGN_MIDDLE)){d=
675c=null;if(null!=a.ownerSVGElement)if(null!=a.firstChild&&null!=a.firstChild.firstChild&&"foreignObject"==a.firstChild.firstChild.nodeName)a=a.firstChild.firstChild.firstChild.firstChild,d=a.offsetHeight*this.scale,c="width"==this.overflow?this.boundingBox.width:a.offsetWidth*this.scale;else try{var e=a.getBBox();"string"==typeof this.value&&0==mxUtils.trim(this.value)?this.boundingBox=null:this.boundingBox=0==e.width&&0==e.height?null:new mxRectangle(e.x,e.y,e.width,e.height);return}catch(f){}else{c=
676null!=this.state?this.state.view.textDiv:null;if(null==this.offsetWidth||null==this.offsetHeight)null!=c&&(this.updateFont(c),this.updateSize(c,!1),this.updateInnerHtml(c),a=c),e=a,8!=document.documentMode||mxClient.IS_EM?null!=e.firstChild&&"DIV"==e.firstChild.nodeName&&(e=e.firstChild):(d=Math.round(this.bounds.width/this.scale),this.wrap&&0<d?(a.style.wordWrap=mxConstants.WORD_WRAP,a.style.whiteSpace="normal","break-word"!=a.style.wordWrap&&(a=e.getElementsByTagName("div"),0<a.length&&(e=a[a.length-
6771]),c=e.offsetWidth+2,a=this.node.getElementsByTagName("div"),this.clipped&&(c=Math.min(d,c)),1<a.length&&(a[a.length-2].style.width=c+"px"))):a.style.whiteSpace="nowrap"),this.offsetWidth=e.offsetWidth+this.textWidthPadding,this.offsetHeight=e.offsetHeight;c=this.offsetWidth*this.scale;d=this.offsetHeight*this.scale}null!=c&&null!=d&&(this.boundingBox=new mxRectangle(this.bounds.x,this.bounds.y,c,d))}null!=this.boundingBox&&(0!=b?(b=mxUtils.getBoundingBox(new mxRectangle(this.margin.x*this.boundingBox.width,
678this.margin.y*this.boundingBox.height,this.boundingBox.width,this.boundingBox.height),b,new mxPoint(0,0)),this.unrotatedBoundingBox=mxRectangle.fromRectangle(this.boundingBox),this.unrotatedBoundingBox.x+=this.margin.x*this.unrotatedBoundingBox.width,this.unrotatedBoundingBox.y+=this.margin.y*this.unrotatedBoundingBox.height,this.boundingBox.x+=b.x,this.boundingBox.y+=b.y,this.boundingBox.width=b.width,this.boundingBox.height=b.height):(this.boundingBox.x+=this.margin.x*this.boundingBox.width,this.boundingBox.y+=
679this.margin.y*this.boundingBox.height,this.unrotatedBoundingBox=null))};mxText.prototype.getShapeRotation=function(){return 0};mxText.prototype.getTextRotation=function(){return null!=this.state&&null!=this.state.shape?this.state.shape.getTextRotation():0};mxText.prototype.isPaintBoundsInverted=function(){return!this.horizontal&&null!=this.state&&this.state.view.graph.model.isVertex(this.state.cell)};
680mxText.prototype.configureCanvas=function(a,b,c,d,e){mxShape.prototype.configureCanvas.apply(this,arguments);a.setFontColor(this.color);a.setFontBackgroundColor(this.background);a.setFontBorderColor(this.border);a.setFontFamily(this.family);a.setFontSize(this.size);a.setFontStyle(this.fontStyle)};
681mxText.prototype.getHtmlValue=function(){var a=this.value;this.dialect!=mxConstants.DIALECT_STRICTHTML&&(a=mxUtils.htmlEntities(a,!1));a=mxUtils.replaceTrailingNewlines(a,"<div><br></div>");return this.replaceLinefeeds?a.replace(/\n/g,"<br/>"):a};
682mxText.prototype.getTextCss=function(){var a="display: inline-block; font-size: "+this.size+"px; font-family: "+this.family+"; color: "+this.color+"; line-height: "+(mxConstants.ABSOLUTE_LINE_HEIGHT?this.size*mxConstants.LINE_HEIGHT+"px":mxConstants.LINE_HEIGHT)+"; pointer-events: "+(this.pointerEvents?"all":"none")+"; ";(this.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(a+="font-weight: bold; ");(this.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(a+="font-style: italic; ");
683var b=[];(this.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&b.push("underline");(this.fontStyle&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&b.push("line-through");0<b.length&&(a+="text-decoration: "+b.join(" ")+"; ");return a};
684mxText.prototype.redrawHtmlShape=function(){if(mxClient.IS_SVG)this.redrawHtmlShapeWithCss3();else{var a=this.node.style;a.whiteSpace="normal";a.overflow="";a.width="";a.height="";this.updateValue();this.updateFont(this.node);this.updateSize(this.node,null==this.state||null==this.state.view.textDiv);this.offsetHeight=this.offsetWidth=null;mxClient.IS_IE&&(null==document.documentMode||8>=document.documentMode)?this.updateHtmlFilter():this.updateHtmlTransform()}};
685mxText.prototype.redrawHtmlShapeWithCss3=function(){var a=Math.max(0,Math.round(this.bounds.width/this.scale)),b=Math.max(0,Math.round(this.bounds.height/this.scale)),c="position: absolute; left: "+Math.round(this.bounds.x)+"px; top: "+Math.round(this.bounds.y)+"px; pointer-events: none; ",d=this.getTextCss();mxSvgCanvas2D.createCss(a+2,b,this.align,this.valign,this.wrap,this.overflow,this.clipped,null!=this.background?mxUtils.htmlEntities(this.background):null,null!=this.border?mxUtils.htmlEntities(this.border):
686null,c,d,this.scale,mxUtils.bind(this,function(a,c,d,k,l,m){a=this.getTextRotation();a=(1!=this.scale?"scale("+this.scale+") ":"")+(0!=a?"rotate("+a+"deg) ":"")+(0!=this.margin.x||0!=this.margin.y?"translate("+100*this.margin.x+"%,"+100*this.margin.y+"%)":"");""!=a&&(a="transform-origin: 0 0; transform: "+a+"; ");"block"==this.overflow&&this.valign==mxConstants.ALIGN_MIDDLE&&(a+="max-height: "+(b+1)+"px;");""==m?(d+=k,k="display:inline-block; min-width: 100%; "+a):(k+=a,mxClient.IS_SF&&(k+="-webkit-clip-path: content-box;"));
687"block"==this.overflow&&(k+="width: 100%; ");100>this.opacity&&(l+="opacity: "+this.opacity/100+"; ");this.node.setAttribute("style",d);d=mxUtils.isNode(this.value)?this.value.outerHTML:this.getHtmlValue();null==this.node.firstChild&&(this.node.innerHTML="<div><div>"+d+"</div></div>",mxClient.IS_IE11&&this.fixFlexboxForIe11(this.node));this.node.firstChild.firstChild.setAttribute("style",l);this.node.firstChild.setAttribute("style",k)}))};
688mxText.prototype.fixFlexboxForIe11=function(a){for(var b=a.querySelectorAll('div[style*="display: flex; justify-content: flex-end;"]'),c=0;c<b.length;c++)b[c].style.justifyContent="flex-start",b[c].style.flexDirection="row-reverse";if(!this.wrap)for(b=a.querySelectorAll('div[style*="display: flex; justify-content: center;"]'),a=-window.innerWidth,c=0;c<b.length;c++)b[c].style.marginLeft=a+"px",b[c].style.marginRight=a+"px"};
689mxText.prototype.updateHtmlTransform=function(){var a=this.getTextRotation(),b=this.node.style,c=this.margin.x,d=this.margin.y;0!=a?(mxUtils.setPrefixedStyle(b,"transformOrigin",100*-c+"% "+100*-d+"%"),mxUtils.setPrefixedStyle(b,"transform","translate("+100*c+"%,"+100*d+"%) scale("+this.scale+") rotate("+a+"deg)")):(mxUtils.setPrefixedStyle(b,"transformOrigin","0% 0%"),mxUtils.setPrefixedStyle(b,"transform","scale("+this.scale+") translate("+100*c+"%,"+100*d+"%)"));b.left=Math.round(this.bounds.x-
690Math.ceil(c*("fill"!=this.overflow&&"width"!=this.overflow?3:1)))+"px";b.top=Math.round(this.bounds.y-d*("fill"!=this.overflow?3:1))+"px";b.opacity=100>this.opacity?this.opacity/100:""};
691mxText.prototype.updateInnerHtml=function(a){if(mxUtils.isNode(this.value))a.innerHTML=this.value.outerHTML;else{var b=this.value;this.dialect!=mxConstants.DIALECT_STRICTHTML&&(b=mxUtils.htmlEntities(b,!1));b=mxUtils.replaceTrailingNewlines(b,"<div>&nbsp;</div>");b=this.replaceLinefeeds?b.replace(/\n/g,"<br/>"):b;a.innerHTML='<div style="display:inline-block;_display:inline;">'+b+"</div>"}};
692mxText.prototype.updateHtmlFilter=function(){var a=this.node.style,b=this.margin.x,c=this.margin.y,d=this.scale;mxUtils.setOpacity(this.node,this.opacity);var e,f=0,g=null!=this.state?this.state.view.textDiv:null,k=this.node;if(null!=g){g.style.overflow="";g.style.height="";g.style.width="";this.updateFont(g);this.updateSize(g,!1);this.updateInnerHtml(g);var l=Math.round(this.bounds.width/this.scale);this.wrap&&0<l?(g.style.whiteSpace="normal",g.style.wordWrap=mxConstants.WORD_WRAP,e=l,this.clipped&&
693(e=Math.min(e,this.bounds.width)),g.style.width=e+"px"):g.style.whiteSpace="nowrap";k=g;null!=k.firstChild&&"DIV"==k.firstChild.nodeName&&(k=k.firstChild,this.wrap&&"break-word"==g.style.wordWrap&&(k.style.width="100%"));!this.clipped&&this.wrap&&0<l&&(e=k.offsetWidth+this.textWidthPadding,g.style.width=e+"px");f=k.offsetHeight+2}else null!=k.firstChild&&"DIV"==k.firstChild.nodeName&&(k=k.firstChild,f=k.offsetHeight);e=k.offsetWidth+this.textWidthPadding;this.clipped&&(f=Math.min(f,this.bounds.height));
694l=this.bounds.width/d;g=this.bounds.height/d;"fill"==this.overflow?(f=g,e=l):"width"==this.overflow&&(f=k.scrollHeight,e=l);this.offsetWidth=e;this.offsetHeight=f;"fill"!=this.overflow&&"width"!=this.overflow&&(this.clipped&&(e=Math.min(l,e)),l=e,this.wrap&&(a.width=Math.round(l)+"px"));var g=f*d,l=l*d,m=this.getTextRotation()*(Math.PI/180);e=parseFloat(parseFloat(Math.cos(m)).toFixed(8));f=parseFloat(parseFloat(Math.sin(-m)).toFixed(8));m%=2*Math.PI;0>m&&(m+=2*Math.PI);m%=Math.PI;m>Math.PI/2&&(m=
695Math.PI-m);var k=Math.cos(m),n=Math.sin(-m),b=l*-(b+.5),c=g*-(c+.5);0!=m&&(m="progid:DXImageTransform.Microsoft.Matrix(M11="+e+", M12="+f+", M21="+-f+", M22="+e+", sizingMethod='auto expand')",a.filter=null!=a.filter&&0<a.filter.length?a.filter+(" "+m):m);a.zoom=d;a.left=Math.round(this.bounds.x+((l-l*k+g*n)/2-e*b-f*c)-l/2)+"px";a.top=Math.round(this.bounds.y+((g-g*k+l*n)/2+f*b-e*c)-g/2+0)+"px"};
696mxText.prototype.updateValue=function(){if(mxUtils.isNode(this.value))this.node.innerHTML="",this.node.appendChild(this.value);else{var a=this.value;this.dialect!=mxConstants.DIALECT_STRICTHTML&&(a=mxUtils.htmlEntities(a,!1));var a=mxUtils.replaceTrailingNewlines(a,"<div><br></div>"),a=this.replaceLinefeeds?a.replace(/\n/g,"<br/>"):a,b=null!=this.background&&this.background!=mxConstants.NONE?this.background:null,c=null!=this.border&&this.border!=mxConstants.NONE?this.border:null;if("fill"==this.overflow||
697"width"==this.overflow)null!=b&&(this.node.style.backgroundColor=b),null!=c&&(this.node.style.border="1px solid "+c);else{var d="";null!=b&&(d+="background-color:"+mxUtils.htmlEntities(b)+";");null!=c&&(d+="border:1px solid "+mxUtils.htmlEntities(c)+";");a='<div style="zoom:1;'+d+"display:inline-block;_display:inline;text-decoration:inherit;padding-bottom:1px;padding-right:1px;line-height:"+(mxConstants.ABSOLUTE_LINE_HEIGHT?this.size*mxConstants.LINE_HEIGHT+"px":mxConstants.LINE_HEIGHT)+'">'+a+"</div>"}this.node.innerHTML=
698a;a=this.node.getElementsByTagName("div");0<a.length&&(b=this.textDirection,b==mxConstants.TEXT_DIRECTION_AUTO&&this.dialect!=mxConstants.DIALECT_STRICTHTML&&(b=this.getAutoDirection()),b==mxConstants.TEXT_DIRECTION_LTR||b==mxConstants.TEXT_DIRECTION_RTL?a[a.length-1].setAttribute("dir",b):a[a.length-1].removeAttribute("dir"))}};
699mxText.prototype.updateFont=function(a){a=a.style;a.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?this.size*mxConstants.LINE_HEIGHT+"px":mxConstants.LINE_HEIGHT;a.fontSize=this.size+"px";a.fontFamily=this.family;a.verticalAlign="top";a.color=this.color;a.fontWeight=(this.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD?"bold":"";a.fontStyle=(this.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC?"italic":"";var b=[];(this.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&
700b.push("underline");(this.fontStyle&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&b.push("line-through");a.textDecoration=b.join(" ");a.textAlign=this.align==mxConstants.ALIGN_CENTER?"center":this.align==mxConstants.ALIGN_RIGHT?"right":"left"};
701mxText.prototype.updateSize=function(a,b){var c=Math.max(0,Math.round(this.bounds.width/this.scale)),d=Math.max(0,Math.round(this.bounds.height/this.scale)),e=a.style;this.clipped?(e.overflow="hidden",e.maxHeight=d+"px",e.maxWidth=c+"px"):"fill"==this.overflow?(e.width=c+1+"px",e.height=d+1+"px",e.overflow="hidden"):"width"==this.overflow?(e.width=c+1+"px",e.maxHeight=d+1+"px",e.overflow="hidden"):"block"==this.overflow&&(e.width=c+1+"px");if(this.wrap&&0<c){if(e.wordWrap=mxConstants.WORD_WRAP,e.whiteSpace=
702"normal",e.width=c+"px",b&&"fill"!=this.overflow&&"width"!=this.overflow){d=a;null!=d.firstChild&&"DIV"==d.firstChild.nodeName&&(d=d.firstChild,"break-word"==a.style.wordWrap&&(d.style.width="100%"));var f=d.offsetWidth;if(0==f){var g=a.parentNode;a.style.visibility="hidden";document.body.appendChild(a);f=d.offsetWidth;a.style.visibility="";g.appendChild(a)}f+=3;this.clipped&&(f=Math.min(f,c));e.width=f+"px"}}else e.whiteSpace="nowrap"};
703mxText.prototype.updateMargin=function(){this.margin=mxUtils.getAlignmentAsPoint(this.align,this.valign)};
704mxText.prototype.getSpacing=function(a){return new mxPoint(this.align==mxConstants.ALIGN_CENTER?(this.spacingLeft-this.spacingRight)/2:this.align==mxConstants.ALIGN_RIGHT?-this.spacingRight-(a?0:this.baseSpacingRight):this.spacingLeft+(a?0:this.baseSpacingLeft),this.valign==mxConstants.ALIGN_MIDDLE?(this.spacingTop-this.spacingBottom)/2:this.valign==mxConstants.ALIGN_BOTTOM?-this.spacingBottom-(a?0:this.baseSpacingBottom):this.spacingTop+(a?0:this.baseSpacingTop))};
705function mxTriangle(){mxActor.call(this)}mxUtils.extend(mxTriangle,mxActor);mxTriangle.prototype.isRoundable=function(){return!0};mxTriangle.prototype.redrawPath=function(a,b,c,d,e){b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(0,0),new mxPoint(d,.5*e),new mxPoint(0,e)],this.isRounded,b,!0)};function mxHexagon(){mxActor.call(this)}mxUtils.extend(mxHexagon,mxActor);
706mxHexagon.prototype.redrawPath=function(a,b,c,d,e){b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(.25*d,0),new mxPoint(.75*d,0),new mxPoint(d,.5*e),new mxPoint(.75*d,e),new mxPoint(.25*d,e),new mxPoint(0,.5*e)],this.isRounded,b,!0)};function mxLine(a,b,c,d){mxShape.call(this);this.bounds=a;this.stroke=b;this.strokewidth=null!=c?c:1;this.vertical=null!=d?d:this.vertical}mxUtils.extend(mxLine,mxShape);mxLine.prototype.vertical=!1;
707mxLine.prototype.paintVertexShape=function(a,b,c,d,e){a.begin();if(this.vertical){var f=b+d/2;a.moveTo(f,c);a.lineTo(f,c+e)}else f=c+e/2,a.moveTo(b,f),a.lineTo(b+d,f);a.stroke()};function mxImageShape(a,b,c,d,e){mxShape.call(this);this.bounds=a;this.image=b;this.fill=c;this.stroke=d;this.strokewidth=null!=e?e:1;this.shadow=!1}mxUtils.extend(mxImageShape,mxRectangleShape);mxImageShape.prototype.preserveImageAspect=!0;mxImageShape.prototype.getSvgScreenOffset=function(){return 0};
708mxImageShape.prototype.apply=function(a){mxShape.prototype.apply.apply(this,arguments);this.gradient=this.stroke=this.fill=null;null!=this.style&&(this.preserveImageAspect=1==mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_ASPECT,1),this.imageBackground=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BACKGROUND,null),this.imageBorder=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER,null),this.flipH=this.flipH||1==mxUtils.getValue(this.style,"imageFlipH",0),this.flipV=this.flipV||
7091==mxUtils.getValue(this.style,"imageFlipV",0))};mxImageShape.prototype.isHtmlAllowed=function(){return!this.preserveImageAspect};mxImageShape.prototype.createHtml=function(){var a=document.createElement("div");a.style.position="absolute";return a};mxImageShape.prototype.isRoundable=function(a,b,c,d,e){return!1};mxImageShape.prototype.getImageDataUri=function(){return this.image};mxImageShape.prototype.configurePointerEvents=function(a){};
710mxImageShape.prototype.paintVertexShape=function(a,b,c,d,e){null!=this.image?(null!=this.imageBackground&&(a.setFillColor(this.imageBackground),a.setStrokeColor(this.imageBorder),a.rect(b,c,d,e),a.fillAndStroke()),a.image(b,c,d,e,this.getImageDataUri(),this.preserveImageAspect,!1,!1),null!=this.imageBorder&&(a.setShadow(!1),a.setStrokeColor(this.imageBorder),a.rect(b,c,d,e),a.stroke())):mxRectangleShape.prototype.paintBackground.apply(this,arguments)};
711mxImageShape.prototype.redrawHtmlShape=function(){this.node.style.left=Math.round(this.bounds.x)+"px";this.node.style.top=Math.round(this.bounds.y)+"px";this.node.style.width=Math.max(0,Math.round(this.bounds.width))+"px";this.node.style.height=Math.max(0,Math.round(this.bounds.height))+"px";this.node.innerHTML="";if(null!=this.image){var a=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BACKGROUND,""),b=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER,"");this.node.style.backgroundColor=
712a;this.node.style.borderColor=b;a=document.createElement("img");a.setAttribute("border","0");a.style.position="absolute";a.src=this.image;b=100>this.opacity?"alpha(opacity="+this.opacity+")":"";this.node.style.filter=b;this.flipH&&this.flipV?b+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2)":this.flipH?b+="progid:DXImageTransform.Microsoft.BasicImage(mirror=1)":this.flipV&&(b+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)");a.style.filter!=b&&(a.style.filter=b);"image"==
713a.nodeName?a.style.rotation=this.rotation:0!=this.rotation?mxUtils.setPrefixedStyle(a.style,"transform","rotate("+this.rotation+"deg)"):mxUtils.setPrefixedStyle(a.style,"transform","");a.style.width=this.node.style.width;a.style.height=this.node.style.height;this.node.style.backgroundImage="";this.node.appendChild(a)}else this.setTransparentBackgroundImage(this.node)};function mxLabel(a,b,c,d){mxRectangleShape.call(this,a,b,c,d)}mxUtils.extend(mxLabel,mxRectangleShape);
714mxLabel.prototype.imageSize=mxConstants.DEFAULT_IMAGESIZE;mxLabel.prototype.spacing=2;mxLabel.prototype.indicatorSize=10;mxLabel.prototype.indicatorSpacing=2;mxLabel.prototype.init=function(a){mxShape.prototype.init.apply(this,arguments);null!=this.indicatorShape&&(this.indicator=new this.indicatorShape,this.indicator.dialect=this.dialect,this.indicator.init(this.node))};
715mxLabel.prototype.redraw=function(){null!=this.indicator&&(this.indicator.fill=this.indicatorColor,this.indicator.stroke=this.indicatorStrokeColor,this.indicator.gradient=this.indicatorGradientColor,this.indicator.direction=this.indicatorDirection,this.indicator.redraw());mxShape.prototype.redraw.apply(this,arguments)};mxLabel.prototype.isHtmlAllowed=function(){return mxRectangleShape.prototype.isHtmlAllowed.apply(this,arguments)&&null==this.indicatorColor&&null==this.indicatorShape};
716mxLabel.prototype.paintForeground=function(a,b,c,d,e){this.paintImage(a,b,c,d,e);this.paintIndicator(a,b,c,d,e);mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxLabel.prototype.paintImage=function(a,b,c,d,e){null!=this.image&&(b=this.getImageBounds(b,c,d,e),a.image(b.x,b.y,b.width,b.height,this.image,!1,!1,!1))};
717mxLabel.prototype.getImageBounds=function(a,b,c,d){var e=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),f=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),g=mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_WIDTH,mxConstants.DEFAULT_IMAGESIZE),k=mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_HEIGHT,mxConstants.DEFAULT_IMAGESIZE),l=mxUtils.getNumber(this.style,mxConstants.STYLE_SPACING,this.spacing)+5;a=e==mxConstants.ALIGN_CENTER?
718a+(c-g)/2:e==mxConstants.ALIGN_RIGHT?a+(c-g-l):a+l;b=f==mxConstants.ALIGN_TOP?b+l:f==mxConstants.ALIGN_BOTTOM?b+(d-k-l):b+(d-k)/2;return new mxRectangle(a,b,g,k)};mxLabel.prototype.paintIndicator=function(a,b,c,d,e){null!=this.indicator?(this.indicator.bounds=this.getIndicatorBounds(b,c,d,e),this.indicator.paint(a)):null!=this.indicatorImage&&(b=this.getIndicatorBounds(b,c,d,e),a.image(b.x,b.y,b.width,b.height,this.indicatorImage,!1,!1,!1))};
719mxLabel.prototype.getIndicatorBounds=function(a,b,c,d){var e=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),f=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),g=mxUtils.getNumber(this.style,mxConstants.STYLE_INDICATOR_WIDTH,this.indicatorSize),k=mxUtils.getNumber(this.style,mxConstants.STYLE_INDICATOR_HEIGHT,this.indicatorSize),l=this.spacing+5;a=e==mxConstants.ALIGN_RIGHT?a+(c-g-l):e==mxConstants.ALIGN_CENTER?a+(c-g)/
7202:a+l;b=f==mxConstants.ALIGN_BOTTOM?b+(d-k-l):f==mxConstants.ALIGN_TOP?b+l:b+(d-k)/2;return new mxRectangle(a,b,g,k)};
721mxLabel.prototype.redrawHtmlShape=function(){for(mxRectangleShape.prototype.redrawHtmlShape.apply(this,arguments);this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);if(null!=this.image){var a=document.createElement("img");a.style.position="relative";a.setAttribute("border","0");var b=this.getImageBounds(this.bounds.x,this.bounds.y,this.bounds.width,this.bounds.height);b.x-=this.bounds.x;b.y-=this.bounds.y;a.style.left=Math.round(b.x)+"px";a.style.top=Math.round(b.y)+"px";a.style.width=
722Math.round(b.width)+"px";a.style.height=Math.round(b.height)+"px";a.src=this.image;this.node.appendChild(a)}};function mxCylinder(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxCylinder,mxShape);mxCylinder.prototype.maxHeight=40;
723mxCylinder.prototype.paintVertexShape=function(a,b,c,d,e){a.translate(b,c);a.begin();this.redrawPath(a,b,c,d,e,!1);a.fillAndStroke();this.outline&&null!=this.style&&0!=mxUtils.getValue(this.style,mxConstants.STYLE_BACKGROUND_OUTLINE,0)||(a.setShadow(!1),a.begin(),this.redrawPath(a,b,c,d,e,!0),a.stroke())};mxCylinder.prototype.getCylinderSize=function(a,b,c,d){return Math.min(this.maxHeight,Math.round(d/5))};
724mxCylinder.prototype.redrawPath=function(a,b,c,d,e,f){b=this.getCylinderSize(b,c,d,e);if(f&&null!=this.fill||!f&&null==this.fill)a.moveTo(0,b),a.curveTo(0,2*b,d,2*b,d,b),f||(a.stroke(),a.begin());f||(a.moveTo(0,b),a.curveTo(0,-b/3,d,-b/3,d,b),a.lineTo(d,e-b),a.curveTo(d,e+b/3,0,e+b/3,0,e-b),a.close())};function mxConnector(a,b,c){mxPolyline.call(this,a,b,c)}mxUtils.extend(mxConnector,mxPolyline);
725mxConnector.prototype.updateBoundingBox=function(){this.useSvgBoundingBox=null!=this.style&&1==this.style[mxConstants.STYLE_CURVED];mxShape.prototype.updateBoundingBox.apply(this,arguments)};mxConnector.prototype.paintEdgeShape=function(a,b){var c=this.createMarker(a,b,!0),d=this.createMarker(a,b,!1);mxPolyline.prototype.paintEdgeShape.apply(this,arguments);a.setFillColor(this.stroke);a.setShadow(!1);a.setDashed(!1);null!=c&&c();null!=d&&d()};
726mxConnector.prototype.createMarker=function(a,b,c){var d=null,e=b.length,f=mxUtils.getValue(this.style,c?mxConstants.STYLE_STARTARROW:mxConstants.STYLE_ENDARROW),g=c?b[1]:b[e-2];b=c?b[0]:b[e-1];if(null!=f&&null!=g&&null!=b)var d=b.x-g.x,e=b.y-g.y,k=Math.sqrt(d*d+e*e),g=d/k,d=e/k,e=mxUtils.getNumber(this.style,c?mxConstants.STYLE_STARTSIZE:mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE),d=mxMarker.createMarker(a,this,f,b,g,d,e,c,this.strokewidth,0!=this.style[c?mxConstants.STYLE_STARTFILL:
727mxConstants.STYLE_ENDFILL]);return d};
728mxConnector.prototype.augmentBoundingBox=function(a){mxShape.prototype.augmentBoundingBox.apply(this,arguments);var b=0;mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(b=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)+1);mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(b=Math.max(b,mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE))+
7291);a.grow(b*this.scale)};function mxSwimlane(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxSwimlane,mxShape);mxSwimlane.prototype.imageSize=16;mxSwimlane.prototype.apply=function(a){mxShape.prototype.apply.apply(this,arguments);null!=this.style&&(this.laneFill=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE))};mxSwimlane.prototype.isRoundable=function(a,b,c,d,e){return!0};
730mxSwimlane.prototype.getTitleSize=function(){return Math.max(0,mxUtils.getValue(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE))};
731mxSwimlane.prototype.getLabelBounds=function(a){var b=this.getTitleSize();a=new mxRectangle(a.x,a.y,a.width,a.height);var c=this.isHorizontal(),d=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPH,0),e=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPV,0),f=this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH,c=c==!f,d=!c&&d!=(this.direction==mxConstants.DIRECTION_SOUTH||this.direction==mxConstants.DIRECTION_WEST),e=c&&e!=(this.direction==mxConstants.DIRECTION_SOUTH||
732this.direction==mxConstants.DIRECTION_WEST);if(f){b=Math.min(a.width,b*this.scale);if(d||e)a.x+=a.width-b;a.width=b}else{b=Math.min(a.height,b*this.scale);if(d||e)a.y+=a.height-b;a.height=b}return a};mxSwimlane.prototype.getGradientBounds=function(a,b,c,d,e){a=this.getTitleSize();if(this.isHorizontal())return a=Math.min(a,e),new mxRectangle(b,c,d,a);a=Math.min(a,d);return new mxRectangle(b,c,a,e)};
733mxSwimlane.prototype.getSwimlaneArcSize=function(a,b,c){if("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0))return Math.min(a/2,Math.min(b/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2));a=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;return c*a*3};mxSwimlane.prototype.isHorizontal=function(){return 1==mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,1)};
734mxSwimlane.prototype.paintVertexShape=function(a,b,c,d,e){var f=this.getTitleSize(),g=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_LINE,1),k=0,f=this.isHorizontal()?Math.min(f,e):Math.min(f,d);a.translate(b,c);this.isRounded?(k=this.getSwimlaneArcSize(d,e,f),k=Math.min((this.isHorizontal()?e:d)-f,Math.min(f,k)),this.paintRoundedSwimlane(a,b,c,d,e,f,k,this.laneFill,g)):this.paintSwimlane(a,b,c,d,e,f,this.laneFill,g);g=mxUtils.getValue(this.style,mxConstants.STYLE_SEPARATORCOLOR,mxConstants.NONE);
735this.paintSeparator(a,b,c,d,e,f,g);null!=this.image&&(e=this.getImageBounds(b,c,d,e),a.image(e.x-b,e.y-c,e.width,e.height,this.image,!1,!1,!1));this.glass&&(a.setShadow(!1),this.paintGlassEffect(a,0,0,d,f,k))};
736mxSwimlane.prototype.paintSwimlane=function(a,b,c,d,e,f,g,k){a.begin();var l=!0;null!=this.style&&(l="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));this.isHorizontal()?(a.moveTo(0,f),a.lineTo(0,0),a.lineTo(d,0),a.lineTo(d,f),a.fillAndStroke(),f<e&&(g!=mxConstants.NONE&&l||(a.pointerEvents=!1),g!=mxConstants.NONE&&a.setFillColor(g),a.begin(),a.moveTo(0,f),a.lineTo(0,e),a.lineTo(d,e),a.lineTo(d,f),g==mxConstants.NONE?a.stroke():a.fillAndStroke())):(a.moveTo(f,0),a.lineTo(0,
7370),a.lineTo(0,e),a.lineTo(f,e),a.fillAndStroke(),f<d&&(g!=mxConstants.NONE&&l||(a.pointerEvents=!1),g!=mxConstants.NONE&&a.setFillColor(g),a.begin(),a.moveTo(f,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(f,e),g==mxConstants.NONE?a.stroke():a.fillAndStroke()));k&&this.paintDivider(a,b,c,d,e,f,g==mxConstants.NONE)};
738mxSwimlane.prototype.paintRoundedSwimlane=function(a,b,c,d,e,f,g,k,l){a.begin();var m=!0;null!=this.style&&(m="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));this.isHorizontal()?(a.moveTo(d,f),a.lineTo(d,g),a.quadTo(d,0,d-Math.min(d/2,g),0),a.lineTo(Math.min(d/2,g),0),a.quadTo(0,0,0,g),a.lineTo(0,f),a.fillAndStroke(),f<e&&(k!=mxConstants.NONE&&m||(a.pointerEvents=!1),k!=mxConstants.NONE&&a.setFillColor(k),a.begin(),a.moveTo(0,f),a.lineTo(0,e-g),a.quadTo(0,e,Math.min(d/2,g),
739e),a.lineTo(d-Math.min(d/2,g),e),a.quadTo(d,e,d,e-g),a.lineTo(d,f),k==mxConstants.NONE?a.stroke():a.fillAndStroke())):(a.moveTo(f,0),a.lineTo(g,0),a.quadTo(0,0,0,Math.min(e/2,g)),a.lineTo(0,e-Math.min(e/2,g)),a.quadTo(0,e,g,e),a.lineTo(f,e),a.fillAndStroke(),f<d&&(k!=mxConstants.NONE&&m||(a.pointerEvents=!1),k!=mxConstants.NONE&&a.setFillColor(k),a.begin(),a.moveTo(f,e),a.lineTo(d-g,e),a.quadTo(d,e,d,e-Math.min(e/2,g)),a.lineTo(d,Math.min(e/2,g)),a.quadTo(d,0,d-g,0),a.lineTo(f,0),k==mxConstants.NONE?
740a.stroke():a.fillAndStroke()));l&&this.paintDivider(a,b,c,d,e,f,k==mxConstants.NONE)};mxSwimlane.prototype.paintDivider=function(a,b,c,d,e,f,g){g||a.setShadow(!1);a.begin();this.isHorizontal()?(a.moveTo(0,f),a.lineTo(d,f)):(a.moveTo(f,0),a.lineTo(f,e));a.stroke()};mxSwimlane.prototype.paintSeparator=function(a,b,c,d,e,f,g){g!=mxConstants.NONE&&(a.setStrokeColor(g),a.setDashed(!0),a.begin(),this.isHorizontal()?(a.moveTo(d,f),a.lineTo(d,e)):(a.moveTo(f,0),a.lineTo(d,0)),a.stroke(),a.setDashed(!1))};
741mxSwimlane.prototype.getImageBounds=function(a,b,c,d){return this.isHorizontal()?new mxRectangle(a+c-this.imageSize,b,this.imageSize,this.imageSize):new mxRectangle(a,b,this.imageSize,this.imageSize)};function mxGraphLayout(a){this.graph=a}mxGraphLayout.prototype.graph=null;mxGraphLayout.prototype.useBoundingBox=!0;mxGraphLayout.prototype.parent=null;mxGraphLayout.prototype.moveCell=function(a,b,c){};mxGraphLayout.prototype.resizeCell=function(a,b){};mxGraphLayout.prototype.execute=function(a){};
742mxGraphLayout.prototype.getGraph=function(){return this.graph};mxGraphLayout.prototype.getConstraint=function(a,b,c,d){return this.graph.getCurrentCellStyle(b)[a]};
743mxGraphLayout.traverse=function(a,b,c,d,e){if(null!=c&&null!=a&&(b=null!=b?b:!0,e=e||new mxDictionary,!e.get(a)&&(e.put(a,!0),d=c(a,d),null==d||d))&&(d=this.graph.model.getEdgeCount(a),0<d))for(var f=0;f<d;f++){var g=this.graph.model.getEdgeAt(a,f),k=this.graph.model.getTerminal(g,!0)==a;if(!b||k)k=this.graph.view.getVisibleTerminal(g,!k),this.traverse(k,b,c,g,e)}};
744mxGraphLayout.prototype.isAncestor=function(a,b,c){if(!c)return this.graph.model.getParent(b)==a;if(b==a)return!1;for(;null!=b&&b!=a;)b=this.graph.model.getParent(b);return b==a};mxGraphLayout.prototype.isVertexMovable=function(a){return this.graph.isCellMovable(a)};mxGraphLayout.prototype.isVertexIgnored=function(a){return!this.graph.getModel().isVertex(a)||!this.graph.isCellVisible(a)};
745mxGraphLayout.prototype.isEdgeIgnored=function(a){var b=this.graph.getModel();return!b.isEdge(a)||!this.graph.isCellVisible(a)||null==b.getTerminal(a,!0)||null==b.getTerminal(a,!1)};mxGraphLayout.prototype.setEdgeStyleEnabled=function(a,b){this.graph.setCellStyles(mxConstants.STYLE_NOEDGESTYLE,b?"0":"1",[a])};mxGraphLayout.prototype.setOrthogonalEdge=function(a,b){this.graph.setCellStyles(mxConstants.STYLE_ORTHOGONAL,b?"1":"0",[a])};
746mxGraphLayout.prototype.getParentOffset=function(a){var b=new mxPoint;if(null!=a&&a!=this.parent){var c=this.graph.getModel();if(c.isAncestor(this.parent,a))for(var d=c.getGeometry(a);a!=this.parent;)b.x+=d.x,b.y+=d.y,a=c.getParent(a),d=c.getGeometry(a)}return b};
747mxGraphLayout.prototype.setEdgePoints=function(a,b){if(null!=a){var c=this.graph.model,d=c.getGeometry(a);null==d?(d=new mxGeometry,d.setRelative(!0)):d=d.clone();if(null!=this.parent&&null!=b)for(var e=c.getParent(a),e=this.getParentOffset(e),f=0;f<b.length;f++)b[f].x-=e.x,b[f].y-=e.y;d.points=b;c.setGeometry(a,d)}};
748mxGraphLayout.prototype.setVertexLocation=function(a,b,c){var d=this.graph.getModel(),e=d.getGeometry(a),f=null;if(null!=e){f=new mxRectangle(b,c,e.width,e.height);if(this.useBoundingBox){var g=this.graph.getView().getState(a);if(null!=g&&null!=g.text&&null!=g.text.boundingBox){var k=this.graph.getView().scale,l=g.text.boundingBox;g.text.boundingBox.x<g.x&&(b+=(g.x-l.x)/k,f.width=l.width);g.text.boundingBox.y<g.y&&(c+=(g.y-l.y)/k,f.height=l.height)}}null!=this.parent&&(g=d.getParent(a),null!=g&&g!=
749this.parent&&(g=this.getParentOffset(g),b-=g.x,c-=g.y));if(e.x!=b||e.y!=c)e=e.clone(),e.x=b,e.y=c,d.setGeometry(a,e)}return f};
750mxGraphLayout.prototype.getVertexBounds=function(a){var b=this.graph.getModel().getGeometry(a);if(this.useBoundingBox){var c=this.graph.getView().getState(a);if(null!=c&&null!=c.text&&null!=c.text.boundingBox)var d=this.graph.getView().scale,e=c.text.boundingBox,f=Math.max(c.x-e.x,0)/d,g=Math.max(c.y-e.y,0)/d,b=new mxRectangle(b.x-f,b.y-g,b.width+f+Math.max(e.x+e.width-(c.x+c.width),0)/d,b.height+g+Math.max(e.y+e.height-(c.y+c.height),0)/d)}null!=this.parent&&(a=this.graph.getModel().getParent(a),
751b=b.clone(),null!=a&&a!=this.parent&&(a=this.getParentOffset(a),b.x+=a.x,b.y+=a.y));return new mxRectangle(b.x,b.y,b.width,b.height)};mxGraphLayout.prototype.arrangeGroups=function(a,b,c,d,e,f){return this.graph.updateGroupBounds(a,b,!0,c,d,e,f)};function WeightedCellSorter(a,b){this.cell=a;this.weightedValue=b}WeightedCellSorter.prototype.weightedValue=0;WeightedCellSorter.prototype.nudge=!1;WeightedCellSorter.prototype.visited=!1;WeightedCellSorter.prototype.rankIndex=null;
752WeightedCellSorter.prototype.cell=null;WeightedCellSorter.prototype.compare=function(a,b){return null!=a&&null!=b?b.weightedValue>a.weightedValue?-1:b.weightedValue<a.weightedValue?1:b.nudge?-1:1:0};function mxStackLayout(a,b,c,d,e,f){mxGraphLayout.call(this,a);this.horizontal=null!=b?b:!0;this.spacing=null!=c?c:0;this.x0=null!=d?d:0;this.y0=null!=e?e:0;this.border=null!=f?f:0}mxStackLayout.prototype=new mxGraphLayout;mxStackLayout.prototype.constructor=mxStackLayout;
753mxStackLayout.prototype.horizontal=null;mxStackLayout.prototype.spacing=null;mxStackLayout.prototype.x0=null;mxStackLayout.prototype.y0=null;mxStackLayout.prototype.border=0;mxStackLayout.prototype.marginTop=0;mxStackLayout.prototype.marginLeft=0;mxStackLayout.prototype.marginRight=0;mxStackLayout.prototype.marginBottom=0;mxStackLayout.prototype.keepFirstLocation=!1;mxStackLayout.prototype.fill=!1;mxStackLayout.prototype.resizeParent=!1;mxStackLayout.prototype.resizeParentMax=!1;
754mxStackLayout.prototype.resizeLast=!1;mxStackLayout.prototype.wrap=null;mxStackLayout.prototype.borderCollapse=!0;mxStackLayout.prototype.allowGaps=!1;mxStackLayout.prototype.gridSize=0;mxStackLayout.prototype.isHorizontal=function(){return this.horizontal};
755mxStackLayout.prototype.moveCell=function(a,b,c){var d=this.graph.getModel(),e=d.getParent(a),f=this.isHorizontal();if(null!=a&&null!=e){var g=0,k=d.getChildCount(e);c=f?b:c;b=this.graph.getView().getState(e);null!=b&&(c-=f?b.x:b.y);c/=this.graph.view.scale;for(b=0;b<k;b++){var l=d.getChildAt(e,b);if(l!=a&&(l=d.getGeometry(l),null!=l)){l=f?l.x+l.width/2:l.y+l.height/2;if(g<=c&&l>c)break;g=l}}f=e.getIndex(a);f=Math.max(0,b-(b>f?1:0));d.add(e,a,f)}};
756mxStackLayout.prototype.getParentSize=function(a){var b=this.graph.getModel(),c=b.getGeometry(a);null!=this.graph.container&&(null==c&&b.isLayer(a)||a==this.graph.getView().currentRoot)&&(c=new mxRectangle(0,0,this.graph.container.offsetWidth-1,this.graph.container.offsetHeight-1));return c};
757mxStackLayout.prototype.getLayoutCells=function(a){for(var b=this.graph.getModel(),c=b.getChildCount(a),d=[],e=0;e<c;e++){var f=b.getChildAt(a,e);!this.isVertexIgnored(f)&&this.isVertexMovable(f)&&d.push(f)}this.allowGaps&&d.sort(mxUtils.bind(this,function(a,b){var c=this.graph.getCellGeometry(a),d=this.graph.getCellGeometry(b);return this.horizontal?c.x==d.x?0:c.x>d.x>0?1:-1:c.y==d.y?0:c.y>d.y>0?1:-1}));return d};
758mxStackLayout.prototype.snap=function(a){if(null!=this.gridSize&&0<this.gridSize&&(a=Math.max(a,this.gridSize),1<a/this.gridSize)){var b=a%this.gridSize;a+=b>this.gridSize/2?this.gridSize-b:-b}return a};
759mxStackLayout.prototype.execute=function(a){if(null!=a){var b=this.getParentSize(a),c=this.isHorizontal(),d=this.graph.getModel(),e=null;null!=b&&(e=c?b.height-this.marginTop-this.marginBottom:b.width-this.marginLeft-this.marginRight);var e=e-2*this.border,f=this.x0+this.border+this.marginLeft,g=this.y0+this.border+this.marginTop;if(this.graph.isSwimlane(a)){var k=this.graph.getCellStyle(a),l=mxUtils.getNumber(k,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE),k=1==mxUtils.getValue(k,mxConstants.STYLE_HORIZONTAL,
760!0);null!=b&&(l=k?Math.min(l,b.height):Math.min(l,b.width));c==k&&(e-=l);k?g+=l:f+=l}d.beginUpdate();try{for(var l=0,k=null,m=0,n=null,p=this.getLayoutCells(a),q=0;q<p.length;q++){var r=p[q],t=d.getGeometry(r);if(null!=t){t=t.clone();null!=this.wrap&&null!=k&&(c&&k.x+k.width+t.width+2*this.spacing>this.wrap||!c&&k.y+k.height+t.height+2*this.spacing>this.wrap)&&(k=null,c?g+=l+this.spacing:f+=l+this.spacing,l=0);var l=Math.max(l,c?t.height:t.width),u=0;if(!this.borderCollapse)var x=this.graph.getCellStyle(r),
761u=mxUtils.getNumber(x,mxConstants.STYLE_STROKEWIDTH,1);if(null!=k){var y=m+this.spacing+Math.floor(u/2);c?t.x=this.snap((this.allowGaps?Math.max(y,t.x):y)-this.marginLeft)+this.marginLeft:t.y=this.snap((this.allowGaps?Math.max(y,t.y):y)-this.marginTop)+this.marginTop}else this.keepFirstLocation||(c?t.x=this.allowGaps&&t.x>f?Math.max(this.snap(t.x-this.marginLeft)+this.marginLeft,f):f:t.y=this.allowGaps&&t.y>g?Math.max(this.snap(t.y-this.marginTop)+this.marginTop,g):g);c?t.y=g:t.x=f;this.fill&&null!=
762e&&(c?t.height=e:t.width=e);c?t.width=this.snap(t.width):t.height=this.snap(t.height);this.setChildGeometry(r,t);n=r;k=t;m=c?k.x+k.width+Math.floor(u/2):k.y+k.height+Math.floor(u/2)}}this.resizeParent&&null!=b&&null!=k&&!this.graph.isCellCollapsed(a)?this.updateParentGeometry(a,b,k):this.resizeLast&&null!=b&&null!=k&&null!=n&&(c?k.width=b.width-k.x-this.spacing-this.marginRight-this.marginLeft:k.height=b.height-k.y-this.spacing-this.marginBottom,this.setChildGeometry(n,k))}finally{d.endUpdate()}}};
763mxStackLayout.prototype.setChildGeometry=function(a,b){var c=this.graph.getCellGeometry(a);null!=c&&b.x==c.x&&b.y==c.y&&b.width==c.width&&b.height==c.height||this.graph.getModel().setGeometry(a,b)};
764mxStackLayout.prototype.updateParentGeometry=function(a,b,c){var d=this.isHorizontal(),e=this.graph.getModel(),f=b.clone();d?(c=c.x+c.width+this.marginRight+this.border,f.width=this.resizeParentMax?Math.max(f.width,c):c):(c=c.y+c.height+this.marginBottom+this.border,f.height=this.resizeParentMax?Math.max(f.height,c):c);b.x==f.x&&b.y==f.y&&b.width==f.width&&b.height==f.height||e.setGeometry(a,f)};
765function mxPartitionLayout(a,b,c,d){mxGraphLayout.call(this,a);this.horizontal=null!=b?b:!0;this.spacing=c||0;this.border=d||0}mxPartitionLayout.prototype=new mxGraphLayout;mxPartitionLayout.prototype.constructor=mxPartitionLayout;mxPartitionLayout.prototype.horizontal=null;mxPartitionLayout.prototype.spacing=null;mxPartitionLayout.prototype.border=null;mxPartitionLayout.prototype.resizeVertices=!0;mxPartitionLayout.prototype.isHorizontal=function(){return this.horizontal};
766mxPartitionLayout.prototype.moveCell=function(a,b,c){c=this.graph.getModel();var d=c.getParent(a);if(null!=a&&null!=d){var e,f=0,g=c.getChildCount(d);for(e=0;e<g;e++){var k=c.getChildAt(d,e),k=this.getVertexBounds(k);if(null!=k){k=k.x+k.width/2;if(f<b&&k>b)break;f=k}}b=d.getIndex(a);b=Math.max(0,e-(e>b?1:0));c.add(d,a,b)}};
767mxPartitionLayout.prototype.execute=function(a){var b=this.isHorizontal(),c=this.graph.getModel(),d=c.getGeometry(a);null!=this.graph.container&&(null==d&&c.isLayer(a)||a==this.graph.getView().currentRoot)&&(d=new mxRectangle(0,0,this.graph.container.offsetWidth-1,this.graph.container.offsetHeight-1));if(null!=d){for(var e=[],f=c.getChildCount(a),g=0;g<f;g++){var k=c.getChildAt(a,g);!this.isVertexIgnored(k)&&this.isVertexMovable(k)&&e.push(k)}f=e.length;if(0<f){var l=this.border,m=this.border,n=b?
768d.height:d.width,n=n-2*this.border;a=this.graph.isSwimlane(a)?this.graph.getStartSize(a):new mxRectangle;n-=b?a.height:a.width;l+=a.width;m+=a.height;a=this.border+(f-1)*this.spacing;d=b?(d.width-l-a)/f:(d.height-m-a)/f;if(0<d){c.beginUpdate();try{for(g=0;g<f;g++){var k=e[g],p=c.getGeometry(k);null!=p&&(p=p.clone(),p.x=l,p.y=m,b?(this.resizeVertices&&(p.width=d,p.height=n),l+=d+this.spacing):(this.resizeVertices&&(p.height=d,p.width=n),m+=d+this.spacing),c.setGeometry(k,p))}}finally{c.endUpdate()}}}}};
769function mxCompactTreeLayout(a,b,c){mxGraphLayout.call(this,a);this.horizontal=null!=b?b:!0;this.invert=null!=c?c:!1}mxCompactTreeLayout.prototype=new mxGraphLayout;mxCompactTreeLayout.prototype.constructor=mxCompactTreeLayout;mxCompactTreeLayout.prototype.horizontal=null;mxCompactTreeLayout.prototype.invert=null;mxCompactTreeLayout.prototype.resizeParent=!0;mxCompactTreeLayout.prototype.maintainParentLocation=!1;mxCompactTreeLayout.prototype.groupPadding=10;
770mxCompactTreeLayout.prototype.groupPaddingTop=0;mxCompactTreeLayout.prototype.groupPaddingRight=0;mxCompactTreeLayout.prototype.groupPaddingBottom=0;mxCompactTreeLayout.prototype.groupPaddingLeft=0;mxCompactTreeLayout.prototype.parentsChanged=null;mxCompactTreeLayout.prototype.moveTree=!1;mxCompactTreeLayout.prototype.visited=null;mxCompactTreeLayout.prototype.levelDistance=10;mxCompactTreeLayout.prototype.nodeDistance=20;mxCompactTreeLayout.prototype.resetEdges=!0;
771mxCompactTreeLayout.prototype.prefHozEdgeSep=5;mxCompactTreeLayout.prototype.prefVertEdgeOff=4;mxCompactTreeLayout.prototype.minEdgeJetty=8;mxCompactTreeLayout.prototype.channelBuffer=4;mxCompactTreeLayout.prototype.edgeRouting=!0;mxCompactTreeLayout.prototype.sortEdges=!1;mxCompactTreeLayout.prototype.alignRanks=!1;mxCompactTreeLayout.prototype.maxRankHeight=null;mxCompactTreeLayout.prototype.root=null;mxCompactTreeLayout.prototype.node=null;
772mxCompactTreeLayout.prototype.isVertexIgnored=function(a){return mxGraphLayout.prototype.isVertexIgnored.apply(this,arguments)||0==this.graph.getConnections(a).length};mxCompactTreeLayout.prototype.isHorizontal=function(){return this.horizontal};
773mxCompactTreeLayout.prototype.execute=function(a,b){this.parent=a;var c=this.graph.getModel();if(null==b)if(0<this.graph.getEdges(a,c.getParent(a),this.invert,!this.invert,!1).length)this.root=a;else{var d=this.graph.findTreeRoots(a,!0,this.invert);if(0<d.length)for(var e=0;e<d.length;e++)if(!this.isVertexIgnored(d[e])&&0<this.graph.getEdges(d[e],null,this.invert,!this.invert,!1).length){this.root=d[e];break}}else this.root=b;if(null!=this.root){this.parentsChanged=this.resizeParent?{}:null;this.parentY=
774this.parentX=null;if(a!=this.root&&null!=c.isVertex(a)&&this.maintainParentLocation){var f=this.graph.getCellGeometry(a);null!=f&&(this.parentX=f.x,this.parentY=f.y)}c.beginUpdate();try{if(this.visited={},this.node=this.dfs(this.root,a),this.alignRanks&&(this.maxRankHeight=[],this.findRankHeights(this.node,0),this.setCellHeights(this.node,0)),null!=this.node){this.layout(this.node);var g=this.graph.gridSize,d=g;if(!this.moveTree){var k=this.getVertexBounds(this.root);null!=k&&(g=k.x,d=k.y)}k=null;
775k=this.isHorizontal()?this.horizontalLayout(this.node,g,d):this.verticalLayout(this.node,null,g,d);if(null!=k){var l=e=0;0>k.x&&(e=Math.abs(g-k.x));0>k.y&&(l=Math.abs(d-k.y));0==e&&0==l||this.moveNode(this.node,e,l);this.resizeParent&&this.adjustParents();this.edgeRouting&&this.localEdgeProcessing(this.node)}null!=this.parentX&&null!=this.parentY&&(f=this.graph.getCellGeometry(a),null!=f&&(f=f.clone(),f.x=this.parentX,f.y=this.parentY,c.setGeometry(a,f)))}}finally{c.endUpdate()}}};
776mxCompactTreeLayout.prototype.moveNode=function(a,b,c){a.x+=b;a.y+=c;this.apply(a);for(a=a.child;null!=a;)this.moveNode(a,b,c),a=a.next};
777mxCompactTreeLayout.prototype.sortOutgoingEdges=function(a,b){var c=new mxDictionary;b.sort(function(b,e){var d=b.getTerminal(b.getTerminal(!1)==a),g=c.get(d);null==g&&(g=mxCellPath.create(d).split(mxCellPath.PATH_SEPARATOR),c.put(d,g));var d=e.getTerminal(e.getTerminal(!1)==a),k=c.get(d);null==k&&(k=mxCellPath.create(d).split(mxCellPath.PATH_SEPARATOR),c.put(d,k));return mxCellPath.compare(g,k)})};
778mxCompactTreeLayout.prototype.findRankHeights=function(a,b){if(null==this.maxRankHeight[b]||this.maxRankHeight[b]<a.height)this.maxRankHeight[b]=a.height;for(var c=a.child;null!=c;)this.findRankHeights(c,b+1),c=c.next};mxCompactTreeLayout.prototype.setCellHeights=function(a,b){null!=this.maxRankHeight[b]&&this.maxRankHeight[b]>a.height&&(a.height=this.maxRankHeight[b]);for(var c=a.child;null!=c;)this.setCellHeights(c,b+1),c=c.next};
779mxCompactTreeLayout.prototype.dfs=function(a,b){var c=mxCellPath.create(a),d=null;if(null!=a&&null==this.visited[c]&&!this.isVertexIgnored(a)){this.visited[c]=a;var d=this.createNode(a),c=this.graph.getModel(),e=null,f=this.graph.getEdges(a,b,this.invert,!this.invert,!1,!0),g=this.graph.getView();this.sortEdges&&this.sortOutgoingEdges(a,f);for(var k=0;k<f.length;k++){var l=f[k];if(!this.isEdgeIgnored(l)){this.resetEdges&&this.setEdgePoints(l,null);this.edgeRouting&&(this.setEdgeStyleEnabled(l,!1),
780this.setEdgePoints(l,null));var m=g.getState(l),l=null!=m?m.getVisibleTerminal(this.invert):g.getVisibleTerminal(l,this.invert),m=this.dfs(l,b);null!=m&&null!=c.getGeometry(l)&&(null==e?d.child=m:e.next=m,e=m)}}}return d};mxCompactTreeLayout.prototype.layout=function(a){if(null!=a){for(var b=a.child;null!=b;)this.layout(b),b=b.next;null!=a.child?this.attachParent(a,this.join(a)):this.layoutLeaf(a)}};
781mxCompactTreeLayout.prototype.horizontalLayout=function(a,b,c,d){a.x+=b+a.offsetX;a.y+=c+a.offsetY;d=this.apply(a,d);b=a.child;if(null!=b){d=this.horizontalLayout(b,a.x,a.y,d);c=a.y+b.offsetY;for(var e=b.next;null!=e;)d=this.horizontalLayout(e,a.x+b.offsetX,c,d),c+=e.offsetY,e=e.next}return d};
782mxCompactTreeLayout.prototype.verticalLayout=function(a,b,c,d,e){a.x+=c+a.offsetY;a.y+=d+a.offsetX;e=this.apply(a,e);b=a.child;if(null!=b)for(e=this.verticalLayout(b,a,a.x,a.y,e),c=a.x+b.offsetY,d=b.next;null!=d;)e=this.verticalLayout(d,a,c,a.y+b.offsetX,e),c+=d.offsetY,d=d.next;return e};
783mxCompactTreeLayout.prototype.attachParent=function(a,b){var c=this.nodeDistance+this.levelDistance,d=(b-a.width)/2-this.nodeDistance,e=d+a.width+2*this.nodeDistance-b;a.child.offsetX=c+a.height;a.child.offsetY=e;a.contour.upperHead=this.createLine(a.height,0,this.createLine(c,e,a.contour.upperHead));a.contour.lowerHead=this.createLine(a.height,0,this.createLine(c,d,a.contour.lowerHead))};
784mxCompactTreeLayout.prototype.layoutLeaf=function(a){var b=2*this.nodeDistance;a.contour.upperTail=this.createLine(a.height+b,0);a.contour.upperHead=a.contour.upperTail;a.contour.lowerTail=this.createLine(0,-a.width-b);a.contour.lowerHead=this.createLine(a.height+b,0,a.contour.lowerTail)};
785mxCompactTreeLayout.prototype.join=function(a){var b=2*this.nodeDistance,c=a.child;a.contour=c.contour;for(var d=c.width+b,e=d,c=c.next;null!=c;){var f=this.merge(a.contour,c.contour);c.offsetY=f+d;c.offsetX=0;d=c.width+b;e+=f+d;c=c.next}return e};
786mxCompactTreeLayout.prototype.merge=function(a,b){for(var c=0,d=0,e=0,f=a.lowerHead,g=b.upperHead;null!=g&&null!=f;){var k=this.offset(c,d,g.dx,g.dy,f.dx,f.dy),d=d+k,e=e+k;c+g.dx<=f.dx?(c+=g.dx,d+=g.dy,g=g.next):(c-=f.dx,d-=f.dy,f=f.next)}null!=g?(c=this.bridge(a.upperTail,0,0,g,c,d),a.upperTail=null!=c.next?b.upperTail:c,a.lowerTail=b.lowerTail):(c=this.bridge(b.lowerTail,c,d,f,0,0),null==c.next&&(a.lowerTail=c));a.lowerHead=b.lowerHead;return e};
787mxCompactTreeLayout.prototype.offset=function(a,b,c,d,e,f){if(e<=a||0>=a+c)return 0;a=0<e*d-c*f?0>a?a*d/c-b:0<a?a*f/e-b:-b:e<a+c?f-(b+(e-a)*d/c):e>a+c?(c+a)*f/e-(b+d):f-(b+d);return 0<a?a:0};mxCompactTreeLayout.prototype.bridge=function(a,b,c,d,e,f){b=e+d.dx-b;0==d.dx?e=d.dy:(e=b*d.dy,e/=d.dx);b=this.createLine(b,e,d.next);a.next=this.createLine(0,f+d.dy-e-c,b);return b};
788mxCompactTreeLayout.prototype.createNode=function(a){var b={};b.cell=a;b.x=0;b.y=0;b.width=0;b.height=0;a=this.getVertexBounds(a);null!=a&&(this.isHorizontal()?(b.width=a.height,b.height=a.width):(b.width=a.width,b.height=a.height));b.offsetX=0;b.offsetY=0;b.contour={};return b};
789mxCompactTreeLayout.prototype.apply=function(a,b){var c=this.graph.getModel(),d=a.cell,e=c.getGeometry(d);null!=d&&null!=e&&(this.isVertexMovable(d)&&(e=this.setVertexLocation(d,a.x,a.y),this.resizeParent&&(c=c.getParent(d),d=mxCellPath.create(c),null==this.parentsChanged[d]&&(this.parentsChanged[d]=c))),b=null==b?new mxRectangle(e.x,e.y,e.width,e.height):new mxRectangle(Math.min(b.x,e.x),Math.min(b.y,e.y),Math.max(b.x+b.width,e.x+e.width),Math.max(b.y+b.height,e.y+e.height)));return b};
790mxCompactTreeLayout.prototype.createLine=function(a,b,c){var d={};d.dx=a;d.dy=b;d.next=c;return d};mxCompactTreeLayout.prototype.adjustParents=function(){var a=[],b;for(b in this.parentsChanged)a.push(this.parentsChanged[b]);this.arrangeGroups(mxUtils.sortCells(a,!0),this.groupPadding,this.groupPaddingTop,this.groupPaddingRight,this.groupPaddingBottom,this.groupPaddingLeft)};
791mxCompactTreeLayout.prototype.localEdgeProcessing=function(a){this.processNodeOutgoing(a);for(a=a.child;null!=a;)this.localEdgeProcessing(a),a=a.next};
792mxCompactTreeLayout.prototype.processNodeOutgoing=function(a){for(var b=a.child,c=a.cell,d=0,e=[];null!=b;){d++;var f=b.x;this.horizontal&&(f=b.y);e.push(new WeightedCellSorter(b,f));b=b.next}e.sort(WeightedCellSorter.prototype.compare);var f=a.width,g=(d+1)*this.prefHozEdgeSep;f>g+2*this.prefHozEdgeSep&&(f-=2*this.prefHozEdgeSep);a=f/d;b=a/2;f>g+2*this.prefHozEdgeSep&&(b+=this.prefHozEdgeSep);for(var f=this.minEdgeJetty-this.prefVertEdgeOff,g=this.getVertexBounds(c),k=0;k<e.length;k++){for(var l=
793e[k].cell.cell,m=this.getVertexBounds(l),l=this.graph.getEdgesBetween(c,l,!1),n=[],p,q,r=0;r<l.length;r++)this.horizontal?(p=g.x+g.width,q=g.y+b,n.push(new mxPoint(p,q)),p=g.x+g.width+f,n.push(new mxPoint(p,q)),q=m.y+m.height/2):(p=g.x+b,q=g.y+g.height,n.push(new mxPoint(p,q)),q=g.y+g.height+f,n.push(new mxPoint(p,q)),p=m.x+m.width/2),n.push(new mxPoint(p,q)),this.setEdgePoints(l[r],n);k<d/2?f+=this.prefVertEdgeOff:k>d/2&&(f-=this.prefVertEdgeOff);b+=a}};
794function mxRadialTreeLayout(a){mxCompactTreeLayout.call(this,a,!1)}mxUtils.extend(mxRadialTreeLayout,mxCompactTreeLayout);mxRadialTreeLayout.prototype.angleOffset=.5;mxRadialTreeLayout.prototype.rootx=0;mxRadialTreeLayout.prototype.rooty=0;mxRadialTreeLayout.prototype.levelDistance=120;mxRadialTreeLayout.prototype.nodeDistance=10;mxRadialTreeLayout.prototype.autoRadius=!1;mxRadialTreeLayout.prototype.sortEdges=!1;mxRadialTreeLayout.prototype.rowMinX=[];mxRadialTreeLayout.prototype.rowMaxX=[];
795mxRadialTreeLayout.prototype.rowMinCenX=[];mxRadialTreeLayout.prototype.rowMaxCenX=[];mxRadialTreeLayout.prototype.rowRadi=[];mxRadialTreeLayout.prototype.row=[];mxRadialTreeLayout.prototype.isVertexIgnored=function(a){return mxGraphLayout.prototype.isVertexIgnored.apply(this,arguments)||0==this.graph.getConnections(a).length};
796mxRadialTreeLayout.prototype.execute=function(a,b){this.parent=a;this.edgeRouting=this.useBoundingBox=!1;mxCompactTreeLayout.prototype.execute.apply(this,arguments);var c=null,d=this.getVertexBounds(this.root);this.centerX=d.x+d.width/2;this.centerY=d.y+d.height/2;for(var e in this.visited){var f=this.getVertexBounds(this.visited[e]),c=null!=c?c:f.clone();c.add(f)}this.calcRowDims([this.node],0);for(var g=0,k=0,c=0;c<this.row.length;c++)e=(this.rowMaxX[c]-this.centerX-this.nodeDistance)/this.rowRadi[c],
797g=Math.max(g,(this.centerX-this.rowMinX[c]-this.nodeDistance)/this.rowRadi[c]),k=Math.max(k,e);for(c=0;c<this.row.length;c++){var l=this.centerX-this.nodeDistance-g*this.rowRadi[c],m=this.centerX+this.nodeDistance+k*this.rowRadi[c]-l;for(e=0;e<this.row[c].length;e++)f=this.row[c],d=f[e],f=this.getVertexBounds(d.cell),d.theta=(f.x+f.width/2-l)/m*Math.PI*2}for(c=this.row.length-2;0<=c;c--)for(f=this.row[c],e=0;e<f.length;e++){d=f[e];g=d.child;for(l=k=0;null!=g;)l+=g.theta,k++,g=g.next;0<k&&(g=l/k,g>
798d.theta&&e<f.length-1?d.theta=Math.min(g,f[e+1].theta-Math.PI/10):g<d.theta&&0<e&&(d.theta=Math.max(g,f[e-1].theta+Math.PI/10)))}for(c=0;c<this.row.length;c++)for(e=0;e<this.row[c].length;e++)f=this.row[c],d=f[e],f=this.getVertexBounds(d.cell),this.setVertexLocation(d.cell,this.centerX-f.width/2+this.rowRadi[c]*Math.cos(d.theta),this.centerY-f.height/2+this.rowRadi[c]*Math.sin(d.theta))};
799mxRadialTreeLayout.prototype.calcRowDims=function(a,b){if(null!=a&&0!=a.length){this.rowMinX[b]=this.centerX;this.rowMaxX[b]=this.centerX;this.rowMinCenX[b]=this.centerX;this.rowMaxCenX[b]=this.centerX;this.row[b]=[];for(var c=!1,d=0;d<a.length;d++)for(var e=null!=a[d]?a[d].child:null;null!=e;){var f=this.getVertexBounds(e.cell);this.rowMinX[b]=Math.min(f.x,this.rowMinX[b]);this.rowMaxX[b]=Math.max(f.x+f.width,this.rowMaxX[b]);this.rowMinCenX[b]=Math.min(f.x+f.width/2,this.rowMinCenX[b]);this.rowMaxCenX[b]=
800Math.max(f.x+f.width/2,this.rowMaxCenX[b]);this.rowRadi[b]=f.y-this.getVertexBounds(this.root).y;null!=e.child&&(c=!0);this.row[b].push(e);e=e.next}c&&this.calcRowDims(this.row[b],b+1)}};function mxFastOrganicLayout(a){mxGraphLayout.call(this,a)}mxFastOrganicLayout.prototype=new mxGraphLayout;mxFastOrganicLayout.prototype.constructor=mxFastOrganicLayout;mxFastOrganicLayout.prototype.useInputOrigin=!0;mxFastOrganicLayout.prototype.resetEdges=!0;mxFastOrganicLayout.prototype.disableEdgeStyle=!0;
801mxFastOrganicLayout.prototype.forceConstant=50;mxFastOrganicLayout.prototype.forceConstantSquared=0;mxFastOrganicLayout.prototype.minDistanceLimit=2;mxFastOrganicLayout.prototype.maxDistanceLimit=500;mxFastOrganicLayout.prototype.minDistanceLimitSquared=4;mxFastOrganicLayout.prototype.initialTemp=200;mxFastOrganicLayout.prototype.temperature=0;mxFastOrganicLayout.prototype.maxIterations=0;mxFastOrganicLayout.prototype.iteration=0;mxFastOrganicLayout.prototype.allowedToRun=!0;
802mxFastOrganicLayout.prototype.isVertexIgnored=function(a){return mxGraphLayout.prototype.isVertexIgnored.apply(this,arguments)||0==this.graph.getConnections(a).length};
803mxFastOrganicLayout.prototype.execute=function(a){var b=this.graph.getModel();this.vertexArray=[];for(var c=this.graph.getChildVertices(a),d=0;d<c.length;d++)this.isVertexIgnored(c[d])||this.vertexArray.push(c[d]);var e=this.useInputOrigin?this.graph.getBoundingBoxFromGeometry(this.vertexArray):null,f=this.vertexArray.length;this.indices=[];this.dispX=[];this.dispY=[];this.cellLocation=[];this.isMoveable=[];this.neighbours=[];this.radius=[];this.radiusSquared=[];.001>this.forceConstant&&(this.forceConstant=
804.001);this.forceConstantSquared=this.forceConstant*this.forceConstant;for(d=0;d<this.vertexArray.length;d++){var g=this.vertexArray[d];this.cellLocation[d]=[];var k=mxObjectIdentity.get(g);this.indices[k]=d;var l=this.getVertexBounds(g),m=l.width,n=l.height,p=l.x,q=l.y;this.cellLocation[d][0]=p+m/2;this.cellLocation[d][1]=q+n/2;this.radius[d]=Math.min(m,n);this.radiusSquared[d]=this.radius[d]*this.radius[d]}b.beginUpdate();try{for(d=0;d<f;d++){this.dispX[d]=0;this.dispY[d]=0;this.isMoveable[d]=this.isVertexMovable(this.vertexArray[d]);
805var r=this.graph.getConnections(this.vertexArray[d],a),c=this.graph.getOpposites(r,this.vertexArray[d]);this.neighbours[d]=[];for(m=0;m<c.length;m++){this.resetEdges&&this.graph.resetEdge(r[m]);this.disableEdgeStyle&&this.setEdgeStyleEnabled(r[m],!1);var k=mxObjectIdentity.get(c[m]),t=this.indices[k];this.neighbours[d][m]=null!=t?t:d}}this.temperature=this.initialTemp;0==this.maxIterations&&(this.maxIterations=20*Math.sqrt(f));for(this.iteration=0;this.iteration<this.maxIterations;this.iteration++){if(!this.allowedToRun)return;
806this.calcRepulsion();this.calcAttraction();this.calcPositions();this.reduceTemperature()}a=c=null;for(d=0;d<this.vertexArray.length;d++)g=this.vertexArray[d],this.isVertexMovable(g)&&(l=this.getVertexBounds(g),null!=l&&(this.cellLocation[d][0]-=l.width/2,this.cellLocation[d][1]-=l.height/2,p=this.graph.snap(Math.round(this.cellLocation[d][0])),q=this.graph.snap(Math.round(this.cellLocation[d][1])),this.setVertexLocation(g,p,q),c=null==c?p:Math.min(c,p),a=null==a?q:Math.min(a,q)));d=-(c||0)+1;g=-(a||
8070)+1;null!=e&&(d+=e.x,g+=e.y);this.graph.moveCells(this.vertexArray,d,g)}finally{b.endUpdate()}};mxFastOrganicLayout.prototype.calcPositions=function(){for(var a=0;a<this.vertexArray.length;a++)if(this.isMoveable[a]){var b=Math.sqrt(this.dispX[a]*this.dispX[a]+this.dispY[a]*this.dispY[a]);.001>b&&(b=.001);var c=this.dispX[a]/b*Math.min(b,this.temperature),b=this.dispY[a]/b*Math.min(b,this.temperature);this.dispX[a]=0;this.dispY[a]=0;this.cellLocation[a][0]+=c;this.cellLocation[a][1]+=b}};
808mxFastOrganicLayout.prototype.calcAttraction=function(){for(var a=0;a<this.vertexArray.length;a++)for(var b=0;b<this.neighbours[a].length;b++){var c=this.neighbours[a][b];if(a!=c&&this.isMoveable[a]&&this.isMoveable[c]){var d=this.cellLocation[a][0]-this.cellLocation[c][0],e=this.cellLocation[a][1]-this.cellLocation[c][1],f=d*d+e*e-this.radiusSquared[a]-this.radiusSquared[c];f<this.minDistanceLimitSquared&&(f=this.minDistanceLimitSquared);var g=Math.sqrt(f),f=f/this.forceConstant,d=d/g*f,e=e/g*f;
809this.dispX[a]-=d;this.dispY[a]-=e;this.dispX[c]+=d;this.dispY[c]+=e}}};
810mxFastOrganicLayout.prototype.calcRepulsion=function(){for(var a=this.vertexArray.length,b=0;b<a;b++)for(var c=b;c<a;c++){if(!this.allowedToRun)return;if(c!=b&&this.isMoveable[b]&&this.isMoveable[c]){var d=this.cellLocation[b][0]-this.cellLocation[c][0],e=this.cellLocation[b][1]-this.cellLocation[c][1];0==d&&(d=.01+Math.random());0==e&&(e=.01+Math.random());var f=Math.sqrt(d*d+e*e),g=f-this.radius[b]-this.radius[c];g>this.maxDistanceLimit||(g<this.minDistanceLimit&&(g=this.minDistanceLimit),g=this.forceConstantSquared/
811g,d=d/f*g,e=e/f*g,this.dispX[b]+=d,this.dispY[b]+=e,this.dispX[c]-=d,this.dispY[c]-=e)}}};mxFastOrganicLayout.prototype.reduceTemperature=function(){this.temperature=this.initialTemp*(1-this.iteration/this.maxIterations)};function mxCircleLayout(a,b){mxGraphLayout.call(this,a);this.radius=null!=b?b:100}mxCircleLayout.prototype=new mxGraphLayout;mxCircleLayout.prototype.constructor=mxCircleLayout;mxCircleLayout.prototype.radius=null;mxCircleLayout.prototype.moveCircle=!1;
812mxCircleLayout.prototype.x0=0;mxCircleLayout.prototype.y0=0;mxCircleLayout.prototype.resetEdges=!0;mxCircleLayout.prototype.disableEdgeStyle=!0;
813mxCircleLayout.prototype.execute=function(a){var b=this.graph.getModel();b.beginUpdate();try{for(var c=0,d=null,e=null,f=[],g=b.getChildCount(a),k=0;k<g;k++){var l=b.getChildAt(a,k);if(this.isVertexIgnored(l))this.isEdgeIgnored(l)||(this.resetEdges&&this.graph.resetEdge(l),this.disableEdgeStyle&&this.setEdgeStyleEnabled(l,!1));else{f.push(l);var m=this.getVertexBounds(l),d=null==d?m.y:Math.min(d,m.y),e=null==e?m.x:Math.min(e,m.x),c=Math.max(c,Math.max(m.width,m.height))}}var n=this.getRadius(f.length,
814c);this.moveCircle&&(e=this.x0,d=this.y0);this.circle(f,n,e,d)}finally{b.endUpdate()}};mxCircleLayout.prototype.getRadius=function(a,b){return Math.max(a*b/Math.PI,this.radius)};mxCircleLayout.prototype.circle=function(a,b,c,d){for(var e=a.length,f=2*Math.PI/e,g=0;g<e;g++)this.isVertexMovable(a[g])&&this.setVertexLocation(a[g],Math.round(c+b+b*Math.sin(g*f)),Math.round(d+b+b*Math.cos(g*f)))};function mxParallelEdgeLayout(a){mxGraphLayout.call(this,a)}mxParallelEdgeLayout.prototype=new mxGraphLayout;
815mxParallelEdgeLayout.prototype.constructor=mxParallelEdgeLayout;mxParallelEdgeLayout.prototype.spacing=20;mxParallelEdgeLayout.prototype.checkOverlap=!1;mxParallelEdgeLayout.prototype.execute=function(a,b){var c=this.findParallels(a,b);this.graph.model.beginUpdate();try{for(var d in c){var e=c[d];1<e.length&&this.layout(e)}}finally{this.graph.model.endUpdate()}};
816mxParallelEdgeLayout.prototype.findParallels=function(a,b){var c=[],d=mxUtils.bind(this,function(a){if(!this.isEdgeIgnored(a)){var b=this.getEdgeId(a);null!=b&&(null==c[b]&&(c[b]=[]),c[b].push(a))}});if(null!=b)for(var e=0;e<b.length;e++)d(b[e]);else for(var f=this.graph.getModel(),g=f.getChildCount(a),e=0;e<g;e++)d(f.getChildAt(a,e));return c};
817mxParallelEdgeLayout.prototype.getEdgeId=function(a){var b=this.graph.getView(),c=b.getVisibleTerminal(a,!0),b=b.getVisibleTerminal(a,!1),d="";if(null!=c&&null!=b){c=mxObjectIdentity.get(c);b=mxObjectIdentity.get(b);if(this.checkOverlap&&(a=this.graph.view.getState(a),null!=a&&null!=a.absolutePoints)){for(var d=[],e=0;e<a.absolutePoints.length;e++){var f=a.absolutePoints[e];null!=f&&d.push(f.x,f.y)}d=d.join(",")}return(c>b?b+"-"+c:c+"-"+b)+d}return null};
818mxParallelEdgeLayout.prototype.layout=function(a){var b=a[0],c=this.graph.getView(),d=this.graph.getModel(),e=d.getGeometry(c.getVisibleTerminal(b,!0)),d=d.getGeometry(c.getVisibleTerminal(b,!1));if(e==d)for(var b=e.x+e.width+this.spacing,c=e.y+e.height/2,f=0;f<a.length;f++)this.route(a[f],b,c),b+=this.spacing;else if(null!=e&&null!=d){var b=e.x+e.width/2,c=e.y+e.height/2,f=d.x+d.width/2-b,g=d.y+d.height/2-c,d=Math.sqrt(f*f+g*g);if(0<d)for(e=g*this.spacing/d,d=f*this.spacing/d,b=b+f/2+e*(a.length-
8191)/2,c=c+g/2-d*(a.length-1)/2,f=0;f<a.length;f++)this.route(a[f],b,c),b-=e,c+=d}};mxParallelEdgeLayout.prototype.route=function(a,b,c){this.graph.isCellMovable(a)&&this.setEdgePoints(a,[new mxPoint(b,c)])};function mxCompositeLayout(a,b,c){mxGraphLayout.call(this,a);this.layouts=b;this.master=c}mxCompositeLayout.prototype=new mxGraphLayout;mxCompositeLayout.prototype.constructor=mxCompositeLayout;mxCompositeLayout.prototype.layouts=null;mxCompositeLayout.prototype.master=null;
820mxCompositeLayout.prototype.moveCell=function(a,b,c){null!=this.master?this.master.moveCell.apply(this.master,arguments):this.layouts[0].moveCell.apply(this.layouts[0],arguments)};mxCompositeLayout.prototype.execute=function(a){var b=this.graph.getModel();b.beginUpdate();try{for(var c=0;c<this.layouts.length;c++)this.layouts[c].execute.apply(this.layouts[c],arguments)}finally{b.endUpdate()}};function mxEdgeLabelLayout(a,b){mxGraphLayout.call(this,a)}mxEdgeLabelLayout.prototype=new mxGraphLayout;
821mxEdgeLabelLayout.prototype.constructor=mxEdgeLabelLayout;mxEdgeLabelLayout.prototype.execute=function(a){for(var b=this.graph.view,c=this.graph.getModel(),d=[],e=[],f=c.getChildCount(a),g=0;g<f;g++){var k=c.getChildAt(a,g),l=b.getState(k);null!=l&&(this.isVertexIgnored(k)?this.isEdgeIgnored(k)||d.push(l):e.push(l))}this.placeLabels(e,d)};
822mxEdgeLabelLayout.prototype.placeLabels=function(a,b){var c=this.graph.getModel();c.beginUpdate();try{for(var d=0;d<b.length;d++){var e=b[d];if(null!=e&&null!=e.text&&null!=e.text.boundingBox)for(var f=0;f<a.length;f++){var g=a[f];null!=g&&this.avoid(e,g)}}}finally{c.endUpdate()}};
823mxEdgeLabelLayout.prototype.avoid=function(a,b){var c=this.graph.getModel(),d=a.text.boundingBox;if(mxUtils.intersects(d,b)){var e=-d.y-d.height+b.y,f=-d.y+b.y+b.height,e=Math.abs(e)<Math.abs(f)?e:f,f=-d.x-d.width+b.x,d=-d.x+b.x+b.width,d=Math.abs(f)<Math.abs(d)?f:d;Math.abs(d)<Math.abs(e)?e=0:d=0;f=c.getGeometry(a.cell);null!=f&&(f=f.clone(),null!=f.offset?(f.offset.x+=d,f.offset.y+=e):f.offset=new mxPoint(d,e),c.setGeometry(a.cell,f))}};
824function mxGraphAbstractHierarchyCell(){this.x=[];this.y=[];this.temp=[]}mxGraphAbstractHierarchyCell.prototype.maxRank=-1;mxGraphAbstractHierarchyCell.prototype.minRank=-1;mxGraphAbstractHierarchyCell.prototype.x=null;mxGraphAbstractHierarchyCell.prototype.y=null;mxGraphAbstractHierarchyCell.prototype.width=0;mxGraphAbstractHierarchyCell.prototype.height=0;mxGraphAbstractHierarchyCell.prototype.nextLayerConnectedCells=null;mxGraphAbstractHierarchyCell.prototype.previousLayerConnectedCells=null;
825mxGraphAbstractHierarchyCell.prototype.temp=null;mxGraphAbstractHierarchyCell.prototype.getNextLayerConnectedCells=function(a){return null};mxGraphAbstractHierarchyCell.prototype.getPreviousLayerConnectedCells=function(a){return null};mxGraphAbstractHierarchyCell.prototype.isEdge=function(){return!1};mxGraphAbstractHierarchyCell.prototype.isVertex=function(){return!1};mxGraphAbstractHierarchyCell.prototype.getGeneralPurposeVariable=function(a){return null};
826mxGraphAbstractHierarchyCell.prototype.setGeneralPurposeVariable=function(a,b){return null};mxGraphAbstractHierarchyCell.prototype.setX=function(a,b){this.isVertex()?this.x[0]=b:this.isEdge()&&(this.x[a-this.minRank-1]=b)};mxGraphAbstractHierarchyCell.prototype.getX=function(a){return this.isVertex()?this.x[0]:this.isEdge()?this.x[a-this.minRank-1]:0};mxGraphAbstractHierarchyCell.prototype.setY=function(a,b){this.isVertex()?this.y[0]=b:this.isEdge()&&(this.y[a-this.minRank-1]=b)};
827function mxGraphHierarchyNode(a){mxGraphAbstractHierarchyCell.apply(this,arguments);this.cell=a;this.id=mxObjectIdentity.get(a);this.connectsAsTarget=[];this.connectsAsSource=[]}mxGraphHierarchyNode.prototype=new mxGraphAbstractHierarchyCell;mxGraphHierarchyNode.prototype.constructor=mxGraphHierarchyNode;mxGraphHierarchyNode.prototype.cell=null;mxGraphHierarchyNode.prototype.id=null;mxGraphHierarchyNode.prototype.connectsAsTarget=null;mxGraphHierarchyNode.prototype.connectsAsSource=null;
828mxGraphHierarchyNode.prototype.hashCode=!1;mxGraphHierarchyNode.prototype.getRankValue=function(a){return this.maxRank};mxGraphHierarchyNode.prototype.getNextLayerConnectedCells=function(a){if(null==this.nextLayerConnectedCells){this.nextLayerConnectedCells=[];this.nextLayerConnectedCells[0]=[];for(var b=0;b<this.connectsAsTarget.length;b++){var c=this.connectsAsTarget[b];-1==c.maxRank||c.maxRank==a+1?this.nextLayerConnectedCells[0].push(c.source):this.nextLayerConnectedCells[0].push(c)}}return this.nextLayerConnectedCells[0]};
829mxGraphHierarchyNode.prototype.getPreviousLayerConnectedCells=function(a){if(null==this.previousLayerConnectedCells){this.previousLayerConnectedCells=[];this.previousLayerConnectedCells[0]=[];for(var b=0;b<this.connectsAsSource.length;b++){var c=this.connectsAsSource[b];-1==c.minRank||c.minRank==a-1?this.previousLayerConnectedCells[0].push(c.target):this.previousLayerConnectedCells[0].push(c)}}return this.previousLayerConnectedCells[0]};mxGraphHierarchyNode.prototype.isVertex=function(){return!0};
830mxGraphHierarchyNode.prototype.getGeneralPurposeVariable=function(a){return this.temp[0]};mxGraphHierarchyNode.prototype.setGeneralPurposeVariable=function(a,b){this.temp[0]=b};mxGraphHierarchyNode.prototype.isAncestor=function(a){if(null!=a&&null!=this.hashCode&&null!=a.hashCode&&this.hashCode.length<a.hashCode.length){if(this.hashCode==a.hashCode)return!0;if(null==this.hashCode||null==this.hashCode)return!1;for(var b=0;b<this.hashCode.length;b++)if(this.hashCode[b]!=a.hashCode[b])return!1;return!0}return!1};
831mxGraphHierarchyNode.prototype.getCoreCell=function(){return this.cell};function mxGraphHierarchyEdge(a){mxGraphAbstractHierarchyCell.apply(this,arguments);this.edges=a;this.ids=[];for(var b=0;b<a.length;b++)this.ids.push(mxObjectIdentity.get(a[b]))}mxGraphHierarchyEdge.prototype=new mxGraphAbstractHierarchyCell;mxGraphHierarchyEdge.prototype.constructor=mxGraphHierarchyEdge;mxGraphHierarchyEdge.prototype.edges=null;mxGraphHierarchyEdge.prototype.ids=null;mxGraphHierarchyEdge.prototype.source=null;
832mxGraphHierarchyEdge.prototype.target=null;mxGraphHierarchyEdge.prototype.isReversed=!1;mxGraphHierarchyEdge.prototype.invert=function(a){a=this.source;this.source=this.target;this.target=a;this.isReversed=!this.isReversed};
833mxGraphHierarchyEdge.prototype.getNextLayerConnectedCells=function(a){if(null==this.nextLayerConnectedCells){this.nextLayerConnectedCells=[];for(var b=0;b<this.temp.length;b++)this.nextLayerConnectedCells[b]=[],b==this.temp.length-1?this.nextLayerConnectedCells[b].push(this.source):this.nextLayerConnectedCells[b].push(this)}return this.nextLayerConnectedCells[a-this.minRank-1]};
834mxGraphHierarchyEdge.prototype.getPreviousLayerConnectedCells=function(a){if(null==this.previousLayerConnectedCells){this.previousLayerConnectedCells=[];for(var b=0;b<this.temp.length;b++)this.previousLayerConnectedCells[b]=[],0==b?this.previousLayerConnectedCells[b].push(this.target):this.previousLayerConnectedCells[b].push(this)}return this.previousLayerConnectedCells[a-this.minRank-1]};mxGraphHierarchyEdge.prototype.isEdge=function(){return!0};
835mxGraphHierarchyEdge.prototype.getGeneralPurposeVariable=function(a){return this.temp[a-this.minRank-1]};mxGraphHierarchyEdge.prototype.setGeneralPurposeVariable=function(a,b){this.temp[a-this.minRank-1]=b};mxGraphHierarchyEdge.prototype.getCoreCell=function(){return null!=this.edges&&0<this.edges.length?this.edges[0]:null};
836function mxGraphHierarchyModel(a,b,c,d,e){a.getGraph();this.tightenToSource=e;this.roots=c;this.parent=d;this.vertexMapper=new mxDictionary;this.edgeMapper=new mxDictionary;this.maxRank=0;c=[];null==b&&(b=this.graph.getChildVertices(d));this.maxRank=this.SOURCESCANSTARTRANK;this.createInternalCells(a,b,c);for(d=0;d<b.length;d++){e=c[d].connectsAsSource;for(var f=0;f<e.length;f++){var g=e[f],k=g.edges;if(null!=k&&0<k.length){var k=k[0],l=a.getVisibleTerminal(k,!1),l=this.vertexMapper.get(l);c[d]==
837l&&(l=a.getVisibleTerminal(k,!0),l=this.vertexMapper.get(l));null!=l&&c[d]!=l&&(g.target=l,0==l.connectsAsTarget.length&&(l.connectsAsTarget=[]),0>mxUtils.indexOf(l.connectsAsTarget,g)&&l.connectsAsTarget.push(g))}}c[d].temp[0]=1}}mxGraphHierarchyModel.prototype.maxRank=null;mxGraphHierarchyModel.prototype.vertexMapper=null;mxGraphHierarchyModel.prototype.edgeMapper=null;mxGraphHierarchyModel.prototype.ranks=null;mxGraphHierarchyModel.prototype.roots=null;mxGraphHierarchyModel.prototype.parent=null;
838mxGraphHierarchyModel.prototype.dfsCount=0;mxGraphHierarchyModel.prototype.SOURCESCANSTARTRANK=1E8;mxGraphHierarchyModel.prototype.tightenToSource=!1;
839mxGraphHierarchyModel.prototype.createInternalCells=function(a,b,c){for(var d=a.getGraph(),e=0;e<b.length;e++){c[e]=new mxGraphHierarchyNode(b[e]);this.vertexMapper.put(b[e],c[e]);var f=a.getEdges(b[e]);c[e].connectsAsSource=[];for(var g=0;g<f.length;g++){var k=a.getVisibleTerminal(f[g],!1);if(k!=b[e]&&a.graph.model.isVertex(k)&&!a.isVertexIgnored(k)){var l=a.getEdgesBetween(b[e],k,!1),k=a.getEdgesBetween(b[e],k,!0);if(null!=l&&0<l.length&&null==this.edgeMapper.get(l[0])&&2*k.length>=l.length){for(var k=
840new mxGraphHierarchyEdge(l),m=0;m<l.length;m++){var n=l[m];this.edgeMapper.put(n,k);d.resetEdge(n);a.disableEdgeStyle&&(a.setEdgeStyleEnabled(n,!1),a.setOrthogonalEdge(n,!0))}k.source=c[e];0>mxUtils.indexOf(c[e].connectsAsSource,k)&&c[e].connectsAsSource.push(k)}}}c[e].temp[0]=0}};
841mxGraphHierarchyModel.prototype.initialRank=function(){var a=[];if(null!=this.roots)for(var b=0;b<this.roots.length;b++){var c=this.vertexMapper.get(this.roots[b]);null!=c&&a.push(c)}for(var d=this.vertexMapper.getValues(),b=0;b<d.length;b++)d[b].temp[0]=-1;for(var e=a.slice();0<a.length;){var c=a[0],f,g;f=c.connectsAsTarget;g=c.connectsAsSource;for(var k=!0,l=this.SOURCESCANSTARTRANK,b=0;b<f.length;b++){var m=f[b];if(5270620==m.temp[0])m=m.source,l=Math.min(l,m.temp[0]-1);else{k=!1;break}}if(k){c.temp[0]=
842l;this.maxRank=Math.min(this.maxRank,l);if(null!=g)for(b=0;b<g.length;b++)m=g[b],m.temp[0]=5270620,m=m.target,-1==m.temp[0]&&(a.push(m),m.temp[0]=-2);a.shift()}else if(b=a.shift(),a.push(c),b==c&&1==a.length)break}for(b=0;b<d.length;b++)d[b].temp[0]-=this.maxRank;for(b=0;b<e.length;b++)for(c=e[b],a=0,f=c.connectsAsSource,d=0;d<f.length;d++)m=f[d],m=m.target,c.temp[0]=Math.max(a,m.temp[0]+1),a=c.temp[0];this.maxRank=this.SOURCESCANSTARTRANK-this.maxRank};
843mxGraphHierarchyModel.prototype.fixRanks=function(){var a=[];this.ranks=[];for(var b=0;b<this.maxRank+1;b++)a[b]=[],this.ranks[b]=a[b];var c=null;if(null!=this.roots)for(var d=this.roots,c=[],b=0;b<d.length;b++){var e=this.vertexMapper.get(d[b]);c[b]=e}this.visit(function(b,c,d,e,m){0==m&&0>c.maxRank&&0>c.minRank&&(a[c.temp[0]].push(c),c.maxRank=c.temp[0],c.minRank=c.temp[0],c.temp[0]=a[c.maxRank].length-1);if(null!=b&&null!=d&&1<b.maxRank-c.maxRank)for(d.maxRank=b.maxRank,d.minRank=c.maxRank,d.temp=
844[],d.x=[],d.y=[],b=d.minRank+1;b<d.maxRank;b++)a[b].push(d),d.setGeneralPurposeVariable(b,a[b].length-1)},c,!1,null)};mxGraphHierarchyModel.prototype.visit=function(a,b,c,d){if(null!=b){for(var e=0;e<b.length;e++){var f=b[e];null!=f&&(null==d&&(d={}),c?(f.hashCode=[],f.hashCode[0]=this.dfsCount,f.hashCode[1]=e,this.extendedDfs(null,f,null,a,d,f.hashCode,e,0)):this.dfs(null,f,null,a,d,0))}this.dfsCount++}};
845mxGraphHierarchyModel.prototype.dfs=function(a,b,c,d,e,f){if(null!=b){var g=b.id;if(null==e[g])for(e[g]=b,d(a,b,c,f,0),a=b.connectsAsSource.slice(),c=0;c<a.length;c++)g=a[c],this.dfs(b,g.target,g,d,e,f+1);else d(a,b,c,f,1)}};
846mxGraphHierarchyModel.prototype.extendedDfs=function(a,b,c,d,e,f,g,k){if(null!=b)if(null==a||null!=b.hashCode&&b.hashCode[0]==a.hashCode[0]||(f=a.hashCode.length+1,b.hashCode=a.hashCode.slice(),b.hashCode[f-1]=g),g=b.id,null==e[g])for(e[g]=b,d(a,b,c,k,0),a=b.connectsAsSource.slice(),c=0;c<a.length;c++)g=a[c],this.extendedDfs(b,g.target,g,d,e,b.hashCode,c,k+1);else d(a,b,c,k,1)};
847function mxSwimlaneModel(a,b,c,d,e){a.getGraph();this.tightenToSource=e;this.roots=c;this.parent=d;this.vertexMapper=new mxDictionary;this.edgeMapper=new mxDictionary;this.maxRank=0;c=[];null==b&&(b=this.graph.getChildVertices(d));this.maxRank=this.SOURCESCANSTARTRANK;this.createInternalCells(a,b,c);for(d=0;d<b.length;d++){e=c[d].connectsAsSource;for(var f=0;f<e.length;f++){var g=e[f],k=g.edges;if(null!=k&&0<k.length){var k=k[0],l=a.getVisibleTerminal(k,!1),l=this.vertexMapper.get(l);c[d]==l&&(l=
848a.getVisibleTerminal(k,!0),l=this.vertexMapper.get(l));null!=l&&c[d]!=l&&(g.target=l,0==l.connectsAsTarget.length&&(l.connectsAsTarget=[]),0>mxUtils.indexOf(l.connectsAsTarget,g)&&l.connectsAsTarget.push(g))}}c[d].temp[0]=1}}mxSwimlaneModel.prototype.maxRank=null;mxSwimlaneModel.prototype.vertexMapper=null;mxSwimlaneModel.prototype.edgeMapper=null;mxSwimlaneModel.prototype.ranks=null;mxSwimlaneModel.prototype.roots=null;mxSwimlaneModel.prototype.parent=null;mxSwimlaneModel.prototype.dfsCount=0;
849mxSwimlaneModel.prototype.SOURCESCANSTARTRANK=1E8;mxSwimlaneModel.prototype.tightenToSource=!1;mxSwimlaneModel.prototype.ranksPerGroup=null;
850mxSwimlaneModel.prototype.createInternalCells=function(a,b,c){for(var d=a.getGraph(),e=a.swimlanes,f=0;f<b.length;f++){c[f]=new mxGraphHierarchyNode(b[f]);this.vertexMapper.put(b[f],c[f]);c[f].swimlaneIndex=-1;for(var g=0;g<e.length;g++)if(d.model.getParent(b[f])==e[g]){c[f].swimlaneIndex=g;break}g=a.getEdges(b[f]);c[f].connectsAsSource=[];for(var k=0;k<g.length;k++){var l=a.getVisibleTerminal(g[k],!1);if(l!=b[f]&&a.graph.model.isVertex(l)&&!a.isVertexIgnored(l)){var m=a.getEdgesBetween(b[f],l,!1),
851l=a.getEdgesBetween(b[f],l,!0);if(null!=m&&0<m.length&&null==this.edgeMapper.get(m[0])&&2*l.length>=m.length){for(var l=new mxGraphHierarchyEdge(m),n=0;n<m.length;n++){var p=m[n];this.edgeMapper.put(p,l);d.resetEdge(p);a.disableEdgeStyle&&(a.setEdgeStyleEnabled(p,!1),a.setOrthogonalEdge(p,!0))}l.source=c[f];0>mxUtils.indexOf(c[f].connectsAsSource,l)&&c[f].connectsAsSource.push(l)}}}c[f].temp[0]=0}};
852mxSwimlaneModel.prototype.initialRank=function(){this.ranksPerGroup=[];var a=[],b={};if(null!=this.roots)for(var c=0;c<this.roots.length;c++){var d=this.vertexMapper.get(this.roots[c]);this.maxChainDfs(null,d,null,b,0);null!=d&&a.push(d)}d=[];b=[];for(c=this.ranksPerGroup.length-1;0<=c;c--)d[c]=c==this.ranksPerGroup.length-1?0:b[c+1]+1,b[c]=d[c]+this.ranksPerGroup[c];this.maxRank=b[0];d=this.vertexMapper.getValues();for(c=0;c<d.length;c++)d[c].temp[0]=-1;for(a.slice();0<a.length;){var d=a[0],e,f;
853e=d.connectsAsTarget;f=d.connectsAsSource;for(var g=!0,k=b[0],c=0;c<e.length;c++){var l=e[c];if(5270620==l.temp[0])l=l.source,k=Math.min(k,l.temp[0]-1);else{g=!1;break}}if(g){k>b[d.swimlaneIndex]&&(k=b[d.swimlaneIndex]);d.temp[0]=k;if(null!=f)for(c=0;c<f.length;c++)l=f[c],l.temp[0]=5270620,l=l.target,-1==l.temp[0]&&(a.push(l),l.temp[0]=-2);a.shift()}else if(c=a.shift(),a.push(d),c==d&&1==a.length)break}};
854mxSwimlaneModel.prototype.maxChainDfs=function(a,b,c,d,e){if(null!=b&&(a=mxCellPath.create(b.cell),null==d[a])){d[a]=b;a=b.swimlaneIndex;if(null==this.ranksPerGroup[a]||this.ranksPerGroup[a]<e)this.ranksPerGroup[a]=e;a=b.connectsAsSource.slice();for(c=0;c<a.length;c++){var f=a[c],g=f.target;b.swimlaneIndex<g.swimlaneIndex?this.maxChainDfs(b,g,f,mxUtils.clone(d,null,!0),0):b.swimlaneIndex==g.swimlaneIndex&&this.maxChainDfs(b,g,f,mxUtils.clone(d,null,!0),e+1)}}};
855mxSwimlaneModel.prototype.fixRanks=function(){var a=[];this.ranks=[];for(var b=0;b<this.maxRank+1;b++)a[b]=[],this.ranks[b]=a[b];var c=null;if(null!=this.roots)for(var d=this.roots,c=[],b=0;b<d.length;b++){var e=this.vertexMapper.get(d[b]);c[b]=e}this.visit(function(b,c,d,e,m){0==m&&0>c.maxRank&&0>c.minRank&&(a[c.temp[0]].push(c),c.maxRank=c.temp[0],c.minRank=c.temp[0],c.temp[0]=a[c.maxRank].length-1);if(null!=b&&null!=d&&1<b.maxRank-c.maxRank)for(d.maxRank=b.maxRank,d.minRank=c.maxRank,d.temp=[],
856d.x=[],d.y=[],b=d.minRank+1;b<d.maxRank;b++)a[b].push(d),d.setGeneralPurposeVariable(b,a[b].length-1)},c,!1,null)};mxSwimlaneModel.prototype.visit=function(a,b,c,d){if(null!=b){for(var e=0;e<b.length;e++){var f=b[e];null!=f&&(null==d&&(d={}),c?(f.hashCode=[],f.hashCode[0]=this.dfsCount,f.hashCode[1]=e,this.extendedDfs(null,f,null,a,d,f.hashCode,e,0)):this.dfs(null,f,null,a,d,0))}this.dfsCount++}};
857mxSwimlaneModel.prototype.dfs=function(a,b,c,d,e,f){if(null!=b){var g=b.id;if(null==e[g])for(e[g]=b,d(a,b,c,f,0),a=b.connectsAsSource.slice(),c=0;c<a.length;c++)g=a[c],this.dfs(b,g.target,g,d,e,f+1);else d(a,b,c,f,1)}};
858mxSwimlaneModel.prototype.extendedDfs=function(a,b,c,d,e,f,g,k){if(null!=b)if(null==a||null!=b.hashCode&&b.hashCode[0]==a.hashCode[0]||(f=a.hashCode.length+1,b.hashCode=a.hashCode.slice(),b.hashCode[f-1]=g),g=b.id,null==e[g]){e[g]=b;d(a,b,c,k,0);a=b.connectsAsSource.slice();c=b.connectsAsTarget.slice();for(g=0;g<a.length;g++){f=a[g];var l=f.target;b.swimlaneIndex<=l.swimlaneIndex&&this.extendedDfs(b,l,f,d,e,b.hashCode,g,k+1)}for(g=0;g<c.length;g++)f=c[g],l=f.source,b.swimlaneIndex<l.swimlaneIndex&&
859this.extendedDfs(b,l,f,d,e,b.hashCode,g,k+1)}else d(a,b,c,k,1)};function mxHierarchicalLayoutStage(){}mxHierarchicalLayoutStage.prototype.execute=function(a){};function mxMedianHybridCrossingReduction(a){this.layout=a}mxMedianHybridCrossingReduction.prototype=new mxHierarchicalLayoutStage;mxMedianHybridCrossingReduction.prototype.constructor=mxMedianHybridCrossingReduction;mxMedianHybridCrossingReduction.prototype.layout=null;mxMedianHybridCrossingReduction.prototype.maxIterations=24;
860mxMedianHybridCrossingReduction.prototype.nestedBestRanks=null;mxMedianHybridCrossingReduction.prototype.currentBestCrossings=0;mxMedianHybridCrossingReduction.prototype.iterationsWithoutImprovement=0;mxMedianHybridCrossingReduction.prototype.maxNoImprovementIterations=2;
861mxMedianHybridCrossingReduction.prototype.execute=function(a){a=this.layout.getModel();this.nestedBestRanks=[];for(var b=0;b<a.ranks.length;b++)this.nestedBestRanks[b]=a.ranks[b].slice();for(var c=0,d=this.calculateCrossings(a),b=0;b<this.maxIterations&&c<this.maxNoImprovementIterations;b++){this.weightedMedian(b,a);this.transpose(b,a);var e=this.calculateCrossings(a);if(e<d)for(d=e,e=c=0;e<this.nestedBestRanks.length;e++)for(var f=a.ranks[e],g=0;g<f.length;g++){var k=f[g];this.nestedBestRanks[e][k.getGeneralPurposeVariable(e)]=
862k}else for(c++,e=0;e<this.nestedBestRanks.length;e++)for(f=a.ranks[e],g=0;g<f.length;g++)k=f[g],k.setGeneralPurposeVariable(e,g);if(0==d)break}c=[];d=[];for(b=0;b<a.maxRank+1;b++)d[b]=[],c[b]=d[b];for(b=0;b<this.nestedBestRanks.length;b++)for(e=0;e<this.nestedBestRanks[b].length;e++)d[b].push(this.nestedBestRanks[b][e]);a.ranks=c};mxMedianHybridCrossingReduction.prototype.calculateCrossings=function(a){for(var b=a.ranks.length,c=0,d=1;d<b;d++)c+=this.calculateRankCrossing(d,a);return c};
863mxMedianHybridCrossingReduction.prototype.calculateRankCrossing=function(a,b){for(var c=0,d=b.ranks[a],e=b.ranks[a-1],f=[],g=0;g<d.length;g++){for(var k=d[g],l=k.getGeneralPurposeVariable(a),k=k.getPreviousLayerConnectedCells(a),m=[],n=0;n<k.length;n++){var p=k[n].getGeneralPurposeVariable(a-1);m.push(p)}m.sort(function(a,b){return a-b});f[l]=m}d=[];for(g=0;g<f.length;g++)d=d.concat(f[g]);for(f=1;f<e.length;)f<<=1;l=2*f-1;--f;e=[];for(g=0;g<l;++g)e[g]=0;for(g=0;g<d.length;g++)for(l=d[g]+f,++e[l];0<
864l;)l%2&&(c+=e[l+1]),l=l-1>>1,++e[l];return c};
865mxMedianHybridCrossingReduction.prototype.transpose=function(a,b){for(var c=!0,d=0;c&&10>d++;)for(var e=1==a%2&&1==d%2,c=!1,f=0;f<b.ranks.length;f++){for(var g=b.ranks[f],k=[],l=0;l<g.length;l++){var m=g[l],n=m.getGeneralPurposeVariable(f);0>n&&(n=l);k[n]=m}for(var p=null,q=null,r,t,u=null,x=null,y,B=null,l=0;l<g.length-1;l++){if(0==l){y=k[l];m=y.getNextLayerConnectedCells(f);n=y.getPreviousLayerConnectedCells(f);r=[];t=[];for(var A=0;A<m.length;A++)r[A]=m[A].getGeneralPurposeVariable(f+1);for(A=
8660;A<n.length;A++)t[A]=n[A].getGeneralPurposeVariable(f-1)}else m=p,n=q,r=u,t=x,y=B;B=k[l+1];p=B.getNextLayerConnectedCells(f);q=B.getPreviousLayerConnectedCells(f);u=[];x=[];for(A=0;A<p.length;A++)u[A]=p[A].getGeneralPurposeVariable(f+1);for(A=0;A<q.length;A++)x[A]=q[A].getGeneralPurposeVariable(f-1);for(var z=0,C=0,A=0;A<r.length;A++)for(var v=0;v<u.length;v++)r[A]>u[v]&&z++,r[A]<u[v]&&C++;for(A=0;A<t.length;A++)for(v=0;v<x.length;v++)t[A]>x[v]&&z++,t[A]<x[v]&&C++;if(C<z||C==z&&e)p=y.getGeneralPurposeVariable(f),
867y.setGeneralPurposeVariable(f,B.getGeneralPurposeVariable(f)),B.setGeneralPurposeVariable(f,p),p=m,q=n,u=r,x=t,B=y,e||(c=!0)}}};mxMedianHybridCrossingReduction.prototype.weightedMedian=function(a,b){var c=0==a%2;if(c)for(var d=b.maxRank-1;0<=d;d--)this.medianRank(d,c);else for(d=1;d<b.maxRank;d++)this.medianRank(d,c)};
868mxMedianHybridCrossingReduction.prototype.medianRank=function(a,b){for(var c=this.nestedBestRanks[a].length,d=[],e=[],f=0;f<c;f++){var g=this.nestedBestRanks[a][f],k=new MedianCellSorter;k.cell=g;var l;l=b?g.getNextLayerConnectedCells(a):g.getPreviousLayerConnectedCells(a);var m;m=b?a+1:a-1;null!=l&&0!=l.length?(k.medianValue=this.medianValue(l,m),d.push(k)):e[g.getGeneralPurposeVariable(a)]=!0}d.sort(MedianCellSorter.prototype.compare);for(f=0;f<c;f++)null==e[f]&&(g=d.shift().cell,g.setGeneralPurposeVariable(a,
869f))};mxMedianHybridCrossingReduction.prototype.medianValue=function(a,b){for(var c=[],d=0,e=0;e<a.length;e++){var f=a[e];c[d++]=f.getGeneralPurposeVariable(b)}c.sort(function(a,b){return a-b});if(1==d%2)return c[Math.floor(d/2)];if(2==d)return(c[0]+c[1])/2;e=d/2;f=c[e-1]-c[0];d=c[d-1]-c[e];return(c[e-1]*d+c[e]*f)/(f+d)};function MedianCellSorter(){}MedianCellSorter.prototype.medianValue=0;MedianCellSorter.prototype.cell=!1;
870MedianCellSorter.prototype.compare=function(a,b){return null!=a&&null!=b?b.medianValue>a.medianValue?-1:b.medianValue<a.medianValue?1:0:0};function mxMinimumCycleRemover(a){this.layout=a}mxMinimumCycleRemover.prototype=new mxHierarchicalLayoutStage;mxMinimumCycleRemover.prototype.constructor=mxMinimumCycleRemover;mxMinimumCycleRemover.prototype.layout=null;
871mxMinimumCycleRemover.prototype.execute=function(a){a=this.layout.getModel();for(var b={},c=a.vertexMapper.getValues(),d={},e=0;e<c.length;e++)d[c[e].id]=c[e];c=null;if(null!=a.roots)for(var f=a.roots,c=[],e=0;e<f.length;e++)c[e]=a.vertexMapper.get(f[e]);a.visit(function(a,c,e,f,n){c.isAncestor(a)&&(e.invert(),mxUtils.remove(e,a.connectsAsSource),a.connectsAsTarget.push(e),mxUtils.remove(e,c.connectsAsTarget),c.connectsAsSource.push(e));b[c.id]=c;delete d[c.id]},c,!0,null);e=mxUtils.clone(b,null,
872!0);a.visit(function(a,c,e,f,n){c.isAncestor(a)&&(e.invert(),mxUtils.remove(e,a.connectsAsSource),c.connectsAsSource.push(e),a.connectsAsTarget.push(e),mxUtils.remove(e,c.connectsAsTarget));b[c.id]=c;delete d[c.id]},d,!0,e)};function mxCoordinateAssignment(a,b,c,d,e,f){this.layout=a;this.intraCellSpacing=b;this.interRankCellSpacing=c;this.orientation=d;this.initialX=e;this.parallelEdgeSpacing=f}mxCoordinateAssignment.prototype=new mxHierarchicalLayoutStage;
873mxCoordinateAssignment.prototype.constructor=mxCoordinateAssignment;mxCoordinateAssignment.prototype.layout=null;mxCoordinateAssignment.prototype.intraCellSpacing=30;mxCoordinateAssignment.prototype.interRankCellSpacing=100;mxCoordinateAssignment.prototype.parallelEdgeSpacing=10;mxCoordinateAssignment.prototype.maxIterations=8;mxCoordinateAssignment.prototype.prefHozEdgeSep=5;mxCoordinateAssignment.prototype.prefVertEdgeOff=2;mxCoordinateAssignment.prototype.minEdgeJetty=12;
874mxCoordinateAssignment.prototype.channelBuffer=4;mxCoordinateAssignment.prototype.jettyPositions=null;mxCoordinateAssignment.prototype.orientation=mxConstants.DIRECTION_NORTH;mxCoordinateAssignment.prototype.initialX=null;mxCoordinateAssignment.prototype.limitX=null;mxCoordinateAssignment.prototype.currentXDelta=null;mxCoordinateAssignment.prototype.widestRank=null;mxCoordinateAssignment.prototype.rankTopY=null;mxCoordinateAssignment.prototype.rankBottomY=null;
875mxCoordinateAssignment.prototype.widestRankValue=null;mxCoordinateAssignment.prototype.rankWidths=null;mxCoordinateAssignment.prototype.rankY=null;mxCoordinateAssignment.prototype.fineTuning=!0;mxCoordinateAssignment.prototype.nextLayerConnectedCache=null;mxCoordinateAssignment.prototype.previousLayerConnectedCache=null;mxCoordinateAssignment.prototype.groupPadding=10;
876mxCoordinateAssignment.prototype.printStatus=function(){var a=this.layout.getModel();mxLog.show();mxLog.writeln("======Coord assignment debug=======");for(var b=0;b<a.ranks.length;b++){mxLog.write("Rank ",b," : ");for(var c=a.ranks[b],d=0;d<c.length;d++)mxLog.write(c[d].getGeneralPurposeVariable(b),"  ");mxLog.writeln()}mxLog.writeln("====================================")};
877mxCoordinateAssignment.prototype.execute=function(a){this.jettyPositions={};a=this.layout.getModel();this.currentXDelta=0;this.initialCoords(this.layout.getGraph(),a);this.fineTuning&&this.minNode(a);var b=1E8;if(this.fineTuning)for(var c=0;c<this.maxIterations;c++){0!=c&&(this.medianPos(c,a),this.minNode(a));if(this.currentXDelta<b){for(var d=0;d<a.ranks.length;d++)for(var e=a.ranks[d],f=0;f<e.length;f++){var g=e[f];g.setX(d,g.getGeneralPurposeVariable(d))}b=this.currentXDelta}else for(d=0;d<a.ranks.length;d++)for(e=
878a.ranks[d],f=0;f<e.length;f++)g=e[f],g.setGeneralPurposeVariable(d,g.getX(d));this.minPath(this.layout.getGraph(),a);this.currentXDelta=0}this.setCellLocations(this.layout.getGraph(),a)};
879mxCoordinateAssignment.prototype.minNode=function(a){for(var b=[],c=new mxDictionary,d=[],e=0;e<=a.maxRank;e++){d[e]=a.ranks[e];for(var f=0;f<d[e].length;f++){var g=d[e][f],k=new WeightedCellSorter(g,e);k.rankIndex=f;k.visited=!0;b.push(k);c.put(g,k)}}a=10*b.length;for(f=0;0<b.length&&f<=a;){var g=b.shift(),e=g.cell,l=g.weightedValue,m=parseInt(g.rankIndex),k=e.getNextLayerConnectedCells(l),n=e.getPreviousLayerConnectedCells(l),p=k.length,q=n.length,r=this.medianXValue(k,l+1),t=this.medianXValue(n,
880l-1),u=p+q,x=e.getGeneralPurposeVariable(l),y=x;0<u&&(y=(r*p+t*q)/u);p=!1;y<x-1?0==m?(e.setGeneralPurposeVariable(l,y),p=!0):(m=d[l][m-1],x=m.getGeneralPurposeVariable(l),x=x+m.width/2+this.intraCellSpacing+e.width/2,x<y?(e.setGeneralPurposeVariable(l,y),p=!0):x<e.getGeneralPurposeVariable(l)-1&&(e.setGeneralPurposeVariable(l,x),p=!0)):y>x+1&&(m==d[l].length-1?(e.setGeneralPurposeVariable(l,y),p=!0):(m=d[l][m+1],x=m.getGeneralPurposeVariable(l),x=x-m.width/2-this.intraCellSpacing-e.width/2,x>y?(e.setGeneralPurposeVariable(l,
881y),p=!0):x>e.getGeneralPurposeVariable(l)+1&&(e.setGeneralPurposeVariable(l,x),p=!0)));if(p){for(e=0;e<k.length;e++)l=k[e],l=c.get(l),null!=l&&0==l.visited&&(l.visited=!0,b.push(l));for(e=0;e<n.length;e++)l=n[e],l=c.get(l),null!=l&&0==l.visited&&(l.visited=!0,b.push(l))}g.visited=!1;f++}};mxCoordinateAssignment.prototype.medianPos=function(a,b){if(0==a%2)for(var c=b.maxRank;0<c;c--)this.rankMedianPosition(c-1,b,c);else for(c=0;c<b.maxRank-1;c++)this.rankMedianPosition(c+1,b,c)};
882mxCoordinateAssignment.prototype.rankMedianPosition=function(a,b,c){b=b.ranks[a];for(var d=[],e={},f=0;f<b.length;f++){var g=b[f];d[f]=new WeightedCellSorter;d[f].cell=g;d[f].rankIndex=f;e[g.id]=d[f];var k;k=c<a?g.getPreviousLayerConnectedCells(a):g.getNextLayerConnectedCells(a);d[f].weightedValue=this.calculatedWeightedValue(g,k)}d.sort(WeightedCellSorter.prototype.compare);for(f=0;f<d.length;f++){var l,g=d[f].cell;l=0;k=c<a?g.getPreviousLayerConnectedCells(a).slice():g.getNextLayerConnectedCells(a).slice();
883null!=k&&(l=k.length,l=0<l?this.medianXValue(k,c):g.getGeneralPurposeVariable(a));var m=0;k=-1E8;for(var n=d[f].rankIndex-1;0<=n;){var p=e[b[n].id];if(null!=p){var q=p.cell;p.visited?(k=q.getGeneralPurposeVariable(a)+q.width/2+this.intraCellSpacing+m+g.width/2,n=-1):(m+=q.width+this.intraCellSpacing,n--)}}m=0;q=1E8;for(n=d[f].rankIndex+1;n<d.length;)if(p=e[b[n].id],null!=p){var r=p.cell;p.visited?(q=r.getGeneralPurposeVariable(a)-r.width/2-this.intraCellSpacing-m-g.width/2,n=d.length):(m+=r.width+
884this.intraCellSpacing,n++)}l>=k&&l<=q?g.setGeneralPurposeVariable(a,l):l<k?(g.setGeneralPurposeVariable(a,k),this.currentXDelta+=k-l):l>q&&(g.setGeneralPurposeVariable(a,q),this.currentXDelta+=l-q);d[f].visited=!0}};mxCoordinateAssignment.prototype.calculatedWeightedValue=function(a,b){for(var c=0,d=0;d<b.length;d++){var e=b[d];a.isVertex()&&e.isVertex()?c++:c=a.isEdge()&&e.isEdge()?c+8:c+2}return c};
885mxCoordinateAssignment.prototype.medianXValue=function(a,b){if(0==a.length)return 0;for(var c=[],d=0;d<a.length;d++)c[d]=a[d].getGeneralPurposeVariable(b);c.sort(function(a,b){return a-b});if(1==a.length%2)return c[Math.floor(a.length/2)];d=a.length/2;return(c[d-1]+c[d])/2};
886mxCoordinateAssignment.prototype.initialCoords=function(a,b){this.calculateWidestRank(a,b);for(var c=this.widestRank;0<=c;c--)c<b.maxRank&&this.rankCoordinates(c,a,b);for(c=this.widestRank+1;c<=b.maxRank;c++)0<c&&this.rankCoordinates(c,a,b)};
887mxCoordinateAssignment.prototype.rankCoordinates=function(a,b,c){b=c.ranks[a];c=this.initialX+(this.widestRankValue-this.rankWidths[a])/2;for(var d=!1,e=0;e<b.length;e++){var f=b[e];if(f.isVertex()){var g=this.layout.getVertexBounds(f.cell);null!=g?this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(f.width=g.width,f.height=g.height):(f.width=g.height,f.height=g.width):d=!0}else f.isEdge()&&(g=1,null!=f.edges?g=f.edges.length:mxLog.warn("edge.edges is null"),
888f.width=(g-1)*this.parallelEdgeSpacing);c+=f.width/2;f.setX(a,c);f.setGeneralPurposeVariable(a,c);c+=f.width/2;c+=this.intraCellSpacing}1==d&&mxLog.warn("At least one cell has no bounds")};
889mxCoordinateAssignment.prototype.calculateWidestRank=function(a,b){var c=-this.interRankCellSpacing,d=0;this.rankWidths=[];this.rankY=[];for(var e=b.maxRank;0<=e;e--){for(var f=0,g=b.ranks[e],k=this.initialX,l=!1,m=0;m<g.length;m++){var n=g[m];if(n.isVertex()){var p=this.layout.getVertexBounds(n.cell);null!=p?this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(n.width=p.width,n.height=p.height):(n.width=p.height,n.height=p.width):l=!0;f=Math.max(f,n.height)}else n.isEdge()&&
890(p=1,null!=n.edges?p=n.edges.length:mxLog.warn("edge.edges is null"),n.width=(p-1)*this.parallelEdgeSpacing);k+=n.width/2;n.setX(e,k);n.setGeneralPurposeVariable(e,k);k+=n.width/2;k+=this.intraCellSpacing;k>this.widestRankValue&&(this.widestRankValue=k,this.widestRank=e);this.rankWidths[e]=k}1==l&&mxLog.warn("At least one cell has no bounds");this.rankY[e]=c;k=f/2+d/2+this.interRankCellSpacing;d=f;c=this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_WEST?c+k:c-
891k;for(m=0;m<g.length;m++)g[m].setY(e,c)}};
892mxCoordinateAssignment.prototype.minPath=function(a,b){for(var c=b.edgeMapper.getValues(),d=0;d<c.length;d++){var e=c[d];if(!(1>e.maxRank-e.minRank-1)){for(var f=e.getGeneralPurposeVariable(e.minRank+1),g=!0,k=0,l=e.minRank+2;l<e.maxRank;l++){var m=e.getGeneralPurposeVariable(l);f!=m?(g=!1,f=m):k++}if(!g){for(var g=f=0,m=[],n=[],p=e.getGeneralPurposeVariable(e.minRank+1),l=e.minRank+1;l<e.maxRank-1;l++){var q=e.getX(l+1);p==q?(m[l-e.minRank-1]=p,f++):this.repositionValid(b,e,l+1,p)?(m[l-e.minRank-
8931]=p,f++):p=m[l-e.minRank-1]=q}p=e.getX(l);for(l=e.maxRank-1;l>e.minRank+1;l--)q=e.getX(l-1),p==q?(n[l-e.minRank-2]=p,g++):this.repositionValid(b,e,l-1,p)?(n[l-e.minRank-2]=p,g++):(n[l-e.minRank-2]=e.getX(l-1),p=q);if(g>k||f>k)if(g>=f)for(l=e.maxRank-2;l>e.minRank;l--)e.setX(l,n[l-e.minRank-1]);else if(f>g)for(l=e.minRank+2;l<e.maxRank;l++)e.setX(l,m[l-e.minRank-2])}}}};
894mxCoordinateAssignment.prototype.repositionValid=function(a,b,c,d){a=a.ranks[c];for(var e=-1,f=0;f<a.length;f++)if(b==a[f]){e=f;break}if(0>e)return!1;f=b.getGeneralPurposeVariable(c);if(d<f){if(0==e)return!0;a=a[e-1];c=a.getGeneralPurposeVariable(c);c=c+a.width/2+this.intraCellSpacing+b.width/2;if(!(c<=d))return!1}else if(d>f){if(e==a.length-1)return!0;a=a[e+1];c=a.getGeneralPurposeVariable(c);c=c-a.width/2-this.intraCellSpacing-b.width/2;if(!(c>=d))return!1}return!0};
895mxCoordinateAssignment.prototype.setCellLocations=function(a,b){this.rankTopY=[];this.rankBottomY=[];for(var c=0;c<b.ranks.length;c++)this.rankTopY[c]=Number.MAX_VALUE,this.rankBottomY[c]=-Number.MAX_VALUE;for(var d=b.vertexMapper.getValues(),c=0;c<d.length;c++)this.setVertexLocation(d[c]);this.layout.edgeStyle!=mxHierarchicalEdgeStyle.ORTHOGONAL&&this.layout.edgeStyle!=mxHierarchicalEdgeStyle.POLYLINE&&this.layout.edgeStyle!=mxHierarchicalEdgeStyle.CURVE||this.localEdgeProcessing(b);d=b.edgeMapper.getValues();
896for(c=0;c<d.length;c++)this.setEdgePosition(d[c])};
897mxCoordinateAssignment.prototype.localEdgeProcessing=function(a){for(var b=0;b<a.ranks.length;b++)for(var c=a.ranks[b],d=0;d<c.length;d++){var e=c[d];if(e.isVertex())for(var f=e.getPreviousLayerConnectedCells(b),g=b-1,k=0;2>k;k++){if(-1<g&&g<a.ranks.length&&null!=f&&0<f.length){for(var l=[],m=0;m<f.length;m++){var n=new WeightedCellSorter(f[m],f[m].getX(g));l.push(n)}l.sort(WeightedCellSorter.prototype.compare);for(var n=e.x[0]-e.width/2,p=n+e.width,q=f=0,g=[],m=0;m<l.length;m++){var r=l[m].cell,
898t;if(r.isVertex()){t=0==k?e.connectsAsSource:e.connectsAsTarget;for(var u=0;u<t.length;u++)if(t[u].source==r||t[u].target==r)f+=t[u].edges.length,q++,g.push(t[u])}else f+=r.edges.length,q++,g.push(r)}e.width>(f+1)*this.prefHozEdgeSep+2*this.prefHozEdgeSep&&(n+=this.prefHozEdgeSep,p-=this.prefHozEdgeSep);l=(p-n)/f;n+=l/2;p=this.minEdgeJetty-this.prefVertEdgeOff;for(m=0;m<g.length;m++)for(q=g[m].edges.length,r=this.jettyPositions[g[m].ids[0]],null==r&&(r=[],this.jettyPositions[g[m].ids[0]]=r),m<f/2?
899p+=this.prefVertEdgeOff:m>f/2&&(p-=this.prefVertEdgeOff),t=0;t<q;t++)r[4*t+2*k]=n,n+=l,r[4*t+2*k+1]=p}f=e.getNextLayerConnectedCells(b);g=b+1}}};
900mxCoordinateAssignment.prototype.setEdgePosition=function(a){var b=0;if(101207!=a.temp[0]){var c=a.maxRank,d=a.minRank;c==d&&(c=a.source.maxRank,d=a.target.minRank);for(var e=0,f=this.jettyPositions[a.ids[0]],g=a.isReversed?a.target.cell:a.source.cell,k=this.layout.graph,l=this.orientation==mxConstants.DIRECTION_EAST||this.orientation==mxConstants.DIRECTION_SOUTH,m=0;m<a.edges.length;m++){var n=a.edges[m],p=this.layout.getVisibleTerminal(n,!0),q=[],r=a.isReversed;p!=g&&(r=!r);if(null!=f){var t=r?
9012:0,u=r?l?this.rankBottomY[d]:this.rankTopY[d]:l?this.rankTopY[c]:this.rankBottomY[c],x=f[4*e+1+t];r!=l&&(x=-x);var u=u+x,t=f[4*e+t],y=k.model.getTerminal(n,!0);this.layout.isPort(y)&&k.model.getParent(y)==p&&(t=k.view.getState(y),t=null!=t?t.x:p.geometry.x+a.source.width*y.geometry.x);this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(q.push(new mxPoint(t,u)),this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&q.push(new mxPoint(t,u+x))):(q.push(new mxPoint(u,
902t)),this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&q.push(new mxPoint(u+x,t)))}t=a.x.length-1;u=x=-1;p=a.maxRank-1;for(r&&(t=0,x=a.x.length,u=1,p=a.minRank+1);a.maxRank!=a.minRank&&t!=x;t+=u){var y=a.x[t]+b,B=(this.rankTopY[p]+this.rankBottomY[p+1])/2,A=(this.rankTopY[p-1]+this.rankBottomY[p])/2;if(r)var z=B,B=A,A=z;this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(q.push(new mxPoint(y,B)),q.push(new mxPoint(y,A))):(q.push(new mxPoint(B,y)),q.push(new mxPoint(A,
903y)));this.limitX=Math.max(this.limitX,y);p+=u}null!=f&&(t=r?2:0,u=r?l?this.rankTopY[c]:this.rankBottomY[c]:l?this.rankBottomY[d]:this.rankTopY[d],x=f[4*e+3-t],r!=l&&(x=-x),u-=x,t=f[4*e+2-t],r=k.model.getTerminal(n,!1),p=this.layout.getVisibleTerminal(n,!1),this.layout.isPort(r)&&k.model.getParent(r)==p&&(t=k.view.getState(r),t=null!=t?t.x:p.geometry.x+a.target.width*r.geometry.x),this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&
904q.push(new mxPoint(t,u-x)),q.push(new mxPoint(t,u))):(this.layout.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&q.push(new mxPoint(u-x,t)),q.push(new mxPoint(u,t))));a.isReversed&&this.processReversedEdge(a,n);this.layout.setEdgePoints(n,q);b=0==b?this.parallelEdgeSpacing:0<b?-b:-b+this.parallelEdgeSpacing;e++}a.temp[0]=101207}};
905mxCoordinateAssignment.prototype.setVertexLocation=function(a){var b=a.cell,c=a.x[0]-a.width/2,d=a.y[0]-a.height/2;this.rankTopY[a.minRank]=Math.min(this.rankTopY[a.minRank],d);this.rankBottomY[a.minRank]=Math.max(this.rankBottomY[a.minRank],d+a.height);this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?this.layout.setVertexLocation(b,c,d):this.layout.setVertexLocation(b,d,c);this.limitX=Math.max(this.limitX,c+a.width)};
906mxCoordinateAssignment.prototype.processReversedEdge=function(a,b){};function mxSwimlaneOrdering(a){this.layout=a}mxSwimlaneOrdering.prototype=new mxHierarchicalLayoutStage;mxSwimlaneOrdering.prototype.constructor=mxSwimlaneOrdering;mxSwimlaneOrdering.prototype.layout=null;
907mxSwimlaneOrdering.prototype.execute=function(a){a=this.layout.getModel();var b=mxUtils.clone(a.vertexMapper,null,!0),c=null;if(null!=a.roots)for(var d=a.roots,c=[],e=0;e<d.length;e++)c[e]=a.vertexMapper.get(d[e]);a.visit(function(a,c,d,e,m){e=null!=a&&a.swimlaneIndex==c.swimlaneIndex&&c.isAncestor(a);m=null!=a&&null!=d&&a.swimlaneIndex<c.swimlaneIndex&&d.source==c;e?(d.invert(),mxUtils.remove(d,a.connectsAsSource),c.connectsAsSource.push(d),a.connectsAsTarget.push(d),mxUtils.remove(d,c.connectsAsTarget)):
908m&&(d.invert(),mxUtils.remove(d,a.connectsAsTarget),c.connectsAsTarget.push(d),a.connectsAsSource.push(d),mxUtils.remove(d,c.connectsAsSource));a=mxCellPath.create(c.cell);delete b[a]},c,!0,null)};function mxHierarchicalLayout(a,b,c){mxGraphLayout.call(this,a);this.orientation=null!=b?b:mxConstants.DIRECTION_NORTH;this.deterministic=null!=c?c:!0}var mxHierarchicalEdgeStyle={ORTHOGONAL:1,POLYLINE:2,STRAIGHT:3,CURVE:4};mxHierarchicalLayout.prototype=new mxGraphLayout;
909mxHierarchicalLayout.prototype.constructor=mxHierarchicalLayout;mxHierarchicalLayout.prototype.roots=null;mxHierarchicalLayout.prototype.resizeParent=!1;mxHierarchicalLayout.prototype.maintainParentLocation=!1;mxHierarchicalLayout.prototype.moveParent=!1;mxHierarchicalLayout.prototype.parentBorder=0;mxHierarchicalLayout.prototype.intraCellSpacing=30;mxHierarchicalLayout.prototype.interRankCellSpacing=100;mxHierarchicalLayout.prototype.interHierarchySpacing=60;
910mxHierarchicalLayout.prototype.parallelEdgeSpacing=10;mxHierarchicalLayout.prototype.orientation=mxConstants.DIRECTION_NORTH;mxHierarchicalLayout.prototype.fineTuning=!0;mxHierarchicalLayout.prototype.tightenToSource=!0;mxHierarchicalLayout.prototype.disableEdgeStyle=!0;mxHierarchicalLayout.prototype.traverseAncestors=!0;mxHierarchicalLayout.prototype.model=null;mxHierarchicalLayout.prototype.edgesCache=null;mxHierarchicalLayout.prototype.edgeSourceTermCache=null;
911mxHierarchicalLayout.prototype.edgesTargetTermCache=null;mxHierarchicalLayout.prototype.edgeStyle=mxHierarchicalEdgeStyle.POLYLINE;mxHierarchicalLayout.prototype.getModel=function(){return this.model};
912mxHierarchicalLayout.prototype.execute=function(a,b){this.parent=a;var c=this.graph.model;this.edgesCache=new mxDictionary;this.edgeSourceTermCache=new mxDictionary;this.edgesTargetTermCache=new mxDictionary;null==b||b instanceof Array||(b=[b]);if(null!=b||null!=a){this.parentY=this.parentX=null;if(a!=this.root&&null!=c.isVertex(a)&&this.maintainParentLocation){var d=this.graph.getCellGeometry(a);null!=d&&(this.parentX=d.x,this.parentY=d.y)}if(null!=b){for(var e=[],f=0;f<b.length;f++)(null!=a?c.isAncestor(a,
913b[f]):1)&&c.isVertex(b[f])&&e.push(b[f]);this.roots=e}c.beginUpdate();try{this.run(a),this.resizeParent&&!this.graph.isCellCollapsed(a)&&this.graph.updateGroupBounds([a],this.parentBorder,this.moveParent),null!=this.parentX&&null!=this.parentY&&(d=this.graph.getCellGeometry(a),null!=d&&(d=d.clone(),d.x=this.parentX,d.y=this.parentY,c.setGeometry(a,d)))}finally{c.endUpdate()}}};
914mxHierarchicalLayout.prototype.findRoots=function(a,b){var c=[];if(null!=a&&null!=b){var d=this.graph.model,e=null,f=-1E5,g;for(g in b){var k=b[g];if(d.isVertex(k)&&this.graph.isCellVisible(k)){for(var l=this.getEdges(k),m=0,n=0,p=0;p<l.length;p++)this.getVisibleTerminal(l[p],!0)==k?m++:n++;0==n&&0<m&&c.push(k);l=m-n;l>f&&(f=l,e=k)}}0==c.length&&null!=e&&c.push(e)}return c};
915mxHierarchicalLayout.prototype.getEdges=function(a){var b=this.edgesCache.get(a);if(null!=b)return b;for(var c=this.graph.model,b=[],d=this.graph.isCellCollapsed(a),e=c.getChildCount(a),f=0;f<e;f++){var g=c.getChildAt(a,f);if(this.isPort(g))b=b.concat(c.getEdges(g,!0,!0));else if(d||!this.graph.isCellVisible(g))b=b.concat(c.getEdges(g,!0,!0))}b=b.concat(c.getEdges(a,!0,!0));c=[];for(f=0;f<b.length;f++)d=this.getVisibleTerminal(b[f],!0),e=this.getVisibleTerminal(b[f],!1),(d==e||d!=e&&(e==a&&(null==
916this.parent||this.isAncestor(this.parent,d,this.traverseAncestors))||d==a&&(null==this.parent||this.isAncestor(this.parent,e,this.traverseAncestors))))&&c.push(b[f]);this.edgesCache.put(a,c);return c};
917mxHierarchicalLayout.prototype.getVisibleTerminal=function(a,b){var c=this.edgesTargetTermCache;b&&(c=this.edgeSourceTermCache);var d=c.get(a);if(null!=d)return d;var d=this.graph.view.getState(a),e=null!=d?d.getVisibleTerminal(b):this.graph.view.getVisibleTerminal(a,b);null==e&&(e=null!=d?d.getVisibleTerminal(b):this.graph.view.getVisibleTerminal(a,b));null!=e&&(this.isPort(e)&&(e=this.graph.model.getParent(e)),c.put(a,e));return e};
918mxHierarchicalLayout.prototype.run=function(a){var b=[],c=[];if(null==this.roots&&null!=a){var d={};this.filterDescendants(a,d);this.roots=[];var e=!0,f;for(f in d)if(null!=d[f]){e=!1;break}for(;!e;){for(var g=this.findRoots(a,d),e=0;e<g.length;e++){var k={};b.push(k);this.traverse(g[e],!0,null,c,k,b,d)}for(e=0;e<g.length;e++)this.roots.push(g[e]);e=!0;for(f in d)if(null!=d[f]){e=!1;break}}}else for(e=0;e<this.roots.length;e++)k={},b.push(k),this.traverse(this.roots[e],!0,null,c,k,b,null);for(e=c=
9190;e<b.length;e++){k=b[e];d=[];for(f in k)d.push(k[f]);this.model=new mxGraphHierarchyModel(this,d,this.roots,a,this.tightenToSource);this.cycleStage(a);this.layeringStage();this.crossingStage(a);c=this.placementStage(c,a)}};
920mxHierarchicalLayout.prototype.filterDescendants=function(a,b){var c=this.graph.model;c.isVertex(a)&&a!=this.parent&&this.graph.isCellVisible(a)&&(b[mxObjectIdentity.get(a)]=a);if(this.traverseAncestors||a==this.parent&&this.graph.isCellVisible(a))for(var d=c.getChildCount(a),e=0;e<d;e++){var f=c.getChildAt(a,e);this.isPort(f)||this.filterDescendants(f,b)}};mxHierarchicalLayout.prototype.isPort=function(a){return null!=a&&null!=a.geometry?a.geometry.relative:!1};
921mxHierarchicalLayout.prototype.getEdgesBetween=function(a,b,c){c=null!=c?c:!1;for(var d=this.getEdges(a),e=[],f=0;f<d.length;f++){var g=this.getVisibleTerminal(d[f],!0),k=this.getVisibleTerminal(d[f],!1);(g==a&&k==b||!c&&g==b&&k==a)&&e.push(d[f])}return e};
922mxHierarchicalLayout.prototype.traverse=function(a,b,c,d,e,f,g){if(null!=a&&null!=d){var k=mxObjectIdentity.get(a);if(null==d[k]&&(null==g||null!=g[k])){null==e[k]&&(e[k]=a);null==d[k]&&(d[k]=a);null!==g&&delete g[k];var l=this.getEdges(a),k=[];for(c=0;c<l.length;c++)k[c]=this.getVisibleTerminal(l[c],!0)==a;for(c=0;c<l.length;c++)if(!b||k[c]){a=this.getVisibleTerminal(l[c],!k[c]);for(var m=1,n=0;n<l.length;n++)if(n!=c){var p=k[n];this.getVisibleTerminal(l[n],!p)==a&&(p?m++:m--)}0<=m&&(e=this.traverse(a,
923b,l[c],d,e,f,g))}}else if(null==e[k])for(c=0;c<f.length;c++)if(b=f[c],null!=b[k]){for(l in b)e[l]=b[l];f.splice(c,1);break}}return e};mxHierarchicalLayout.prototype.cycleStage=function(a){(new mxMinimumCycleRemover(this)).execute(a)};mxHierarchicalLayout.prototype.layeringStage=function(){this.model.initialRank();this.model.fixRanks()};mxHierarchicalLayout.prototype.crossingStage=function(a){(new mxMedianHybridCrossingReduction(this)).execute(a)};
924mxHierarchicalLayout.prototype.placementStage=function(a,b){var c=new mxCoordinateAssignment(this,this.intraCellSpacing,this.interRankCellSpacing,this.orientation,a,this.parallelEdgeSpacing);c.fineTuning=this.fineTuning;c.execute(b);return c.limitX+this.interHierarchySpacing};function mxSwimlaneLayout(a,b,c){mxGraphLayout.call(this,a);this.orientation=null!=b?b:mxConstants.DIRECTION_NORTH;this.deterministic=null!=c?c:!0}mxSwimlaneLayout.prototype=new mxGraphLayout;
925mxSwimlaneLayout.prototype.constructor=mxSwimlaneLayout;mxSwimlaneLayout.prototype.roots=null;mxSwimlaneLayout.prototype.swimlanes=null;mxSwimlaneLayout.prototype.dummyVertexWidth=50;mxSwimlaneLayout.prototype.resizeParent=!1;mxSwimlaneLayout.prototype.maintainParentLocation=!1;mxSwimlaneLayout.prototype.moveParent=!1;mxSwimlaneLayout.prototype.parentBorder=30;mxSwimlaneLayout.prototype.intraCellSpacing=30;mxSwimlaneLayout.prototype.interRankCellSpacing=100;
926mxSwimlaneLayout.prototype.interHierarchySpacing=60;mxSwimlaneLayout.prototype.parallelEdgeSpacing=10;mxSwimlaneLayout.prototype.orientation=mxConstants.DIRECTION_NORTH;mxSwimlaneLayout.prototype.fineTuning=!0;mxSwimlaneLayout.prototype.tightenToSource=!0;mxSwimlaneLayout.prototype.disableEdgeStyle=!0;mxSwimlaneLayout.prototype.traverseAncestors=!0;mxSwimlaneLayout.prototype.model=null;mxSwimlaneLayout.prototype.edgesCache=null;mxHierarchicalLayout.prototype.edgeSourceTermCache=null;
927mxHierarchicalLayout.prototype.edgesTargetTermCache=null;mxHierarchicalLayout.prototype.edgeStyle=mxHierarchicalEdgeStyle.POLYLINE;mxSwimlaneLayout.prototype.getModel=function(){return this.model};
928mxSwimlaneLayout.prototype.execute=function(a,b){this.parent=a;var c=this.graph.model;this.edgesCache=new mxDictionary;this.edgeSourceTermCache=new mxDictionary;this.edgesTargetTermCache=new mxDictionary;if(!(null==b||1>b.length)){null==a&&(a=c.getParent(b[0]));this.parentY=this.parentX=null;if(a!=this.root&&null!=c.isVertex(a)&&this.maintainParentLocation){var d=this.graph.getCellGeometry(a);null!=d&&(this.parentX=d.x,this.parentY=d.y)}this.swimlanes=b;for(var e=[],f=0;f<b.length;f++){var g=this.graph.getChildCells(b[f]);
929if(null==g||0==g.length)g=this.graph.insertVertex(b[f],null,null,0,0,this.dummyVertexWidth,0),e.push(g)}c.beginUpdate();try{this.run(a),this.resizeParent&&!this.graph.isCellCollapsed(a)&&this.graph.updateGroupBounds([a],this.parentBorder,this.moveParent),null!=this.parentX&&null!=this.parentY&&(d=this.graph.getCellGeometry(a),null!=d&&(d=d.clone(),d.x=this.parentX,d.y=this.parentY,c.setGeometry(a,d))),this.graph.removeCells(e)}finally{c.endUpdate()}}};
930mxSwimlaneLayout.prototype.updateGroupBounds=function(){var a=[],b=this.model,c;for(c in b.edgeMapper)for(var d=b.edgeMapper[c],e=0;e<d.edges.length;e++)a.push(d.edges[e]);a=this.graph.getBoundingBoxFromGeometry(a,!0);b=[];for(e=0;e<this.swimlanes.length;e++){var f=this.swimlanes[e];c=this.graph.getCellGeometry(f);if(null!=c){var g=this.graph.getChildCells(f),d=this.graph.isSwimlane(f)?this.graph.getStartSize(f):new mxRectangle,f=this.graph.getBoundingBoxFromGeometry(g);b[e]=f;d=f.y+c.y-d.height-
931this.parentBorder;c=f.y+c.y+f.height;null==a?a=new mxRectangle(0,d,0,c-d):(a.y=Math.min(a.y,d),a.height=Math.max(a.y+a.height,c)-a.y)}}for(e=0;e<this.swimlanes.length;e++)if(f=this.swimlanes[e],c=this.graph.getCellGeometry(f),null!=c){var g=this.graph.getChildCells(f),d=this.graph.isSwimlane(f)?this.graph.getStartSize(f):new mxRectangle,k=c.clone(),l=d.width+(0==e?this.parentBorder:this.interRankCellSpacing/2),m=b[e].x-l,n=a.y-this.parentBorder;k.x+=m;k.y=n;k.width=b[e].width+l+this.interRankCellSpacing/
9322;k.height=a.height+d.height+2*this.parentBorder;this.graph.model.setGeometry(f,k);this.graph.moveCells(g,-m,c.y-n)}};
933mxSwimlaneLayout.prototype.findRoots=function(a,b){var c=[];if(null!=a&&null!=b){var d=this.graph.model,e=null,f=-1E5,g;for(g in b){var k=b[g];if(null!=k&&d.isVertex(k)&&this.graph.isCellVisible(k)&&d.isAncestor(a,k)){for(var l=this.getEdges(k),m=0,n=0,p=0;p<l.length;p++){var q=this.getVisibleTerminal(l[p],!0);q==k?(q=this.getVisibleTerminal(l[p],!1),d.isAncestor(a,q)&&m++):d.isAncestor(a,q)&&n++}0==n&&0<m&&c.push(k);l=m-n;l>f&&(f=l,e=k)}}0==c.length&&null!=e&&c.push(e)}return c};
934mxSwimlaneLayout.prototype.getEdges=function(a){var b=this.edgesCache.get(a);if(null!=b)return b;for(var c=this.graph.model,b=[],d=this.graph.isCellCollapsed(a),e=c.getChildCount(a),f=0;f<e;f++){var g=c.getChildAt(a,f);if(this.isPort(g))b=b.concat(c.getEdges(g,!0,!0));else if(d||!this.graph.isCellVisible(g))b=b.concat(c.getEdges(g,!0,!0))}b=b.concat(c.getEdges(a,!0,!0));c=[];for(f=0;f<b.length;f++)d=this.getVisibleTerminal(b[f],!0),e=this.getVisibleTerminal(b[f],!1),(d==e||d!=e&&(e==a&&(null==this.parent||
935this.graph.isValidAncestor(d,this.parent,this.traverseAncestors))||d==a&&(null==this.parent||this.graph.isValidAncestor(e,this.parent,this.traverseAncestors))))&&c.push(b[f]);this.edgesCache.put(a,c);return c};
936mxSwimlaneLayout.prototype.getVisibleTerminal=function(a,b){var c=this.edgesTargetTermCache;b&&(c=this.edgeSourceTermCache);var d=c.get(a);if(null!=d)return d;var d=this.graph.view.getState(a),e=null!=d?d.getVisibleTerminal(b):this.graph.view.getVisibleTerminal(a,b);null==e&&(e=null!=d?d.getVisibleTerminal(b):this.graph.view.getVisibleTerminal(a,b));null!=e&&(this.isPort(e)&&(e=this.graph.model.getParent(e)),c.put(a,e));return e};
937mxSwimlaneLayout.prototype.run=function(a){var b=[],c={};if(null!=this.swimlanes&&0<this.swimlanes.length&&null!=a){for(var d={},e=0;e<this.swimlanes.length;e++)this.filterDescendants(this.swimlanes[e],d);this.roots=[];var e=!0,f;for(f in d)if(null!=d[f]){e=!1;break}for(var g=0;!e&&g<this.swimlanes.length;){var k=this.findRoots(this.swimlanes[g],d);if(0==k.length)g++;else{for(e=0;e<k.length;e++){var l={};b.push(l);this.traverse(k[e],!0,null,c,l,b,d,g)}for(e=0;e<k.length;e++)this.roots.push(k[e]);
938e=!0;for(f in d)if(null!=d[f]){e=!1;break}}}}else for(e=0;e<this.roots.length;e++)l={},b.push(l),this.traverse(this.roots[e],!0,null,c,l,b,null);b=[];for(f in c)b.push(c[f]);this.model=new mxSwimlaneModel(this,b,this.roots,a,this.tightenToSource);this.cycleStage(a);this.layeringStage();this.crossingStage(a);this.placementStage(0,a)};
939mxSwimlaneLayout.prototype.filterDescendants=function(a,b){var c=this.graph.model;c.isVertex(a)&&a!=this.parent&&c.getParent(a)!=this.parent&&this.graph.isCellVisible(a)&&(b[mxObjectIdentity.get(a)]=a);if(this.traverseAncestors||a==this.parent&&this.graph.isCellVisible(a))for(var d=c.getChildCount(a),e=0;e<d;e++){var f=c.getChildAt(a,e);this.isPort(f)||this.filterDescendants(f,b)}};mxSwimlaneLayout.prototype.isPort=function(a){return a.geometry.relative?!0:!1};
940mxSwimlaneLayout.prototype.getEdgesBetween=function(a,b,c){c=null!=c?c:!1;for(var d=this.getEdges(a),e=[],f=0;f<d.length;f++){var g=this.getVisibleTerminal(d[f],!0),k=this.getVisibleTerminal(d[f],!1);(g==a&&k==b||!c&&g==b&&k==a)&&e.push(d[f])}return e};
941mxSwimlaneLayout.prototype.traverse=function(a,b,c,d,e,f,g,k){if(null!=a&&null!=d){var l=mxObjectIdentity.get(a);if(null==d[l]&&(null==g||null!=g[l])){null==e[l]&&(e[l]=a);null==d[l]&&(d[l]=a);null!==g&&delete g[l];var m=this.getEdges(a),l=this.graph.model;for(c=0;c<m.length;c++){var n=this.getVisibleTerminal(m[c],!0),p=n==a;p&&(n=this.getVisibleTerminal(m[c],!1));for(var q=0;q<this.swimlanes.length&&!l.isAncestor(this.swimlanes[q],n);)q++;q>=this.swimlanes.length||!(q>k||(!b||p)&&q==k)||(e=this.traverse(n,
942b,m[c],d,e,f,g,q))}}else if(null==e[l])for(c=0;c<f.length;c++)if(a=f[c],null!=a[l]){for(m in a)e[m]=a[m];f.splice(c,1);break}}return e};mxSwimlaneLayout.prototype.cycleStage=function(a){(new mxSwimlaneOrdering(this)).execute(a)};mxSwimlaneLayout.prototype.layeringStage=function(){this.model.initialRank();this.model.fixRanks()};mxSwimlaneLayout.prototype.crossingStage=function(a){(new mxMedianHybridCrossingReduction(this)).execute(a)};
943mxSwimlaneLayout.prototype.placementStage=function(a,b){var c=new mxCoordinateAssignment(this,this.intraCellSpacing,this.interRankCellSpacing,this.orientation,a,this.parallelEdgeSpacing);c.fineTuning=this.fineTuning;c.execute(b);return c.limitX+this.interHierarchySpacing};function mxGraphModel(a){this.currentEdit=this.createUndoableEdit();null!=a?this.setRoot(a):this.clear()}mxGraphModel.prototype=new mxEventSource;mxGraphModel.prototype.constructor=mxGraphModel;mxGraphModel.prototype.root=null;
944mxGraphModel.prototype.cells=null;mxGraphModel.prototype.maintainEdgeParent=!0;mxGraphModel.prototype.ignoreRelativeEdgeParent=!0;mxGraphModel.prototype.createIds=!0;mxGraphModel.prototype.prefix="";mxGraphModel.prototype.postfix="";mxGraphModel.prototype.nextId=0;mxGraphModel.prototype.currentEdit=null;mxGraphModel.prototype.updateLevel=0;mxGraphModel.prototype.endingUpdate=!1;mxGraphModel.prototype.clear=function(){this.setRoot(this.createRoot())};mxGraphModel.prototype.isCreateIds=function(){return this.createIds};
945mxGraphModel.prototype.setCreateIds=function(a){this.createIds=a};mxGraphModel.prototype.createRoot=function(){var a=new mxCell;a.insert(new mxCell);return a};mxGraphModel.prototype.getCell=function(a){return null!=this.cells?this.cells[a]:null};mxGraphModel.prototype.filterCells=function(a,b){var c=null;if(null!=a)for(var c=[],d=0;d<a.length;d++)b(a[d])&&c.push(a[d]);return c};mxGraphModel.prototype.getDescendants=function(a){return this.filterDescendants(null,a)};
946mxGraphModel.prototype.filterDescendants=function(a,b){var c=[];b=b||this.getRoot();(null==a||a(b))&&c.push(b);for(var d=this.getChildCount(b),e=0;e<d;e++)var f=this.getChildAt(b,e),c=c.concat(this.filterDescendants(a,f));return c};mxGraphModel.prototype.getRoot=function(a){var b=a||this.root;if(null!=a)for(;null!=a;)b=a,a=this.getParent(a);return b};mxGraphModel.prototype.setRoot=function(a){this.execute(new mxRootChange(this,a));return a};
947mxGraphModel.prototype.rootChanged=function(a){var b=this.root;this.root=a;this.nextId=0;this.cells=null;this.cellAdded(a);return b};mxGraphModel.prototype.isRoot=function(a){return null!=a&&this.root==a};mxGraphModel.prototype.isLayer=function(a){return this.isRoot(this.getParent(a))};mxGraphModel.prototype.isAncestor=function(a,b){for(;null!=b&&b!=a;)b=this.getParent(b);return b==a};mxGraphModel.prototype.contains=function(a){return this.isAncestor(this.root,a)};
948mxGraphModel.prototype.getParent=function(a){return null!=a?a.getParent():null};mxGraphModel.prototype.add=function(a,b,c){if(b!=a&&null!=a&&null!=b){null==c&&(c=this.getChildCount(a));var d=a!=this.getParent(b);this.execute(new mxChildChange(this,a,b,c));this.maintainEdgeParent&&d&&this.updateEdgeParents(b)}return b};
949mxGraphModel.prototype.cellAdded=function(a){if(null!=a){null==a.getId()&&this.createIds&&a.setId(this.createId(a));if(null!=a.getId()){var b=this.getCell(a.getId());if(b!=a){for(;null!=b;)a.setId(this.createId(a)),b=this.getCell(a.getId());null==this.cells&&(this.cells={});this.cells[a.getId()]=a}}mxUtils.isNumeric(a.getId())&&(this.nextId=Math.max(this.nextId,a.getId()));for(var b=this.getChildCount(a),c=0;c<b;c++)this.cellAdded(this.getChildAt(a,c))}};
950mxGraphModel.prototype.createId=function(a){a=this.nextId;this.nextId++;return this.prefix+a+this.postfix};mxGraphModel.prototype.updateEdgeParents=function(a,b){b=b||this.getRoot(a);for(var c=this.getChildCount(a),d=0;d<c;d++){var e=this.getChildAt(a,d);this.updateEdgeParents(e,b)}e=this.getEdgeCount(a);c=[];for(d=0;d<e;d++)c.push(this.getEdgeAt(a,d));for(d=0;d<c.length;d++)e=c[d],this.isAncestor(b,e)&&this.updateEdgeParent(e,b)};
951mxGraphModel.prototype.updateEdgeParent=function(a,b){for(var c=this.getTerminal(a,!0),d=this.getTerminal(a,!1);null!=c&&!this.isEdge(c)&&null!=c.geometry&&c.geometry.relative;)c=this.getParent(c);for(;null!=d&&this.ignoreRelativeEdgeParent&&!this.isEdge(d)&&null!=d.geometry&&d.geometry.relative;)d=this.getParent(d);if(this.isAncestor(b,c)&&this.isAncestor(b,d)&&(c=c==d?this.getParent(c):this.getNearestCommonAncestor(c,d),null!=c&&(this.getParent(c)!=this.root||this.isAncestor(c,a))&&this.getParent(a)!=
952c)){d=this.getGeometry(a);if(null!=d){var e=this.getOrigin(this.getParent(a)),f=this.getOrigin(c),g=f.x-e.x,e=f.y-e.y,d=d.clone();d.translate(-g,-e);this.setGeometry(a,d)}this.add(c,a,this.getChildCount(c))}};mxGraphModel.prototype.getOrigin=function(a){var b;null!=a?(b=this.getOrigin(this.getParent(a)),this.isEdge(a)||(a=this.getGeometry(a),null!=a&&(b.x+=a.x,b.y+=a.y))):b=new mxPoint;return b};
953mxGraphModel.prototype.getNearestCommonAncestor=function(a,b){if(null!=a&&null!=b){var c=mxCellPath.create(b);if(null!=c&&0<c.length){var d=a,e=mxCellPath.create(d);if(c.length<e.length)var d=b,f=e,e=c,c=f;for(;null!=d;){f=this.getParent(d);if(0==c.indexOf(e+mxCellPath.PATH_SEPARATOR)&&null!=f)return d;e=mxCellPath.getParentPath(e);d=f}}}return null};mxGraphModel.prototype.remove=function(a){a==this.root?this.setRoot(null):null!=this.getParent(a)&&this.execute(new mxChildChange(this,null,a));return a};
954mxGraphModel.prototype.cellRemoved=function(a){if(null!=a&&null!=this.cells){for(var b=this.getChildCount(a)-1;0<=b;b--)this.cellRemoved(this.getChildAt(a,b));null!=this.cells&&null!=a.getId()&&delete this.cells[a.getId()]}};mxGraphModel.prototype.parentForCellChanged=function(a,b,c){var d=this.getParent(a);null!=b?b==d&&d.getIndex(a)==c||b.insert(a,c):null!=d&&(c=d.getIndex(a),d.remove(c));b=this.contains(b);c=this.contains(d);b&&!c?this.cellAdded(a):c&&!b&&this.cellRemoved(a);return d};
955mxGraphModel.prototype.getChildCount=function(a){return null!=a?a.getChildCount():0};mxGraphModel.prototype.getChildAt=function(a,b){return null!=a?a.getChildAt(b):null};mxGraphModel.prototype.getChildren=function(a){return null!=a?a.children:null};mxGraphModel.prototype.getChildVertices=function(a){return this.getChildCells(a,!0,!1)};mxGraphModel.prototype.getChildEdges=function(a){return this.getChildCells(a,!1,!0)};
956mxGraphModel.prototype.getChildCells=function(a,b,c){b=null!=b?b:!1;c=null!=c?c:!1;for(var d=this.getChildCount(a),e=[],f=0;f<d;f++){var g=this.getChildAt(a,f);(!c&&!b||c&&this.isEdge(g)||b&&this.isVertex(g))&&e.push(g)}return e};mxGraphModel.prototype.getTerminal=function(a,b){return null!=a?a.getTerminal(b):null};
957mxGraphModel.prototype.setTerminal=function(a,b,c){var d=b!=this.getTerminal(a,c);this.execute(new mxTerminalChange(this,a,b,c));this.maintainEdgeParent&&d&&this.updateEdgeParent(a,this.getRoot());return b};mxGraphModel.prototype.setTerminals=function(a,b,c){this.beginUpdate();try{this.setTerminal(a,b,!0),this.setTerminal(a,c,!1)}finally{this.endUpdate()}};
958mxGraphModel.prototype.terminalForCellChanged=function(a,b,c){var d=this.getTerminal(a,c);null!=b?b.insertEdge(a,c):null!=d&&d.removeEdge(a,c);return d};mxGraphModel.prototype.getEdgeCount=function(a){return null!=a?a.getEdgeCount():0};mxGraphModel.prototype.getEdgeAt=function(a,b){return null!=a?a.getEdgeAt(b):null};mxGraphModel.prototype.getDirectedEdgeCount=function(a,b,c){for(var d=0,e=this.getEdgeCount(a),f=0;f<e;f++){var g=this.getEdgeAt(a,f);g!=c&&this.getTerminal(g,b)==a&&d++}return d};
959mxGraphModel.prototype.getConnections=function(a){return this.getEdges(a,!0,!0,!1)};mxGraphModel.prototype.getIncomingEdges=function(a){return this.getEdges(a,!0,!1,!1)};mxGraphModel.prototype.getOutgoingEdges=function(a){return this.getEdges(a,!1,!0,!1)};
960mxGraphModel.prototype.getEdges=function(a,b,c,d){b=null!=b?b:!0;c=null!=c?c:!0;d=null!=d?d:!0;for(var e=this.getEdgeCount(a),f=[],g=0;g<e;g++){var k=this.getEdgeAt(a,g),l=this.getTerminal(k,!0),m=this.getTerminal(k,!1);(d&&l==m||l!=m&&(b&&m==a||c&&l==a))&&f.push(k)}return f};
961mxGraphModel.prototype.getEdgesBetween=function(a,b,c){c=null!=c?c:!1;var d=this.getEdgeCount(a),e=this.getEdgeCount(b),f=a,g=d;e<d&&(g=e,f=b);d=[];for(e=0;e<g;e++){var k=this.getEdgeAt(f,e),l=this.getTerminal(k,!0),m=this.getTerminal(k,!1),n=m==a&&l==b;(l==a&&m==b||!c&&n)&&d.push(k)}return d};
962mxGraphModel.prototype.getOpposites=function(a,b,c,d){c=null!=c?c:!0;d=null!=d?d:!0;var e=[];if(null!=a)for(var f=0;f<a.length;f++){var g=this.getTerminal(a[f],!0),k=this.getTerminal(a[f],!1);g==b&&null!=k&&k!=b&&d?e.push(k):k==b&&null!=g&&g!=b&&c&&e.push(g)}return e};
963mxGraphModel.prototype.getTopmostCells=function(a){for(var b=new mxDictionary,c=[],d=0;d<a.length;d++)b.put(a[d],!0);for(d=0;d<a.length;d++){for(var e=a[d],f=!0,g=this.getParent(e);null!=g;){if(b.get(g)){f=!1;break}g=this.getParent(g)}f&&c.push(e)}return c};mxGraphModel.prototype.isVertex=function(a){return null!=a?a.isVertex():!1};mxGraphModel.prototype.isEdge=function(a){return null!=a?a.isEdge():!1};mxGraphModel.prototype.isConnectable=function(a){return null!=a?a.isConnectable():!1};
964mxGraphModel.prototype.getValue=function(a){return null!=a?a.getValue():null};mxGraphModel.prototype.setValue=function(a,b){this.execute(new mxValueChange(this,a,b));return b};mxGraphModel.prototype.valueForCellChanged=function(a,b){return a.valueChanged(b)};mxGraphModel.prototype.getGeometry=function(a){return null!=a?a.getGeometry():null};mxGraphModel.prototype.setGeometry=function(a,b){b!=this.getGeometry(a)&&this.execute(new mxGeometryChange(this,a,b));return b};
965mxGraphModel.prototype.geometryForCellChanged=function(a,b){var c=this.getGeometry(a);a.setGeometry(b);return c};mxGraphModel.prototype.getStyle=function(a){return null!=a?a.getStyle():null};mxGraphModel.prototype.setStyle=function(a,b){b!=this.getStyle(a)&&this.execute(new mxStyleChange(this,a,b));return b};mxGraphModel.prototype.styleForCellChanged=function(a,b){var c=this.getStyle(a);a.setStyle(b);return c};mxGraphModel.prototype.isCollapsed=function(a){return null!=a?a.isCollapsed():!1};
966mxGraphModel.prototype.setCollapsed=function(a,b){b!=this.isCollapsed(a)&&this.execute(new mxCollapseChange(this,a,b));return b};mxGraphModel.prototype.collapsedStateForCellChanged=function(a,b){var c=this.isCollapsed(a);a.setCollapsed(b);return c};mxGraphModel.prototype.isVisible=function(a){return null!=a?a.isVisible():!1};mxGraphModel.prototype.setVisible=function(a,b){b!=this.isVisible(a)&&this.execute(new mxVisibleChange(this,a,b));return b};
967mxGraphModel.prototype.visibleStateForCellChanged=function(a,b){var c=this.isVisible(a);a.setVisible(b);return c};mxGraphModel.prototype.execute=function(a){a.execute();this.beginUpdate();this.currentEdit.add(a);this.fireEvent(new mxEventObject(mxEvent.EXECUTE,"change",a));this.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",a));this.endUpdate()};mxGraphModel.prototype.beginUpdate=function(){this.updateLevel++;this.fireEvent(new mxEventObject(mxEvent.BEGIN_UPDATE));1==this.updateLevel&&this.fireEvent(new mxEventObject(mxEvent.START_EDIT))};
968mxGraphModel.prototype.endUpdate=function(){this.updateLevel--;0==this.updateLevel&&this.fireEvent(new mxEventObject(mxEvent.END_EDIT));if(!this.endingUpdate){this.endingUpdate=0==this.updateLevel;this.fireEvent(new mxEventObject(mxEvent.END_UPDATE,"edit",this.currentEdit));try{if(this.endingUpdate&&!this.currentEdit.isEmpty()){this.fireEvent(new mxEventObject(mxEvent.BEFORE_UNDO,"edit",this.currentEdit));var a=this.currentEdit;this.currentEdit=this.createUndoableEdit();a.notify();this.fireEvent(new mxEventObject(mxEvent.UNDO,
969"edit",a))}}finally{this.endingUpdate=!1}}};mxGraphModel.prototype.createUndoableEdit=function(a){var b=new mxUndoableEdit(this,null!=a?a:!0);b.notify=function(){b.source.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",b,"changes",b.changes));b.source.fireEvent(new mxEventObject(mxEvent.NOTIFY,"edit",b,"changes",b.changes))};return b};
970mxGraphModel.prototype.mergeChildren=function(a,b,c){c=null!=c?c:!0;this.beginUpdate();try{var d={};this.mergeChildrenImpl(a,b,c,d);for(var e in d){var f=d[e],g=this.getTerminal(f,!0);null!=g&&(g=d[mxCellPath.create(g)],this.setTerminal(f,g,!0));g=this.getTerminal(f,!1);null!=g&&(g=d[mxCellPath.create(g)],this.setTerminal(f,g,!1))}}finally{this.endUpdate()}};
971mxGraphModel.prototype.mergeChildrenImpl=function(a,b,c,d){this.beginUpdate();try{for(var e=a.getChildCount(),f=0;f<e;f++){var g=a.getChildAt(f);if("function"==typeof g.getId){var k=g.getId(),l=null==k||this.isEdge(g)&&c?null:this.getCell(k);if(null==l){var m=g.clone();m.setId(k);m.setTerminal(g.getTerminal(!0),!0);m.setTerminal(g.getTerminal(!1),!1);l=b.insert(m);this.cellAdded(l)}d[mxCellPath.create(g)]=l;this.mergeChildrenImpl(g,l,c,d)}}}finally{this.endUpdate()}};
972mxGraphModel.prototype.getParents=function(a){var b=[];if(null!=a)for(var c=new mxDictionary,d=0;d<a.length;d++){var e=this.getParent(a[d]);null==e||c.get(e)||(c.put(e,!0),b.push(e))}return b};mxGraphModel.prototype.cloneCell=function(a,b){return null!=a?this.cloneCells([a],b)[0]:null};
973mxGraphModel.prototype.cloneCells=function(a,b,c){b=null!=b?b:!0;c=null!=c?c:{};for(var d=[],e=0;e<a.length;e++)null!=a[e]?d.push(this.cloneCellImpl(a[e],c,b)):d.push(null);for(e=0;e<d.length;e++)null!=d[e]&&this.restoreClone(d[e],a[e],c);return d};mxGraphModel.prototype.cloneCellImpl=function(a,b,c){var d=mxObjectIdentity.get(a),e=b[d];if(null==e&&(e=this.cellCloned(a),b[d]=e,c))for(c=this.getChildCount(a),d=0;d<c;d++){var f=this.cloneCellImpl(this.getChildAt(a,d),b,!0);e.insert(f)}return e};
974mxGraphModel.prototype.cellCloned=function(a){return a.clone()};mxGraphModel.prototype.restoreClone=function(a,b,c){var d=this.getTerminal(b,!0);null!=d&&(d=c[mxObjectIdentity.get(d)],null!=d&&d.insertEdge(a,!0));d=this.getTerminal(b,!1);null!=d&&(d=c[mxObjectIdentity.get(d)],null!=d&&d.insertEdge(a,!1));for(var d=this.getChildCount(a),e=0;e<d;e++)this.restoreClone(this.getChildAt(a,e),this.getChildAt(b,e),c)};function mxRootChange(a,b){this.model=a;this.previous=this.root=b}
975mxRootChange.prototype.execute=function(){this.root=this.previous;this.previous=this.model.rootChanged(this.previous)};function mxChildChange(a,b,c,d){this.model=a;this.previous=this.parent=b;this.child=c;this.previousIndex=this.index=d}
976mxChildChange.prototype.execute=function(){if(null!=this.child){var a=this.model.getParent(this.child),b=null!=a?a.getIndex(this.child):0;null==this.previous&&this.connect(this.child,!1);a=this.model.parentForCellChanged(this.child,this.previous,this.previousIndex);null!=this.previous&&this.connect(this.child,!0);this.parent=this.previous;this.previous=a;this.index=this.previousIndex;this.previousIndex=b}};
977mxChildChange.prototype.connect=function(a,b){b=null!=b?b:!0;var c=a.getTerminal(!0),d=a.getTerminal(!1);null!=c&&(b?this.model.terminalForCellChanged(a,c,!0):this.model.terminalForCellChanged(a,null,!0));null!=d&&(b?this.model.terminalForCellChanged(a,d,!1):this.model.terminalForCellChanged(a,null,!1));a.setTerminal(c,!0);a.setTerminal(d,!1);c=this.model.getChildCount(a);for(d=0;d<c;d++)this.connect(this.model.getChildAt(a,d),b)};
978function mxTerminalChange(a,b,c,d){this.model=a;this.cell=b;this.previous=this.terminal=c;this.source=d}mxTerminalChange.prototype.execute=function(){null!=this.cell&&(this.terminal=this.previous,this.previous=this.model.terminalForCellChanged(this.cell,this.previous,this.source))};function mxValueChange(a,b,c){this.model=a;this.cell=b;this.previous=this.value=c}
979mxValueChange.prototype.execute=function(){null!=this.cell&&(this.value=this.previous,this.previous=this.model.valueForCellChanged(this.cell,this.previous))};function mxStyleChange(a,b,c){this.model=a;this.cell=b;this.previous=this.style=c}mxStyleChange.prototype.execute=function(){null!=this.cell&&(this.style=this.previous,this.previous=this.model.styleForCellChanged(this.cell,this.previous))};function mxGeometryChange(a,b,c){this.model=a;this.cell=b;this.previous=this.geometry=c}
980mxGeometryChange.prototype.execute=function(){null!=this.cell&&(this.geometry=this.previous,this.previous=this.model.geometryForCellChanged(this.cell,this.previous))};function mxCollapseChange(a,b,c){this.model=a;this.cell=b;this.previous=this.collapsed=c}mxCollapseChange.prototype.execute=function(){null!=this.cell&&(this.collapsed=this.previous,this.previous=this.model.collapsedStateForCellChanged(this.cell,this.previous))};
981function mxVisibleChange(a,b,c){this.model=a;this.cell=b;this.previous=this.visible=c}mxVisibleChange.prototype.execute=function(){null!=this.cell&&(this.visible=this.previous,this.previous=this.model.visibleStateForCellChanged(this.cell,this.previous))};function mxCellAttributeChange(a,b,c){this.cell=a;this.attribute=b;this.previous=this.value=c}
982mxCellAttributeChange.prototype.execute=function(){if(null!=this.cell){var a=this.cell.getAttribute(this.attribute);null==this.previous?this.cell.value.removeAttribute(this.attribute):this.cell.setAttribute(this.attribute,this.previous);this.previous=a}};function mxCell(a,b,c){this.value=a;this.setGeometry(b);this.setStyle(c);if(null!=this.onInit)this.onInit()}mxCell.prototype.id=null;mxCell.prototype.value=null;mxCell.prototype.geometry=null;mxCell.prototype.style=null;mxCell.prototype.vertex=!1;
983mxCell.prototype.edge=!1;mxCell.prototype.connectable=!0;mxCell.prototype.visible=!0;mxCell.prototype.collapsed=!1;mxCell.prototype.parent=null;mxCell.prototype.source=null;mxCell.prototype.target=null;mxCell.prototype.children=null;mxCell.prototype.edges=null;mxCell.prototype.mxTransient="id value parent source target children edges".split(" ");mxCell.prototype.getId=function(){return this.id};mxCell.prototype.setId=function(a){this.id=a};mxCell.prototype.getValue=function(){return this.value};
984mxCell.prototype.setValue=function(a){this.value=a};mxCell.prototype.valueChanged=function(a){var b=this.getValue();this.setValue(a);return b};mxCell.prototype.getGeometry=function(){return this.geometry};mxCell.prototype.setGeometry=function(a){this.geometry=a};mxCell.prototype.getStyle=function(){return this.style};mxCell.prototype.setStyle=function(a){this.style=a};mxCell.prototype.isVertex=function(){return 0!=this.vertex};mxCell.prototype.setVertex=function(a){this.vertex=a};
985mxCell.prototype.isEdge=function(){return 0!=this.edge};mxCell.prototype.setEdge=function(a){this.edge=a};mxCell.prototype.isConnectable=function(){return 0!=this.connectable};mxCell.prototype.setConnectable=function(a){this.connectable=a};mxCell.prototype.isVisible=function(){return 0!=this.visible};mxCell.prototype.setVisible=function(a){this.visible=a};mxCell.prototype.isCollapsed=function(){return 0!=this.collapsed};mxCell.prototype.setCollapsed=function(a){this.collapsed=a};
986mxCell.prototype.getParent=function(){return this.parent};mxCell.prototype.setParent=function(a){this.parent=a};mxCell.prototype.getTerminal=function(a){return a?this.source:this.target};mxCell.prototype.setTerminal=function(a,b){b?this.source=a:this.target=a;return a};mxCell.prototype.getChildCount=function(){return null==this.children?0:this.children.length};mxCell.prototype.getIndex=function(a){return mxUtils.indexOf(this.children,a)};
987mxCell.prototype.getChildAt=function(a){return null==this.children?null:this.children[a]};mxCell.prototype.insert=function(a,b){null!=a&&(null==b&&(b=this.getChildCount(),a.getParent()==this&&b--),a.removeFromParent(),a.setParent(this),null==this.children?(this.children=[],this.children.push(a)):this.children.splice(b,0,a));return a};mxCell.prototype.remove=function(a){var b=null;null!=this.children&&0<=a&&(b=this.getChildAt(a),null!=b&&(this.children.splice(a,1),b.setParent(null)));return b};
988mxCell.prototype.removeFromParent=function(){if(null!=this.parent){var a=this.parent.getIndex(this);this.parent.remove(a)}};mxCell.prototype.getEdgeCount=function(){return null==this.edges?0:this.edges.length};mxCell.prototype.getEdgeIndex=function(a){return mxUtils.indexOf(this.edges,a)};mxCell.prototype.getEdgeAt=function(a){return null==this.edges?null:this.edges[a]};
989mxCell.prototype.insertEdge=function(a,b){null!=a&&(a.removeFromTerminal(b),a.setTerminal(this,b),null==this.edges||a.getTerminal(!b)!=this||0>mxUtils.indexOf(this.edges,a))&&(null==this.edges&&(this.edges=[]),this.edges.push(a));return a};mxCell.prototype.removeEdge=function(a,b){if(null!=a){if(a.getTerminal(!b)!=this&&null!=this.edges){var c=this.getEdgeIndex(a);0<=c&&this.edges.splice(c,1)}a.setTerminal(null,b)}return a};
990mxCell.prototype.removeFromTerminal=function(a){var b=this.getTerminal(a);null!=b&&b.removeEdge(this,a)};mxCell.prototype.hasAttribute=function(a){var b=this.getValue();return null!=b&&b.nodeType==mxConstants.NODETYPE_ELEMENT&&b.hasAttribute?b.hasAttribute(a):null!=b.getAttribute(a)};mxCell.prototype.getAttribute=function(a,b){var c=this.getValue(),c=null!=c&&c.nodeType==mxConstants.NODETYPE_ELEMENT?c.getAttribute(a):null;return null!=c?c:b};
991mxCell.prototype.setAttribute=function(a,b){var c=this.getValue();null!=c&&c.nodeType==mxConstants.NODETYPE_ELEMENT&&c.setAttribute(a,b)};mxCell.prototype.clone=function(){var a=mxUtils.clone(this,this.mxTransient);a.setValue(this.cloneValue());return a};mxCell.prototype.cloneValue=function(a){a=null!=a?a:this.getValue();null!=a&&("function"==typeof a.clone?a=a.clone():isNaN(a.nodeType)||(a=a.cloneNode(!0)));return a};function mxGeometry(a,b,c,d){mxRectangle.call(this,a,b,c,d)}
992mxGeometry.prototype=new mxRectangle;mxGeometry.prototype.constructor=mxGeometry;mxGeometry.prototype.TRANSLATE_CONTROL_POINTS=!0;mxGeometry.prototype.alternateBounds=null;mxGeometry.prototype.sourcePoint=null;mxGeometry.prototype.targetPoint=null;mxGeometry.prototype.points=null;mxGeometry.prototype.offset=null;mxGeometry.prototype.relative=!1;
993mxGeometry.prototype.swap=function(){if(null!=this.alternateBounds){var a=new mxRectangle(this.x,this.y,this.width,this.height);this.x=this.alternateBounds.x;this.y=this.alternateBounds.y;this.width=this.alternateBounds.width;this.height=this.alternateBounds.height;this.alternateBounds=a}};mxGeometry.prototype.getTerminalPoint=function(a){return a?this.sourcePoint:this.targetPoint};mxGeometry.prototype.setTerminalPoint=function(a,b){b?this.sourcePoint=a:this.targetPoint=a;return a};
994mxGeometry.prototype.rotate=function(a,b){var c=mxUtils.toRadians(a),d=Math.cos(c),c=Math.sin(c);if(!this.relative){var e=new mxPoint(this.getCenterX(),this.getCenterY()),e=mxUtils.getRotatedPoint(e,d,c,b);this.x=Math.round(e.x-this.width/2);this.y=Math.round(e.y-this.height/2)}null!=this.sourcePoint&&(e=mxUtils.getRotatedPoint(this.sourcePoint,d,c,b),this.sourcePoint.x=Math.round(e.x),this.sourcePoint.y=Math.round(e.y));null!=this.targetPoint&&(e=mxUtils.getRotatedPoint(this.targetPoint,d,c,b),this.targetPoint.x=
995Math.round(e.x),this.targetPoint.y=Math.round(e.y));if(null!=this.points)for(var f=0;f<this.points.length;f++)null!=this.points[f]&&(e=mxUtils.getRotatedPoint(this.points[f],d,c,b),this.points[f].x=Math.round(e.x),this.points[f].y=Math.round(e.y))};
996mxGeometry.prototype.translate=function(a,b){a=parseFloat(a);b=parseFloat(b);this.relative||(this.x=parseFloat(this.x)+a,this.y=parseFloat(this.y)+b);null!=this.sourcePoint&&(this.sourcePoint.x=parseFloat(this.sourcePoint.x)+a,this.sourcePoint.y=parseFloat(this.sourcePoint.y)+b);null!=this.targetPoint&&(this.targetPoint.x=parseFloat(this.targetPoint.x)+a,this.targetPoint.y=parseFloat(this.targetPoint.y)+b);if(this.TRANSLATE_CONTROL_POINTS&&null!=this.points)for(var c=0;c<this.points.length;c++)null!=
997this.points[c]&&(this.points[c].x=parseFloat(this.points[c].x)+a,this.points[c].y=parseFloat(this.points[c].y)+b)};
998mxGeometry.prototype.scale=function(a,b,c){a=parseFloat(a);b=parseFloat(b);null!=this.sourcePoint&&(this.sourcePoint.x=parseFloat(this.sourcePoint.x)*a,this.sourcePoint.y=parseFloat(this.sourcePoint.y)*b);null!=this.targetPoint&&(this.targetPoint.x=parseFloat(this.targetPoint.x)*a,this.targetPoint.y=parseFloat(this.targetPoint.y)*b);if(null!=this.points)for(var d=0;d<this.points.length;d++)null!=this.points[d]&&(this.points[d].x=parseFloat(this.points[d].x)*a,this.points[d].y=parseFloat(this.points[d].y)*
999b);this.relative||(this.x=parseFloat(this.x)*a,this.y=parseFloat(this.y)*b,c&&(b=a=Math.min(a,b)),this.width=parseFloat(this.width)*a,this.height=parseFloat(this.height)*b)};
1000mxGeometry.prototype.equals=function(a){return mxRectangle.prototype.equals.apply(this,arguments)&&this.relative==a.relative&&(null==this.sourcePoint&&null==a.sourcePoint||null!=this.sourcePoint&&this.sourcePoint.equals(a.sourcePoint))&&(null==this.targetPoint&&null==a.targetPoint||null!=this.targetPoint&&this.targetPoint.equals(a.targetPoint))&&(null==this.points&&null==a.points||null!=this.points&&mxUtils.equalPoints(this.points,a.points))&&(null==this.alternateBounds&&null==a.alternateBounds||
1001null!=this.alternateBounds&&this.alternateBounds.equals(a.alternateBounds))&&(null==this.offset&&null==a.offset||null!=this.offset&&this.offset.equals(a.offset))};
1002var mxCellPath={PATH_SEPARATOR:".",create:function(a){var b="";if(null!=a)for(var c=a.getParent();null!=c;)b=c.getIndex(a)+mxCellPath.PATH_SEPARATOR+b,a=c,c=a.getParent();a=b.length;1<a&&(b=b.substring(0,a-1));return b},getParentPath:function(a){if(null!=a){var b=a.lastIndexOf(mxCellPath.PATH_SEPARATOR);if(0<=b)return a.substring(0,b);if(0<a.length)return""}return null},resolve:function(a,b){var c=a;if(null!=b)for(var d=b.split(mxCellPath.PATH_SEPARATOR),e=0;e<d.length;e++)c=c.getChildAt(parseInt(d[e]));
1003return c},compare:function(a,b){for(var c=Math.min(a.length,b.length),d=0,e=0;e<c;e++)if(a[e]!=b[e]){0==a[e].length||0==b[e].length?d=a[e]==b[e]?0:a[e]>b[e]?1:-1:(c=parseInt(a[e]),e=parseInt(b[e]),d=c==e?0:c>e?1:-1);break}0==d&&(c=a.length,e=b.length,c!=e&&(d=c>e?1:-1));return d}},mxPerimeter={RectanglePerimeter:function(a,b,c,d){b=a.getCenterX();var e=a.getCenterY(),f=Math.atan2(c.y-e,c.x-b),g=new mxPoint(0,0),k=Math.PI,l=Math.PI/2-f,m=Math.atan2(a.height,a.width);f<-k+m||f>k-m?(g.x=a.x,g.y=e-a.width*
1004Math.tan(f)/2):f<-m?(g.y=a.y,g.x=b-a.height*Math.tan(l)/2):f<m?(g.x=a.x+a.width,g.y=e+a.width*Math.tan(f)/2):(g.y=a.y+a.height,g.x=b+a.height*Math.tan(l)/2);d&&(c.x>=a.x&&c.x<=a.x+a.width?g.x=c.x:c.y>=a.y&&c.y<=a.y+a.height&&(g.y=c.y),c.x<a.x?g.x=a.x:c.x>a.x+a.width&&(g.x=a.x+a.width),c.y<a.y?g.y=a.y:c.y>a.y+a.height&&(g.y=a.y+a.height));return g},EllipsePerimeter:function(a,b,c,d){var e=a.x,f=a.y,g=a.width/2,k=a.height/2,l=e+g,m=f+k;b=c.x;c=c.y;var n=parseInt(b-l),p=parseInt(c-m);if(0==n&&0!=p)return new mxPoint(l,
1005m+k*p/Math.abs(p));if(0==n&&0==p)return new mxPoint(b,c);if(d){if(c>=f&&c<=f+a.height)return a=c-m,a=Math.sqrt(g*g*(1-a*a/(k*k)))||0,b<=e&&(a=-a),new mxPoint(l+a,c);if(b>=e&&b<=e+a.width)return a=b-l,a=Math.sqrt(k*k*(1-a*a/(g*g)))||0,c<=f&&(a=-a),new mxPoint(b,m+a)}e=p/n;m-=e*l;f=g*g*e*e+k*k;a=-2*l*f;k=Math.sqrt(a*a-4*f*(g*g*e*e*l*l+k*k*l*l-g*g*k*k));g=(-a+k)/(2*f);l=(-a-k)/(2*f);k=e*g+m;m=e*l+m;Math.sqrt(Math.pow(g-b,2)+Math.pow(k-c,2))<Math.sqrt(Math.pow(l-b,2)+Math.pow(m-c,2))?(b=g,c=k):(b=l,c=
1006m);return new mxPoint(b,c)},RhombusPerimeter:function(a,b,c,d){b=a.x;var e=a.y,f=a.width;a=a.height;var g=b+f/2,k=e+a/2,l=c.x;c=c.y;if(g==l)return k>c?new mxPoint(g,e):new mxPoint(g,e+a);if(k==c)return g>l?new mxPoint(b,k):new mxPoint(b+f,k);var m=g,n=k;d&&(l>=b&&l<=b+f?m=l:c>=e&&c<=e+a&&(n=c));return l<g?c<k?mxUtils.intersection(l,c,m,n,g,e,b,k):mxUtils.intersection(l,c,m,n,g,e+a,b,k):c<k?mxUtils.intersection(l,c,m,n,g,e,b+f,k):mxUtils.intersection(l,c,m,n,g,e+a,b+f,k)},TrianglePerimeter:function(a,
1007b,c,d){b=null!=b?b.style[mxConstants.STYLE_DIRECTION]:null;var e=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH,f=a.x,g=a.y,k=a.width,l=a.height;a=f+k/2;var m=g+l/2,n=new mxPoint(f,g),p=new mxPoint(f+k,m),q=new mxPoint(f,g+l);b==mxConstants.DIRECTION_NORTH?(n=q,p=new mxPoint(a,g),q=new mxPoint(f+k,g+l)):b==mxConstants.DIRECTION_SOUTH?(p=new mxPoint(a,g+l),q=new mxPoint(f+k,g)):b==mxConstants.DIRECTION_WEST&&(n=new mxPoint(f+k,g),p=new mxPoint(f,m),q=new mxPoint(f+k,g+l));var r=c.x-
1008a,t=c.y-m,r=e?Math.atan2(r,t):Math.atan2(t,r),t=e?Math.atan2(k,l):Math.atan2(l,k);(b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_WEST?r>-t&&r<t:r<-Math.PI+t||r>Math.PI-t)?c=d&&(e&&c.x>=n.x&&c.x<=q.x||!e&&c.y>=n.y&&c.y<=q.y)?e?new mxPoint(c.x,n.y):new mxPoint(n.x,c.y):b==mxConstants.DIRECTION_NORTH?new mxPoint(f+k/2+l*Math.tan(r)/2,g+l):b==mxConstants.DIRECTION_SOUTH?new mxPoint(f+k/2-l*Math.tan(r)/2,g):b==mxConstants.DIRECTION_WEST?new mxPoint(f+k,g+l/2+k*Math.tan(r)/2):new mxPoint(f,g+
1009l/2-k*Math.tan(r)/2):(d&&(d=new mxPoint(a,m),c.y>=g&&c.y<=g+l?(d.x=e?a:b==mxConstants.DIRECTION_WEST?f+k:f,d.y=c.y):c.x>=f&&c.x<=f+k&&(d.x=c.x,d.y=e?b==mxConstants.DIRECTION_NORTH?g+l:g:m),a=d.x,m=d.y),c=e&&c.x<=f+k/2||!e&&c.y<=g+l/2?mxUtils.intersection(c.x,c.y,a,m,n.x,n.y,p.x,p.y):mxUtils.intersection(c.x,c.y,a,m,p.x,p.y,q.x,q.y));null==c&&(c=new mxPoint(a,m));return c},HexagonPerimeter:function(a,b,c,d){var e=a.x,f=a.y,g=a.width,k=a.height,l=a.getCenterX();a=a.getCenterY();var m=c.x,n=c.y,p=-Math.atan2(n-
1010a,m-l),q=Math.PI,r=Math.PI/2;new mxPoint(l,a);b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;var t=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH;b=new mxPoint;var u=new mxPoint;if(m<e&&n<f||m<e&&n>f+k||m>e+g&&n<f||m>e+g&&n>f+k)d=!1;if(d){if(t){if(m==l){if(n<=f)return new mxPoint(l,f);if(n>=f+k)return new mxPoint(l,f+k)}else if(m<e){if(n==f+k/4)return new mxPoint(e,f+k/4);if(n==f+3*k/4)return new mxPoint(e,f+3*
1011k/4)}else if(m>e+g){if(n==f+k/4)return new mxPoint(e+g,f+k/4);if(n==f+3*k/4)return new mxPoint(e+g,f+3*k/4)}else if(m==e){if(n<a)return new mxPoint(e,f+k/4);if(n>a)return new mxPoint(e,f+3*k/4)}else if(m==e+g){if(n<a)return new mxPoint(e+g,f+k/4);if(n>a)return new mxPoint(e+g,f+3*k/4)}if(n==f)return new mxPoint(l,f);if(n==f+k)return new mxPoint(l,f+k);m<l?n>f+k/4&&n<f+3*k/4?(b=new mxPoint(e,f),u=new mxPoint(e,f+k)):n<f+k/4?(b=new mxPoint(e-Math.floor(.5*g),f+Math.floor(.5*k)),u=new mxPoint(e+g,f-
1012Math.floor(.25*k))):n>f+3*k/4&&(b=new mxPoint(e-Math.floor(.5*g),f+Math.floor(.5*k)),u=new mxPoint(e+g,f+Math.floor(1.25*k))):m>l&&(n>f+k/4&&n<f+3*k/4?(b=new mxPoint(e+g,f),u=new mxPoint(e+g,f+k)):n<f+k/4?(b=new mxPoint(e,f-Math.floor(.25*k)),u=new mxPoint(e+Math.floor(1.5*g),f+Math.floor(.5*k))):n>f+3*k/4&&(b=new mxPoint(e+Math.floor(1.5*g),f+Math.floor(.5*k)),u=new mxPoint(e,f+Math.floor(1.25*k))))}else{if(n==a){if(m<=e)return new mxPoint(e,f+k/2);if(m>=e+g)return new mxPoint(e+g,f+k/2)}else if(n<
1013f){if(m==e+g/4)return new mxPoint(e+g/4,f);if(m==e+3*g/4)return new mxPoint(e+3*g/4,f)}else if(n>f+k){if(m==e+g/4)return new mxPoint(e+g/4,f+k);if(m==e+3*g/4)return new mxPoint(e+3*g/4,f+k)}else if(n==f){if(m<l)return new mxPoint(e+g/4,f);if(m>l)return new mxPoint(e+3*g/4,f)}else if(n==f+k){if(m<l)return new mxPoint(e+g/4,f+k);if(n>a)return new mxPoint(e+3*g/4,f+k)}if(m==e)return new mxPoint(e,a);if(m==e+g)return new mxPoint(e+g,a);n<a?m>e+g/4&&m<e+3*g/4?(b=new mxPoint(e,f),u=new mxPoint(e+g,f)):
1014m<e+g/4?(b=new mxPoint(e-Math.floor(.25*g),f+k),u=new mxPoint(e+Math.floor(.5*g),f-Math.floor(.5*k))):m>e+3*g/4&&(b=new mxPoint(e+Math.floor(.5*g),f-Math.floor(.5*k)),u=new mxPoint(e+Math.floor(1.25*g),f+k)):n>a&&(m>e+g/4&&m<e+3*g/4?(b=new mxPoint(e,f+k),u=new mxPoint(e+g,f+k)):m<e+g/4?(b=new mxPoint(e-Math.floor(.25*g),f),u=new mxPoint(e+Math.floor(.5*g),f+Math.floor(1.5*k))):m>e+3*g/4&&(b=new mxPoint(e+Math.floor(.5*g),f+Math.floor(1.5*k)),u=new mxPoint(e+Math.floor(1.25*g),f)))}d=l;p=a;m>=e&&m<=
1015e+g?(d=m,p=n<a?f+k:f):n>=f&&n<=f+k&&(p=n,d=m<l?e+g:e);c=mxUtils.intersection(d,p,c.x,c.y,b.x,b.y,u.x,u.y)}else{if(t){m=Math.atan2(k/4,g/2);if(p==m)return new mxPoint(e+g,f+Math.floor(.25*k));if(p==r)return new mxPoint(e+Math.floor(.5*g),f);if(p==q-m)return new mxPoint(e,f+Math.floor(.25*k));if(p==-m)return new mxPoint(e+g,f+Math.floor(.75*k));if(p==-r)return new mxPoint(e+Math.floor(.5*g),f+k);if(p==-q+m)return new mxPoint(e,f+Math.floor(.75*k));p<m&&p>-m?(b=new mxPoint(e+g,f),u=new mxPoint(e+g,f+
1016k)):p>m&&p<r?(b=new mxPoint(e,f-Math.floor(.25*k)),u=new mxPoint(e+Math.floor(1.5*g),f+Math.floor(.5*k))):p>r&&p<q-m?(b=new mxPoint(e-Math.floor(.5*g),f+Math.floor(.5*k)),u=new mxPoint(e+g,f-Math.floor(.25*k))):p>q-m&&p<=q||p<-q+m&&p>=-q?(b=new mxPoint(e,f),u=new mxPoint(e,f+k)):p<-m&&p>-r?(b=new mxPoint(e+Math.floor(1.5*g),f+Math.floor(.5*k)),u=new mxPoint(e,f+Math.floor(1.25*k))):p<-r&&p>-q+m&&(b=new mxPoint(e-Math.floor(.5*g),f+Math.floor(.5*k)),u=new mxPoint(e+g,f+Math.floor(1.25*k)))}else{m=
1017Math.atan2(k/2,g/4);if(p==m)return new mxPoint(e+Math.floor(.75*g),f);if(p==q-m)return new mxPoint(e+Math.floor(.25*g),f);if(p==q||p==-q)return new mxPoint(e,f+Math.floor(.5*k));if(0==p)return new mxPoint(e+g,f+Math.floor(.5*k));if(p==-m)return new mxPoint(e+Math.floor(.75*g),f+k);if(p==-q+m)return new mxPoint(e+Math.floor(.25*g),f+k);0<p&&p<m?(b=new mxPoint(e+Math.floor(.5*g),f-Math.floor(.5*k)),u=new mxPoint(e+Math.floor(1.25*g),f+k)):p>m&&p<q-m?(b=new mxPoint(e,f),u=new mxPoint(e+g,f)):p>q-m&&
1018p<q?(b=new mxPoint(e-Math.floor(.25*g),f+k),u=new mxPoint(e+Math.floor(.5*g),f-Math.floor(.5*k))):0>p&&p>-m?(b=new mxPoint(e+Math.floor(.5*g),f+Math.floor(1.5*k)),u=new mxPoint(e+Math.floor(1.25*g),f)):p<-m&&p>-q+m?(b=new mxPoint(e,f+k),u=new mxPoint(e+g,f+k)):p<-q+m&&p>-q&&(b=new mxPoint(e-Math.floor(.25*g),f),u=new mxPoint(e+Math.floor(.5*g),f+Math.floor(1.5*k)))}c=mxUtils.intersection(l,a,c.x,c.y,b.x,b.y,u.x,u.y)}return null==c?new mxPoint(l,a):c}};
1019function mxPrintPreview(a,b,c,d,e,f,g,k,l){this.graph=a;this.scale=null!=b?b:1/a.pageScale;this.border=null!=d?d:0;this.pageFormat=mxRectangle.fromRectangle(null!=c?c:a.pageFormat);this.title=null!=k?k:"Printer-friendly version";this.x0=null!=e?e:0;this.y0=null!=f?f:0;this.borderColor=g;this.pageSelector=null!=l?l:!0}mxPrintPreview.prototype.graph=null;mxPrintPreview.prototype.pageFormat=null;mxPrintPreview.prototype.scale=null;mxPrintPreview.prototype.border=0;
1020mxPrintPreview.prototype.marginTop=0;mxPrintPreview.prototype.marginBottom=0;mxPrintPreview.prototype.x0=0;mxPrintPreview.prototype.y0=0;mxPrintPreview.prototype.autoOrigin=!0;mxPrintPreview.prototype.printOverlays=!1;mxPrintPreview.prototype.printControls=!1;mxPrintPreview.prototype.printBackgroundImage=!1;mxPrintPreview.prototype.backgroundColor="#ffffff";mxPrintPreview.prototype.borderColor=null;mxPrintPreview.prototype.title=null;mxPrintPreview.prototype.pageSelector=null;
1021mxPrintPreview.prototype.wnd=null;mxPrintPreview.prototype.targetWindow=null;mxPrintPreview.prototype.pageCount=0;mxPrintPreview.prototype.clipping=!0;mxPrintPreview.prototype.getWindow=function(){return this.wnd};mxPrintPreview.prototype.getDoctype=function(){var a="";8==document.documentMode?a='<meta http-equiv="X-UA-Compatible" content="IE=8">':8<document.documentMode&&(a='\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]--\x3e');return a};
1022mxPrintPreview.prototype.appendGraph=function(a,b,c,d,e,f){this.graph=a;this.scale=null!=b?b:1/a.pageScale;this.x0=c;this.y0=d;this.open(null,null,e,f)};
1023mxPrintPreview.prototype.open=function(a,b,c,d){var e=this.graph.cellRenderer.initializeOverlay,f=null;try{this.printOverlays&&(this.graph.cellRenderer.initializeOverlay=function(a,b){b.init(a.view.getDrawPane())});this.printControls&&(this.graph.cellRenderer.initControl=function(a,b,c,d){b.dialect=a.view.graph.dialect;b.init(a.view.getDrawPane())});this.wnd=null!=b?b:this.wnd;var g=!1;null==this.wnd&&(g=!0,this.wnd=window.open());var k=this.wnd.document;if(g){var l=this.getDoctype();null!=l&&0<l.length&&
1024k.writeln(l);"CSS1Compat"===document.compatMode&&k.writeln("<!DOCTYPE html>");k.writeln("<html>");k.writeln("<head>");this.writeHead(k,a);k.writeln("</head>");k.writeln('<body class="mxPage">')}var m=this.graph.getGraphBounds().clone(),n=this.graph.getView().getScale(),p=n/this.scale,q=this.graph.getView().getTranslate();this.autoOrigin||(this.x0-=q.x*this.scale,this.y0-=q.y*this.scale,m.width+=m.x,m.height+=m.y,m.x=0,this.border=m.y=0);var r=this.pageFormat.width-2*this.border,t=this.pageFormat.height-
10252*this.border;this.pageFormat.height+=this.marginTop+this.marginBottom;m.width/=p;m.height/=p;var u=Math.max(1,Math.ceil((m.width+this.x0)/r)),x=Math.max(1,Math.ceil((m.height+this.y0)/t));this.pageCount=u*x;var y=mxUtils.bind(this,function(){if(this.pageSelector&&(1<x||1<u)){var a=this.createPageSelector(x,u);k.body.appendChild(a);if(mxClient.IS_IE&&null==k.documentMode||5==k.documentMode||8==k.documentMode||7==k.documentMode){a.style.position="absolute";var b=function(){a.style.top=(k.body.scrollTop||
1026k.documentElement.scrollTop)+10+"px"};mxEvent.addListener(this.wnd,"scroll",function(a){b()});mxEvent.addListener(this.wnd,"resize",function(a){b()})}}}),B=mxUtils.bind(this,function(a,b){null!=this.borderColor&&(a.style.borderColor=this.borderColor,a.style.borderStyle="solid",a.style.borderWidth="1px");a.style.background=this.backgroundColor;if(c||b)a.style.pageBreakAfter="always";if(g&&(mxClient.IS_IE||11<=document.documentMode||mxClient.IS_EDGE))k.writeln(a.outerHTML),a.parentNode.removeChild(a);
1027else if(mxClient.IS_IE||11<=document.documentMode||mxClient.IS_EDGE){var d=k.createElement("div");d.innerHTML=a.outerHTML;d=d.getElementsByTagName("div")[0];k.body.appendChild(d);a.parentNode.removeChild(a)}else a.parentNode.removeChild(a),k.body.appendChild(a);(c||b)&&this.addPageBreak(k)}),A=this.getCoverPages(this.pageFormat.width,this.pageFormat.height);if(null!=A)for(var z=0;z<A.length;z++)B(A[z],!0);for(var C=this.getAppendices(this.pageFormat.width,this.pageFormat.height),z=0;z<x;z++){var v=
1028z*t/this.scale-this.y0/this.scale+(m.y-q.y*n)/n;for(a=0;a<u;a++){if(null==this.wnd)return null;var D=a*r/this.scale-this.x0/this.scale+(m.x-q.x*n)/n,G=z*u+a+1,J=new mxRectangle(D,v,r,t),f=this.renderPage(this.pageFormat.width,this.pageFormat.height,0,0,mxUtils.bind(this,function(a){this.addGraphFragment(-D,-v,this.scale,G,a,J);this.printBackgroundImage&&this.insertBackgroundImage(a,-D,-v)}),G);f.setAttribute("id","mxPage-"+G);B(f,null!=C||z<x-1||a<u-1)}}if(null!=C)for(z=0;z<C.length;z++)B(C[z],z<
1029C.length-1);g&&!d&&(this.closeDocument(),y());this.wnd.focus()}catch(E){null!=f&&null!=f.parentNode&&f.parentNode.removeChild(f)}finally{this.graph.cellRenderer.initializeOverlay=e}return this.wnd};mxPrintPreview.prototype.addPageBreak=function(a){var b=a.createElement("hr");b.className="mxPageBreak";a.body.appendChild(b)};
1030mxPrintPreview.prototype.closeDocument=function(){try{if(null!=this.wnd&&null!=this.wnd.document){var a=this.wnd.document;this.writePostfix(a);a.writeln("</body>");a.writeln("</html>");a.close();mxEvent.release(a.body)}}catch(b){}};
1031mxPrintPreview.prototype.writeHead=function(a,b){null!=this.title&&a.writeln("<title>"+this.title+"</title>");mxClient.link("stylesheet",mxClient.basePath+"/css/common.css",a);a.writeln('<style type="text/css">');a.writeln("@media print {");a.writeln("  * { -webkit-print-color-adjust: exact; }");a.writeln("  table.mxPageSelector { display: none; }");a.writeln("  hr.mxPageBreak { display: none; }");a.writeln("}");a.writeln("@media screen {");a.writeln("  table.mxPageSelector { position: fixed; right: 10px; top: 10px;font-family: Arial; font-size:10pt; border: solid 1px darkgray;background: white; border-collapse:collapse; }");
1032a.writeln("  table.mxPageSelector td { border: solid 1px gray; padding:4px; }");a.writeln("  body.mxPage { background: gray; }");a.writeln("}");null!=b&&a.writeln(b);a.writeln("</style>")};mxPrintPreview.prototype.writePostfix=function(a){};
1033mxPrintPreview.prototype.createPageSelector=function(a,b){var c=this.wnd.document,d=c.createElement("table");d.className="mxPageSelector";d.setAttribute("border","0");for(var e=c.createElement("tbody"),f=0;f<a;f++){for(var g=c.createElement("tr"),k=0;k<b;k++){var l=f*b+k+1,m=c.createElement("td"),n=c.createElement("a");n.setAttribute("href","#mxPage-"+l);!mxClient.IS_NS||mxClient.IS_SF||mxClient.IS_GC||n.setAttribute("onclick","var page = document.getElementById('mxPage-"+l+"');page.scrollIntoView(true);event.preventDefault();");
1034mxUtils.write(n,l,c);m.appendChild(n);g.appendChild(m)}e.appendChild(g)}d.appendChild(e);return d};
1035mxPrintPreview.prototype.renderPage=function(a,b,c,d,e,f){f=this.wnd.document;var g=document.createElement("div"),k=null;try{if(0!=c||0!=d){g.style.position="relative";g.style.width=a+"px";g.style.height=b+"px";g.style.pageBreakInside="avoid";var l=document.createElement("div");l.style.position="relative";l.style.top=this.border+"px";l.style.left=this.border+"px";l.style.width=a-2*this.border+"px";l.style.height=b-2*this.border+"px";l.style.overflow="hidden";var m=document.createElement("div");m.style.position=
1036"relative";m.style.marginLeft=c+"px";m.style.marginTop=d+"px";8==f.documentMode&&(l.style.position="absolute",m.style.position="absolute");10==f.documentMode&&(m.style.width="100%",m.style.height="100%");l.appendChild(m);g.appendChild(l);document.body.appendChild(g);k=m}else g.style.width=a+"px",g.style.height=b+"px",g.style.overflow="hidden",g.style.pageBreakInside="avoid",8==f.documentMode&&(g.style.position="relative"),l=document.createElement("div"),l.style.width=a-2*this.border+"px",l.style.height=
1037b-2*this.border+"px",l.style.overflow="hidden",!mxClient.IS_IE||null!=f.documentMode&&5!=f.documentMode&&8!=f.documentMode&&7!=f.documentMode?(l.style.top=this.border+"px",l.style.left=this.border+"px"):(l.style.marginTop=this.border+"px",l.style.marginLeft=this.border+"px"),g.appendChild(l),document.body.appendChild(g),k=l}catch(n){throw g.parentNode.removeChild(g),n;}e(k);return g};
1038mxPrintPreview.prototype.getRoot=function(){var a=this.graph.view.currentRoot;null==a&&(a=this.graph.getModel().getRoot());return a};mxPrintPreview.prototype.useCssTransforms=function(){return!mxClient.NO_FO&&!mxClient.IS_SF};
1039mxPrintPreview.prototype.addGraphFragment=function(a,b,c,d,e,f){var g=this.graph.getView();d=this.graph.container;this.graph.container=e;var k=g.getCanvas(),l=g.getBackgroundPane(),m=g.getDrawPane(),n=g.getOverlayPane(),p=c;if(this.graph.dialect==mxConstants.DIALECT_SVG){if(g.createSvg(),this.useCssTransforms()){var q=g.getDrawPane().parentNode;q.getAttribute("transform");q.setAttribute("transformOrigin","0 0");q.setAttribute("transform","scale("+c+","+c+")translate("+a+","+b+")");c=1;b=a=0}}else g.createHtml();
1040q=g.isEventsEnabled();g.setEventsEnabled(!1);var r=this.graph.isEnabled();this.graph.setEnabled(!1);var t=g.getTranslate();g.translate=new mxPoint(a,b);var u=this.graph.cellRenderer.redraw,x=g.states;a=g.scale;if(this.clipping){var y=new mxRectangle((f.x+t.x)*a,(f.y+t.y)*a,f.width*a/p,f.height*a/p);this.graph.cellRenderer.redraw=function(a,b,c){if(null!=a){var d=x.get(a.cell);if(null!=d&&(d=g.getBoundingBox(d,!1),null!=d&&0<d.width&&0<d.height&&!mxUtils.intersects(y,d)))return}u.apply(this,arguments)}}a=
1041null;try{var B=[this.getRoot()];a=new mxTemporaryCellStates(g,c,B,null,mxUtils.bind(this,function(a){return this.getLinkForCellState(a)}))}finally{if(mxClient.IS_IE)g.overlayPane.innerHTML="",g.canvas.style.overflow="hidden",g.canvas.style.position="relative",g.canvas.style.top=this.marginTop+"px",g.canvas.style.width=f.width+"px",g.canvas.style.height=f.height+"px";else for(c=e.firstChild;null!=c;)B=c.nextSibling,b=c.nodeName.toLowerCase(),"svg"==b?(c.style.overflow="hidden",c.style.position="relative",
1042c.style.top=this.marginTop+"px",c.setAttribute("width",f.width),c.setAttribute("height",f.height),c.style.width="",c.style.height=""):"default"!=c.style.cursor&&"div"!=b&&c.parentNode.removeChild(c),c=B;this.printBackgroundImage&&(e=e.getElementsByTagName("svg"),0<e.length&&(e[0].style.position="absolute"));g.overlayPane.parentNode.removeChild(g.overlayPane);this.graph.setEnabled(r);this.graph.container=d;this.graph.cellRenderer.redraw=u;g.canvas=k;g.backgroundPane=l;g.drawPane=m;g.overlayPane=n;
1043g.translate=t;a.destroy();g.setEventsEnabled(q)}};mxPrintPreview.prototype.getLinkForCellState=function(a){return this.graph.getLinkForCell(a.cell)};
1044mxPrintPreview.prototype.insertBackgroundImage=function(a,b,c){var d=this.graph.backgroundImage;if(null!=d){var e=document.createElement("img");e.style.position="absolute";e.style.marginLeft=Math.round((b+d.x)*this.scale)+"px";e.style.marginTop=Math.round((c+d.y)*this.scale)+"px";e.setAttribute("width",Math.round(d.width*this.scale));e.setAttribute("height",Math.round(d.height*this.scale));e.src=d.src;a.insertBefore(e,a.firstChild)}};mxPrintPreview.prototype.getCoverPages=function(){return null};
1045mxPrintPreview.prototype.getAppendices=function(){return null};mxPrintPreview.prototype.print=function(a){a=this.open(a);null!=a&&a.print()};mxPrintPreview.prototype.close=function(){null!=this.wnd&&(this.wnd.close(),this.wnd=null)};function mxStylesheet(){this.styles={};this.putDefaultVertexStyle(this.createDefaultVertexStyle());this.putDefaultEdgeStyle(this.createDefaultEdgeStyle())}
1046mxStylesheet.prototype.createDefaultVertexStyle=function(){var a={};a[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_RECTANGLE;a[mxConstants.STYLE_PERIMETER]=mxPerimeter.RectanglePerimeter;a[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE;a[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER;a[mxConstants.STYLE_FILLCOLOR]="#C3D9FF";a[mxConstants.STYLE_STROKECOLOR]="#6482B9";a[mxConstants.STYLE_FONTCOLOR]="#774400";return a};
1047mxStylesheet.prototype.createDefaultEdgeStyle=function(){var a={};a[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_CONNECTOR;a[mxConstants.STYLE_ENDARROW]=mxConstants.ARROW_CLASSIC;a[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE;a[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER;a[mxConstants.STYLE_STROKECOLOR]="#6482B9";a[mxConstants.STYLE_FONTCOLOR]="#446299";return a};mxStylesheet.prototype.putDefaultVertexStyle=function(a){this.putCellStyle("defaultVertex",a)};
1048mxStylesheet.prototype.putDefaultEdgeStyle=function(a){this.putCellStyle("defaultEdge",a)};mxStylesheet.prototype.getDefaultVertexStyle=function(){return this.styles.defaultVertex};mxStylesheet.prototype.getDefaultEdgeStyle=function(){return this.styles.defaultEdge};mxStylesheet.prototype.putCellStyle=function(a,b){this.styles[a]=b};
1049mxStylesheet.prototype.getCellStyle=function(a,b){var c=b;if(null!=a&&0<a.length)for(var d=a.split(";"),c=null!=c&&";"!=a.charAt(0)?mxUtils.clone(c):{},e=0;e<d.length;e++){var f=d[e],g=f.indexOf("=");if(0<=g){var k=f.substring(0,g),f=f.substring(g+1);f==mxConstants.NONE?delete c[k]:mxUtils.isNumeric(f)?c[k]=parseFloat(f):c[k]=f}else if(f=this.styles[f],null!=f)for(k in f)c[k]=f[k]}return c};
1050function mxCellState(a,b,c){this.view=a;this.cell=b;this.style=null!=c?c:{};this.origin=new mxPoint;this.absoluteOffset=new mxPoint}mxCellState.prototype=new mxRectangle;mxCellState.prototype.constructor=mxCellState;mxCellState.prototype.view=null;mxCellState.prototype.cell=null;mxCellState.prototype.style=null;mxCellState.prototype.invalidStyle=!1;mxCellState.prototype.invalid=!0;mxCellState.prototype.origin=null;mxCellState.prototype.absolutePoints=null;mxCellState.prototype.absoluteOffset=null;
1051mxCellState.prototype.visibleSourceState=null;mxCellState.prototype.visibleTargetState=null;mxCellState.prototype.terminalDistance=0;mxCellState.prototype.length=0;mxCellState.prototype.segments=null;mxCellState.prototype.shape=null;mxCellState.prototype.text=null;mxCellState.prototype.unscaledWidth=null;mxCellState.prototype.unscaledHeight=null;
1052mxCellState.prototype.getPerimeterBounds=function(a,b){a=a||0;b=null!=b?b:new mxRectangle(this.x,this.y,this.width,this.height);if(null!=this.shape&&null!=this.shape.stencil&&"fixed"==this.shape.stencil.aspect){var c=this.shape.stencil.computeAspect(this.style,b.x,b.y,b.width,b.height);b.x=c.x;b.y=c.y;b.width=this.shape.stencil.w0*c.width;b.height=this.shape.stencil.h0*c.height}0!=a&&b.grow(a);return b};
1053mxCellState.prototype.setAbsoluteTerminalPoint=function(a,b){b?(null==this.absolutePoints&&(this.absolutePoints=[]),0==this.absolutePoints.length?this.absolutePoints.push(a):this.absolutePoints[0]=a):null==this.absolutePoints?(this.absolutePoints=[],this.absolutePoints.push(null),this.absolutePoints.push(a)):1==this.absolutePoints.length?this.absolutePoints.push(a):this.absolutePoints[this.absolutePoints.length-1]=a};
1054mxCellState.prototype.setCursor=function(a){null!=this.shape&&this.shape.setCursor(a);null!=this.text&&this.text.setCursor(a)};mxCellState.prototype.isFloatingTerminalPoint=function(a){var b=this.getVisibleTerminalState(a);if(null==b)return!1;a=this.view.graph.getConnectionConstraint(this,b,a);return null==a||null==a.point};mxCellState.prototype.getVisibleTerminal=function(a){a=this.getVisibleTerminalState(a);return null!=a?a.cell:null};
1055mxCellState.prototype.getVisibleTerminalState=function(a){return a?this.visibleSourceState:this.visibleTargetState};mxCellState.prototype.setVisibleTerminalState=function(a,b){b?this.visibleSourceState=a:this.visibleTargetState=a};mxCellState.prototype.getCellBounds=function(){return this.cellBounds};mxCellState.prototype.getPaintBounds=function(){return this.paintBounds};
1056mxCellState.prototype.updateCachedBounds=function(){var a=this.view.translate,b=this.view.scale;this.cellBounds=new mxRectangle(this.x/b-a.x,this.y/b-a.y,this.width/b,this.height/b);this.paintBounds=mxRectangle.fromRectangle(this.cellBounds);null!=this.shape&&this.shape.isPaintBoundsInverted()&&this.paintBounds.rotate90()};
1057mxCellState.prototype.setState=function(a){this.view=a.view;this.cell=a.cell;this.style=a.style;this.absolutePoints=a.absolutePoints;this.origin=a.origin;this.absoluteOffset=a.absoluteOffset;this.boundingBox=a.boundingBox;this.terminalDistance=a.terminalDistance;this.segments=a.segments;this.length=a.length;this.x=a.x;this.y=a.y;this.width=a.width;this.height=a.height;this.unscaledWidth=a.unscaledWidth;this.unscaledHeight=a.unscaledHeight};
1058mxCellState.prototype.clone=function(){var a=new mxCellState(this.view,this.cell,this.style);if(null!=this.absolutePoints){a.absolutePoints=[];for(var b=0;b<this.absolutePoints.length;b++)a.absolutePoints[b]=this.absolutePoints[b].clone()}null!=this.origin&&(a.origin=this.origin.clone());null!=this.absoluteOffset&&(a.absoluteOffset=this.absoluteOffset.clone());null!=this.boundingBox&&(a.boundingBox=this.boundingBox.clone());a.terminalDistance=this.terminalDistance;a.segments=this.segments;a.length=
1059this.length;a.x=this.x;a.y=this.y;a.width=this.width;a.height=this.height;a.unscaledWidth=this.unscaledWidth;a.unscaledHeight=this.unscaledHeight;return a};mxCellState.prototype.destroy=function(){this.view.graph.cellRenderer.destroy(this)};function mxGraphSelectionModel(a){this.graph=a;this.cells=[]}mxGraphSelectionModel.prototype=new mxEventSource;mxGraphSelectionModel.prototype.constructor=mxGraphSelectionModel;mxGraphSelectionModel.prototype.doneResource="none"!=mxClient.language?"done":"";
1060mxGraphSelectionModel.prototype.updatingSelectionResource="none"!=mxClient.language?"updatingSelection":"";mxGraphSelectionModel.prototype.graph=null;mxGraphSelectionModel.prototype.singleSelection=!1;mxGraphSelectionModel.prototype.isSingleSelection=function(){return this.singleSelection};mxGraphSelectionModel.prototype.setSingleSelection=function(a){this.singleSelection=a};mxGraphSelectionModel.prototype.isSelected=function(a){return null!=a?0<=mxUtils.indexOf(this.cells,a):!1};
1061mxGraphSelectionModel.prototype.isEmpty=function(){return 0==this.cells.length};mxGraphSelectionModel.prototype.clear=function(){this.changeSelection(null,this.cells)};mxGraphSelectionModel.prototype.setCell=function(a){null!=a&&this.setCells([a])};mxGraphSelectionModel.prototype.setCells=function(a){if(null!=a){this.singleSelection&&(a=[this.getFirstSelectableCell(a)]);for(var b=[],c=0;c<a.length;c++)this.graph.isCellSelectable(a[c])&&b.push(a[c]);this.changeSelection(b,this.cells)}};
1062mxGraphSelectionModel.prototype.getFirstSelectableCell=function(a){if(null!=a)for(var b=0;b<a.length;b++)if(this.graph.isCellSelectable(a[b]))return a[b];return null};mxGraphSelectionModel.prototype.addCell=function(a){null!=a&&this.addCells([a])};
1063mxGraphSelectionModel.prototype.addCells=function(a){if(null!=a){var b=null;this.singleSelection&&(b=this.cells,a=[this.getFirstSelectableCell(a)]);for(var c=[],d=0;d<a.length;d++)!this.isSelected(a[d])&&this.graph.isCellSelectable(a[d])&&c.push(a[d]);this.changeSelection(c,b)}};mxGraphSelectionModel.prototype.removeCell=function(a){null!=a&&this.removeCells([a])};
1064mxGraphSelectionModel.prototype.removeCells=function(a){if(null!=a){for(var b=[],c=0;c<a.length;c++)this.isSelected(a[c])&&b.push(a[c]);this.changeSelection(null,b)}};mxGraphSelectionModel.prototype.changeSelection=function(a,b){if(null!=a&&0<a.length&&null!=a[0]||null!=b&&0<b.length&&null!=b[0]){var c=new mxSelectionChange(this,a,b);c.execute();var d=new mxUndoableEdit(this,!1);d.add(c);this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",d))}};
1065mxGraphSelectionModel.prototype.cellAdded=function(a){null==a||this.isSelected(a)||this.cells.push(a)};mxGraphSelectionModel.prototype.cellRemoved=function(a){null!=a&&(a=mxUtils.indexOf(this.cells,a),0<=a&&this.cells.splice(a,1))};function mxSelectionChange(a,b,c){this.selectionModel=a;this.added=null!=b?b.slice():null;this.removed=null!=c?c.slice():null}
1066mxSelectionChange.prototype.execute=function(){var a=mxLog.enter("mxSelectionChange.execute");window.status=mxResources.get(this.selectionModel.updatingSelectionResource)||this.selectionModel.updatingSelectionResource;if(null!=this.removed)for(var b=0;b<this.removed.length;b++)this.selectionModel.cellRemoved(this.removed[b]);if(null!=this.added)for(b=0;b<this.added.length;b++)this.selectionModel.cellAdded(this.added[b]);b=this.added;this.added=this.removed;this.removed=b;window.status=mxResources.get(this.selectionModel.doneResource)||
1067this.selectionModel.doneResource;mxLog.leave("mxSelectionChange.execute",a);this.selectionModel.fireEvent(new mxEventObject(mxEvent.CHANGE,"added",this.added,"removed",this.removed))};
1068function mxCellEditor(a){this.graph=a;this.zoomHandler=mxUtils.bind(this,function(){this.graph.isEditing()&&this.resize()});this.graph.view.addListener(mxEvent.SCALE,this.zoomHandler);this.graph.view.addListener(mxEvent.SCALE_AND_TRANSLATE,this.zoomHandler);this.changeHandler=mxUtils.bind(this,function(a){null!=this.editingCell&&null==this.graph.getView().getState(this.editingCell)&&this.stopEditing(!0)});this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler)}
1069mxCellEditor.prototype.graph=null;mxCellEditor.prototype.textarea=null;mxCellEditor.prototype.editingCell=null;mxCellEditor.prototype.trigger=null;mxCellEditor.prototype.modified=!1;mxCellEditor.prototype.autoSize=!0;mxCellEditor.prototype.selectText=!0;mxCellEditor.prototype.emptyLabelText=mxClient.IS_FF?"<br>":"";mxCellEditor.prototype.escapeCancelsEditing=!0;mxCellEditor.prototype.textNode="";mxCellEditor.prototype.zIndex=5;mxCellEditor.prototype.minResize=new mxRectangle(0,20);
1070mxCellEditor.prototype.wordWrapPadding=mxClient.IS_IE11?0:1;mxCellEditor.prototype.blurEnabled=!1;mxCellEditor.prototype.initialValue=null;mxCellEditor.prototype.align=null;mxCellEditor.prototype.init=function(){this.textarea=document.createElement("div");this.textarea.className="mxCellEditor mxPlainTextEditor";this.textarea.contentEditable=!0;mxClient.IS_GC&&(this.textarea.style.minHeight="1em");this.textarea.style.position=this.isLegacyEditor()?"absolute":"relative";this.installListeners(this.textarea)};
1071mxCellEditor.prototype.applyValue=function(a,b){this.graph.labelChanged(a.cell,b,this.trigger)};mxCellEditor.prototype.setAlign=function(a){null!=this.textarea&&(this.textarea.style.textAlign=a);this.align=a;this.resize()};
1072mxCellEditor.prototype.getInitialValue=function(a,b){var c=mxUtils.htmlEntities(this.graph.getEditingValue(a.cell,b),!1);8!=document.documentMode&&9!=document.documentMode&&10!=document.documentMode&&(c=mxUtils.replaceTrailingNewlines(c,"<div><br></div>"));return c.replace(/\n/g,"<br>")};mxCellEditor.prototype.getCurrentValue=function(a){return mxUtils.extractTextWithWhitespace(this.textarea.childNodes)};
1073mxCellEditor.prototype.isCancelEditingKeyEvent=function(a){return this.escapeCancelsEditing||mxEvent.isShiftDown(a)||mxEvent.isControlDown(a)||mxEvent.isMetaDown(a)};
1074mxCellEditor.prototype.installListeners=function(a){mxEvent.addListener(a,"dragstart",mxUtils.bind(this,function(a){this.graph.stopEditing(!1);mxEvent.consume(a)}));mxEvent.addListener(a,"blur",mxUtils.bind(this,function(a){this.blurEnabled&&this.focusLost(a)}));mxEvent.addListener(a,"keydown",mxUtils.bind(this,function(a){mxEvent.isConsumed(a)||(this.isStopEditingEvent(a)?(this.graph.stopEditing(!1),mxEvent.consume(a)):27==a.keyCode&&(this.graph.stopEditing(this.isCancelEditingKeyEvent(a)),mxEvent.consume(a)))}));
1075var b=mxUtils.bind(this,function(b){null!=this.editingCell&&this.clearOnChange&&a.innerHTML==this.getEmptyLabelText()&&(!mxClient.IS_FF||8!=b.keyCode&&46!=b.keyCode)&&(this.clearOnChange=!1,a.innerHTML="")});mxEvent.addListener(a,"keypress",b);mxEvent.addListener(a,"paste",b);b=mxUtils.bind(this,function(a){null!=this.editingCell&&(0==this.textarea.innerHTML.length||"<br>"==this.textarea.innerHTML?(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0<this.textarea.innerHTML.length):
1076this.clearOnChange=!1)});mxEvent.addListener(a,mxClient.IS_IE11||mxClient.IS_IE?"keyup":"input",b);mxEvent.addListener(a,"cut",b);mxEvent.addListener(a,"paste",b);var b=mxClient.IS_IE11||mxClient.IS_IE?"keydown":"input",c=mxUtils.bind(this,function(a){null!=this.editingCell&&this.autoSize&&!mxEvent.isConsumed(a)&&(null!=this.resizeThread&&window.clearTimeout(this.resizeThread),this.resizeThread=window.setTimeout(mxUtils.bind(this,function(){this.resizeThread=null;this.resize()}),0))});mxEvent.addListener(a,
1077b,c);mxEvent.addListener(window,"resize",c);9<=document.documentMode?(mxEvent.addListener(a,"DOMNodeRemoved",c),mxEvent.addListener(a,"DOMNodeInserted",c)):(mxEvent.addListener(a,"cut",c),mxEvent.addListener(a,"paste",c))};mxCellEditor.prototype.isStopEditingEvent=function(a){return 113==a.keyCode||this.graph.isEnterStopsCellEditing()&&13==a.keyCode&&!mxEvent.isControlDown(a)&&!mxEvent.isShiftDown(a)};mxCellEditor.prototype.isEventSource=function(a){return mxEvent.getSource(a)==this.textarea};
1078mxCellEditor.prototype.resize=function(){var a=this.graph.getView().getState(this.editingCell);if(null==a)this.stopEditing(!0);else if(null!=this.textarea){var b=this.graph.getModel().isEdge(a.cell),c=this.graph.getView().scale,d=null;if(this.autoSize&&"fill"!=a.style[mxConstants.STYLE_OVERFLOW]){var e=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_WIDTH,null),d=null!=a.text&&null==this.align?a.text.margin:null;null==d&&(d=mxUtils.getAlignmentAsPoint(this.align||mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,
1079mxConstants.ALIGN_CENTER),mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)));if(b)this.bounds=new mxRectangle(a.absoluteOffset.x,a.absoluteOffset.y,0,0),null!=e&&(e=(parseFloat(e)+2)*c,this.bounds.width=e,this.bounds.x+=d.x*e);else{var b=mxRectangle.fromRectangle(a),f=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),g=mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE),b=null!=a.shape&&f==
1080mxConstants.ALIGN_CENTER&&g==mxConstants.ALIGN_MIDDLE?a.shape.getLabelBounds(b):b;null!=e&&(b.width=parseFloat(e)*c);if(!a.view.graph.cellRenderer.legacySpacing||"width"!=a.style[mxConstants.STYLE_OVERFLOW]&&"block"!=a.style[mxConstants.STYLE_OVERFLOW])var f=parseInt(a.style[mxConstants.STYLE_SPACING]||2)*c,k=(parseInt(a.style[mxConstants.STYLE_SPACING_TOP]||0)+mxText.prototype.baseSpacingTop)*c+f,l=(parseInt(a.style[mxConstants.STYLE_SPACING_RIGHT]||0)+mxText.prototype.baseSpacingRight)*c+f,m=(parseInt(a.style[mxConstants.STYLE_SPACING_BOTTOM]||
10810)+mxText.prototype.baseSpacingBottom)*c+f,n=(parseInt(a.style[mxConstants.STYLE_SPACING_LEFT]||0)+mxText.prototype.baseSpacingLeft)*c+f,f=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),g=mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE),b=new mxRectangle(b.x+n,b.y+k,b.width-(f==mxConstants.ALIGN_CENTER&&null==e?n+l:0),b.height-(g==mxConstants.ALIGN_MIDDLE?k+m:0));this.bounds=new mxRectangle(b.x+a.absoluteOffset.x,b.y+
1082a.absoluteOffset.y,b.width,b.height)}if(this.graph.isWrapping(a.cell)&&(2<=this.bounds.width||2<=this.bounds.height)&&this.textarea.innerHTML!=this.getEmptyLabelText())if(this.textarea.style.wordWrap=mxConstants.WORD_WRAP,this.textarea.style.whiteSpace="normal",e=Math.round(this.bounds.width/c)+this.wordWrapPadding,"relative"!=this.textarea.style.position)this.textarea.style.width=e+"px",this.textarea.scrollWidth>e&&(this.textarea.style.width=this.textarea.scrollWidth+"px");else if("block"==a.style[mxConstants.STYLE_OVERFLOW]||
1083"width"==a.style[mxConstants.STYLE_OVERFLOW]){if(-.5==d.y||"width"==a.style[mxConstants.STYLE_OVERFLOW])this.textarea.style.maxHeight=this.bounds.height+"px";this.textarea.style.width=e+"px"}else this.textarea.style.maxWidth=e+"px";else this.textarea.style.whiteSpace="nowrap",this.textarea.style.width="";8==document.documentMode&&(this.textarea.style.zoom="1",this.textarea.style.height="auto");8==document.documentMode?(a=this.textarea.scrollWidth,e=this.textarea.scrollHeight,this.textarea.style.left=
1084Math.max(0,Math.ceil((this.bounds.x-d.x*(this.bounds.width-(a+1)*c)+a*(c-1)*0+2*(d.x+.5))/c))+"px",this.textarea.style.top=Math.max(0,Math.ceil((this.bounds.y-d.y*(this.bounds.height-(e+.5)*c)+e*(c-1)*0+1*Math.abs(d.y+.5))/c))+"px",this.textarea.style.width=Math.round(a*c)+"px",this.textarea.style.height=Math.round(e*c)+"px"):(this.textarea.style.left=Math.max(0,Math.round(this.bounds.x-d.x*(this.bounds.width-2))+1)+"px",this.textarea.style.top=Math.max(0,Math.round(this.bounds.y-d.y*(this.bounds.height-
10854)+(-1==d.y?3:0))+1)+"px")}else this.bounds=this.getEditorBounds(a),this.textarea.style.width=Math.round(this.bounds.width/c)+"px",this.textarea.style.height=Math.round(this.bounds.height/c)+"px",8==document.documentMode?(this.textarea.style.left=Math.round(this.bounds.x)+"px",this.textarea.style.top=Math.round(this.bounds.y)+"px"):(this.textarea.style.left=Math.max(0,Math.round(this.bounds.x+1))+"px",this.textarea.style.top=Math.max(0,Math.round(this.bounds.y+1))+"px"),this.graph.isWrapping(a.cell)&&
1086(2<=this.bounds.width||2<=this.bounds.height)&&this.textarea.innerHTML!=this.getEmptyLabelText()?(this.textarea.style.wordWrap=mxConstants.WORD_WRAP,this.textarea.style.whiteSpace="normal","fill"!=a.style[mxConstants.STYLE_OVERFLOW]&&(this.textarea.style.width=Math.round(this.bounds.width/c)+this.wordWrapPadding+"px")):(this.textarea.style.whiteSpace="nowrap","fill"!=a.style[mxConstants.STYLE_OVERFLOW]&&(this.textarea.style.width=""));mxUtils.setPrefixedStyle(this.textarea.style,"transformOrigin",
1087"0px 0px");mxUtils.setPrefixedStyle(this.textarea.style,"transform","scale("+c+","+c+")"+(null==d?"":" translate("+100*d.x+"%,"+100*d.y+"%)"))}};mxCellEditor.prototype.focusLost=function(){this.stopEditing(!this.graph.isInvokesStopCellEditing())};mxCellEditor.prototype.getBackgroundColor=function(a){return null};
1088mxCellEditor.prototype.isLegacyEditor=function(){var a=!1;if(mxClient.IS_SVG){var b=this.graph.view.getDrawPane().ownerSVGElement;null!=b&&(b=mxUtils.getCurrentStyle(b),null!=b&&(a="absolute"==b.position))}return!a};
1089mxCellEditor.prototype.startEditing=function(a,b){this.stopEditing(!0);this.align=null;null==this.textarea&&this.init();null!=this.graph.tooltipHandler&&this.graph.tooltipHandler.hideTooltip();var c=this.graph.getView().getState(a);if(null!=c){this.graph.getView();var d=mxUtils.getValue(c.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),e=mxUtils.getValue(c.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),f=mxUtils.getValue(c.style,mxConstants.STYLE_FONTCOLOR,"black"),
1090g=mxUtils.getValue(c.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),k=(mxUtils.getValue(c.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,l=(mxUtils.getValue(c.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,m=[];(mxUtils.getValue(c.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&m.push("underline");(mxUtils.getValue(c.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_STRIKETHROUGH)==
1091mxConstants.FONT_STRIKETHROUGH&&m.push("line-through");this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(d*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.backgroundColor=this.getBackgroundColor(c);this.textarea.style.textDecoration=m.join(" ");this.textarea.style.fontWeight=k?"bold":"normal";this.textarea.style.fontStyle=l?"italic":"";this.textarea.style.fontSize=Math.round(d)+"px";this.textarea.style.zIndex=this.zIndex;this.textarea.style.fontFamily=
1092e;this.textarea.style.textAlign=g;this.textarea.style.outline="none";this.textarea.style.color=f;d=this.textDirection=mxUtils.getValue(c.style,mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION);d==mxConstants.TEXT_DIRECTION_AUTO&&(null==c||null==c.text||c.text.dialect==mxConstants.DIALECT_STRICTHTML||mxUtils.isNode(c.text.value)||(d=c.text.getAutoDirection()));d==mxConstants.TEXT_DIRECTION_LTR||d==mxConstants.TEXT_DIRECTION_RTL?this.textarea.setAttribute("dir",d):this.textarea.removeAttribute("dir");
1093this.textarea.innerHTML=this.getInitialValue(c,b)||"";this.initialValue=this.textarea.innerHTML;0==this.textarea.innerHTML.length||"<br>"==this.textarea.innerHTML?(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=!0):this.clearOnChange=this.textarea.innerHTML==this.getEmptyLabelText();this.graph.container.appendChild(this.textarea);this.editingCell=a;this.trigger=b;this.textNode=null;null!=c.text&&this.isHideLabel(c)&&(this.textNode=c.text.node,this.textNode.style.visibility="hidden");
1094this.autoSize&&(this.graph.model.isEdge(c.cell)||"fill"!=c.style[mxConstants.STYLE_OVERFLOW])&&window.setTimeout(mxUtils.bind(this,function(){this.resize()}),0);this.resize();try{this.textarea.focus(),this.isSelectText()&&0<this.textarea.innerHTML.length&&(this.textarea.innerHTML!=this.getEmptyLabelText()||!this.clearOnChange)&&document.execCommand("selectAll",!1,null)}catch(n){}}};mxCellEditor.prototype.isSelectText=function(){return this.selectText};
1095mxCellEditor.prototype.clearSelection=function(){var a=null;window.getSelection?a=window.getSelection():document.selection&&(a=document.selection);null!=a&&(a.empty?a.empty():a.removeAllRanges&&a.removeAllRanges())};
1096mxCellEditor.prototype.stopEditing=function(a){if(null!=this.editingCell){null!=this.textNode&&(this.textNode.style.visibility="visible",this.textNode=null);a=a?null:this.graph.view.getState(this.editingCell);var b=this.initialValue;this.bounds=this.trigger=this.editingCell=this.initialValue=null;this.textarea.blur();this.clearSelection();null!=this.textarea.parentNode&&this.textarea.parentNode.removeChild(this.textarea);this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.textarea.innerHTML=
1097"",this.clearOnChange=!1);if(null!=a&&(this.textarea.innerHTML!=b||null!=this.align)){this.prepareTextarea();b=this.getCurrentValue(a);this.graph.getModel().beginUpdate();try{null!=b&&this.applyValue(a,b),null!=this.align&&this.graph.setCellStyles(mxConstants.STYLE_ALIGN,this.align,[a.cell])}finally{this.graph.getModel().endUpdate()}}mxEvent.release(this.textarea);this.align=this.textarea=null}};
1098mxCellEditor.prototype.prepareTextarea=function(){null!=this.textarea.lastChild&&"BR"==this.textarea.lastChild.nodeName&&this.textarea.removeChild(this.textarea.lastChild)};mxCellEditor.prototype.isHideLabel=function(a){return!0};mxCellEditor.prototype.getMinimumSize=function(a){var b=this.graph.getView().scale;return new mxRectangle(0,0,null==a.text?30:a.text.size*b+20,"left"==this.textarea.style.textAlign?120:40)};
1099mxCellEditor.prototype.getEditorBounds=function(a){var b=this.graph.getModel().isEdge(a.cell),c=this.graph.getView().scale,d=this.getMinimumSize(a),e=d.width,d=d.height;if(!b&&a.view.graph.cellRenderer.legacySpacing&&"fill"==a.style[mxConstants.STYLE_OVERFLOW])c=a.shape.getLabelBounds(mxRectangle.fromRectangle(a));else{var f=parseInt(a.style[mxConstants.STYLE_SPACING]||0)*c,g=(parseInt(a.style[mxConstants.STYLE_SPACING_TOP]||0)+mxText.prototype.baseSpacingTop)*c+f,k=(parseInt(a.style[mxConstants.STYLE_SPACING_RIGHT]||
11000)+mxText.prototype.baseSpacingRight)*c+f,l=(parseInt(a.style[mxConstants.STYLE_SPACING_BOTTOM]||0)+mxText.prototype.baseSpacingBottom)*c+f,f=(parseInt(a.style[mxConstants.STYLE_SPACING_LEFT]||0)+mxText.prototype.baseSpacingLeft)*c+f,c=new mxRectangle(a.x,a.y,Math.max(e,a.width-f-k),Math.max(d,a.height-g-l)),k=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),l=mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE),c=null!=a.shape&&
1101k==mxConstants.ALIGN_CENTER&&l==mxConstants.ALIGN_MIDDLE?a.shape.getLabelBounds(c):c;b?(c.x=a.absoluteOffset.x,c.y=a.absoluteOffset.y,null!=a.text&&null!=a.text.boundingBox&&(0<a.text.boundingBox.x&&(c.x=a.text.boundingBox.x),0<a.text.boundingBox.y&&(c.y=a.text.boundingBox.y))):null!=a.text&&null!=a.text.boundingBox&&(c.x=Math.min(c.x,a.text.boundingBox.x),c.y=Math.min(c.y,a.text.boundingBox.y));c.x+=f;c.y+=g;null!=a.text&&null!=a.text.boundingBox&&(b?(c.width=Math.max(e,a.text.boundingBox.width),
1102c.height=Math.max(d,a.text.boundingBox.height)):(c.width=Math.max(c.width,a.text.boundingBox.width),c.height=Math.max(c.height,a.text.boundingBox.height)));this.graph.getModel().isVertex(a.cell)&&(b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),b==mxConstants.ALIGN_LEFT?c.x-=a.width:b==mxConstants.ALIGN_RIGHT&&(c.x+=a.width),b=mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE),b==mxConstants.ALIGN_TOP?c.y-=a.height:b==
1103mxConstants.ALIGN_BOTTOM&&(c.y+=a.height))}return new mxRectangle(Math.round(c.x),Math.round(c.y),Math.round(c.width),Math.round(c.height))};mxCellEditor.prototype.getEmptyLabelText=function(a){return this.emptyLabelText};mxCellEditor.prototype.getEditingCell=function(){return this.editingCell};
1104mxCellEditor.prototype.destroy=function(){null!=this.textarea&&(mxEvent.release(this.textarea),null!=this.textarea.parentNode&&this.textarea.parentNode.removeChild(this.textarea),this.textarea=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null);this.zoomHandler&&(this.graph.view.removeListener(this.zoomHandler),this.zoomHandler=null)};function mxCellRenderer(){}mxCellRenderer.defaultShapes={};
1105mxCellRenderer.prototype.defaultEdgeShape=mxConnector;mxCellRenderer.prototype.defaultVertexShape=mxRectangleShape;mxCellRenderer.prototype.defaultTextShape=mxText;mxCellRenderer.prototype.legacyControlPosition=!0;mxCellRenderer.prototype.legacySpacing=!0;mxCellRenderer.prototype.antiAlias=!0;mxCellRenderer.prototype.minSvgStrokeWidth=1;mxCellRenderer.prototype.forceControlClickHandler=!1;mxCellRenderer.registerShape=function(a,b){mxCellRenderer.defaultShapes[a]=b};
1106mxCellRenderer.registerShape(mxConstants.SHAPE_RECTANGLE,mxRectangleShape);mxCellRenderer.registerShape(mxConstants.SHAPE_ELLIPSE,mxEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_RHOMBUS,mxRhombus);mxCellRenderer.registerShape(mxConstants.SHAPE_CYLINDER,mxCylinder);mxCellRenderer.registerShape(mxConstants.SHAPE_CONNECTOR,mxConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_ACTOR,mxActor);mxCellRenderer.registerShape(mxConstants.SHAPE_TRIANGLE,mxTriangle);
1107mxCellRenderer.registerShape(mxConstants.SHAPE_HEXAGON,mxHexagon);mxCellRenderer.registerShape(mxConstants.SHAPE_CLOUD,mxCloud);mxCellRenderer.registerShape(mxConstants.SHAPE_LINE,mxLine);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW,mxArrow);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW_CONNECTOR,mxArrowConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_DOUBLE_ELLIPSE,mxDoubleEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_SWIMLANE,mxSwimlane);
1108mxCellRenderer.registerShape(mxConstants.SHAPE_IMAGE,mxImageShape);mxCellRenderer.registerShape(mxConstants.SHAPE_LABEL,mxLabel);mxCellRenderer.prototype.initializeShape=function(a){a.shape.dialect=a.view.graph.dialect;this.configureShape(a);a.shape.init(a.view.getDrawPane())};
1109mxCellRenderer.prototype.createShape=function(a){var b=null;null!=a.style&&(b=a.style[mxConstants.STYLE_SHAPE],b=null==mxCellRenderer.defaultShapes[b]?mxStencilRegistry.getStencil(b):null,b=null!=b?new mxShape(b):new (this.getShapeConstructor(a)));return b};mxCellRenderer.prototype.createIndicatorShape=function(a){a.shape.indicatorShape=this.getShape(a.view.graph.getIndicatorShape(a))};mxCellRenderer.prototype.getShape=function(a){return null!=a?mxCellRenderer.defaultShapes[a]:null};
1110mxCellRenderer.prototype.getShapeConstructor=function(a){var b=this.getShape(a.style[mxConstants.STYLE_SHAPE]);null==b&&(b=a.view.graph.getModel().isEdge(a.cell)?this.defaultEdgeShape:this.defaultVertexShape);return b};
1111mxCellRenderer.prototype.configureShape=function(a){a.shape.apply(a);a.shape.image=a.view.graph.getImage(a);a.shape.indicatorColor=a.view.graph.getIndicatorColor(a);a.shape.indicatorStrokeColor=a.style[mxConstants.STYLE_INDICATOR_STROKECOLOR];a.shape.indicatorGradientColor=a.view.graph.getIndicatorGradientColor(a);a.shape.indicatorDirection=a.style[mxConstants.STYLE_INDICATOR_DIRECTION];a.shape.indicatorImage=a.view.graph.getIndicatorImage(a);this.postConfigureShape(a)};
1112mxCellRenderer.prototype.postConfigureShape=function(a){null!=a.shape&&(this.resolveColor(a,"indicatorGradientColor",mxConstants.STYLE_GRADIENTCOLOR),this.resolveColor(a,"indicatorColor",mxConstants.STYLE_FILLCOLOR),this.resolveColor(a,"gradient",mxConstants.STYLE_GRADIENTCOLOR),this.resolveColor(a,"stroke",mxConstants.STYLE_STROKECOLOR),this.resolveColor(a,"fill",mxConstants.STYLE_FILLCOLOR))};
1113mxCellRenderer.prototype.checkPlaceholderStyles=function(a){if(null!=a.style)for(var b=["inherit","swimlane","indicated"],c=[mxConstants.STYLE_FILLCOLOR,mxConstants.STYLE_STROKECOLOR,mxConstants.STYLE_GRADIENTCOLOR,mxConstants.STYLE_FONTCOLOR],d=0;d<c.length;d++)if(0<=mxUtils.indexOf(b,a.style[c[d]]))return!0;return!1};
1114mxCellRenderer.prototype.resolveColor=function(a,b,c){var d=c==mxConstants.STYLE_FONTCOLOR?a.text:a.shape;if(null!=d){var e=a.view.graph,f=d[b],g=null;"inherit"==f?g=e.model.getParent(a.cell):"swimlane"==f?(d[b]=c==mxConstants.STYLE_STROKECOLOR||c==mxConstants.STYLE_FONTCOLOR?"#000000":"#ffffff",g=null!=e.model.getTerminal(a.cell,!1)?e.model.getTerminal(a.cell,!1):a.cell,g=e.getSwimlane(g),c=e.swimlaneIndicatorColorAttribute):"indicated"==f&&null!=a.shape?d[b]=a.shape.indicatorColor:c!=mxConstants.STYLE_FILLCOLOR&&
1115f==mxConstants.STYLE_FILLCOLOR&&null!=a.shape?d[b]=a.style[mxConstants.STYLE_FILLCOLOR]:c!=mxConstants.STYLE_STROKECOLOR&&f==mxConstants.STYLE_STROKECOLOR&&null!=a.shape&&(d[b]=a.style[mxConstants.STYLE_STROKECOLOR]);null!=g&&(a=e.getView().getState(g),d[b]=null,null!=a&&(e=c==mxConstants.STYLE_FONTCOLOR?a.text:a.shape,d[b]=null!=e&&"indicatorColor"!=b?e[b]:a.style[c]))}};mxCellRenderer.prototype.getLabelValue=function(a){return a.view.graph.getLabel(a.cell)};
1116mxCellRenderer.prototype.createLabel=function(a,b){var c=a.view.graph;c.getModel().isEdge(a.cell);if(0<a.style[mxConstants.STYLE_FONTSIZE]||null==a.style[mxConstants.STYLE_FONTSIZE]){var d=c.isHtmlLabel(a.cell)||null!=b&&mxUtils.isNode(b);a.text=new this.defaultTextShape(b,new mxRectangle,a.style[mxConstants.STYLE_ALIGN]||mxConstants.ALIGN_CENTER,c.getVerticalAlign(a),a.style[mxConstants.STYLE_FONTCOLOR],a.style[mxConstants.STYLE_FONTFAMILY],a.style[mxConstants.STYLE_FONTSIZE],a.style[mxConstants.STYLE_FONTSTYLE],
1117a.style[mxConstants.STYLE_SPACING],a.style[mxConstants.STYLE_SPACING_TOP],a.style[mxConstants.STYLE_SPACING_RIGHT],a.style[mxConstants.STYLE_SPACING_BOTTOM],a.style[mxConstants.STYLE_SPACING_LEFT],a.style[mxConstants.STYLE_HORIZONTAL],a.style[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR],a.style[mxConstants.STYLE_LABEL_BORDERCOLOR],c.isWrapping(a.cell)&&c.isHtmlLabel(a.cell),c.isLabelClipped(a.cell),a.style[mxConstants.STYLE_OVERFLOW],a.style[mxConstants.STYLE_LABEL_PADDING],mxUtils.getValue(a.style,mxConstants.STYLE_TEXT_DIRECTION,
1118mxConstants.DEFAULT_TEXT_DIRECTION));a.text.opacity=mxUtils.getValue(a.style,mxConstants.STYLE_TEXT_OPACITY,100);a.text.dialect=d?mxConstants.DIALECT_STRICTHTML:a.view.graph.dialect;a.text.style=a.style;a.text.state=a;this.initializeLabel(a,a.text);this.configureShape(a);var e=!1,f=function(b){var d=a;if(mxClient.IS_TOUCH||e)d=mxEvent.getClientX(b),b=mxEvent.getClientY(b),b=mxUtils.convertPoint(c.container,d,b),d=c.view.getState(c.getCellAt(b.x,b.y));return d};mxEvent.addGestureListeners(a.text.node,
1119mxUtils.bind(this,function(b){this.isLabelEvent(a,b)&&(c.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(b,a)),e=c.dialect!=mxConstants.DIALECT_SVG&&"IMG"==mxEvent.getSource(b).nodeName)}),mxUtils.bind(this,function(b){this.isLabelEvent(a,b)&&c.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(b,f(b)))}),mxUtils.bind(this,function(b){this.isLabelEvent(a,b)&&(c.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(b,f(b))),e=!1)}));c.nativeDblClickEnabled&&mxEvent.addListener(a.text.node,"dblclick",
1120mxUtils.bind(this,function(b){this.isLabelEvent(a,b)&&(c.dblClick(b,a.cell),mxEvent.consume(b))}))}};mxCellRenderer.prototype.initializeLabel=function(a,b){mxClient.IS_SVG&&mxClient.NO_FO&&b.dialect!=mxConstants.DIALECT_SVG?b.init(a.view.graph.container):b.init(a.view.getDrawPane())};
1121mxCellRenderer.prototype.createCellOverlays=function(a){var b=a.view.graph.getCellOverlays(a.cell),c=null;if(null!=b)for(var c=new mxDictionary,d=0;d<b.length;d++){var e=null!=a.overlays?a.overlays.remove(b[d]):null;null==e&&(e=new mxImageShape(new mxRectangle,b[d].image.src),e.dialect=a.view.graph.dialect,e.preserveImageAspect=!1,e.overlay=b[d],this.initializeOverlay(a,e),this.installCellOverlayListeners(a,b[d],e),null!=b[d].cursor&&(e.node.style.cursor=b[d].cursor));c.put(b[d],e)}null!=a.overlays&&
1122a.overlays.visit(function(a,b){b.destroy()});a.overlays=c};mxCellRenderer.prototype.initializeOverlay=function(a,b){b.init(a.view.getOverlayPane())};
1123mxCellRenderer.prototype.installCellOverlayListeners=function(a,b,c){var d=a.view.graph;mxEvent.addListener(c.node,"click",function(c){d.isEditing()&&d.stopEditing(!d.isInvokesStopCellEditing());b.fireEvent(new mxEventObject(mxEvent.CLICK,"event",c,"cell",a.cell))});mxEvent.addGestureListeners(c.node,function(a){mxEvent.consume(a)},function(b){d.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(b,a))});mxClient.IS_TOUCH&&mxEvent.addListener(c.node,"touchend",function(c){b.fireEvent(new mxEventObject(mxEvent.CLICK,
1124"event",c,"cell",a.cell))})};mxCellRenderer.prototype.createControl=function(a){var b=a.view.graph,c=b.getFoldingImage(a);if(b.foldingEnabled&&null!=c){if(null==a.control){var d=new mxRectangle(0,0,c.width,c.height);a.control=new mxImageShape(d,c.src);a.control.preserveImageAspect=!1;a.control.dialect=b.dialect;this.initControl(a,a.control,!0,this.createControlClickHandler(a))}}else null!=a.control&&(a.control.destroy(),a.control=null)};
1125mxCellRenderer.prototype.createControlClickHandler=function(a){var b=a.view.graph;return mxUtils.bind(this,function(c){if(this.forceControlClickHandler||b.isEnabled()){var d=!b.isCellCollapsed(a.cell);b.foldCells(d,!1,[a.cell],null,c);mxEvent.consume(c)}})};
1126mxCellRenderer.prototype.initControl=function(a,b,c,d){var e=a.view.graph;e.isHtmlLabel(a.cell)&&mxClient.NO_FO&&e.dialect==mxConstants.DIALECT_SVG?(b.dialect=mxConstants.DIALECT_PREFERHTML,b.init(e.container),b.node.style.zIndex=1):b.init(a.view.getOverlayPane());b=b.innerNode||b.node;null==d||mxClient.IS_IOS||(e.isEnabled()&&(b.style.cursor="pointer"),mxEvent.addListener(b,"click",d));if(c){var f=null;mxEvent.addGestureListeners(b,function(b){f=new mxPoint(mxEvent.getClientX(b),mxEvent.getClientY(b));
1127e.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(b,a));mxEvent.consume(b)},function(b){e.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(b,a))},function(b){e.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(b,a));mxEvent.consume(b)});null!=d&&mxClient.IS_IOS&&b.addEventListener("touchend",function(a){if(null!=f){var b=e.tolerance;Math.abs(f.x-mxEvent.getClientX(a))<b&&Math.abs(f.y-mxEvent.getClientY(a))<b&&(d.call(d,a),mxEvent.consume(a))}},!0)}return b};
1128mxCellRenderer.prototype.isShapeEvent=function(a,b){return!0};mxCellRenderer.prototype.isLabelEvent=function(a,b){return!0};
1129mxCellRenderer.prototype.installListeners=function(a){var b=a.view.graph,c=function(c){var d=a;if(b.dialect!=mxConstants.DIALECT_SVG&&"IMG"==mxEvent.getSource(c).nodeName||mxClient.IS_TOUCH)d=mxEvent.getClientX(c),c=mxEvent.getClientY(c),c=mxUtils.convertPoint(b.container,d,c),d=b.view.getState(b.getCellAt(c.x,c.y));return d};mxEvent.addGestureListeners(a.shape.node,mxUtils.bind(this,function(c){this.isShapeEvent(a,c)&&b.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(c,a))}),mxUtils.bind(this,
1130function(d){this.isShapeEvent(a,d)&&b.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(d,c(d)))}),mxUtils.bind(this,function(d){this.isShapeEvent(a,d)&&b.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(d,c(d)))}));b.nativeDblClickEnabled&&mxEvent.addListener(a.shape.node,"dblclick",mxUtils.bind(this,function(c){this.isShapeEvent(a,c)&&(b.dblClick(c,a.cell),mxEvent.consume(c))}))};
1131mxCellRenderer.prototype.redrawLabel=function(a,b){var c=a.view.graph,d=this.getLabelValue(a),e=c.isWrapping(a.cell),f=c.isLabelClipped(a.cell),g=a.view.graph.isHtmlLabel(a.cell)||null!=d&&mxUtils.isNode(d)?mxConstants.DIALECT_STRICTHTML:a.view.graph.dialect,k=a.style[mxConstants.STYLE_OVERFLOW]||"visible";null==a.text||a.text.wrap==e&&a.text.clipped==f&&a.text.overflow==k&&a.text.dialect==g||(a.text.destroy(),a.text=null);null==a.text&&null!=d&&(mxUtils.isNode(d)||0<d.length)?this.createLabel(a,
1132d):null==a.text||null!=d&&0!=d.length||(a.text.destroy(),a.text=null);if(null!=a.text){b&&(null!=a.text.lastValue&&this.isTextShapeInvalid(a,a.text)&&(a.text.lastValue=null),a.text.resetStyles(),a.text.apply(a),this.configureShape(a),a.text.valign=c.getVerticalAlign(a));var c=this.getLabelBounds(a),l=this.getTextScale(a);this.resolveColor(a,"color",mxConstants.STYLE_FONTCOLOR);if(b||a.text.value!=d||a.text.isWrapping!=e||a.text.overflow!=k||a.text.isClipping!=f||a.text.scale!=l||a.text.dialect!=g||
1133null==a.text.bounds||!a.text.bounds.equals(c))a.text.dialect=g,a.text.value=d,a.text.bounds=c,a.text.scale=l,a.text.wrap=e,a.text.clipped=f,a.text.overflow=k,d=a.text.node.style.visibility,this.redrawLabelShape(a.text),a.text.node.style.visibility=d}};
1134mxCellRenderer.prototype.isTextShapeInvalid=function(a,b){function c(c,e,f){return"spacingTop"==e||"spacingRight"==e||"spacingBottom"==e||"spacingLeft"==e?parseFloat(b[c])-parseFloat(b.spacing)!=(a.style[e]||f):b[c]!=(a.style[e]||f)}return c("fontStyle",mxConstants.STYLE_FONTSTYLE,mxConstants.DEFAULT_FONTSTYLE)||c("family",mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY)||c("size",mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE)||c("color",mxConstants.STYLE_FONTCOLOR,"black")||
1135c("align",mxConstants.STYLE_ALIGN,"")||c("valign",mxConstants.STYLE_VERTICAL_ALIGN,"")||c("spacing",mxConstants.STYLE_SPACING,2)||c("spacingTop",mxConstants.STYLE_SPACING_TOP,0)||c("spacingRight",mxConstants.STYLE_SPACING_RIGHT,0)||c("spacingBottom",mxConstants.STYLE_SPACING_BOTTOM,0)||c("spacingLeft",mxConstants.STYLE_SPACING_LEFT,0)||c("horizontal",mxConstants.STYLE_HORIZONTAL,!0)||c("background",mxConstants.STYLE_LABEL_BACKGROUNDCOLOR)||c("border",mxConstants.STYLE_LABEL_BORDERCOLOR)||c("opacity",
1136mxConstants.STYLE_TEXT_OPACITY,100)||c("textDirection",mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION)};mxCellRenderer.prototype.redrawLabelShape=function(a){a.redraw()};mxCellRenderer.prototype.getTextScale=function(a){return a.view.scale};
1137mxCellRenderer.prototype.getLabelBounds=function(a){var b=a.view.graph,c=a.view.scale,d=b.getModel().isEdge(a.cell),e=new mxRectangle(a.absoluteOffset.x,a.absoluteOffset.y);if(d){var f=a.text.getSpacing();e.x+=f.x*c;e.y+=f.y*c;b=b.getCellGeometry(a.cell);null!=b&&(e.width=Math.max(0,b.width*c),e.height=Math.max(0,b.height*c))}else a.text.isPaintBoundsInverted()&&(b=e.x,e.x=e.y,e.y=b),e.x+=a.x,e.y+=a.y,e.width=Math.max(1,a.width),e.height=Math.max(1,a.height);a.text.isPaintBoundsInverted()&&(b=(a.width-
1138a.height)/2,e.x+=b,e.y-=b,b=e.width,e.width=e.height,e.height=b);null!=a.shape&&(b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),f=mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE),b==mxConstants.ALIGN_CENTER&&f==mxConstants.ALIGN_MIDDLE&&(e=a.shape.getLabelBounds(e)));b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_WIDTH,null);null!=b&&(e.width=parseFloat(b)*c);d||this.rotateLabelBounds(a,e);return e};
1139mxCellRenderer.prototype.rotateLabelBounds=function(a,b){b.y-=a.text.margin.y*b.height;b.x-=a.text.margin.x*b.width;if(!this.legacySpacing||"fill"!=a.style[mxConstants.STYLE_OVERFLOW]&&"width"!=a.style[mxConstants.STYLE_OVERFLOW]&&("block"!=a.style[mxConstants.STYLE_OVERFLOW]||"1"==a.style[mxConstants.STYLE_BLOCK_SPACING])){var c=a.view.scale,d=a.text.getSpacing("1"==a.style[mxConstants.STYLE_BLOCK_SPACING]);b.x+=d.x*c;b.y+=d.y*c;var d=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),
1140e=mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE),f=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_WIDTH,null);b.width=Math.max(0,b.width-(d==mxConstants.ALIGN_CENTER&&null==f?a.text.spacingLeft*c+a.text.spacingRight*c:0));b.height=Math.max(0,b.height-(e==mxConstants.ALIGN_MIDDLE?a.text.spacingTop*c+a.text.spacingBottom*c:0))}e=a.text.getTextRotation();0!=e&&null!=a&&a.view.graph.model.isVertex(a.cell)&&(c=a.getCenterX(),d=a.getCenterY(),b.x!=c||b.y!=
1141d)&&(e*=Math.PI/180,c=mxUtils.getRotatedPoint(new mxPoint(b.x,b.y),Math.cos(e),Math.sin(e),new mxPoint(c,d)),b.x=c.x,b.y=c.y)};
1142mxCellRenderer.prototype.redrawCellOverlays=function(a,b){this.createCellOverlays(a);if(null!=a.overlays){var c=mxUtils.mod(mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0),90),d=mxUtils.toRadians(c),e=Math.cos(d),f=Math.sin(d);a.overlays.visit(function(d,k){var g=k.overlay.getBounds(a);if(!a.view.graph.getModel().isEdge(a.cell)&&null!=a.shape&&0!=c){var m=g.getCenterX(),n=g.getCenterY(),n=mxUtils.getRotatedPoint(new mxPoint(m,n),e,f,new mxPoint(a.getCenterX(),a.getCenterY())),m=n.x,n=n.y;g.x=
1143Math.round(m-g.width/2);g.y=Math.round(n-g.height/2)}if(b||null==k.bounds||k.scale!=a.view.scale||!k.bounds.equals(g))k.bounds=g,k.scale=a.view.scale,k.redraw()})}};
1144mxCellRenderer.prototype.redrawControl=function(a,b){var c=a.view.graph.getFoldingImage(a);if(null!=a.control&&null!=c){var c=this.getControlBounds(a,c.width,c.height),d=this.legacyControlPosition?mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0):a.shape.getTextRotation(),e=a.view.scale;if(b||a.control.scale!=e||!a.control.bounds.equals(c)||a.control.rotation!=d)a.control.rotation=d,a.control.bounds=c,a.control.scale=e,a.control.redraw()}};
1145mxCellRenderer.prototype.getControlBounds=function(a,b,c){if(null!=a.control){var d=a.view.scale,e=a.getCenterX(),f=a.getCenterY();if(!a.view.graph.getModel().isEdge(a.cell)&&(e=a.x+b*d,f=a.y+c*d,null!=a.shape)){var g=a.shape.getShapeRotation();if(this.legacyControlPosition)g=mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0);else if(a.shape.isPaintBoundsInverted())var k=(a.width-a.height)/2,e=e+k,f=f-k;0!=g&&(k=mxUtils.toRadians(g),g=Math.cos(k),k=Math.sin(k),f=mxUtils.getRotatedPoint(new mxPoint(e,
1146f),g,k,new mxPoint(a.getCenterX(),a.getCenterY())),e=f.x,f=f.y)}return a.view.graph.getModel().isEdge(a.cell),new mxRectangle(Math.round(e-b/2*d),Math.round(f-c/2*d),Math.round(b*d),Math.round(c*d))}return null};
1147mxCellRenderer.prototype.insertStateAfter=function(a,b,c){for(var d=this.getShapesForState(a),e=0;e<d.length;e++)if(null!=d[e]&&null!=d[e].node){var f=d[e].node.parentNode!=a.view.getDrawPane()&&d[e].node.parentNode!=a.view.getOverlayPane(),g=f?c:b;if(null!=g&&g.nextSibling!=d[e].node)null==g.nextSibling?g.parentNode.appendChild(d[e].node):g.parentNode.insertBefore(d[e].node,g.nextSibling);else if(null==g)if(d[e].node.parentNode==a.view.graph.container){for(g=a.view.canvas;null!=g&&g.parentNode!=
1148a.view.graph.container;)g=g.parentNode;null!=g&&null!=g.nextSibling?g.nextSibling!=d[e].node&&d[e].node.parentNode.insertBefore(d[e].node,g.nextSibling):d[e].node.parentNode.appendChild(d[e].node)}else null!=d[e].node.parentNode&&null!=d[e].node.parentNode.firstChild&&d[e].node.parentNode.firstChild!=d[e].node&&d[e].node.parentNode.insertBefore(d[e].node,d[e].node.parentNode.firstChild);f?c=d[e].node:b=d[e].node}return[b,c]};
1149mxCellRenderer.prototype.getShapesForState=function(a){return[a.shape,a.text,a.control]};mxCellRenderer.prototype.redraw=function(a,b,c){b=this.redrawShape(a,b,c);null==a.shape||null!=c&&!c||(this.redrawLabel(a,b),this.redrawCellOverlays(a,b),this.redrawControl(a,b))};
1150mxCellRenderer.prototype.redrawShape=function(a,b,c){var d=a.view.graph.model,e=!1;null!=a.shape&&null!=a.shape.style&&null!=a.style&&a.shape.style[mxConstants.STYLE_SHAPE]!=a.style[mxConstants.STYLE_SHAPE]&&(a.shape.destroy(),a.shape=null);null==a.shape&&null!=a.view.graph.container&&a.cell!=a.view.currentRoot&&(d.isVertex(a.cell)||d.isEdge(a.cell))?(a.shape=this.createShape(a),null!=a.shape&&(a.shape.minSvgStrokeWidth=this.minSvgStrokeWidth,a.shape.antiAlias=this.antiAlias,this.createIndicatorShape(a),
1151this.initializeShape(a),this.createCellOverlays(a),this.installListeners(a),a.view.graph.selectionCellsHandler.updateHandler(a))):b||null==a.shape||mxUtils.equalEntries(a.shape.style,a.style)&&!this.checkPlaceholderStyles(a)||(a.shape.resetStyles(),this.configureShape(a),a.view.graph.selectionCellsHandler.updateHandler(a),b=!0);null!=a.shape&&a.shape.indicatorShape!=this.getShape(a.view.graph.getIndicatorShape(a))&&(null!=a.shape.indicator&&(a.shape.indicator.destroy(),a.shape.indicator=null),this.createIndicatorShape(a),
1152null!=a.shape.indicatorShape&&(a.shape.indicator=new a.shape.indicatorShape,a.shape.indicator.dialect=a.shape.dialect,a.shape.indicator.init(a.node),b=!0));null!=a.shape&&(this.createControl(a),b||this.isShapeInvalid(a,a.shape))&&(null!=a.absolutePoints?(a.shape.points=a.absolutePoints.slice(),a.shape.bounds=null):(a.shape.points=null,a.shape.bounds=new mxRectangle(a.x,a.y,a.width,a.height)),a.shape.scale=a.view.scale,null==c||c?this.doRedrawShape(a):a.shape.updateBoundingBox(),e=!0);return e};
1153mxCellRenderer.prototype.doRedrawShape=function(a){a.shape.redraw()};mxCellRenderer.prototype.isShapeInvalid=function(a,b){return null==b.bounds||b.scale!=a.view.scale||null==a.absolutePoints&&!b.bounds.equals(a)||null!=a.absolutePoints&&!mxUtils.equalPoints(b.points,a.absolutePoints)};
1154mxCellRenderer.prototype.destroy=function(a){null!=a.shape&&(null!=a.text&&(a.text.destroy(),a.text=null),null!=a.overlays&&(a.overlays.visit(function(a,c){c.destroy()}),a.overlays=null),null!=a.control&&(a.control.destroy(),a.control=null),a.shape.destroy(),a.shape=null)};
1155var mxEdgeStyle={EntityRelation:function(a,b,c,d,e){var f=a.view,g=f.graph;d=mxUtils.getValue(a.style,mxConstants.STYLE_SEGMENT,mxConstants.ENTITY_SEGMENT)*f.scale;var k=a.absolutePoints,l=k[0],m=k[k.length-1],k=!1;if(null!=b){var n=g.getCellGeometry(b.cell);n.relative?k=.5>=n.x:null!=c&&(k=(null!=m?m.x:c.x+c.width)<(null!=l?l.x:b.x))}if(null!=l)b=new mxCellState,b.x=l.x,b.y=l.y;else if(null!=b){var p=mxUtils.getPortConstraints(b,a,!0,mxConstants.DIRECTION_MASK_NONE);p!=mxConstants.DIRECTION_MASK_NONE&&
1156p!=mxConstants.DIRECTION_MASK_WEST+mxConstants.DIRECTION_MASK_EAST&&(k=p==mxConstants.DIRECTION_MASK_WEST)}else return;n=!0;null!=c&&(g=g.getCellGeometry(c.cell),g.relative?n=.5>=g.x:null!=b&&(n=(null!=l?l.x:b.x+b.width)<(null!=m?m.x:c.x)));null!=m?(c=new mxCellState,c.x=m.x,c.y=m.y):null!=c&&(p=mxUtils.getPortConstraints(c,a,!1,mxConstants.DIRECTION_MASK_NONE),p!=mxConstants.DIRECTION_MASK_NONE&&p!=mxConstants.DIRECTION_MASK_WEST+mxConstants.DIRECTION_MASK_EAST&&(n=p==mxConstants.DIRECTION_MASK_WEST));
1157null!=b&&null!=c&&(a=k?b.x:b.x+b.width,b=f.getRoutingCenterY(b),l=n?c.x:c.x+c.width,c=f.getRoutingCenterY(c),f=new mxPoint(a+(k?-d:d),b),g=new mxPoint(l+(n?-d:d),c),k==n?(d=k?Math.min(a,l)-d:Math.max(a,l)+d,e.push(new mxPoint(d,b)),e.push(new mxPoint(d,c))):(f.x<g.x==k?(d=b+(c-b)/2,e.push(f),e.push(new mxPoint(f.x,d)),e.push(new mxPoint(g.x,d))):e.push(f),e.push(g)))},Loop:function(a,b,c,d,e){c=a.absolutePoints;var f=c[c.length-1];if(null!=c[0]&&null!=f){if(null!=d&&0<d.length)for(b=0;b<d.length;b++)c=
1158d[b],c=a.view.transformControlPoint(a,c),e.push(new mxPoint(c.x,c.y))}else if(null!=b){var f=a.view,g=f.graph;c=null!=d&&0<d.length?d[0]:null;null!=c&&(c=f.transformControlPoint(a,c),mxUtils.contains(b,c.x,c.y)&&(c=null));var k=d=0,l=0,m=0,g=mxUtils.getValue(a.style,mxConstants.STYLE_SEGMENT,g.gridSize)*f.scale;a=mxUtils.getValue(a.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_WEST);a==mxConstants.DIRECTION_NORTH||a==mxConstants.DIRECTION_SOUTH?(d=f.getRoutingCenterX(b),k=g):(l=f.getRoutingCenterY(b),
1159m=g);null==c||c.x<b.x||c.x>b.x+b.width?null!=c?(d=c.x,m=Math.max(Math.abs(l-c.y),m)):a==mxConstants.DIRECTION_NORTH?l=b.y-2*k:a==mxConstants.DIRECTION_SOUTH?l=b.y+b.height+2*k:d=a==mxConstants.DIRECTION_EAST?b.x-2*m:b.x+b.width+2*m:null!=c&&(d=f.getRoutingCenterX(b),k=Math.max(Math.abs(d-c.x),m),l=c.y,m=0);e.push(new mxPoint(d-k,l-m));e.push(new mxPoint(d+k,l+m))}},ElbowConnector:function(a,b,c,d,e){var f=null!=d&&0<d.length?d[0]:null,g=!1,k=!1;if(null!=b&&null!=c)if(null!=f)var l=Math.min(b.x,c.x),
1160m=Math.max(b.x+b.width,c.x+c.width),k=Math.min(b.y,c.y),n=Math.max(b.y+b.height,c.y+c.height),f=a.view.transformControlPoint(a,f),g=f.y<k||f.y>n,k=f.x<l||f.x>m;else l=Math.max(b.x,c.x),m=Math.min(b.x+b.width,c.x+c.width),(g=l==m)||(k=Math.max(b.y,c.y),n=Math.min(b.y+b.height,c.y+c.height),k=k==n);k||!g&&a.style[mxConstants.STYLE_ELBOW]!=mxConstants.ELBOW_VERTICAL?mxEdgeStyle.SideToSide(a,b,c,d,e):mxEdgeStyle.TopToBottom(a,b,c,d,e)},SideToSide:function(a,b,c,d,e){var f=a.view;d=null!=d&&0<d.length?
1161d[0]:null;var g=a.absolutePoints,k=g[0],g=g[g.length-1];null!=d&&(d=f.transformControlPoint(a,d));null!=k&&(b=new mxCellState,b.x=k.x,b.y=k.y);null!=g&&(c=new mxCellState,c.x=g.x,c.y=g.y);null!=b&&null!=c&&(a=Math.max(b.x,c.x),k=Math.min(b.x+b.width,c.x+c.width),a=null!=d?d.x:Math.round(k+(a-k)/2),k=f.getRoutingCenterY(b),f=f.getRoutingCenterY(c),null!=d&&(d.y>=b.y&&d.y<=b.y+b.height&&(k=d.y),d.y>=c.y&&d.y<=c.y+c.height&&(f=d.y)),mxUtils.contains(c,a,k)||mxUtils.contains(b,a,k)||e.push(new mxPoint(a,
1162k)),mxUtils.contains(c,a,f)||mxUtils.contains(b,a,f)||e.push(new mxPoint(a,f)),1==e.length&&(null!=d?mxUtils.contains(c,a,d.y)||mxUtils.contains(b,a,d.y)||e.push(new mxPoint(a,d.y)):(f=Math.max(b.y,c.y),e.push(new mxPoint(a,f+(Math.min(b.y+b.height,c.y+c.height)-f)/2)))))},TopToBottom:function(a,b,c,d,e){var f=a.view;d=null!=d&&0<d.length?d[0]:null;var g=a.absolutePoints,k=g[0],g=g[g.length-1];null!=d&&(d=f.transformControlPoint(a,d));null!=k&&(b=new mxCellState,b.x=k.x,b.y=k.y);null!=g&&(c=new mxCellState,
1163c.x=g.x,c.y=g.y);null!=b&&null!=c&&(k=Math.max(b.y,c.y),g=Math.min(b.y+b.height,c.y+c.height),a=f.getRoutingCenterX(b),null!=d&&d.x>=b.x&&d.x<=b.x+b.width&&(a=d.x),k=null!=d?d.y:Math.round(g+(k-g)/2),mxUtils.contains(c,a,k)||mxUtils.contains(b,a,k)||e.push(new mxPoint(a,k)),a=null!=d&&d.x>=c.x&&d.x<=c.x+c.width?d.x:f.getRoutingCenterX(c),mxUtils.contains(c,a,k)||mxUtils.contains(b,a,k)||e.push(new mxPoint(a,k)),1==e.length&&(null!=d&&1==e.length?mxUtils.contains(c,d.x,k)||mxUtils.contains(b,d.x,k)||
1164e.push(new mxPoint(d.x,k)):(f=Math.max(b.x,c.x),e.push(new mxPoint(f+(Math.min(b.x+b.width,c.x+c.width)-f)/2,k)))))},SegmentConnector:function(a,b,c,d,e){var f=mxEdgeStyle.scalePointArray(a.absolutePoints,a.view.scale);b=mxEdgeStyle.scaleCellState(b,a.view.scale);var g=mxEdgeStyle.scaleCellState(c,a.view.scale);c=[];var k=0<e.length?e[0]:null,l=!0,m=f[0];null==m&&null!=b?m=new mxPoint(a.view.getRoutingCenterX(b),a.view.getRoutingCenterY(b)):null!=m&&(m=m.clone());var n=f.length-1;if(null!=d&&0<d.length){for(var p=
1165[],q=0;q<d.length;q++){var r=a.view.transformControlPoint(a,d[q],!0);null!=r&&p.push(r)}if(0==p.length)return;null!=m&&null!=p[0]&&(1>Math.abs(p[0].x-m.x)&&(p[0].x=m.x),1>Math.abs(p[0].y-m.y)&&(p[0].y=m.y));r=f[n];null!=r&&null!=p[p.length-1]&&(1>Math.abs(p[p.length-1].x-r.x)&&(p[p.length-1].x=r.x),1>Math.abs(p[p.length-1].y-r.y)&&(p[p.length-1].y=r.y));d=p[0];var t=b,u=f[0],x;x=d;null!=u&&(t=null);for(q=0;2>q;q++){var y=null!=u&&u.x==x.x,B=null!=u&&u.y==x.y,A=null!=t&&x.y>=t.y&&x.y<=t.y+t.height,
1166z=null!=t&&x.x>=t.x&&x.x<=t.x+t.width,t=B||null==u&&A;x=y||null==u&&z;if(0!=q||!(t&&x||y&&B)){if(null!=u&&!B&&!y&&(A||z)){l=A?!1:!0;break}if(x||t){l=t;1==q&&(l=0==p.length%2?t:x);break}}t=g;u=f[n];null!=u&&(t=null);x=p[p.length-1];y&&B&&(p=p.slice(1))}l&&(null!=f[0]&&f[0].y!=d.y||null==f[0]&&null!=b&&(d.y<b.y||d.y>b.y+b.height))?c.push(new mxPoint(m.x,d.y)):!l&&(null!=f[0]&&f[0].x!=d.x||null==f[0]&&null!=b&&(d.x<b.x||d.x>b.x+b.width))&&c.push(new mxPoint(d.x,m.y));l?m.y=d.y:m.x=d.x;for(q=0;q<p.length;q++)l=
1167!l,d=p[q],l?m.y=d.y:m.x=d.x,c.push(m.clone())}else d=m,l=!0;m=f[n];null==m&&null!=g&&(m=new mxPoint(a.view.getRoutingCenterX(g),a.view.getRoutingCenterY(g)));null!=m&&null!=d&&(l&&(null!=f[n]&&f[n].y!=d.y||null==f[n]&&null!=g&&(d.y<g.y||d.y>g.y+g.height))?c.push(new mxPoint(m.x,d.y)):!l&&(null!=f[n]&&f[n].x!=d.x||null==f[n]&&null!=g&&(d.x<g.x||d.x>g.x+g.width))&&c.push(new mxPoint(d.x,m.y)));if(null==f[0]&&null!=b)for(;0<c.length&&null!=c[0]&&mxUtils.contains(b,c[0].x,c[0].y);)c.splice(0,1);if(null==
1168f[n]&&null!=g)for(;0<c.length&&null!=c[c.length-1]&&mxUtils.contains(g,c[c.length-1].x,c[c.length-1].y);)c.splice(c.length-1,1);for(q=0;q<c.length;q++)if(f=c[q],f.x=Math.round(f.x*a.view.scale*10)/10,f.y=Math.round(f.y*a.view.scale*10)/10,null==k||1<=Math.abs(k.x-f.x)||Math.abs(k.y-f.y)>=Math.max(1,a.view.scale))e.push(f),k=f;null!=r&&null!=e[e.length-1]&&1>=Math.abs(r.x-e[e.length-1].x)&&1>=Math.abs(r.y-e[e.length-1].y)&&(e.splice(e.length-1,1),null!=e[e.length-1]&&(1>Math.abs(e[e.length-1].x-r.x)&&
1169(e[e.length-1].x=r.x),1>Math.abs(e[e.length-1].y-r.y)&&(e[e.length-1].y=r.y)))},orthBuffer:10,orthPointsFallback:!0,dirVectors:[[-1,0],[0,-1],[1,0],[0,1],[-1,0],[0,-1],[1,0]],wayPoints1:[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],routePatterns:[[[513,2308,2081,2562],[513,1090,514,2184,2114,2561],[513,1090,514,2564,2184,2562],[513,2308,2561,1090,514,2568,2308]],[[514,1057,513,2308,2081,2562],[514,2184,2114,2561],[514,2184,2562,1057,513,2564,2184],[514,1057,513,2568,2308,
11702561]],[[1090,514,1057,513,2308,2081,2562],[2114,2561],[1090,2562,1057,513,2564,2184],[1090,514,1057,513,2308,2561,2568]],[[2081,2562],[1057,513,1090,514,2184,2114,2561],[1057,513,1090,514,2184,2562,2564],[1057,2561,1090,514,2568,2308]]],inlineRoutePatterns:[[null,[2114,2568],null,null],[null,[514,2081,2114,2568],null,null],[null,[2114,2561],null,null],[[2081,2562],[1057,2114,2568],[2184,2562],null]],vertexSeperations:[],limits:[[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0]],LEFT_MASK:32,TOP_MASK:64,RIGHT_MASK:128,
1171BOTTOM_MASK:256,LEFT:1,TOP:2,RIGHT:4,BOTTOM:8,SIDE_MASK:480,CENTER_MASK:512,SOURCE_MASK:1024,TARGET_MASK:2048,VERTEX_MASK:3072,getJettySize:function(a,b){var c=mxUtils.getValue(a.style,b?mxConstants.STYLE_SOURCE_JETTY_SIZE:mxConstants.STYLE_TARGET_JETTY_SIZE,mxUtils.getValue(a.style,mxConstants.STYLE_JETTY_SIZE,mxEdgeStyle.orthBuffer));"auto"==c&&(mxUtils.getValue(a.style,b?mxConstants.STYLE_STARTARROW:mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE?(c=mxUtils.getNumber(a.style,b?mxConstants.STYLE_STARTSIZE:
1172mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE),c=Math.max(2,Math.ceil((c+mxEdgeStyle.orthBuffer)/mxEdgeStyle.orthBuffer))*mxEdgeStyle.orthBuffer):c=2*mxEdgeStyle.orthBuffer);return c},scalePointArray:function(a,b){var c=[];if(null!=a)for(var d=0;d<a.length;d++)if(null!=a[d]){var e=new mxPoint(Math.round(a[d].x/b*10)/10,Math.round(a[d].y/b*10)/10);c[d]=e}else c[d]=null;else c=null;return c},scaleCellState:function(a,b){var c;null!=a?(c=a.clone(),c.setRect(Math.round(a.x/b*10)/10,Math.round(a.y/
1173b*10)/10,Math.round(a.width/b*10)/10,Math.round(a.height/b*10)/10)):c=null;return c},OrthConnector:function(a,b,c,d,e){var f=a.view.graph,g=null==l?!1:f.getModel().isEdge(l.cell),k=null==m?!1:f.getModel().isEdge(m.cell),f=mxEdgeStyle.scalePointArray(a.absolutePoints,a.view.scale),l=mxEdgeStyle.scaleCellState(b,a.view.scale),m=mxEdgeStyle.scaleCellState(c,a.view.scale),n=f[0],p=f[f.length-1],q=null!=l?l.x:n.x,r=null!=l?l.y:n.y,t=null!=l?l.width:0,u=null!=l?l.height:0,x=null!=m?m.x:p.x,y=null!=m?m.y:
1174p.y,B=null!=m?m.width:0,A=null!=m?m.height:0,f=mxEdgeStyle.getJettySize(a,!0),z=mxEdgeStyle.getJettySize(a,!1);null!=l&&m==l&&(f=z=Math.max(f,z));var C=z+f,v=!1;if(null!=n&&null!=p)var v=p.x-n.x,D=p.y-n.y,v=v*v+D*D<C*C;if(v||mxEdgeStyle.orthPointsFallback&&null!=d&&0<d.length||g||k)mxEdgeStyle.SegmentConnector(a,b,c,d,e);else{c=[mxConstants.DIRECTION_MASK_ALL,mxConstants.DIRECTION_MASK_ALL];null!=l&&(c[0]=mxUtils.getPortConstraints(l,a,!0,mxConstants.DIRECTION_MASK_ALL),b=mxUtils.getValue(l.style,
1175mxConstants.STYLE_ROTATION,0),0!=b&&(b=mxUtils.getBoundingBox(new mxRectangle(q,r,t,u),b),q=b.x,r=b.y,t=b.width,u=b.height));null!=m&&(c[1]=mxUtils.getPortConstraints(m,a,!1,mxConstants.DIRECTION_MASK_ALL),b=mxUtils.getValue(m.style,mxConstants.STYLE_ROTATION,0),0!=b&&(b=mxUtils.getBoundingBox(new mxRectangle(x,y,B,A),b),x=b.x,y=b.y,B=b.width,A=b.height));b=[0,0];q=[[q,r,t,u],[x,y,B,A]];z=[f,z];for(v=0;2>v;v++)mxEdgeStyle.limits[v][1]=q[v][0]-z[v],mxEdgeStyle.limits[v][2]=q[v][1]-z[v],mxEdgeStyle.limits[v][4]=
1176q[v][0]+q[v][2]+z[v],mxEdgeStyle.limits[v][8]=q[v][1]+q[v][3]+z[v];z=q[0][1]+q[0][3]/2;r=q[1][1]+q[1][3]/2;v=q[0][0]+q[0][2]/2-(q[1][0]+q[1][2]/2);D=z-r;z=0;0>v?z=0>D?2:1:0>=D&&(z=3,0==v&&(z=2));r=null;null!=l&&(r=n);l=[[.5,.5],[.5,.5]];for(v=0;2>v;v++)null!=r&&(l[v][0]=(r.x-q[v][0])/q[v][2],1>=Math.abs(r.x-q[v][0])?b[v]=mxConstants.DIRECTION_MASK_WEST:1>=Math.abs(r.x-q[v][0]-q[v][2])&&(b[v]=mxConstants.DIRECTION_MASK_EAST),l[v][1]=(r.y-q[v][1])/q[v][3],1>=Math.abs(r.y-q[v][1])?b[v]=mxConstants.DIRECTION_MASK_NORTH:
11771>=Math.abs(r.y-q[v][1]-q[v][3])&&(b[v]=mxConstants.DIRECTION_MASK_SOUTH)),r=null,null!=m&&(r=p);v=q[0][1]-(q[1][1]+q[1][3]);p=q[0][0]-(q[1][0]+q[1][2]);r=q[1][1]-(q[0][1]+q[0][3]);t=q[1][0]-(q[0][0]+q[0][2]);mxEdgeStyle.vertexSeperations[1]=Math.max(p-C,0);mxEdgeStyle.vertexSeperations[2]=Math.max(v-C,0);mxEdgeStyle.vertexSeperations[4]=Math.max(r-C,0);mxEdgeStyle.vertexSeperations[3]=Math.max(t-C,0);C=[];m=[];n=[];m[0]=p>=t?mxConstants.DIRECTION_MASK_WEST:mxConstants.DIRECTION_MASK_EAST;n[0]=v>=
1178r?mxConstants.DIRECTION_MASK_NORTH:mxConstants.DIRECTION_MASK_SOUTH;m[1]=mxUtils.reversePortConstraints(m[0]);n[1]=mxUtils.reversePortConstraints(n[0]);p=p>=t?p:t;r=v>=r?v:r;t=[[0,0],[0,0]];u=!1;for(v=0;2>v;v++)0==b[v]&&(0==(m[v]&c[v])&&(m[v]=mxUtils.reversePortConstraints(m[v])),0==(n[v]&c[v])&&(n[v]=mxUtils.reversePortConstraints(n[v])),t[v][0]=n[v],t[v][1]=m[v]);0<r&&0<p&&(0<(m[0]&c[0])&&0<(n[1]&c[1])?(t[0][0]=m[0],t[0][1]=n[0],t[1][0]=n[1],t[1][1]=m[1],u=!0):0<(n[0]&c[0])&&0<(m[1]&c[1])&&(t[0][0]=
1179n[0],t[0][1]=m[0],t[1][0]=m[1],t[1][1]=n[1],u=!0));0<r&&!u&&(t[0][0]=n[0],t[0][1]=m[0],t[1][0]=n[1],t[1][1]=m[1],u=!0);0<p&&!u&&(t[0][0]=m[0],t[0][1]=n[0],t[1][0]=m[1],t[1][1]=n[1]);for(v=0;2>v;v++)0==b[v]&&(0==(t[v][0]&c[v])&&(t[v][0]=t[v][1]),C[v]=t[v][0]&c[v],C[v]|=(t[v][1]&c[v])<<8,C[v]|=(t[1-v][v]&c[v])<<16,C[v]|=(t[1-v][1-v]&c[v])<<24,0==(C[v]&15)&&(C[v]<<=8),0==(C[v]&3840)&&(C[v]=C[v]&15|C[v]>>8),0==(C[v]&983040)&&(C[v]=C[v]&65535|(C[v]&251658240)>>8),b[v]=C[v]&15,c[v]==mxConstants.DIRECTION_MASK_WEST||
1180c[v]==mxConstants.DIRECTION_MASK_NORTH||c[v]==mxConstants.DIRECTION_MASK_EAST||c[v]==mxConstants.DIRECTION_MASK_SOUTH)&&(b[v]=c[v]);c=b[0]==mxConstants.DIRECTION_MASK_EAST?3:b[0];C=b[1]==mxConstants.DIRECTION_MASK_EAST?3:b[1];c-=z;C-=z;1>c&&(c+=4);1>C&&(C+=4);c=mxEdgeStyle.routePatterns[c-1][C-1];mxEdgeStyle.wayPoints1[0][0]=q[0][0];mxEdgeStyle.wayPoints1[0][1]=q[0][1];switch(b[0]){case mxConstants.DIRECTION_MASK_WEST:mxEdgeStyle.wayPoints1[0][0]-=f;mxEdgeStyle.wayPoints1[0][1]+=l[0][1]*q[0][3];break;
1181case mxConstants.DIRECTION_MASK_SOUTH:mxEdgeStyle.wayPoints1[0][0]+=l[0][0]*q[0][2];mxEdgeStyle.wayPoints1[0][1]+=q[0][3]+f;break;case mxConstants.DIRECTION_MASK_EAST:mxEdgeStyle.wayPoints1[0][0]+=q[0][2]+f;mxEdgeStyle.wayPoints1[0][1]+=l[0][1]*q[0][3];break;case mxConstants.DIRECTION_MASK_NORTH:mxEdgeStyle.wayPoints1[0][0]+=l[0][0]*q[0][2],mxEdgeStyle.wayPoints1[0][1]-=f}f=0;m=C=0<(b[0]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))?0:1;for(v=0;v<c.length;v++)n=c[v]&15,u=n==mxConstants.DIRECTION_MASK_EAST?
11823:n,u+=z,4<u&&(u-=4),p=mxEdgeStyle.dirVectors[u-1],n=0<u%2?0:1,n!=C&&(f++,mxEdgeStyle.wayPoints1[f][0]=mxEdgeStyle.wayPoints1[f-1][0],mxEdgeStyle.wayPoints1[f][1]=mxEdgeStyle.wayPoints1[f-1][1]),x=0<(c[v]&mxEdgeStyle.TARGET_MASK),y=0<(c[v]&mxEdgeStyle.SOURCE_MASK),r=(c[v]&mxEdgeStyle.SIDE_MASK)>>5,r<<=z,15<r&&(r>>=4),t=0<(c[v]&mxEdgeStyle.CENTER_MASK),(y||x)&&9>r?(u=y?0:1,r=t&&0==n?q[u][0]+l[u][0]*q[u][2]:t?q[u][1]+l[u][1]*q[u][3]:mxEdgeStyle.limits[u][r],0==n?(r=(r-mxEdgeStyle.wayPoints1[f][0])*
1183p[0],0<r&&(mxEdgeStyle.wayPoints1[f][0]+=p[0]*r)):(r=(r-mxEdgeStyle.wayPoints1[f][1])*p[1],0<r&&(mxEdgeStyle.wayPoints1[f][1]+=p[1]*r))):t&&(mxEdgeStyle.wayPoints1[f][0]+=p[0]*Math.abs(mxEdgeStyle.vertexSeperations[u]/2),mxEdgeStyle.wayPoints1[f][1]+=p[1]*Math.abs(mxEdgeStyle.vertexSeperations[u]/2)),0<f&&mxEdgeStyle.wayPoints1[f][n]==mxEdgeStyle.wayPoints1[f-1][n]?f--:C=n;for(v=0;v<=f&&(v!=f||((0<(b[1]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))?0:1)==m?0:1)==(f+1)%2);v++)e.push(new mxPoint(Math.round(mxEdgeStyle.wayPoints1[v][0]*
1184a.view.scale*10)/10,Math.round(mxEdgeStyle.wayPoints1[v][1]*a.view.scale*10)/10));for(a=1;a<e.length;)null==e[a-1]||null==e[a]||e[a-1].x!=e[a].x||e[a-1].y!=e[a].y?a++:e.splice(a,1)}},getRoutePattern:function(a,b,c,d){var e=a[0]==mxConstants.DIRECTION_MASK_EAST?3:a[0];a=a[1]==mxConstants.DIRECTION_MASK_EAST?3:a[1];e-=b;a-=b;1>e&&(e+=4);1>a&&(a+=4);b=routePatterns[e-1][a-1];0!=c&&0!=d||null==inlineRoutePatterns[e-1][a-1]||(b=inlineRoutePatterns[e-1][a-1]);return b}},mxStyleRegistry={values:[],putValue:function(a,
1185b){mxStyleRegistry.values[a]=b},getValue:function(a){return mxStyleRegistry.values[a]},getName:function(a){for(var b in mxStyleRegistry.values)if(mxStyleRegistry.values[b]==a)return b;return null}};mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ELBOW,mxEdgeStyle.ElbowConnector);mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ENTITY_RELATION,mxEdgeStyle.EntityRelation);mxStyleRegistry.putValue(mxConstants.EDGESTYLE_LOOP,mxEdgeStyle.Loop);mxStyleRegistry.putValue(mxConstants.EDGESTYLE_SIDETOSIDE,mxEdgeStyle.SideToSide);
1186mxStyleRegistry.putValue(mxConstants.EDGESTYLE_TOPTOBOTTOM,mxEdgeStyle.TopToBottom);mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ORTHOGONAL,mxEdgeStyle.OrthConnector);mxStyleRegistry.putValue(mxConstants.EDGESTYLE_SEGMENT,mxEdgeStyle.SegmentConnector);mxStyleRegistry.putValue(mxConstants.PERIMETER_ELLIPSE,mxPerimeter.EllipsePerimeter);mxStyleRegistry.putValue(mxConstants.PERIMETER_RECTANGLE,mxPerimeter.RectanglePerimeter);mxStyleRegistry.putValue(mxConstants.PERIMETER_RHOMBUS,mxPerimeter.RhombusPerimeter);
1187mxStyleRegistry.putValue(mxConstants.PERIMETER_TRIANGLE,mxPerimeter.TrianglePerimeter);mxStyleRegistry.putValue(mxConstants.PERIMETER_HEXAGON,mxPerimeter.HexagonPerimeter);function mxGraphView(a){this.graph=a;this.translate=new mxPoint;this.graphBounds=new mxRectangle;this.states=new mxDictionary}mxGraphView.prototype=new mxEventSource;mxGraphView.prototype.constructor=mxGraphView;mxGraphView.prototype.EMPTY_POINT=new mxPoint;mxGraphView.prototype.doneResource="none"!=mxClient.language?"done":"";
1188mxGraphView.prototype.updatingDocumentResource="none"!=mxClient.language?"updatingDocument":"";mxGraphView.prototype.allowEval=!1;mxGraphView.prototype.captureDocumentGesture=!0;mxGraphView.prototype.rendering=!0;mxGraphView.prototype.graph=null;mxGraphView.prototype.currentRoot=null;mxGraphView.prototype.graphBounds=null;mxGraphView.prototype.scale=1;mxGraphView.prototype.translate=null;mxGraphView.prototype.states=null;mxGraphView.prototype.updateStyle=!1;mxGraphView.prototype.lastNode=null;
1189mxGraphView.prototype.lastHtmlNode=null;mxGraphView.prototype.lastForegroundNode=null;mxGraphView.prototype.lastForegroundHtmlNode=null;mxGraphView.prototype.getGraphBounds=function(){return this.graphBounds};mxGraphView.prototype.setGraphBounds=function(a){this.graphBounds=a};
1190mxGraphView.prototype.getBounds=function(a){var b=null;if(null!=a&&0<a.length)for(var c=this.graph.getModel(),d=0;d<a.length;d++)if(c.isVertex(a[d])||c.isEdge(a[d])){var e=this.getState(a[d]);null!=e&&(null==b?b=mxRectangle.fromRectangle(e):b.add(e))}return b};mxGraphView.prototype.setCurrentRoot=function(a){if(this.currentRoot!=a){var b=new mxCurrentRootChange(this,a);b.execute();var c=new mxUndoableEdit(this,!0);c.add(b);this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",c));this.graph.sizeDidChange()}return a};
1191mxGraphView.prototype.scaleAndTranslate=function(a,b,c){var d=this.scale,e=new mxPoint(this.translate.x,this.translate.y);if(this.scale!=a||this.translate.x!=b||this.translate.y!=c)this.scale=a,this.translate.x=b,this.translate.y=c,this.isEventsEnabled()&&this.viewStateChanged();this.fireEvent(new mxEventObject(mxEvent.SCALE_AND_TRANSLATE,"scale",a,"previousScale",d,"translate",this.translate,"previousTranslate",e))};mxGraphView.prototype.getScale=function(){return this.scale};
1192mxGraphView.prototype.setScale=function(a){var b=this.scale;this.scale!=a&&(this.scale=a,this.isEventsEnabled()&&this.viewStateChanged());this.fireEvent(new mxEventObject(mxEvent.SCALE,"scale",a,"previousScale",b))};mxGraphView.prototype.getTranslate=function(){return this.translate};
1193mxGraphView.prototype.setTranslate=function(a,b){var c=new mxPoint(this.translate.x,this.translate.y);if(this.translate.x!=a||this.translate.y!=b)this.translate.x=a,this.translate.y=b,this.isEventsEnabled()&&this.viewStateChanged();this.fireEvent(new mxEventObject(mxEvent.TRANSLATE,"translate",this.translate,"previousTranslate",c))};mxGraphView.prototype.viewStateChanged=function(){this.revalidate();this.graph.sizeDidChange()};
1194mxGraphView.prototype.refresh=function(){null!=this.currentRoot&&this.clear();this.revalidate()};mxGraphView.prototype.revalidate=function(){this.invalidate();this.validate()};mxGraphView.prototype.clear=function(a,b,c){var d=this.graph.getModel();a=a||d.getRoot();b=null!=b?b:!1;c=null!=c?c:!0;this.removeState(a);if(c&&(b||a!=this.currentRoot)){c=d.getChildCount(a);for(var e=0;e<c;e++)this.clear(d.getChildAt(a,e),b)}else this.invalidate(a)};
1195mxGraphView.prototype.invalidate=function(a,b,c){var d=this.graph.getModel();a=a||d.getRoot();b=null!=b?b:!0;c=null!=c?c:!0;var e=this.getState(a);null!=e&&(e.invalid=!0);if(!a.invalidating){a.invalidating=!0;if(b)for(var f=d.getChildCount(a),e=0;e<f;e++){var g=d.getChildAt(a,e);this.invalidate(g,b,c)}if(c)for(f=d.getEdgeCount(a),e=0;e<f;e++)this.invalidate(d.getEdgeAt(a,e),b,c);delete a.invalidating}};
1196mxGraphView.prototype.validate=function(a){var b=mxLog.enter("mxGraphView.validate");window.status=mxResources.get(this.updatingDocumentResource)||this.updatingDocumentResource;this.resetValidationState();var c=null;null==this.canvas||null!=this.textDiv||8!=document.documentMode||mxClient.IS_EM||(this.placeholder=document.createElement("div"),this.placeholder.style.position="absolute",this.placeholder.style.width=this.canvas.clientWidth+"px",this.placeholder.style.height=this.canvas.clientHeight+
1197"px",this.canvas.parentNode.appendChild(this.placeholder),c=this.drawPane.style.display,this.canvas.style.display="none",this.textDiv=document.createElement("div"),this.textDiv.style.position="absolute",this.textDiv.style.whiteSpace="nowrap",this.textDiv.style.visibility="hidden",this.textDiv.style.display="inline-block",this.textDiv.style.zoom="1",document.body.appendChild(this.textDiv));a=this.getBoundingBox(this.validateCellState(this.validateCell(a||(null!=this.currentRoot?this.currentRoot:this.graph.getModel().getRoot()))));
1198this.setGraphBounds(null!=a?a:this.getEmptyBounds());this.validateBackground();null!=c&&(this.canvas.style.display=c,this.textDiv.parentNode.removeChild(this.textDiv),null!=this.placeholder&&this.placeholder.parentNode.removeChild(this.placeholder),this.textDiv=null);this.resetValidationState();window.status=mxResources.get(this.doneResource)||this.doneResource;mxLog.leave("mxGraphView.validate",b)};
1199mxGraphView.prototype.getEmptyBounds=function(){return new mxRectangle(this.translate.x*this.scale,this.translate.y*this.scale)};
1200mxGraphView.prototype.getBoundingBox=function(a,b){b=null!=b?b:!0;var c=null;if(null!=a&&(null!=a.shape&&null!=a.shape.boundingBox&&(c=a.shape.boundingBox.clone()),null!=a.text&&null!=a.text.boundingBox&&(null!=c?c.add(a.text.boundingBox):c=a.text.boundingBox.clone()),b))for(var d=this.graph.getModel(),e=d.getChildCount(a.cell),f=0;f<e;f++){var g=this.getBoundingBox(this.getState(d.getChildAt(a.cell,f)));null!=g&&(null==c?c=g:c.add(g))}return c};
1201mxGraphView.prototype.createBackgroundPageShape=function(a){return new mxRectangleShape(a,"white","black")};mxGraphView.prototype.validateBackground=function(){this.validateBackgroundImage();this.validateBackgroundPage()};
1202mxGraphView.prototype.validateBackgroundImage=function(){var a=this.graph.getBackgroundImage();if(null!=a){if(null==this.backgroundImage||this.backgroundImage.image!=a.src){null!=this.backgroundImage&&this.backgroundImage.destroy();var b=new mxRectangle(0,0,1,1);this.backgroundImage=new mxImageShape(b,a.src);this.backgroundImage.dialect=this.graph.dialect;this.backgroundImage.init(this.backgroundPane);this.backgroundImage.redraw();8!=document.documentMode||mxClient.IS_EM||mxEvent.addGestureListeners(this.backgroundImage.node,
1203mxUtils.bind(this,function(a){this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(a))}),mxUtils.bind(this,function(a){this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(a))}),mxUtils.bind(this,function(a){this.graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(a))}))}this.redrawBackgroundImage(this.backgroundImage,a)}else null!=this.backgroundImage&&(this.backgroundImage.destroy(),this.backgroundImage=null)};
1204mxGraphView.prototype.validateBackgroundPage=function(){if(this.graph.pageVisible){var a=this.getBackgroundPageBounds();null==this.backgroundPageShape?(this.backgroundPageShape=this.createBackgroundPageShape(a),this.backgroundPageShape.scale=this.scale,this.backgroundPageShape.isShadow=!0,this.backgroundPageShape.dialect=this.graph.dialect,this.backgroundPageShape.init(this.backgroundPane),this.backgroundPageShape.redraw(),this.graph.nativeDblClickEnabled&&mxEvent.addListener(this.backgroundPageShape.node,
1205"dblclick",mxUtils.bind(this,function(a){this.graph.dblClick(a)})),mxEvent.addGestureListeners(this.backgroundPageShape.node,mxUtils.bind(this,function(a){this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(a))}),mxUtils.bind(this,function(a){null!=this.graph.tooltipHandler&&this.graph.tooltipHandler.isHideOnHover()&&this.graph.tooltipHandler.hide();this.graph.isMouseDown&&!mxEvent.isConsumed(a)&&this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(a))}),mxUtils.bind(this,function(a){this.graph.fireMouseEvent(mxEvent.MOUSE_UP,
1206new mxMouseEvent(a))}))):(this.backgroundPageShape.scale=this.scale,this.backgroundPageShape.bounds=a,this.backgroundPageShape.redraw())}else null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=null)};mxGraphView.prototype.getBackgroundPageBounds=function(){var a=this.graph.pageFormat,b=this.scale*this.graph.pageScale;return new mxRectangle(this.scale*this.translate.x,this.scale*this.translate.y,a.width*b,a.height*b)};
1207mxGraphView.prototype.redrawBackgroundImage=function(a,b){a.scale=this.scale;a.bounds.x=this.scale*(this.translate.x+b.x);a.bounds.y=this.scale*(this.translate.y+b.y);a.bounds.width=this.scale*b.width;a.bounds.height=this.scale*b.height;a.redraw()};
1208mxGraphView.prototype.validateCell=function(a,b){if(null!=a)if(b=(null!=b?b:!0)&&this.graph.isCellVisible(a),null==this.getState(a,b)||b)for(var c=this.graph.getModel(),d=c.getChildCount(a),e=0;e<d;e++)this.validateCell(c.getChildAt(a,e),b&&(!this.isCellCollapsed(a)||a==this.currentRoot));else this.removeState(a);return a};
1209mxGraphView.prototype.validateCellState=function(a,b){b=null!=b?b:!0;var c=null;if(null!=a&&(c=this.getState(a),null!=c)){var d=this.graph.getModel();if(c.invalid){c.invalid=!1;if(null==c.style||c.invalidStyle)c.style=this.graph.getCellStyle(c.cell),c.invalidStyle=!1;a!=this.currentRoot&&this.validateCellState(d.getParent(a),!1);c.setVisibleTerminalState(this.validateCellState(this.getVisibleTerminal(a,!0),!1),!0);c.setVisibleTerminalState(this.validateCellState(this.getVisibleTerminal(a,!1),!1),
1210!1);this.updateCellState(c);a==this.currentRoot||c.invalid||(this.graph.cellRenderer.redraw(c,!1,this.isRendering()),c.updateCachedBounds())}if(b&&!c.invalid){null!=c.shape&&this.stateValidated(c);for(var e=d.getChildCount(a),f=0;f<e;f++)this.validateCellState(d.getChildAt(a,f))}}return c};
1211mxGraphView.prototype.updateCellState=function(a){a.absoluteOffset.x=0;a.absoluteOffset.y=0;a.origin.x=0;a.origin.y=0;a.length=0;if(a.cell!=this.currentRoot){var b=this.graph.getModel(),c=this.getState(b.getParent(a.cell));null!=c&&c.cell!=this.currentRoot&&(a.origin.x+=c.origin.x,a.origin.y+=c.origin.y);var d=this.graph.getChildOffsetForCell(a.cell);null!=d&&(a.origin.x+=d.x,a.origin.y+=d.y);var e=this.graph.getCellGeometry(a.cell);null!=e&&(b.isEdge(a.cell)||(d=null!=e.offset?e.offset:this.EMPTY_POINT,
1212e.relative&&null!=c?b.isEdge(c.cell)?(d=this.getPoint(c,e),null!=d&&(a.origin.x+=d.x/this.scale-c.origin.x-this.translate.x,a.origin.y+=d.y/this.scale-c.origin.y-this.translate.y)):(a.origin.x+=e.x*c.unscaledWidth+d.x,a.origin.y+=e.y*c.unscaledHeight+d.y):(a.absoluteOffset.x=this.scale*d.x,a.absoluteOffset.y=this.scale*d.y,a.origin.x+=e.x,a.origin.y+=e.y)),a.x=this.scale*(this.translate.x+a.origin.x),a.y=this.scale*(this.translate.y+a.origin.y),a.width=this.scale*e.width,a.unscaledWidth=e.width,a.height=
1213this.scale*e.height,a.unscaledHeight=e.height,b.isVertex(a.cell)&&this.updateVertexState(a,e),b.isEdge(a.cell)&&this.updateEdgeState(a,e))}a.updateCachedBounds()};mxGraphView.prototype.isCellCollapsed=function(a){return this.graph.isCellCollapsed(a)};
1214mxGraphView.prototype.updateVertexState=function(a,b){var c=this.graph.getModel(),d=this.getState(c.getParent(a.cell));if(b.relative&&null!=d&&!c.isEdge(d.cell)){var e=mxUtils.toRadians(d.style[mxConstants.STYLE_ROTATION]||"0");if(0!=e){var c=Math.cos(e),e=Math.sin(e),f=new mxPoint(a.getCenterX(),a.getCenterY()),d=new mxPoint(d.getCenterX(),d.getCenterY()),d=mxUtils.getRotatedPoint(f,c,e,d);a.x=d.x-a.width/2;a.y=d.y-a.height/2}}this.updateVertexLabelOffset(a)};
1215mxGraphView.prototype.updateEdgeState=function(a,b){var c=a.getVisibleTerminalState(!0),d=a.getVisibleTerminalState(!1);null!=this.graph.model.getTerminal(a.cell,!0)&&null==c||null==c&&null==b.getTerminalPoint(!0)||null!=this.graph.model.getTerminal(a.cell,!1)&&null==d||null==d&&null==b.getTerminalPoint(!1)?this.clear(a.cell,!0):(this.updateFixedTerminalPoints(a,c,d),this.updatePoints(a,b.points,c,d),this.updateFloatingTerminalPoints(a,c,d),c=a.absolutePoints,a.cell!=this.currentRoot&&(null==c||2>
1216c.length||null==c[0]||null==c[c.length-1])?this.clear(a.cell,!0):(this.updateEdgeBounds(a),this.updateEdgeLabelOffset(a)))};
1217mxGraphView.prototype.updateVertexLabelOffset=function(a){var b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);if(b==mxConstants.ALIGN_LEFT)b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_WIDTH,null),b=null!=b?b*this.scale:a.width,a.absoluteOffset.x-=b;else if(b==mxConstants.ALIGN_RIGHT)a.absoluteOffset.x+=a.width;else if(b==mxConstants.ALIGN_CENTER&&(b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_WIDTH,null),null!=b)){var c=mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,
1218mxConstants.ALIGN_CENTER),d=0;c==mxConstants.ALIGN_CENTER?d=.5:c==mxConstants.ALIGN_RIGHT&&(d=1);0!=d&&(a.absoluteOffset.x-=(b*this.scale-a.width)*d)}b=mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);b==mxConstants.ALIGN_TOP?a.absoluteOffset.y-=a.height:b==mxConstants.ALIGN_BOTTOM&&(a.absoluteOffset.y+=a.height)};mxGraphView.prototype.resetValidationState=function(){this.lastForegroundHtmlNode=this.lastForegroundNode=this.lastHtmlNode=this.lastNode=null};
1219mxGraphView.prototype.stateValidated=function(a){var b=this.graph.getModel().isEdge(a.cell)&&this.graph.keepEdgesInForeground||this.graph.getModel().isVertex(a.cell)&&this.graph.keepEdgesInBackground;a=this.graph.cellRenderer.insertStateAfter(a,b?this.lastForegroundNode||this.lastNode:this.lastNode,b?this.lastForegroundHtmlNode||this.lastHtmlNode:this.lastHtmlNode);b?(this.lastForegroundHtmlNode=a[1],this.lastForegroundNode=a[0]):(this.lastHtmlNode=a[1],this.lastNode=a[0])};
1220mxGraphView.prototype.updateFixedTerminalPoints=function(a,b,c){this.updateFixedTerminalPoint(a,b,!0,this.graph.getConnectionConstraint(a,b,!0));this.updateFixedTerminalPoint(a,c,!1,this.graph.getConnectionConstraint(a,c,!1))};mxGraphView.prototype.updateFixedTerminalPoint=function(a,b,c,d){a.setAbsoluteTerminalPoint(this.getFixedTerminalPoint(a,b,c,d),c)};
1221mxGraphView.prototype.getFixedTerminalPoint=function(a,b,c,d){var e=null;null!=d&&(e=this.graph.getConnectionPoint(b,d,!1));if(null==e&&null==b){b=this.scale;d=this.translate;var f=a.origin,e=this.graph.getCellGeometry(a.cell).getTerminalPoint(c);null!=e&&(e=new mxPoint(b*(d.x+e.x+f.x),b*(d.y+e.y+f.y)))}return e};
1222mxGraphView.prototype.updateBoundsFromStencil=function(a){var b=null;if(null!=a&&null!=a.shape&&null!=a.shape.stencil&&"fixed"==a.shape.stencil.aspect){var b=mxRectangle.fromRectangle(a),c=a.shape.stencil.computeAspect(a.style,a.x,a.y,a.width,a.height);a.setRect(c.x,c.y,a.shape.stencil.w0*c.width,a.shape.stencil.h0*c.height)}return b};
1223mxGraphView.prototype.updatePoints=function(a,b,c,d){if(null!=a){var e=[];e.push(a.absolutePoints[0]);var f=this.getEdgeStyle(a,b,c,d);if(null!=f){c=this.getTerminalPort(a,c,!0);d=this.getTerminalPort(a,d,!1);var g=this.updateBoundsFromStencil(c),k=this.updateBoundsFromStencil(d);f(a,c,d,b,e);null!=g&&c.setRect(g.x,g.y,g.width,g.height);null!=k&&d.setRect(k.x,k.y,k.width,k.height)}else if(null!=b)for(f=0;f<b.length;f++)null!=b[f]&&(c=mxUtils.clone(b[f]),e.push(this.transformControlPoint(a,c)));b=
1224a.absolutePoints;e.push(b[b.length-1]);a.absolutePoints=e}};mxGraphView.prototype.transformControlPoint=function(a,b,c){return null!=a&&null!=b?(a=a.origin,c=c?1:this.scale,new mxPoint(c*(b.x+this.translate.x+a.x),c*(b.y+this.translate.y+a.y))):null};
1225mxGraphView.prototype.isLoopStyleEnabled=function(a,b,c,d){var e=this.graph.getConnectionConstraint(a,c,!0),f=this.graph.getConnectionConstraint(a,d,!1);return!(null==b||2>b.length)||mxUtils.getValue(a.style,mxConstants.STYLE_ORTHOGONAL_LOOP,!1)&&(null!=e&&null!=e.point||null!=f&&null!=f.point)?!1:null!=c&&c==d};
1226mxGraphView.prototype.getEdgeStyle=function(a,b,c,d){a=this.isLoopStyleEnabled(a,b,c,d)?mxUtils.getValue(a.style,mxConstants.STYLE_LOOP,this.graph.defaultLoopStyle):mxUtils.getValue(a.style,mxConstants.STYLE_NOEDGESTYLE,!1)?null:a.style[mxConstants.STYLE_EDGE];"string"==typeof a&&(b=mxStyleRegistry.getValue(a),null==b&&this.isAllowEval()&&(b=mxUtils.eval(a)),a=b);return"function"==typeof a?a:null};
1227mxGraphView.prototype.updateFloatingTerminalPoints=function(a,b,c){var d=a.absolutePoints,e=d[0];null==d[d.length-1]&&null!=c&&this.updateFloatingTerminalPoint(a,c,b,!1);null==e&&null!=b&&this.updateFloatingTerminalPoint(a,b,c,!0)};mxGraphView.prototype.updateFloatingTerminalPoint=function(a,b,c,d){a.setAbsoluteTerminalPoint(this.getFloatingTerminalPoint(a,b,c,d),d)};
1228mxGraphView.prototype.getFloatingTerminalPoint=function(a,b,c,d){b=this.getTerminalPort(a,b,d);var e=this.getNextPoint(a,c,d),f=this.graph.isOrthogonal(a);c=mxUtils.toRadians(Number(b.style[mxConstants.STYLE_ROTATION]||"0"));var g=new mxPoint(b.getCenterX(),b.getCenterY());if(0!=c)var k=Math.cos(-c),l=Math.sin(-c),e=mxUtils.getRotatedPoint(e,k,l,g);k=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||0);k+=parseFloat(a.style[d?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||
12290);a=this.getPerimeterPoint(b,e,0==c&&f,k);0!=c&&(k=Math.cos(c),l=Math.sin(c),a=mxUtils.getRotatedPoint(a,k,l,g));return a};mxGraphView.prototype.getTerminalPort=function(a,b,c){a=mxUtils.getValue(a.style,c?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT);null!=a&&(a=this.getState(this.graph.getModel().getCell(a)),null!=a&&(b=a));return b};
1230mxGraphView.prototype.getPerimeterPoint=function(a,b,c,d){var e=null;if(null!=a){var f=this.getPerimeterFunction(a);if(null!=f&&null!=b&&(d=this.getPerimeterBounds(a,d),0<d.width||0<d.height)){var e=new mxPoint(b.x,b.y),g=b=!1;this.graph.model.isVertex(a.cell)&&(b=1==mxUtils.getValue(a.style,mxConstants.STYLE_FLIPH,0),g=1==mxUtils.getValue(a.style,mxConstants.STYLE_FLIPV,0),null!=a.shape&&null!=a.shape.stencil&&(b=1==mxUtils.getValue(a.style,"stencilFlipH",0)||b,g=1==mxUtils.getValue(a.style,"stencilFlipV",
12310)||g),b&&(e.x=2*d.getCenterX()-e.x),g&&(e.y=2*d.getCenterY()-e.y));e=f(d,a,e,c);null!=e&&(b&&(e.x=2*d.getCenterX()-e.x),g&&(e.y=2*d.getCenterY()-e.y))}null==e&&(e=this.getPoint(a))}return e};mxGraphView.prototype.getRoutingCenterX=function(a){var b=null!=a.style?parseFloat(a.style[mxConstants.STYLE_ROUTING_CENTER_X])||0:0;return a.getCenterX()+b*a.width};
1232mxGraphView.prototype.getRoutingCenterY=function(a){var b=null!=a.style?parseFloat(a.style[mxConstants.STYLE_ROUTING_CENTER_Y])||0:0;return a.getCenterY()+b*a.height};mxGraphView.prototype.getPerimeterBounds=function(a,b){b=null!=b?b:0;null!=a&&(b+=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||0));return a.getPerimeterBounds(b*this.scale)};
1233mxGraphView.prototype.getPerimeterFunction=function(a){a=a.style[mxConstants.STYLE_PERIMETER];if("string"==typeof a){var b=mxStyleRegistry.getValue(a);null==b&&this.isAllowEval()&&(b=mxUtils.eval(a));a=b}return"function"==typeof a?a:null};mxGraphView.prototype.getNextPoint=function(a,b,c){a=a.absolutePoints;var d=null;null!=a&&2<=a.length&&(d=a.length,d=a[c?Math.min(1,d-1):Math.max(0,d-2)]);null==d&&null!=b&&(d=new mxPoint(b.getCenterX(),b.getCenterY()));return d};
1234mxGraphView.prototype.getVisibleTerminal=function(a,b){for(var c=this.graph.getModel(),d=c.getTerminal(a,b),e=d;null!=d&&d!=this.currentRoot;){if(!this.graph.isCellVisible(e)||this.isCellCollapsed(d))e=d;d=c.getParent(d)}null==e||c.contains(e)&&c.getParent(e)!=c.getRoot()&&e!=this.currentRoot||(e=null);return e};
1235mxGraphView.prototype.updateEdgeBounds=function(a){var b=a.absolutePoints,c=b[0],d=b[b.length-1];if(c.x!=d.x||c.y!=d.y){var e=d.x-c.x,f=d.y-c.y;a.terminalDistance=Math.sqrt(e*e+f*f)}else a.terminalDistance=0;var d=0,g=[],f=c;if(null!=f){for(var c=f.x,k=f.y,l=c,m=k,n=1;n<b.length;n++){var p=b[n];null!=p&&(e=f.x-p.x,f=f.y-p.y,e=Math.sqrt(e*e+f*f),g.push(e),d+=e,f=p,c=Math.min(f.x,c),k=Math.min(f.y,k),l=Math.max(f.x,l),m=Math.max(f.y,m))}a.length=d;a.segments=g;a.x=c;a.y=k;a.width=Math.max(1,l-c);a.height=
1236Math.max(1,m-k)}};
1237mxGraphView.prototype.getPoint=function(a,b){var c=a.getCenterX(),d=a.getCenterY();if(null==a.segments||null!=b&&!b.relative)null!=b&&(m=b.offset,null!=m&&(c+=m.x,d+=m.y));else{for(var e=a.absolutePoints.length,f=Math.round(((null!=b?b.x/2:0)+.5)*a.length),g=a.segments[0],k=0,l=1;f>=Math.round(k+g)&&l<e-1;)k+=g,g=a.segments[l++];e=0==g?0:(f-k)/g;f=a.absolutePoints[l-1];l=a.absolutePoints[l];if(null!=f&&null!=l){k=c=d=0;if(null!=b){var d=b.y,m=b.offset;null!=m&&(c=m.x,k=m.y)}m=l.x-f.x;l=l.y-f.y;c=
1238f.x+m*e+((0==g?0:l/g)*d+c)*this.scale;d=f.y+l*e-((0==g?0:m/g)*d-k)*this.scale}}return new mxPoint(c,d)};
1239mxGraphView.prototype.getRelativePoint=function(a,b,c){var d=this.graph.getModel().getGeometry(a.cell);if(null!=d){var e=a.absolutePoints.length;if(d.relative&&1<e){for(var d=a.length,f=a.segments,g=a.absolutePoints[0],k=a.absolutePoints[1],l=mxUtils.ptSegDistSq(g.x,g.y,k.x,k.y,b,c),m=0,n=0,p=0,q=2;q<e;q++)g=k,k=a.absolutePoints[q],g=mxUtils.ptSegDistSq(g.x,g.y,k.x,k.y,b,c),p+=f[q-2],g<=l&&(l=g,n=q-1,m=p);e=f[n];g=a.absolutePoints[n];k=a.absolutePoints[n+1];l=k.x;f=k.y;a=g.x-l;n=g.y-f;f=(a-(b-l))*
1240a+(n-(c-f))*n;a=Math.sqrt(0>=f?0:f*f/(a*a+n*n));a>e&&(a=e);e=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,k.x,k.y,b,c));-1==mxUtils.relativeCcw(g.x,g.y,k.x,k.y,b,c)&&(e=-e);return new mxPoint((d/2-m-a)/d*-2,e/this.scale)}}return new mxPoint};
1241mxGraphView.prototype.updateEdgeLabelOffset=function(a){var b=a.absolutePoints;a.absoluteOffset.x=a.getCenterX();a.absoluteOffset.y=a.getCenterY();if(null!=b&&0<b.length&&null!=a.segments){var c=this.graph.getCellGeometry(a.cell);if(c.relative){var d=this.getPoint(a,c);null!=d&&(a.absoluteOffset=d)}else{var d=b[0],e=b[b.length-1];if(null!=d&&null!=e){var b=e.x-d.x,f=e.y-d.y,g=e=0,c=c.offset;null!=c&&(e=c.x,g=c.y);c=d.y+f/2+g*this.scale;a.absoluteOffset.x=d.x+b/2+e*this.scale;a.absoluteOffset.y=c}}}};
1242mxGraphView.prototype.getState=function(a,b){b=b||!1;var c=null;null!=a&&(c=this.states.get(a),b&&(null==c||this.updateStyle)&&this.graph.isCellVisible(a)&&(null==c?(c=this.createState(a),this.states.put(a,c)):c.style=this.graph.getCellStyle(a)));return c};mxGraphView.prototype.isRendering=function(){return this.rendering};mxGraphView.prototype.setRendering=function(a){this.rendering=a};mxGraphView.prototype.isAllowEval=function(){return this.allowEval};
1243mxGraphView.prototype.setAllowEval=function(a){this.allowEval=a};mxGraphView.prototype.getStates=function(){return this.states};mxGraphView.prototype.setStates=function(a){this.states=a};mxGraphView.prototype.getCellStates=function(a){if(null==a)return this.states;for(var b=[],c=0;c<a.length;c++){var d=this.getState(a[c]);null!=d&&b.push(d)}return b};
1244mxGraphView.prototype.removeState=function(a){var b=null;null!=a&&(b=this.states.remove(a),null!=b&&(this.graph.cellRenderer.destroy(b),b.invalid=!0,b.destroy()));return b};mxGraphView.prototype.createState=function(a){return new mxCellState(this,a,this.graph.getCellStyle(a))};mxGraphView.prototype.getCanvas=function(){return this.canvas};mxGraphView.prototype.getBackgroundPane=function(){return this.backgroundPane};mxGraphView.prototype.getDrawPane=function(){return this.drawPane};
1245mxGraphView.prototype.getOverlayPane=function(){return this.overlayPane};mxGraphView.prototype.getDecoratorPane=function(){return this.decoratorPane};mxGraphView.prototype.isContainerEvent=function(a){a=mxEvent.getSource(a);return a==this.graph.container||a.parentNode==this.backgroundPane||null!=a.parentNode&&a.parentNode.parentNode==this.backgroundPane||a==this.canvas.parentNode||a==this.canvas||a==this.backgroundPane||a==this.drawPane||a==this.overlayPane||a==this.decoratorPane};
1246mxGraphView.prototype.isScrollEvent=function(a){var b=mxUtils.getOffset(this.graph.container);a=new mxPoint(a.clientX-b.x,a.clientY-b.y);var b=this.graph.container.offsetWidth,c=this.graph.container.clientWidth;if(b>c&&a.x>c+2&&a.x<=b)return!0;b=this.graph.container.offsetHeight;c=this.graph.container.clientHeight;return b>c&&a.y>c+2&&a.y<=b?!0:!1};mxGraphView.prototype.init=function(){this.installListeners();this.graph.dialect==mxConstants.DIALECT_SVG?this.createSvg():this.createHtml()};
1247mxGraphView.prototype.installListeners=function(){var a=this.graph,b=a.container;if(null!=b){mxClient.IS_TOUCH&&(mxEvent.addListener(b,"gesturestart",mxUtils.bind(this,function(b){a.fireGestureEvent(b);mxEvent.consume(b)})),mxEvent.addListener(b,"gesturechange",mxUtils.bind(this,function(b){a.fireGestureEvent(b);mxEvent.consume(b)})),mxEvent.addListener(b,"gestureend",mxUtils.bind(this,function(b){a.fireGestureEvent(b);mxEvent.consume(b)})));var c=null;mxEvent.addGestureListeners(b,mxUtils.bind(this,
1248function(b){!this.isContainerEvent(b)||(mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_GC||mxClient.IS_OP||mxClient.IS_SF)&&this.isScrollEvent(b)||(a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(b)),c=b.pointerId)}),mxUtils.bind(this,function(b){!this.isContainerEvent(b)||null!=c&&b.pointerId!=c||a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(b))}),mxUtils.bind(this,function(b){this.isContainerEvent(b)&&a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(b));c=null}));mxEvent.addListener(b,
1249"dblclick",mxUtils.bind(this,function(b){this.isContainerEvent(b)&&a.dblClick(b)}));var d=function(c){var d=null;mxClient.IS_TOUCH&&(d=mxEvent.getClientX(c),c=mxEvent.getClientY(c),c=mxUtils.convertPoint(b,d,c),d=a.view.getState(a.getCellAt(c.x,c.y)));return d};a.addMouseListener({mouseDown:function(b,c){a.popupMenuHandler.hideMenu()},mouseMove:function(){},mouseUp:function(){}});this.moveHandler=mxUtils.bind(this,function(b){null!=a.tooltipHandler&&a.tooltipHandler.isHideOnHover()&&a.tooltipHandler.hide();
1250this.captureDocumentGesture&&a.isMouseDown&&null!=a.container&&!this.isContainerEvent(b)&&"none"!=a.container.style.display&&"hidden"!=a.container.style.visibility&&!mxEvent.isConsumed(b)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(b,d(b)))});this.endHandler=mxUtils.bind(this,function(b){this.captureDocumentGesture&&a.isMouseDown&&null!=a.container&&!this.isContainerEvent(b)&&"none"!=a.container.style.display&&"hidden"!=a.container.style.visibility&&a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(b))});
1251mxEvent.addGestureListeners(document,null,this.moveHandler,this.endHandler)}};
1252mxGraphView.prototype.createHtml=function(){var a=this.graph.container;null!=a&&(this.canvas=this.createHtmlPane("100%","100%"),this.canvas.style.overflow="hidden",this.backgroundPane=this.createHtmlPane("1px","1px"),this.drawPane=this.createHtmlPane("1px","1px"),this.overlayPane=this.createHtmlPane("1px","1px"),this.decoratorPane=this.createHtmlPane("1px","1px"),this.canvas.appendChild(this.backgroundPane),this.canvas.appendChild(this.drawPane),this.canvas.appendChild(this.overlayPane),this.canvas.appendChild(this.decoratorPane),
1253a.appendChild(this.canvas),this.updateContainerStyle(a))};mxGraphView.prototype.updateHtmlCanvasSize=function(a,b){if(null!=this.graph.container){var c=this.graph.container.offsetHeight;this.canvas.style.width=this.graph.container.offsetWidth<a?a+"px":"100%";this.canvas.style.height=c<b?b+"px":"100%"}};
1254mxGraphView.prototype.createHtmlPane=function(a,b){var c=document.createElement("DIV");null!=a&&null!=b?(c.style.position="absolute",c.style.left="0px",c.style.top="0px",c.style.width=a,c.style.height=b):c.style.position="relative";return c};
1255mxGraphView.prototype.createSvg=function(){var a=this.graph.container;this.canvas=document.createElementNS(mxConstants.NS_SVG,"g");this.backgroundPane=document.createElementNS(mxConstants.NS_SVG,"g");this.canvas.appendChild(this.backgroundPane);this.drawPane=document.createElementNS(mxConstants.NS_SVG,"g");this.canvas.appendChild(this.drawPane);this.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g");this.canvas.appendChild(this.overlayPane);this.decoratorPane=document.createElementNS(mxConstants.NS_SVG,
1256"g");this.canvas.appendChild(this.decoratorPane);var b=document.createElementNS(mxConstants.NS_SVG,"svg");b.style.left="0px";b.style.top="0px";b.style.width="100%";b.style.height="100%";b.style.display="block";b.appendChild(this.canvas);if(mxClient.IS_IE||mxClient.IS_IE11)b.style.overflow="hidden";null!=a&&(a.appendChild(b),this.updateContainerStyle(a))};
1257mxGraphView.prototype.updateContainerStyle=function(a){var b=mxUtils.getCurrentStyle(a);null!=b&&"static"==b.position&&(a.style.position="relative");mxClient.IS_POINTER&&(a.style.touchAction="none")};
1258mxGraphView.prototype.destroy=function(){var a=null!=this.canvas?this.canvas.ownerSVGElement:null;null==a&&(a=this.canvas);null!=a&&null!=a.parentNode&&(this.clear(this.currentRoot,!0),mxEvent.removeGestureListeners(document,null,this.moveHandler,this.endHandler),mxEvent.release(this.graph.container),a.parentNode.removeChild(a),this.decoratorPane=this.overlayPane=this.drawPane=this.backgroundPane=this.canvas=this.endHandler=this.moveHandler=null)};
1259function mxCurrentRootChange(a,b){this.view=a;this.previous=this.root=b;this.isUp=null==b;if(!this.isUp)for(var c=this.view.currentRoot,d=this.view.graph.getModel();null!=c;){if(c==b){this.isUp=!0;break}c=d.getParent(c)}}
1260mxCurrentRootChange.prototype.execute=function(){var a=this.view.currentRoot;this.view.currentRoot=this.previous;this.previous=a;a=this.view.graph.getTranslateForRoot(this.view.currentRoot);null!=a&&(this.view.translate=new mxPoint(-a.x,-a.y));this.isUp?(this.view.clear(this.view.currentRoot,!0),this.view.validate()):this.view.refresh();this.view.fireEvent(new mxEventObject(this.isUp?mxEvent.UP:mxEvent.DOWN,"root",this.view.currentRoot,"previous",this.previous));this.isUp=!this.isUp};
1261function mxGraph(a,b,c,d,e){this.mouseListeners=null;this.renderHint=c;this.dialect=mxClient.IS_SVG?mxConstants.DIALECT_SVG:c==mxConstants.RENDERING_HINT_FASTEST?mxConstants.DIALECT_STRICTHTML:c==mxConstants.RENDERING_HINT_FASTER?mxConstants.DIALECT_PREFERHTML:mxConstants.DIALECT_MIXEDHTML;this.model=null!=b?b:new mxGraphModel;this.multiplicities=[];this.imageBundles=[];this.cellRenderer=this.createCellRenderer();this.setSelectionModel(this.createSelectionModel());this.setStylesheet(null!=d?d:this.createStylesheet());
1262this.view=this.createGraphView();this.view.rendering=null!=e?e:this.view.rendering;this.graphModelChangeListener=mxUtils.bind(this,function(a,b){this.graphModelChanged(b.getProperty("edit").changes)});this.model.addListener(mxEvent.CHANGE,this.graphModelChangeListener);this.createHandlers();null!=a&&this.init(a);this.view.rendering&&this.view.revalidate()}mxLoadResources?mxResources.add(mxClient.basePath+"/resources/graph"):mxClient.defaultBundles.push(mxClient.basePath+"/resources/graph");
1263mxGraph.prototype=new mxEventSource;mxGraph.prototype.constructor=mxGraph;mxGraph.prototype.mouseListeners=null;mxGraph.prototype.isMouseDown=!1;mxGraph.prototype.model=null;mxGraph.prototype.view=null;mxGraph.prototype.stylesheet=null;mxGraph.prototype.selectionModel=null;mxGraph.prototype.cellEditor=null;mxGraph.prototype.cellRenderer=null;mxGraph.prototype.multiplicities=null;mxGraph.prototype.renderHint=null;mxGraph.prototype.dialect=null;mxGraph.prototype.gridSize=10;
1264mxGraph.prototype.gridEnabled=!0;mxGraph.prototype.portsEnabled=!0;mxGraph.prototype.nativeDblClickEnabled=!0;mxGraph.prototype.doubleTapEnabled=!0;mxGraph.prototype.doubleTapTimeout=500;mxGraph.prototype.doubleTapTolerance=25;mxGraph.prototype.lastTouchY=0;mxGraph.prototype.lastTouchY=0;mxGraph.prototype.lastTouchTime=0;mxGraph.prototype.tapAndHoldEnabled=!0;mxGraph.prototype.tapAndHoldDelay=500;mxGraph.prototype.tapAndHoldInProgress=!1;mxGraph.prototype.tapAndHoldValid=!1;
1265mxGraph.prototype.initialTouchX=0;mxGraph.prototype.initialTouchY=0;mxGraph.prototype.tolerance=4;mxGraph.prototype.defaultOverlap=.5;mxGraph.prototype.defaultParent=null;mxGraph.prototype.alternateEdgeStyle=null;mxGraph.prototype.backgroundImage=null;mxGraph.prototype.pageVisible=!1;mxGraph.prototype.pageBreaksVisible=!1;mxGraph.prototype.pageBreakColor="gray";mxGraph.prototype.pageBreakDashed=!0;mxGraph.prototype.minPageBreakDist=20;mxGraph.prototype.preferPageSize=!1;
1266mxGraph.prototype.pageFormat=mxConstants.PAGE_FORMAT_A4_PORTRAIT;mxGraph.prototype.pageScale=1.5;mxGraph.prototype.enabled=!0;mxGraph.prototype.escapeEnabled=!0;mxGraph.prototype.invokesStopCellEditing=!0;mxGraph.prototype.enterStopsCellEditing=!1;mxGraph.prototype.useScrollbarsForPanning=!0;mxGraph.prototype.exportEnabled=!0;mxGraph.prototype.importEnabled=!0;mxGraph.prototype.cellsLocked=!1;mxGraph.prototype.cellsCloneable=!0;mxGraph.prototype.foldingEnabled=!0;mxGraph.prototype.cellsEditable=!0;
1267mxGraph.prototype.cellsDeletable=!0;mxGraph.prototype.cellsMovable=!0;mxGraph.prototype.edgeLabelsMovable=!0;mxGraph.prototype.vertexLabelsMovable=!1;mxGraph.prototype.dropEnabled=!1;mxGraph.prototype.splitEnabled=!0;mxGraph.prototype.cellsResizable=!0;mxGraph.prototype.cellsBendable=!0;mxGraph.prototype.cellsSelectable=!0;mxGraph.prototype.cellsDisconnectable=!0;mxGraph.prototype.autoSizeCells=!1;mxGraph.prototype.autoSizeCellsOnAdd=!1;mxGraph.prototype.autoScroll=!0;
1268mxGraph.prototype.ignoreScrollbars=!1;mxGraph.prototype.translateToScrollPosition=!1;mxGraph.prototype.timerAutoScroll=!1;mxGraph.prototype.allowAutoPanning=!1;mxGraph.prototype.autoExtend=!0;mxGraph.prototype.maximumGraphBounds=null;mxGraph.prototype.minimumGraphSize=null;mxGraph.prototype.minimumContainerSize=null;mxGraph.prototype.maximumContainerSize=null;mxGraph.prototype.resizeContainer=!1;mxGraph.prototype.border=0;mxGraph.prototype.keepEdgesInForeground=!1;
1269mxGraph.prototype.keepEdgesInBackground=!1;mxGraph.prototype.allowNegativeCoordinates=!0;mxGraph.prototype.constrainChildren=!0;mxGraph.prototype.constrainRelativeChildren=!1;mxGraph.prototype.extendParents=!0;mxGraph.prototype.extendParentsOnAdd=!0;mxGraph.prototype.extendParentsOnMove=!1;mxGraph.prototype.recursiveResize=!1;mxGraph.prototype.collapseToPreferredSize=!0;mxGraph.prototype.zoomFactor=1.2;mxGraph.prototype.keepSelectionVisibleOnZoom=!1;mxGraph.prototype.centerZoom=!0;
1270mxGraph.prototype.resetViewOnRootChange=!0;mxGraph.prototype.resetEdgesOnResize=!1;mxGraph.prototype.resetEdgesOnMove=!1;mxGraph.prototype.resetEdgesOnConnect=!0;mxGraph.prototype.allowLoops=!1;mxGraph.prototype.defaultLoopStyle=mxEdgeStyle.Loop;mxGraph.prototype.multigraph=!0;mxGraph.prototype.connectableEdges=!1;mxGraph.prototype.allowDanglingEdges=!0;mxGraph.prototype.cloneInvalidEdges=!1;mxGraph.prototype.disconnectOnMove=!0;mxGraph.prototype.labelsVisible=!0;mxGraph.prototype.htmlLabels=!1;
1271mxGraph.prototype.swimlaneSelectionEnabled=!0;mxGraph.prototype.swimlaneNesting=!0;mxGraph.prototype.swimlaneIndicatorColorAttribute=mxConstants.STYLE_FILLCOLOR;mxGraph.prototype.imageBundles=null;mxGraph.prototype.minFitScale=.1;mxGraph.prototype.maxFitScale=8;mxGraph.prototype.panDx=0;mxGraph.prototype.panDy=0;mxGraph.prototype.collapsedImage=new mxImage(mxClient.imageBasePath+"/collapsed.gif",9,9);mxGraph.prototype.expandedImage=new mxImage(mxClient.imageBasePath+"/expanded.gif",9,9);
1272mxGraph.prototype.warningImage=new mxImage(mxClient.imageBasePath+"/warning"+(mxClient.IS_MAC?".png":".gif"),16,16);mxGraph.prototype.alreadyConnectedResource="none"!=mxClient.language?"alreadyConnected":"";mxGraph.prototype.containsValidationErrorsResource="none"!=mxClient.language?"containsValidationErrors":"";mxGraph.prototype.collapseExpandResource="none"!=mxClient.language?"collapse-expand":"";
1273mxGraph.prototype.init=function(a){this.container=a;this.cellEditor=this.createCellEditor();this.view.init();this.sizeDidChange();mxEvent.addListener(a,"mouseleave",mxUtils.bind(this,function(a){null!=this.tooltipHandler&&null!=this.tooltipHandler.div&&this.tooltipHandler.div!=a.relatedTarget&&this.tooltipHandler.hide()}));mxClient.IS_IE&&(mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()})),mxEvent.addListener(a,"selectstart",mxUtils.bind(this,function(a){return this.isEditing()||
1274!this.isMouseDown&&!mxEvent.isShiftDown(a)})))};mxGraph.prototype.createHandlers=function(){this.tooltipHandler=this.createTooltipHandler();this.tooltipHandler.setEnabled(!1);this.selectionCellsHandler=this.createSelectionCellsHandler();this.connectionHandler=this.createConnectionHandler();this.connectionHandler.setEnabled(!1);this.graphHandler=this.createGraphHandler();this.panningHandler=this.createPanningHandler();this.panningHandler.panningEnabled=!1;this.popupMenuHandler=this.createPopupMenuHandler()};
1275mxGraph.prototype.createTooltipHandler=function(){return new mxTooltipHandler(this)};mxGraph.prototype.createSelectionCellsHandler=function(){return new mxSelectionCellsHandler(this)};mxGraph.prototype.createConnectionHandler=function(){return new mxConnectionHandler(this)};mxGraph.prototype.createGraphHandler=function(){return new mxGraphHandler(this)};mxGraph.prototype.createPanningHandler=function(){return new mxPanningHandler(this)};mxGraph.prototype.createPopupMenuHandler=function(){return new mxPopupMenuHandler(this)};
1276mxGraph.prototype.createSelectionModel=function(){return new mxGraphSelectionModel(this)};mxGraph.prototype.createStylesheet=function(){return new mxStylesheet};mxGraph.prototype.createGraphView=function(){return new mxGraphView(this)};mxGraph.prototype.createCellRenderer=function(){return new mxCellRenderer};mxGraph.prototype.createCellEditor=function(){return new mxCellEditor(this)};mxGraph.prototype.getModel=function(){return this.model};mxGraph.prototype.getView=function(){return this.view};
1277mxGraph.prototype.getStylesheet=function(){return this.stylesheet};mxGraph.prototype.setStylesheet=function(a){this.stylesheet=a};mxGraph.prototype.getSelectionModel=function(){return this.selectionModel};mxGraph.prototype.setSelectionModel=function(a){this.selectionModel=a};
1278mxGraph.prototype.getSelectionCellsForChanges=function(a,b){for(var c=new mxDictionary,d=[],e=mxUtils.bind(this,function(a){if(!c.get(a)&&this.model.contains(a))if(this.model.isEdge(a)||this.model.isVertex(a))c.put(a,!0),d.push(a);else for(var b=this.model.getChildCount(a),f=0;f<b;f++)e(this.model.getChildAt(a,f))}),f=0;f<a.length;f++){var g=a[f];if(g.constructor!=mxRootChange&&(null==b||!b(g))){var k=null;g instanceof mxChildChange?k=g.child:null!=g.cell&&g.cell instanceof mxCell&&(k=g.cell);null!=
1279k&&e(k)}}return d};mxGraph.prototype.graphModelChanged=function(a){for(var b=0;b<a.length;b++)this.processChange(a[b]);this.updateSelection();this.view.validate();this.sizeDidChange()};
1280mxGraph.prototype.updateSelection=function(){for(var a=this.getSelectionCells(),b=[],c=0;c<a.length;c++)if(this.model.contains(a[c])&&this.isCellVisible(a[c]))for(var d=this.model.getParent(a[c]);null!=d&&d!=this.view.currentRoot;){if(this.isCellCollapsed(d)||!this.isCellVisible(d)){b.push(a[c]);break}d=this.model.getParent(d)}else b.push(a[c]);this.removeSelectionCells(b)};
1281mxGraph.prototype.processChange=function(a){if(a instanceof mxRootChange)this.clearSelection(),this.setDefaultParent(null),this.removeStateForCell(a.previous),this.resetViewOnRootChange&&(this.view.scale=1,this.view.translate.x=0,this.view.translate.y=0),this.fireEvent(new mxEventObject(mxEvent.ROOT));else if(a instanceof mxChildChange){var b=this.model.getParent(a.child);this.view.invalidate(a.child,!0,!0);if(!this.model.contains(b)||this.isCellCollapsed(b))this.view.invalidate(a.child,!0,!0),this.removeStateForCell(a.child),
1282this.view.currentRoot==a.child&&this.home();b!=a.previous&&(null!=b&&this.view.invalidate(b,!1,!1),null!=a.previous&&this.view.invalidate(a.previous,!1,!1))}else a instanceof mxTerminalChange||a instanceof mxGeometryChange?(a instanceof mxTerminalChange||null==a.previous&&null!=a.geometry||null!=a.previous&&!a.previous.equals(a.geometry))&&this.view.invalidate(a.cell):a instanceof mxValueChange?this.view.invalidate(a.cell,!1,!1):a instanceof mxStyleChange?(this.view.invalidate(a.cell,!0,!0),a=this.view.getState(a.cell),
1283null!=a&&(a.invalidStyle=!0)):null!=a.cell&&a.cell instanceof mxCell&&this.removeStateForCell(a.cell)};mxGraph.prototype.removeStateForCell=function(a){for(var b=this.model.getChildCount(a),c=0;c<b;c++)this.removeStateForCell(this.model.getChildAt(a,c));this.view.invalidate(a,!1,!0);this.view.removeState(a)};
1284mxGraph.prototype.addCellOverlay=function(a,b){null==a.overlays&&(a.overlays=[]);a.overlays.push(b);var c=this.view.getState(a);null!=c&&this.cellRenderer.redraw(c);this.fireEvent(new mxEventObject(mxEvent.ADD_OVERLAY,"cell",a,"overlay",b));return b};mxGraph.prototype.getCellOverlays=function(a){return a.overlays};
1285mxGraph.prototype.removeCellOverlay=function(a,b){if(null==b)this.removeCellOverlays(a);else{var c=mxUtils.indexOf(a.overlays,b);0<=c?(a.overlays.splice(c,1),0==a.overlays.length&&(a.overlays=null),c=this.view.getState(a),null!=c&&this.cellRenderer.redraw(c),this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,"cell",a,"overlay",b))):b=null}return b};
1286mxGraph.prototype.removeCellOverlays=function(a){var b=a.overlays;if(null!=b){a.overlays=null;var c=this.view.getState(a);null!=c&&this.cellRenderer.redraw(c);for(c=0;c<b.length;c++)this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,"cell",a,"overlay",b[c]))}return b};mxGraph.prototype.clearCellOverlays=function(a){a=null!=a?a:this.model.getRoot();this.removeCellOverlays(a);for(var b=this.model.getChildCount(a),c=0;c<b;c++){var d=this.model.getChildAt(a,c);this.clearCellOverlays(d)}};
1287mxGraph.prototype.setCellWarning=function(a,b,c,d){if(null!=b&&0<b.length)return c=null!=c?c:this.warningImage,b=new mxCellOverlay(c,"<font color=red>"+b+"</font>"),d&&b.addListener(mxEvent.CLICK,mxUtils.bind(this,function(b,c){this.isEnabled()&&this.setSelectionCell(a)})),this.addCellOverlay(a,b);this.removeCellOverlays(a);return null};mxGraph.prototype.startEditing=function(a){this.startEditingAtCell(null,a)};
1288mxGraph.prototype.startEditingAtCell=function(a,b){null!=b&&mxEvent.isMultiTouchEvent(b)||(null==a&&(a=this.getSelectionCell(),null==a||this.isCellEditable(a)||(a=null)),null!=a&&(this.fireEvent(new mxEventObject(mxEvent.START_EDITING,"cell",a,"event",b)),this.cellEditor.startEditing(a,b),this.fireEvent(new mxEventObject(mxEvent.EDITING_STARTED,"cell",a,"event",b))))};mxGraph.prototype.getEditingValue=function(a,b){return this.convertValueToString(a)};
1289mxGraph.prototype.stopEditing=function(a){this.cellEditor.stopEditing(a);this.fireEvent(new mxEventObject(mxEvent.EDITING_STOPPED,"cancel",a))};mxGraph.prototype.labelChanged=function(a,b,c){this.model.beginUpdate();try{var d=a.value;this.cellLabelChanged(a,b,this.isAutoSizeCell(a));this.fireEvent(new mxEventObject(mxEvent.LABEL_CHANGED,"cell",a,"value",b,"old",d,"event",c))}finally{this.model.endUpdate()}return a};
1290mxGraph.prototype.cellLabelChanged=function(a,b,c){this.model.beginUpdate();try{this.model.setValue(a,b),c&&this.cellSizeUpdated(a,!1)}finally{this.model.endUpdate()}};mxGraph.prototype.escape=function(a){this.fireEvent(new mxEventObject(mxEvent.ESCAPE,"event",a))};
1291mxGraph.prototype.click=function(a){var b=a.getEvent(),c=a.getCell(),d=new mxEventObject(mxEvent.CLICK,"event",b,"cell",c);a.isConsumed()&&d.consume();this.fireEvent(d);if(this.isEnabled()&&!mxEvent.isConsumed(b)&&!d.isConsumed()){if(null!=c){if(this.isTransparentClickEvent(b)){var e=!1;a=this.getCellAt(a.graphX,a.graphY,null,null,null,mxUtils.bind(this,function(a){var b=this.isCellSelected(a.cell);e=e||b;return!e||b||a.cell!=c&&this.model.isAncestor(a.cell,c)}));null!=a&&(c=a)}}else if(this.isSwimlaneSelectionEnabled()&&
1292(c=this.getSwimlaneAt(a.getGraphX(),a.getGraphY()),!(null==c||this.isToggleEvent(b)&&mxEvent.isAltDown(b)))){d=c;for(a=[];null!=d;){var d=this.model.getParent(d),f=this.view.getState(d);this.isSwimlane(d)&&null!=f&&a.push(d)}if(0<a.length)for(a=a.reverse(),a.splice(0,0,c),a.push(c),d=0;d<a.length-1;d++)this.isCellSelected(a[d])&&(c=a[this.isToggleEvent(b)?d:d+1])}null!=c?this.selectCellForEvent(c,b):this.isToggleEvent(b)||this.clearSelection()}};
1293mxGraph.prototype.isSiblingSelected=function(a){for(var b=this.model,c=b.getParent(a),d=b.getChildCount(c),e=0;e<d;e++){var f=b.getChildAt(c,e);if(a!=f&&this.isCellSelected(f))return!0}return!1};mxGraph.prototype.dblClick=function(a,b){var c=new mxEventObject(mxEvent.DOUBLE_CLICK,"event",a,"cell",b);this.fireEvent(c);!this.isEnabled()||mxEvent.isConsumed(a)||c.isConsumed()||null==b||!this.isCellEditable(b)||this.isEditing(b)||(this.startEditingAtCell(b,a),mxEvent.consume(a))};
1294mxGraph.prototype.tapAndHold=function(a){var b=a.getEvent(),c=new mxEventObject(mxEvent.TAP_AND_HOLD,"event",b,"cell",a.getCell());this.fireEvent(c);c.isConsumed()&&(this.panningHandler.panningTrigger=!1);this.isEnabled()&&!mxEvent.isConsumed(b)&&!c.isConsumed()&&this.connectionHandler.isEnabled()&&(b=this.view.getState(this.connectionHandler.marker.getCell(a)),null!=b&&(this.connectionHandler.marker.currentColor=this.connectionHandler.marker.validColor,this.connectionHandler.marker.markedState=b,
1295this.connectionHandler.marker.mark(),this.connectionHandler.first=new mxPoint(a.getGraphX(),a.getGraphY()),this.connectionHandler.edgeState=this.connectionHandler.createEdgeState(a),this.connectionHandler.previous=b,this.connectionHandler.fireEvent(new mxEventObject(mxEvent.START,"state",this.connectionHandler.previous))))};
1296mxGraph.prototype.scrollPointToVisible=function(a,b,c,d){if(this.timerAutoScroll||!this.ignoreScrollbars&&!mxUtils.hasScrollbars(this.container))this.allowAutoPanning&&!this.panningHandler.isActive()&&(null==this.panningManager&&(this.panningManager=this.createPanningManager()),this.panningManager.panTo(a+this.panDx,b+this.panDy));else{var e=this.container;d=null!=d?d:20;if(a>=e.scrollLeft&&b>=e.scrollTop&&a<=e.scrollLeft+e.clientWidth&&b<=e.scrollTop+e.clientHeight){var f=e.scrollLeft+e.clientWidth-
1297a;if(f<d){if(a=e.scrollLeft,e.scrollLeft+=d-f,c&&a==e.scrollLeft){if(this.dialect==mxConstants.DIALECT_SVG){a=this.view.getDrawPane().ownerSVGElement;var g=this.container.scrollWidth+d-f}else g=Math.max(e.clientWidth,e.scrollWidth)+d-f,a=this.view.getCanvas();a.style.width=g+"px";e.scrollLeft+=d-f}}else f=a-e.scrollLeft,f<d&&(e.scrollLeft-=d-f);f=e.scrollTop+e.clientHeight-b;f<d?(a=e.scrollTop,e.scrollTop+=d-f,a==e.scrollTop&&c&&(this.dialect==mxConstants.DIALECT_SVG?(a=this.view.getDrawPane().ownerSVGElement,
1298b=this.container.scrollHeight+d-f):(b=Math.max(e.clientHeight,e.scrollHeight)+d-f,a=this.view.getCanvas()),a.style.height=b+"px",e.scrollTop+=d-f)):(f=b-e.scrollTop,f<d&&(e.scrollTop-=d-f))}}};mxGraph.prototype.createPanningManager=function(){return new mxPanningManager(this)};
1299mxGraph.prototype.getBorderSizes=function(){var a=mxUtils.getCurrentStyle(this.container);return new mxRectangle(mxUtils.parseCssNumber(a.paddingLeft)+("none"!=a.borderLeftStyle?mxUtils.parseCssNumber(a.borderLeftWidth):0),mxUtils.parseCssNumber(a.paddingTop)+("none"!=a.borderTopStyle?mxUtils.parseCssNumber(a.borderTopWidth):0),mxUtils.parseCssNumber(a.paddingRight)+("none"!=a.borderRightStyle?mxUtils.parseCssNumber(a.borderRightWidth):0),mxUtils.parseCssNumber(a.paddingBottom)+("none"!=a.borderBottomStyle?
1300mxUtils.parseCssNumber(a.borderBottomWidth):0))};mxGraph.prototype.getPreferredPageSize=function(a,b,c){a=this.view.translate;var d=this.pageFormat,e=this.pageScale,d=new mxRectangle(0,0,Math.ceil(d.width*e),Math.ceil(d.height*e));return new mxRectangle(0,0,(this.pageBreaksVisible?Math.ceil(b/d.width):1)*d.width+2+a.x,(this.pageBreaksVisible?Math.ceil(c/d.height):1)*d.height+2+a.y)};
1301mxGraph.prototype.fit=function(a,b,c,d,e,f,g){if(null!=this.container){a=null!=a?a:this.getBorder();b=null!=b?b:!1;c=null!=c?c:0;d=null!=d?d:!0;e=null!=e?e:!1;f=null!=f?f:!1;var k=this.getBorderSizes(),l=this.container.offsetWidth-k.x-k.width-1,m=null!=g?g:this.container.offsetHeight-k.y-k.height-1;g=this.view.getGraphBounds();if(0<g.width&&0<g.height){b&&null!=g.x&&null!=g.y&&(g=g.clone(),g.width+=g.x,g.height+=g.y,g.x=0,g.y=0);var k=this.view.scale,n=g.width/k,p=g.height/k;null!=this.backgroundImage&&
1302(n=Math.max(n,this.backgroundImage.width-g.x/k),p=Math.max(p,this.backgroundImage.height-g.y/k));var q=(b?a:2*a)+c+1,l=l-q,m=m-q;e=e?m/p:f?l/n:Math.min(l/n,m/p);null!=this.minFitScale&&(e=Math.max(e,this.minFitScale));null!=this.maxFitScale&&(e=Math.min(e,this.maxFitScale));if(d)b?this.view.scale!=e&&this.view.setScale(e):mxUtils.hasScrollbars(this.container)?(this.view.setScale(e),a=this.getGraphBounds(),null!=a.x&&(this.container.scrollLeft=a.x),null!=a.y&&(this.container.scrollTop=a.y)):this.view.scaleAndTranslate(e,
1303null!=g.x?Math.floor(this.view.translate.x-g.x/k+a/e+c/2):a,null!=g.y?Math.floor(this.view.translate.y-g.y/k+a/e+c/2):a);else return e}}return this.view.scale};
1304mxGraph.prototype.sizeDidChange=function(){var a=this.getGraphBounds();if(null!=this.container){var b=this.getBorder(),c=Math.max(0,a.x)+a.width+2*b,b=Math.max(0,a.y)+a.height+2*b;null!=this.minimumContainerSize&&(c=Math.max(c,this.minimumContainerSize.width),b=Math.max(b,this.minimumContainerSize.height));this.resizeContainer&&this.doResizeContainer(c,b);if(this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var d=this.getPreferredPageSize(a,Math.max(1,c),Math.max(1,b));null!=d&&(c=d.width*this.view.scale,
1305b=d.height*this.view.scale)}null!=this.minimumGraphSize&&(c=Math.max(c,this.minimumGraphSize.width*this.view.scale),b=Math.max(b,this.minimumGraphSize.height*this.view.scale));c=Math.ceil(c);b=Math.ceil(b);this.dialect==mxConstants.DIALECT_SVG?(d=this.view.getDrawPane().ownerSVGElement,null!=d&&(d.style.minWidth=Math.max(1,c)+"px",d.style.minHeight=Math.max(1,b)+"px",d.style.width="100%",d.style.height="100%")):(this.view.canvas.style.minWidth=Math.max(1,c)+"px",this.view.canvas.style.minHeight=Math.max(1,
1306b)+"px");this.updatePageBreaks(this.pageBreaksVisible,c,b)}this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",a))};mxGraph.prototype.doResizeContainer=function(a,b){null!=this.maximumContainerSize&&(a=Math.min(this.maximumContainerSize.width,a),b=Math.min(this.maximumContainerSize.height,b));this.container.style.width=Math.ceil(a)+"px";this.container.style.height=Math.ceil(b)+"px"};
1307mxGraph.prototype.updatePageBreaks=function(a,b,c){b=this.view.scale;c=this.view.translate;var d=this.pageFormat,e=b*this.pageScale,f=new mxRectangle(0,0,d.width*e,d.height*e),d=mxRectangle.fromRectangle(this.getGraphBounds());d.width=Math.max(1,d.width);d.height=Math.max(1,d.height);f.x=Math.floor((d.x-c.x*b)/f.width)*f.width+c.x*b;f.y=Math.floor((d.y-c.y*b)/f.height)*f.height+c.y*b;d.width=Math.ceil((d.width+(d.x-f.x))/f.width)*f.width;d.height=Math.ceil((d.height+(d.y-f.y))/f.height)*f.height;
1308var g=(a=a&&Math.min(f.width,f.height)>this.minPageBreakDist)?Math.ceil(d.height/f.height)+1:0,k=a?Math.ceil(d.width/f.width)+1:0,l=(k-1)*f.width,m=(g-1)*f.height;null==this.horizontalPageBreaks&&0<g&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<k&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var b=a==this.horizontalPageBreaks?g:k,c=0;c<=b;c++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(f.x),Math.round(f.y+c*f.height)),new mxPoint(Math.round(f.x+
1309l),Math.round(f.y+c*f.height))]:[new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y)),new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y+m))];null!=a[c]?(a[c].points=d,a[c].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.pointerEvents=!1,d.isDashed=this.pageBreakDashed,d.init(this.view.backgroundPane),d.redraw(),a[c]=d)}for(c=b;c<a.length;c++)a[c].destroy();a.splice(b,a.length-b)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)};
1310mxGraph.prototype.getCurrentCellStyle=function(a,b){var c=b?null:this.view.getState(a);return null!=c?c.style:this.getCellStyle(a)};mxGraph.prototype.getCellStyle=function(a){var b=this.model.getStyle(a);a=this.model.isEdge(a)?this.stylesheet.getDefaultEdgeStyle():this.stylesheet.getDefaultVertexStyle();null!=b&&(a=this.postProcessCellStyle(this.stylesheet.getCellStyle(b,a)));null==a&&(a={});return a};
1311mxGraph.prototype.postProcessCellStyle=function(a){if(null!=a){var b=a[mxConstants.STYLE_IMAGE],c=this.getImageFromBundles(b);null!=c?a[mxConstants.STYLE_IMAGE]=c:c=b;null!=c&&"data:image/"==c.substring(0,11)&&("data:image/svg+xml,<"==c.substring(0,20)?c=c.substring(0,19)+encodeURIComponent(c.substring(19)):"data:image/svg+xml,%3C"!=c.substring(0,22)&&(b=c.indexOf(","),0<b&&";base64,"!=c.substring(b-7,b+1)&&(c=c.substring(0,b)+";base64,"+c.substring(b+1))),a[mxConstants.STYLE_IMAGE]=c)}return a};
1312mxGraph.prototype.setCellStyle=function(a,b){b=b||this.getSelectionCells();if(null!=b){this.model.beginUpdate();try{for(var c=0;c<b.length;c++)this.model.setStyle(b[c],a)}finally{this.model.endUpdate()}}};mxGraph.prototype.toggleCellStyle=function(a,b,c){c=c||this.getSelectionCell();return this.toggleCellStyles(a,b,[c])};
1313mxGraph.prototype.toggleCellStyles=function(a,b,c){b=null!=b?b:!1;c=c||this.getEditableCells(this.getSelectionCells());var d=null;null!=c&&0<c.length&&(d=this.getCurrentCellStyle(c[0]),d=mxUtils.getValue(d,a,b)?0:1,this.setCellStyles(a,d,c));return d};mxGraph.prototype.setCellStyles=function(a,b,c){c=c||this.getEditableCells(this.getSelectionCells());mxUtils.setCellStyles(this.model,c,a,b)};mxGraph.prototype.toggleCellStyleFlags=function(a,b,c){this.setCellStyleFlags(a,b,null,c)};
1314mxGraph.prototype.setCellStyleFlags=function(a,b,c,d){d=d||this.getEditableCells(this.getSelectionCells());null!=d&&0<d.length&&(null==c&&(c=this.getCurrentCellStyle(d[0]),c=(parseInt(c[a]||0)&b)!=b),mxUtils.setCellStyleFlags(this.model,d,a,b,c))};mxGraph.prototype.getOriginForCell=function(a){a=this.model.getParent(a);for(var b=new mxPoint;null!=a;){var c=this.getCellGeometry(a);null==c||c.relative||(b.x+=c.x,b.y+=c.y);a=this.model.getParent(a)}return b};
1315mxGraph.prototype.alignCells=function(a,b,c){null==b&&(b=this.getMovableCells(this.getSelectionCells()));if(null!=b&&1<b.length){if(null==c)for(var d=0;d<b.length;d++){var e=this.getOriginForCell(b[d]),f=this.getCellGeometry(b[d]);if(!this.model.isEdge(b[d])&&null!=f&&!f.relative)if(null==c)if(a==mxConstants.ALIGN_CENTER){c=e.x+f.x+f.width/2;break}else if(a==mxConstants.ALIGN_RIGHT)c=e.x+f.x+f.width;else if(a==mxConstants.ALIGN_TOP)c=e.y+f.y;else if(a==mxConstants.ALIGN_MIDDLE){c=e.y+f.y+f.height/
13162;break}else c=a==mxConstants.ALIGN_BOTTOM?e.y+f.y+f.height:e.x+f.x;else c=a==mxConstants.ALIGN_RIGHT?Math.max(c,e.x+f.x+f.width):a==mxConstants.ALIGN_TOP?Math.min(c,e.y+f.y):a==mxConstants.ALIGN_BOTTOM?Math.max(c,e.y+f.y+f.height):Math.min(c,e.x+f.x)}if(null!=c){b=mxUtils.sortCells(b);this.model.beginUpdate();try{for(d=0;d<b.length;d++)e=this.getOriginForCell(b[d]),f=this.getCellGeometry(b[d]),this.model.isEdge(b[d])||null==f||f.relative||(f=f.clone(),a==mxConstants.ALIGN_CENTER?f.x=c-e.x-f.width/
13172:a==mxConstants.ALIGN_RIGHT?f.x=c-e.x-f.width:a==mxConstants.ALIGN_TOP?f.y=c-e.y:a==mxConstants.ALIGN_MIDDLE?f.y=c-e.y-f.height/2:a==mxConstants.ALIGN_BOTTOM?f.y=c-e.y-f.height:f.x=c-e.x,this.resizeCell(b[d],f));this.fireEvent(new mxEventObject(mxEvent.ALIGN_CELLS,"align",a,"cells",b))}finally{this.model.endUpdate()}}}return b};
1318mxGraph.prototype.flipEdge=function(a){if(null!=a&&null!=this.alternateEdgeStyle){this.model.beginUpdate();try{var b=this.model.getStyle(a);null==b||0==b.length?this.model.setStyle(a,this.alternateEdgeStyle):this.model.setStyle(a,null);this.resetEdge(a);this.fireEvent(new mxEventObject(mxEvent.FLIP_EDGE,"edge",a))}finally{this.model.endUpdate()}}return a};mxGraph.prototype.addImageBundle=function(a){this.imageBundles.push(a)};
1319mxGraph.prototype.removeImageBundle=function(a){for(var b=[],c=0;c<this.imageBundles.length;c++)this.imageBundles[c]!=a&&b.push(this.imageBundles[c]);this.imageBundles=b};mxGraph.prototype.getImageFromBundles=function(a){if(null!=a)for(var b=0;b<this.imageBundles.length;b++){var c=this.imageBundles[b].getImage(a);if(null!=c)return c}return null};
1320mxGraph.prototype.orderCells=function(a,b,c){null==b&&(b=mxUtils.sortCells(this.getEditableCells(this.getSelectionCells()),!0));this.model.beginUpdate();try{this.cellsOrdered(b,a,c),this.fireEvent(new mxEventObject(mxEvent.ORDER_CELLS,"back",a,"cells",b,"increment",c))}finally{this.model.endUpdate()}return b};
1321mxGraph.prototype.cellsOrdered=function(a,b,c){if(null!=a){this.model.beginUpdate();try{for(var d=0;d<a.length;d++){var e=this.model.getParent(a[d]);b?c?this.model.add(e,a[d],Math.max(0,e.getIndex(a[d])-1)):this.model.add(e,a[d],d):c?this.model.add(e,a[d],Math.min(this.model.getChildCount(e)-1,e.getIndex(a[d])+1)):this.model.add(e,a[d],this.model.getChildCount(e)-1)}this.fireEvent(new mxEventObject(mxEvent.CELLS_ORDERED,"back",b,"cells",a,"increment",c))}finally{this.model.endUpdate()}}};
1322mxGraph.prototype.groupCells=function(a,b,c){null==c&&(c=mxUtils.sortCells(this.getSelectionCells(),!0));c=this.getCellsForGroup(c);null==a&&(a=this.createGroupCell(c));var d=this.getBoundsForGroup(a,c,b);if(1<c.length&&null!=d){var e=this.model.getParent(a);null==e&&(e=this.model.getParent(c[0]));this.model.beginUpdate();try{null==this.getCellGeometry(a)&&this.model.setGeometry(a,new mxGeometry);var f=this.model.getChildCount(e);this.cellsAdded([a],e,f,null,null,!1,!1,!1);f=this.model.getChildCount(a);
1323this.cellsAdded(c,a,f,null,null,!1,!1,!1);this.cellsMoved(c,-d.x,-d.y,!1,!1,!1);this.cellsResized([a],[d],!1);this.fireEvent(new mxEventObject(mxEvent.GROUP_CELLS,"group",a,"border",b,"cells",c))}finally{this.model.endUpdate()}}return a};mxGraph.prototype.getCellsForGroup=function(a){var b=[];if(null!=a&&0<a.length){var c=this.model.getParent(a[0]);b.push(a[0]);for(var d=1;d<a.length;d++)this.model.getParent(a[d])==c&&b.push(a[d])}return b};
1324mxGraph.prototype.getBoundsForGroup=function(a,b,c){b=this.getBoundingBoxFromGeometry(b,!0);null!=b&&(this.isSwimlane(a)&&(a=this.getStartSize(a),b.x-=a.width,b.y-=a.height,b.width+=a.width,b.height+=a.height),null!=c&&(b.x-=c,b.y-=c,b.width+=2*c,b.height+=2*c));return b};mxGraph.prototype.createGroupCell=function(a){a=new mxCell("");a.setVertex(!0);a.setConnectable(!1);return a};
1325mxGraph.prototype.ungroupCells=function(a){var b=[];null==a&&(a=this.getCellsForUngroup());if(null!=a&&0<a.length){this.model.beginUpdate();try{for(var c=0;c<a.length;c++){var d=this.model.getChildren(a[c]);if(null!=d&&0<d.length){var d=d.slice(),e=this.model.getParent(a[c]),f=this.model.getChildCount(e);this.cellsAdded(d,e,f,null,null,!0);for(var b=b.concat(d),g=0;g<d.length;g++){var k=this.view.getState(d[g]),l=this.getCellGeometry(d[g]);null!=k&&null!=l&&l.relative&&(l=l.clone(),l.x=k.origin.x,
1326l.y=k.origin.y,l.relative=!1,this.model.setGeometry(d[g],l))}}}this.removeCellsAfterUngroup(a);this.fireEvent(new mxEventObject(mxEvent.UNGROUP_CELLS,"cells",a))}finally{this.model.endUpdate()}}return b};mxGraph.prototype.getCellsForUngroup=function(){for(var a=this.getEditableCells(this.getSelectionCells()),b=[],c=0;c<a.length;c++)this.model.isVertex(a[c])&&0<this.model.getChildCount(a[c])&&b.push(a[c]);return b};mxGraph.prototype.removeCellsAfterUngroup=function(a){this.cellsRemoved(this.addAllEdges(a))};
1327mxGraph.prototype.removeCellsFromParent=function(a){null==a&&(a=this.getSelectionCells());this.model.beginUpdate();try{var b=this.getDefaultParent(),c=this.model.getChildCount(b);this.cellsAdded(a,b,c,null,null,!0);this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS_FROM_PARENT,"cells",a))}finally{this.model.endUpdate()}return a};
1328mxGraph.prototype.updateGroupBounds=function(a,b,c,d,e,f,g){null==a&&(a=this.getSelectionCells());b=null!=b?b:0;c=null!=c?c:!1;d=null!=d?d:0;e=null!=e?e:0;f=null!=f?f:0;g=null!=g?g:0;this.model.beginUpdate();try{for(var k=a.length-1;0<=k;k--){var l=this.getCellGeometry(a[k]);if(null!=l){var m=this.getChildCells(a[k]);if(null!=m&&0<m.length){var n=this.getBoundingBoxFromGeometry(m,!0);if(null!=n&&0<n.width&&0<n.height){var p=this.isSwimlane(a[k])?this.getActualStartSize(a[k],!0):new mxRectangle,l=
1329l.clone();c&&(l.x=Math.round(l.x+n.x-b-p.x-g),l.y=Math.round(l.y+n.y-b-p.y-d));l.width=Math.round(n.width+2*b+p.x+g+e+p.width);l.height=Math.round(n.height+2*b+p.y+d+f+p.height);this.model.setGeometry(a[k],l);this.moveCells(m,b+p.x-n.x+g,b+p.y-n.y+d)}}}}}finally{this.model.endUpdate()}return a};
1330mxGraph.prototype.getBoundingBox=function(a){var b=null;if(null!=a&&0<a.length)for(var c=0;c<a.length;c++)if(this.model.isVertex(a[c])||this.model.isEdge(a[c])){var d=this.view.getBoundingBox(this.view.getState(a[c]),!0);null!=d&&(null==b?b=mxRectangle.fromRectangle(d):b.add(d))}return b};mxGraph.prototype.cloneCell=function(a,b,c,d){return this.cloneCells([a],b,c,d)[0]};
1331mxGraph.prototype.cloneCells=function(a,b,c,d){b=null!=b?b:!0;var e=null;if(null!=a){for(var f=new mxDictionary,e=[],g=0;g<a.length;g++)f.put(a[g],!0),e.push(a[g]);if(0<e.length)for(var k=this.view.scale,l=this.view.translate,e=this.model.cloneCells(a,!0,c),g=0;g<a.length;g++)if(!b&&this.model.isEdge(e[g])&&null!=this.getEdgeValidationError(e[g],this.model.getTerminal(e[g],!0),this.model.getTerminal(e[g],!1)))e[g]=null;else{var m=this.model.getGeometry(e[g]);if(null!=m){var n=this.view.getState(a[g]),
1332p=this.view.getState(this.model.getParent(a[g]));if(null!=n&&null!=p)if(c=d?0:p.origin.x,p=d?0:p.origin.y,this.model.isEdge(e[g])){if(n=n.absolutePoints,null!=n){for(var q=this.model.getTerminal(a[g],!0);null!=q&&!f.get(q);)q=this.model.getParent(q);null==q&&null!=n[0]&&m.setTerminalPoint(new mxPoint(n[0].x/k-l.x,n[0].y/k-l.y),!0);for(q=this.model.getTerminal(a[g],!1);null!=q&&!f.get(q);)q=this.model.getParent(q);var r=n.length-1;null==q&&null!=n[r]&&m.setTerminalPoint(new mxPoint(n[r].x/k-l.x,n[r].y/
1333k-l.y),!1);m=m.points;if(null!=m)for(n=0;n<m.length;n++)m[n].x+=c,m[n].y+=p}}else m.translate(c,p)}}else e=[]}return e};mxGraph.prototype.insertVertex=function(a,b,c,d,e,f,g,k,l){b=this.createVertex(a,b,c,d,e,f,g,k,l);return this.addCell(b,a)};mxGraph.prototype.createVertex=function(a,b,c,d,e,f,g,k,l){a=new mxGeometry(d,e,f,g);a.relative=null!=l?l:!1;c=new mxCell(c,a,k);c.setId(b);c.setVertex(!0);c.setConnectable(!0);return c};
1334mxGraph.prototype.insertEdge=function(a,b,c,d,e,f){b=this.createEdge(a,b,c,d,e,f);return this.addEdge(b,a,d,e)};mxGraph.prototype.createEdge=function(a,b,c,d,e,f){a=new mxCell(c,new mxGeometry,f);a.setId(b);a.setEdge(!0);a.geometry.relative=!0;return a};mxGraph.prototype.addEdge=function(a,b,c,d,e){return this.addCell(a,b,e,c,d)};mxGraph.prototype.addCell=function(a,b,c,d,e){return this.addCells([a],b,c,d,e)[0]};
1335mxGraph.prototype.addCells=function(a,b,c,d,e,f){null==b&&(b=this.getDefaultParent());null==c&&(c=this.model.getChildCount(b));this.model.beginUpdate();try{this.cellsAdded(a,b,c,d,e,null!=f?f:!1,!0),this.fireEvent(new mxEventObject(mxEvent.ADD_CELLS,"cells",a,"parent",b,"index",c,"source",d,"target",e))}finally{this.model.endUpdate()}return a};
1336mxGraph.prototype.cellsAdded=function(a,b,c,d,e,f,g,k){if(null!=a&&null!=b&&null!=c){this.model.beginUpdate();try{for(var l=f?this.view.getState(b):null,m=null!=l?l.origin:null,n=new mxPoint(0,0),l=0;l<a.length;l++)if(null==a[l])c--;else{var p=this.model.getParent(a[l]);if(null!=m&&a[l]!=b&&b!=p){var q=this.view.getState(p),r=null!=q?q.origin:n,t=this.model.getGeometry(a[l]);if(null!=t){var u=r.x-m.x,x=r.y-m.y,t=t.clone();t.translate(u,x);t.relative||!this.model.isVertex(a[l])||this.isAllowNegativeCoordinates()||
1337(t.x=Math.max(0,t.x),t.y=Math.max(0,t.y));this.model.setGeometry(a[l],t)}}b==p&&c+l>this.model.getChildCount(b)&&c--;this.model.add(b,a[l],c+l);this.autoSizeCellsOnAdd&&this.autoSizeCell(a[l],!0);(null==k||k)&&this.isExtendParentsOnAdd(a[l])&&this.isExtendParent(a[l])&&this.extendParent(a[l]);(null==g||g)&&this.constrainChild(a[l]);null!=d&&this.cellConnected(a[l],d,!0);null!=e&&this.cellConnected(a[l],e,!1)}this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",a,"parent",b,"index",c,"source",
1338d,"target",e,"absolute",f))}finally{this.model.endUpdate()}}};mxGraph.prototype.autoSizeCell=function(a,b){if(null!=b?b:1)for(var c=this.model.getChildCount(a),d=0;d<c;d++)this.autoSizeCell(this.model.getChildAt(a,d));this.getModel().isVertex(a)&&this.isAutoSizeCell(a)&&this.updateCellSize(a)};
1339mxGraph.prototype.removeCells=function(a,b){b=null!=b?b:!0;null==a&&(a=this.getDeletableCells(this.getSelectionCells()));if(b)a=this.getDeletableCells(this.addAllEdges(a));else{a=a.slice();for(var c=this.getDeletableCells(this.getAllEdges(a)),d=new mxDictionary,e=0;e<a.length;e++)d.put(a[e],!0);for(e=0;e<c.length;e++)null!=this.view.getState(c[e])||d.get(c[e])||(d.put(c[e],!0),a.push(c[e]))}this.model.beginUpdate();try{this.cellsRemoved(a),this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS,"cells",
1340a,"includeEdges",b))}finally{this.model.endUpdate()}return a};
1341mxGraph.prototype.cellsRemoved=function(a){if(null!=a&&0<a.length){var b=this.view.scale,c=this.view.translate;this.model.beginUpdate();try{for(var d=new mxDictionary,e=0;e<a.length;e++)d.put(a[e],!0);for(e=0;e<a.length;e++){for(var f=this.getAllEdges([a[e]]),g=mxUtils.bind(this,function(d,f){var g=this.model.getGeometry(d);if(null!=g){for(var k=this.model.getTerminal(d,f),l=!1,m=k;null!=m;){if(a[e]==m){l=!0;break}m=this.model.getParent(m)}l&&(g=g.clone(),l=this.view.getState(d),null!=l&&null!=l.absolutePoints?
1342(k=l.absolutePoints,m=f?0:k.length-1,g.setTerminalPoint(new mxPoint(k[m].x/b-c.x-l.origin.x,k[m].y/b-c.y-l.origin.y),f)):(k=this.view.getState(k),null!=k&&g.setTerminalPoint(new mxPoint(k.getCenterX()/b-c.x,k.getCenterY()/b-c.y),f)),this.model.setGeometry(d,g),this.model.setTerminal(d,null,f))}}),k=0;k<f.length;k++)d.get(f[k])||(d.put(f[k],!0),g(f[k],!0),g(f[k],!1));this.model.remove(a[e])}this.fireEvent(new mxEventObject(mxEvent.CELLS_REMOVED,"cells",a))}finally{this.model.endUpdate()}}};
1343mxGraph.prototype.splitEdge=function(a,b,c,d,e,f,g,k){d=d||0;e=e||0;k=null!=k?k:this.model.getParent(a);f=this.model.getTerminal(a,!0);this.model.beginUpdate();try{if(null==c){c=this.cloneCell(a);var l=this.view.getState(a),m=this.getCellGeometry(c);if(null!=m&&null!=m.points&&null!=l){var n=this.view.translate,p=this.view.scale,q=mxUtils.findNearestSegment(l,(d+n.x)*p,(e+n.y)*p);m.points=m.points.slice(0,q);m=this.getCellGeometry(a);null!=m&&null!=m.points&&(m=m.clone(),m.points=m.points.slice(q),
1344this.model.setGeometry(a,m))}}this.cellsMoved(b,d,e,!1,!1);this.cellsAdded(b,k,this.model.getChildCount(k),null,null,!0);this.cellsAdded([c],k,this.model.getChildCount(k),f,b[0],!1);this.cellConnected(a,b[0],!0);this.fireEvent(new mxEventObject(mxEvent.SPLIT_EDGE,"edge",a,"cells",b,"newEdge",c,"dx",d,"dy",e))}finally{this.model.endUpdate()}return c};
1345mxGraph.prototype.toggleCells=function(a,b,c){null==b&&(b=this.getSelectionCells());c&&(b=this.addAllEdges(b));this.model.beginUpdate();try{this.cellsToggled(b,a),this.fireEvent(new mxEventObject(mxEvent.TOGGLE_CELLS,"show",a,"cells",b,"includeEdges",c))}finally{this.model.endUpdate()}return b};mxGraph.prototype.cellsToggled=function(a,b){if(null!=a&&0<a.length){this.model.beginUpdate();try{for(var c=0;c<a.length;c++)this.model.setVisible(a[c],b)}finally{this.model.endUpdate()}}};
1346mxGraph.prototype.foldCells=function(a,b,c,d,e){b=null!=b?b:!1;null==c&&(c=this.getFoldableCells(this.getSelectionCells(),a));this.stopEditing(!1);this.model.beginUpdate();try{this.cellsFolded(c,a,b,d),this.fireEvent(new mxEventObject(mxEvent.FOLD_CELLS,"collapse",a,"recurse",b,"cells",c))}finally{this.model.endUpdate()}return c};
1347mxGraph.prototype.cellsFolded=function(a,b,c,d){if(null!=a&&0<a.length){this.model.beginUpdate();try{for(var e=0;e<a.length;e++)if((!d||this.isCellFoldable(a[e],b))&&b!=this.isCellCollapsed(a[e])){this.model.setCollapsed(a[e],b);this.swapBounds(a[e],b);this.isExtendParent(a[e])&&this.extendParent(a[e]);if(c){var f=this.model.getChildren(a[e]);this.cellsFolded(f,b,c)}this.constrainChild(a[e])}this.fireEvent(new mxEventObject(mxEvent.CELLS_FOLDED,"cells",a,"collapse",b,"recurse",c))}finally{this.model.endUpdate()}}};
1348mxGraph.prototype.swapBounds=function(a,b){if(null!=a){var c=this.model.getGeometry(a);null!=c&&(c=c.clone(),this.updateAlternateBounds(a,c,b),c.swap(),this.model.setGeometry(a,c))}};
1349mxGraph.prototype.updateAlternateBounds=function(a,b,c){if(null!=a&&null!=b){c=this.getCurrentCellStyle(a);if(null==b.alternateBounds){var d=b;this.collapseToPreferredSize&&(a=this.getPreferredSizeForCell(a),null!=a&&(d=a,a=mxUtils.getValue(c,mxConstants.STYLE_STARTSIZE),0<a&&(d.height=Math.max(d.height,a))));b.alternateBounds=new mxRectangle(0,0,d.width,d.height)}if(null!=b.alternateBounds){b.alternateBounds.x=b.x;b.alternateBounds.y=b.y;var e=mxUtils.toRadians(c[mxConstants.STYLE_ROTATION]||0);
13500!=e&&(c=b.alternateBounds.getCenterX()-b.getCenterX(),d=b.alternateBounds.getCenterY()-b.getCenterY(),a=Math.cos(e),e=Math.sin(e),b.alternateBounds.x+=a*c-e*d-c,b.alternateBounds.y+=e*c+a*d-d)}}};mxGraph.prototype.addAllEdges=function(a){var b=a.slice();return mxUtils.removeDuplicates(b.concat(this.getAllEdges(a)))};
1351mxGraph.prototype.getAllEdges=function(a){var b=[];if(null!=a)for(var c=0;c<a.length;c++){for(var d=this.model.getEdgeCount(a[c]),e=0;e<d;e++)b.push(this.model.getEdgeAt(a[c],e));d=this.model.getChildren(a[c]);b=b.concat(this.getAllEdges(d))}return b};mxGraph.prototype.updateCellSize=function(a,b){b=null!=b?b:!1;this.model.beginUpdate();try{this.cellSizeUpdated(a,b),this.fireEvent(new mxEventObject(mxEvent.UPDATE_CELL_SIZE,"cell",a,"ignoreChildren",b))}finally{this.model.endUpdate()}return a};
1352mxGraph.prototype.cellSizeUpdated=function(a,b){if(null!=a){this.model.beginUpdate();try{var c=this.getPreferredSizeForCell(a),d=this.model.getGeometry(a);if(null!=c&&null!=d){var e=this.isCellCollapsed(a),d=d.clone();if(this.isSwimlane(a)){var f=this.getCellStyle(a),g=this.model.getStyle(a);null==g&&(g="");mxUtils.getValue(f,mxConstants.STYLE_HORIZONTAL,!0)?(g=mxUtils.setStyle(g,mxConstants.STYLE_STARTSIZE,c.height+8),e&&(d.height=c.height+8),d.width=c.width):(g=mxUtils.setStyle(g,mxConstants.STYLE_STARTSIZE,
1353c.width+8),e&&(d.width=c.width+8),d.height=c.height);this.model.setStyle(a,g)}else{var k=this.view.createState(a),l=k.style[mxConstants.STYLE_ALIGN]||mxConstants.ALIGN_CENTER,m=this.getVerticalAlign(k);"fixed"==k.style[mxConstants.STYLE_ASPECT]&&(c.height=Math.round(d.height*c.width*100/d.width)/100);l==mxConstants.ALIGN_RIGHT?d.x+=d.width-c.width:l==mxConstants.ALIGN_CENTER&&(d.x+=Math.round((d.width-c.width)/2));m==mxConstants.ALIGN_BOTTOM?d.y+=d.height-c.height:m==mxConstants.ALIGN_MIDDLE&&(d.y+=
1354Math.round((d.height-c.height)/2));d.width=c.width;d.height=c.height}if(!b&&!e){var n=this.view.getBounds(this.model.getChildren(a));if(null!=n){var p=this.view.translate,q=this.view.scale,r=(n.y+n.height)/q-d.y-p.y;d.width=Math.max(d.width,(n.x+n.width)/q-d.x-p.x);d.height=Math.max(d.height,r)}}this.cellsResized([a],[d],!1)}}finally{this.model.endUpdate()}}};
1355mxGraph.prototype.getPreferredSizeForCell=function(a,b){var c=null;if(null!=a){var d=this.view.createState(a),e=d.style;if(!this.model.isEdge(a)){var f=e[mxConstants.STYLE_FONTSIZE]||mxConstants.DEFAULT_FONTSIZE,g=0,c=0;null==this.getImage(d)&&null==e[mxConstants.STYLE_IMAGE]||e[mxConstants.STYLE_SHAPE]!=mxConstants.SHAPE_LABEL||(e[mxConstants.STYLE_VERTICAL_ALIGN]==mxConstants.ALIGN_MIDDLE&&(g+=parseFloat(e[mxConstants.STYLE_IMAGE_WIDTH])||mxLabel.prototype.imageSize),e[mxConstants.STYLE_ALIGN]!=
1356mxConstants.ALIGN_CENTER&&(c+=parseFloat(e[mxConstants.STYLE_IMAGE_HEIGHT])||mxLabel.prototype.imageSize));var g=g+2*(e[mxConstants.STYLE_SPACING]||0),g=g+(e[mxConstants.STYLE_SPACING_LEFT]||0),g=g+(e[mxConstants.STYLE_SPACING_RIGHT]||0),c=c+2*(e[mxConstants.STYLE_SPACING]||0),c=c+(e[mxConstants.STYLE_SPACING_TOP]||0),c=c+(e[mxConstants.STYLE_SPACING_BOTTOM]||0),k=this.getFoldingImage(d);null!=k&&(g+=k.width+8);k=this.cellRenderer.getLabelValue(d);null!=k&&0<k.length?(this.isHtmlLabel(d.cell)||(k=
1357mxUtils.htmlEntities(k,!1)),k=k.replace(/\n/g,"<br>"),f=mxUtils.getSizeForString(k,f,e[mxConstants.STYLE_FONTFAMILY],b,e[mxConstants.STYLE_FONTSTYLE]),d=f.width+g,c=f.height+c,mxUtils.getValue(e,mxConstants.STYLE_HORIZONTAL,!0)||(e=c,c=d,d=e),this.gridEnabled&&(d=this.snap(d+this.gridSize/2),c=this.snap(c+this.gridSize/2)),c=new mxRectangle(0,0,d,c)):(e=4*this.gridSize,c=new mxRectangle(0,0,e,e))}}return c};mxGraph.prototype.resizeCell=function(a,b,c){return this.resizeCells([a],[b],c)[0]};
1358mxGraph.prototype.resizeCells=function(a,b,c){c=null!=c?c:this.isRecursiveResize();this.model.beginUpdate();try{var d=this.cellsResized(a,b,c);this.fireEvent(new mxEventObject(mxEvent.RESIZE_CELLS,"cells",a,"bounds",b,"previous",d))}finally{this.model.endUpdate()}return a};
1359mxGraph.prototype.cellsResized=function(a,b,c){c=null!=c?c:!1;var d=[];if(null!=a&&null!=b&&a.length==b.length){this.model.beginUpdate();try{for(var e=0;e<a.length;e++)d.push(this.cellResized(a[e],b[e],!1,c)),this.isExtendParent(a[e])&&this.extendParent(a[e]),this.constrainChild(a[e]);this.resetEdgesOnResize&&this.resetEdges(a);this.fireEvent(new mxEventObject(mxEvent.CELLS_RESIZED,"cells",a,"bounds",b,"previous",d))}finally{this.model.endUpdate()}}return d};
1360mxGraph.prototype.cellResized=function(a,b,c,d){var e=this.model.getGeometry(a);if(null!=e&&(e.x!=b.x||e.y!=b.y||e.width!=b.width||e.height!=b.height)){var f=e.clone();!c&&f.relative?(c=f.offset,null!=c&&(c.x+=b.x-f.x,c.y+=b.y-f.y)):(f.x=b.x,f.y=b.y);f.width=b.width;f.height=b.height;f.relative||!this.model.isVertex(a)||this.isAllowNegativeCoordinates()||(f.x=Math.max(0,f.x),f.y=Math.max(0,f.y));this.model.beginUpdate();try{d&&this.resizeChildCells(a,f),this.model.setGeometry(a,f),this.constrainChildCells(a)}finally{this.model.endUpdate()}}return e};
1361mxGraph.prototype.resizeChildCells=function(a,b){for(var c=this.model.getGeometry(a),d=0!=c.width?b.width/c.width:1,c=0!=c.height?b.height/c.height:1,e=this.model.getChildCount(a),f=0;f<e;f++)this.scaleCell(this.model.getChildAt(a,f),d,c,!0)};mxGraph.prototype.constrainChildCells=function(a){for(var b=this.model.getChildCount(a),c=0;c<b;c++)this.constrainChild(this.model.getChildAt(a,c))};
1362mxGraph.prototype.scaleCell=function(a,b,c,d){var e=this.model.getGeometry(a);if(null!=e){var f=this.getCurrentCellStyle(a),e=e.clone(),g=e.x,k=e.y,l=e.width,m=e.height;e.scale(b,c,"fixed"==f[mxConstants.STYLE_ASPECT]);"1"==f[mxConstants.STYLE_RESIZE_WIDTH]?e.width=l*b:"0"==f[mxConstants.STYLE_RESIZE_WIDTH]&&(e.width=l);"1"==f[mxConstants.STYLE_RESIZE_HEIGHT]?e.height=m*c:"0"==f[mxConstants.STYLE_RESIZE_HEIGHT]&&(e.height=m);this.isCellMovable(a)||(e.x=g,e.y=k);this.isCellResizable(a)||(e.width=l,
1363e.height=m);this.model.isVertex(a)?this.cellResized(a,e,!0,d):this.model.setGeometry(a,e)}};mxGraph.prototype.extendParent=function(a){if(null!=a){var b=this.model.getParent(a),c=this.getCellGeometry(b);null==b||null==c||this.isCellCollapsed(b)||(a=this.getCellGeometry(a),null!=a&&!a.relative&&(c.width<a.x+a.width||c.height<a.y+a.height)&&(c=c.clone(),c.width=Math.max(c.width,a.x+a.width),c.height=Math.max(c.height,a.y+a.height),this.cellsResized([b],[c],!1)))}};
1364mxGraph.prototype.importCells=function(a,b,c,d,e,f){return this.moveCells(a,b,c,!0,d,e,f)};
1365mxGraph.prototype.moveCells=function(a,b,c,d,e,f,g){b=null!=b?b:0;c=null!=c?c:0;d=null!=d?d:!1;if(null!=a&&(0!=b||0!=c||d||null!=e)){var k=a=this.model.getTopmostCells(a);this.model.beginUpdate();try{for(var l=new mxDictionary,m=0;m<a.length;m++)l.put(a[m],!0);for(var n=mxUtils.bind(this,function(a){for(;null!=a;){if(l.get(a))return!0;a=this.model.getParent(a)}return!1}),p=[],m=0;m<a.length;m++){var q=this.getCellGeometry(a[m]),r=this.model.getParent(a[m]);null!=q&&q.relative&&this.model.isEdge(r)&&
1366(n(this.model.getTerminal(r,!0))||n(this.model.getTerminal(r,!1)))||p.push(a[m])}a=p;d&&(a=this.cloneCells(a,this.isCloneInvalidEdges(),g),null==e&&(e=this.getDefaultParent()));var t=this.isAllowNegativeCoordinates();null!=e&&this.setAllowNegativeCoordinates(!0);this.cellsMoved(a,b,c,!d&&this.isDisconnectOnMove()&&this.isAllowDanglingEdges(),null==e,this.isExtendParentsOnMove()&&null==e);this.setAllowNegativeCoordinates(t);if(null!=e){var u=this.model.getChildCount(e);this.cellsAdded(a,e,u,null,null,
1367!0);if(d)for(m=0;m<a.length;m++)q=this.getCellGeometry(a[m]),r=this.model.getParent(k[m]),null!=q&&q.relative&&this.model.isEdge(r)&&this.model.contains(r)&&this.model.add(r,a[m])}this.fireEvent(new mxEventObject(mxEvent.MOVE_CELLS,"cells",a,"dx",b,"dy",c,"clone",d,"target",e,"event",f))}finally{this.model.endUpdate()}}return a};
1368mxGraph.prototype.cellsMoved=function(a,b,c,d,e,f){if(null!=a&&(0!=b||0!=c)){f=null!=f?f:!1;this.model.beginUpdate();try{d&&this.disconnectGraph(a);for(var g=0;g<a.length;g++)this.translateCell(a[g],b,c),f&&this.isExtendParent(a[g])?this.extendParent(a[g]):e&&this.constrainChild(a[g]);this.resetEdgesOnMove&&this.resetEdges(a);this.fireEvent(new mxEventObject(mxEvent.CELLS_MOVED,"cells",a,"dx",b,"dy",c,"disconnect",d))}finally{this.model.endUpdate()}}};
1369mxGraph.prototype.translateCell=function(a,b,c){var d=this.model.getGeometry(a);if(null!=d){b=parseFloat(b);c=parseFloat(c);d=d.clone();d.translate(b,c);d.relative||!this.model.isVertex(a)||this.isAllowNegativeCoordinates()||(d.x=Math.max(0,parseFloat(d.x)),d.y=Math.max(0,parseFloat(d.y)));if(d.relative&&!this.model.isEdge(a)){var e=this.model.getParent(a),f=0;this.model.isVertex(e)&&(e=this.getCurrentCellStyle(e),f=mxUtils.getValue(e,mxConstants.STYLE_ROTATION,0));0!=f&&(f=mxUtils.toRadians(-f),
1370e=Math.cos(f),f=Math.sin(f),c=mxUtils.getRotatedPoint(new mxPoint(b,c),e,f,new mxPoint(0,0)),b=c.x,c=c.y);null==d.offset?d.offset=new mxPoint(Math.round(b),Math.round(c)):(d.offset.x=Math.round(parseFloat(d.offset.x+b)),d.offset.y=Math.round(parseFloat(d.offset.y+c)))}this.model.setGeometry(a,d)}};
1371mxGraph.prototype.getCellContainmentArea=function(a){if(null!=a&&!this.model.isEdge(a)){var b=this.model.getParent(a);if(null!=b&&b!=this.getDefaultParent()){var c=this.model.getGeometry(b);if(null!=c){var d=a=0,e=c.width,c=c.height;if(this.isSwimlane(b)){var f=this.getStartSize(b),g=this.getCurrentCellStyle(b),b=mxUtils.getValue(g,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST),k=1==mxUtils.getValue(g,mxConstants.STYLE_FLIPH,0),g=1==mxUtils.getValue(g,mxConstants.STYLE_FLIPV,0);if(b==mxConstants.DIRECTION_SOUTH||
1372b==mxConstants.DIRECTION_NORTH){var l=f.width;f.width=f.height;f.height=l}if(b==mxConstants.DIRECTION_EAST&&!g||b==mxConstants.DIRECTION_NORTH&&!k||b==mxConstants.DIRECTION_WEST&&g||b==mxConstants.DIRECTION_SOUTH&&k)a=f.width,d=f.height;e-=f.width;c-=f.height}return new mxRectangle(a,d,e,c)}}}return null};mxGraph.prototype.getMaximumGraphBounds=function(){return this.maximumGraphBounds};
1373mxGraph.prototype.constrainChild=function(a,b){if(null!=a){var c=this.getCellGeometry(a);if(null!=c&&(this.isConstrainRelativeChildren()||!c.relative)){var d=this.model.getParent(a);this.getCellGeometry(d);var e=this.getMaximumGraphBounds();null!=e&&(d=this.getBoundingBoxFromGeometry([d],!1),null!=d&&(e=mxRectangle.fromRectangle(e),e.x-=d.x,e.y-=d.y));if(this.isConstrainChild(a)&&(d=this.getCellContainmentArea(a),null!=d)){var f=this.getOverlap(a);0<f&&(d=mxRectangle.fromRectangle(d),d.x-=d.width*
1374f,d.y-=d.height*f,d.width+=2*d.width*f,d.height+=2*d.height*f);null==e?e=d:(e=mxRectangle.fromRectangle(e),e.intersect(d))}if(null!=e){d=[a];if(!this.isCellCollapsed(a))for(var f=this.model.getDescendants(a),g=0;g<f.length;g++)this.isCellVisible(f[g])&&d.push(f[g]);d=this.getBoundingBoxFromGeometry(d,!1);if(null!=d){c=c.clone();f=0;c.width>e.width&&(f=c.width-e.width,c.width-=f);d.x+d.width>e.x+e.width&&(f-=d.x+d.width-e.x-e.width-f);g=0;c.height>e.height&&(g=c.height-e.height,c.height-=g);d.y+d.height>
1375e.y+e.height&&(g-=d.y+d.height-e.y-e.height-g);d.x<e.x&&(f-=d.x-e.x);d.y<e.y&&(g-=d.y-e.y);if(0!=f||0!=g)c.relative?(null==c.offset&&(c.offset=new mxPoint),c.offset.x+=f,c.offset.y+=g):(c.x+=f,c.y+=g);this.model.setGeometry(a,c)}}}}};
1376mxGraph.prototype.resetEdges=function(a){if(null!=a){for(var b=new mxDictionary,c=0;c<a.length;c++)b.put(a[c],!0);this.model.beginUpdate();try{for(c=0;c<a.length;c++){var d=this.model.getEdges(a[c]);if(null!=d)for(var e=0;e<d.length;e++){var f=this.view.getState(d[e]),g=null!=f?f.getVisibleTerminal(!0):this.view.getVisibleTerminal(d[e],!0),k=null!=f?f.getVisibleTerminal(!1):this.view.getVisibleTerminal(d[e],!1);b.get(g)&&b.get(k)||this.resetEdge(d[e])}this.resetEdges(this.model.getChildren(a[c]))}}finally{this.model.endUpdate()}}};
1377mxGraph.prototype.resetEdge=function(a){var b=this.model.getGeometry(a);null!=b&&null!=b.points&&0<b.points.length&&(b=b.clone(),b.points=[],this.model.setGeometry(a,b));return a};
1378mxGraph.prototype.getOutlineConstraint=function(a,b,c){if(null!=b.shape){c=this.view.getPerimeterBounds(b);var d=b.style[mxConstants.STYLE_DIRECTION];if(d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH){c.x+=c.width/2-c.height/2;c.y+=c.height/2-c.width/2;var e=c.width;c.width=c.height;c.height=e}var f=mxUtils.toRadians(b.shape.getShapeRotation());if(0!=f){var e=Math.cos(-f),f=Math.sin(-f),g=new mxPoint(c.getCenterX(),c.getCenterY());a=mxUtils.getRotatedPoint(a,e,f,g)}var g=f=1,k=0,l=
13790;if(this.getModel().isVertex(b.cell)){var m=b.style[mxConstants.STYLE_FLIPH],n=b.style[mxConstants.STYLE_FLIPV];null!=b.shape&&null!=b.shape.stencil&&(m=1==mxUtils.getValue(b.style,"stencilFlipH",0)||m,n=1==mxUtils.getValue(b.style,"stencilFlipV",0)||n);if(d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH)e=m,m=n,n=e;m&&(f=-1,k=-c.width);n&&(g=-1,l=-c.height)}a=new mxPoint((a.x-c.x)*f-k+c.x,(a.y-c.y)*g-l+c.y);return new mxConnectionConstraint(new mxPoint(0==c.width?0:Math.round(1E3*
1380(a.x-c.x)/c.width)/1E3,0==c.height?0:Math.round(1E3*(a.y-c.y)/c.height)/1E3),!1)}return null};mxGraph.prototype.getAllConnectionConstraints=function(a,b){return null!=a&&null!=a.shape&&null!=a.shape.stencil?a.shape.stencil.constraints:null};
1381mxGraph.prototype.getConnectionConstraint=function(a,b,c){b=null;var d=a.style[c?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X];if(null!=d){var e=a.style[c?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y];null!=e&&(b=new mxPoint(parseFloat(d),parseFloat(e)))}var d=!1,f=e=0;null!=b&&(d=mxUtils.getValue(a.style,c?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,!0),e=parseFloat(a.style[c?mxConstants.STYLE_EXIT_DX:mxConstants.STYLE_ENTRY_DX]),f=parseFloat(a.style[c?mxConstants.STYLE_EXIT_DY:
1382mxConstants.STYLE_ENTRY_DY]),e=isFinite(e)?e:0,f=isFinite(f)?f:0);return new mxConnectionConstraint(b,d,null,e,f)};
1383mxGraph.prototype.setConnectionConstraint=function(a,b,c,d){if(null!=d){this.model.beginUpdate();try{null==d||null==d.point?(this.setCellStyles(c?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,null,[a]),this.setCellStyles(c?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,null,[a]),this.setCellStyles(c?mxConstants.STYLE_EXIT_DX:mxConstants.STYLE_ENTRY_DX,null,[a]),this.setCellStyles(c?mxConstants.STYLE_EXIT_DY:mxConstants.STYLE_ENTRY_DY,null,[a]),this.setCellStyles(c?mxConstants.STYLE_EXIT_PERIMETER:
1384mxConstants.STYLE_ENTRY_PERIMETER,null,[a])):null!=d.point&&(this.setCellStyles(c?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,d.point.x,[a]),this.setCellStyles(c?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,d.point.y,[a]),this.setCellStyles(c?mxConstants.STYLE_EXIT_DX:mxConstants.STYLE_ENTRY_DX,d.dx,[a]),this.setCellStyles(c?mxConstants.STYLE_EXIT_DY:mxConstants.STYLE_ENTRY_DY,d.dy,[a]),d.perimeter?this.setCellStyles(c?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,
1385null,[a]):this.setCellStyles(c?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,"0",[a]))}finally{this.model.endUpdate()}}};
1386mxGraph.prototype.getConnectionPoint=function(a,b,c){c=null!=c?c:!0;var d=null;if(null!=a&&null!=b.point){var e=this.view.getPerimeterBounds(a),f=new mxPoint(e.getCenterX(),e.getCenterY()),g=a.style[mxConstants.STYLE_DIRECTION],k=0;null!=g&&1==mxUtils.getValue(a.style,mxConstants.STYLE_ANCHOR_POINT_DIRECTION,1)&&(g==mxConstants.DIRECTION_NORTH?k+=270:g==mxConstants.DIRECTION_WEST?k+=180:g==mxConstants.DIRECTION_SOUTH&&(k+=90),g!=mxConstants.DIRECTION_NORTH&&g!=mxConstants.DIRECTION_SOUTH||e.rotate90());
1387var d=this.view.scale,d=new mxPoint(e.x+b.point.x*e.width+b.dx*d,e.y+b.point.y*e.height+b.dy*d),l=a.style[mxConstants.STYLE_ROTATION]||0;if(b.perimeter)0!=k&&(g=e=0,90==k?g=1:180==k?e=-1:270==k&&(g=-1),d=mxUtils.getRotatedPoint(d,e,g,f)),d=this.view.getPerimeterPoint(a,d,!1);else if(l+=k,this.getModel().isVertex(a.cell)){k=1==a.style[mxConstants.STYLE_FLIPH];b=1==a.style[mxConstants.STYLE_FLIPV];null!=a.shape&&null!=a.shape.stencil&&(k=1==mxUtils.getValue(a.style,"stencilFlipH",0)||k,b=1==mxUtils.getValue(a.style,
1388"stencilFlipV",0)||b);if(g==mxConstants.DIRECTION_NORTH||g==mxConstants.DIRECTION_SOUTH)a=k,k=b,b=a;k&&(d.x=2*e.getCenterX()-d.x);b&&(d.y=2*e.getCenterY()-d.y)}0!=l&&null!=d&&(a=mxUtils.toRadians(l),e=Math.cos(a),g=Math.sin(a),d=mxUtils.getRotatedPoint(d,e,g,f))}c&&null!=d&&(d.x=Math.round(d.x),d.y=Math.round(d.y));return d};
1389mxGraph.prototype.connectCell=function(a,b,c,d){this.model.beginUpdate();try{var e=this.model.getTerminal(a,c);this.cellConnected(a,b,c,d);this.fireEvent(new mxEventObject(mxEvent.CONNECT_CELL,"edge",a,"terminal",b,"source",c,"previous",e))}finally{this.model.endUpdate()}return a};
1390mxGraph.prototype.cellConnected=function(a,b,c,d){if(null!=a){this.model.beginUpdate();try{var e=this.model.getTerminal(a,c);this.setConnectionConstraint(a,b,c,d);this.isPortsEnabled()&&(d=null,this.isPort(b)&&(d=b.getId(),b=this.getTerminalForPort(b,c)),this.setCellStyles(c?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT,d,[a]));this.model.setTerminal(a,b,c);this.resetEdgesOnConnect&&this.resetEdge(a);this.fireEvent(new mxEventObject(mxEvent.CELL_CONNECTED,"edge",a,"terminal",b,"source",
1391c,"previous",e))}finally{this.model.endUpdate()}}};
1392mxGraph.prototype.disconnectGraph=function(a){if(null!=a){this.model.beginUpdate();try{for(var b=this.view.scale,c=this.view.translate,d=new mxDictionary,e=0;e<a.length;e++)d.put(a[e],!0);for(e=0;e<a.length;e++)if(this.model.isEdge(a[e])){var f=this.model.getGeometry(a[e]);if(null!=f){var g=this.view.getState(a[e]),k=this.view.getState(this.model.getParent(a[e]));if(null!=g&&null!=k){var f=f.clone(),l=-k.origin.x,m=-k.origin.y,n=g.absolutePoints,p=this.model.getTerminal(a[e],!0);if(null!=p&&this.isCellDisconnectable(a[e],
1393p,!0)){for(;null!=p&&!d.get(p);)p=this.model.getParent(p);null==p&&(f.setTerminalPoint(new mxPoint(n[0].x/b-c.x+l,n[0].y/b-c.y+m),!0),this.model.setTerminal(a[e],null,!0))}var q=this.model.getTerminal(a[e],!1);if(null!=q&&this.isCellDisconnectable(a[e],q,!1)){for(;null!=q&&!d.get(q);)q=this.model.getParent(q);if(null==q){var r=n.length-1;f.setTerminalPoint(new mxPoint(n[r].x/b-c.x+l,n[r].y/b-c.y+m),!1);this.model.setTerminal(a[e],null,!1)}}this.model.setGeometry(a[e],f)}}}}finally{this.model.endUpdate()}}};
1394mxGraph.prototype.getCurrentRoot=function(){return this.view.currentRoot};mxGraph.prototype.getTranslateForRoot=function(a){return null};mxGraph.prototype.isPort=function(a){return!1};mxGraph.prototype.getTerminalForPort=function(a,b){return this.model.getParent(a)};mxGraph.prototype.getChildOffsetForCell=function(a){return null};mxGraph.prototype.enterGroup=function(a){a=a||this.getSelectionCell();null!=a&&this.isValidRoot(a)&&(this.view.setCurrentRoot(a),this.clearSelection())};
1395mxGraph.prototype.exitGroup=function(){var a=this.model.getRoot(),b=this.getCurrentRoot();if(null!=b){for(var c=this.model.getParent(b);c!=a&&!this.isValidRoot(c)&&this.model.getParent(c)!=a;)c=this.model.getParent(c);c==a||this.model.getParent(c)==a?this.view.setCurrentRoot(null):this.view.setCurrentRoot(c);null!=this.view.getState(b)&&this.setSelectionCell(b)}};mxGraph.prototype.home=function(){var a=this.getCurrentRoot();null!=a&&(this.view.setCurrentRoot(null),null!=this.view.getState(a)&&this.setSelectionCell(a))};
1396mxGraph.prototype.isValidRoot=function(a){return null!=a};mxGraph.prototype.getGraphBounds=function(){return this.view.getGraphBounds()};mxGraph.prototype.getCellBounds=function(a,b,c){var d=[a];b&&(d=d.concat(this.model.getEdges(a)));d=this.view.getBounds(d);if(c){c=this.model.getChildCount(a);for(var e=0;e<c;e++){var f=this.getCellBounds(this.model.getChildAt(a,e),b,!0);null!=d?d.add(f):d=f}}return d};
1397mxGraph.prototype.getBoundingBoxFromGeometry=function(a,b){b=null!=b?b:!1;var c=null;if(null!=a)for(var d=0;d<a.length;d++)if(b||this.model.isVertex(a[d])){var e=this.getCellGeometry(a[d]);if(null!=e){var f=null;if(this.model.isEdge(a[d])){f=function(a){null!=a&&(null==g?g=new mxRectangle(a.x,a.y,0,0):g.add(new mxRectangle(a.x,a.y,0,0)))};null==this.model.getTerminal(a[d],!0)&&f(e.getTerminalPoint(!0));null==this.model.getTerminal(a[d],!1)&&f(e.getTerminalPoint(!1));e=e.points;if(null!=e&&0<e.length)for(var g=
1398new mxRectangle(e[0].x,e[0].y,0,0),k=1;k<e.length;k++)f(e[k]);f=g}else k=this.model.getParent(a[d]),e.relative?this.model.isVertex(k)&&k!=this.view.currentRoot&&(g=this.getBoundingBoxFromGeometry([k],!1),null!=g&&(f=new mxRectangle(e.x*g.width,e.y*g.height,e.width,e.height),0<=mxUtils.indexOf(a,k)&&(f.x+=g.x,f.y+=g.y))):(f=mxRectangle.fromRectangle(e),this.model.isVertex(k)&&0<=mxUtils.indexOf(a,k)&&(g=this.getBoundingBoxFromGeometry([k],!1),null!=g&&(f.x+=g.x,f.y+=g.y))),null!=f&&null!=e.offset&&
1399(f.x+=e.offset.x,f.y+=e.offset.y),e=this.getCurrentCellStyle(a[d]),null!=f&&(e=mxUtils.getValue(e,mxConstants.STYLE_ROTATION,0),0!=e&&(f=mxUtils.getBoundingBox(f,e)));null!=f&&(null==c?c=mxRectangle.fromRectangle(f):c.add(f))}}return c};mxGraph.prototype.refresh=function(a){this.view.clear(a,null==a);this.view.validate();this.sizeDidChange();this.fireEvent(new mxEventObject(mxEvent.REFRESH))};mxGraph.prototype.snap=function(a){this.gridEnabled&&(a=Math.round(a/this.gridSize)*this.gridSize);return a};
1400mxGraph.prototype.snapDelta=function(a,b,c,d,e){var f=this.view.translate,g=this.view.scale;!c&&this.gridEnabled?(c=this.gridSize*g*.5,d||(d=b.x-(this.snap(b.x/g-f.x)+f.x)*g,a.x=Math.abs(a.x-d)<c?0:this.snap(a.x/g)*g-d),e||(b=b.y-(this.snap(b.y/g-f.y)+f.y)*g,a.y=Math.abs(a.y-b)<c?0:this.snap(a.y/g)*g-b)):(c=.5*g,d||(d=b.x-(Math.round(b.x/g-f.x)+f.x)*g,a.x=Math.abs(a.x-d)<c?0:Math.round(a.x/g)*g-d),e||(b=b.y-(Math.round(b.y/g-f.y)+f.y)*g,a.y=Math.abs(a.y-b)<c?0:Math.round(a.y/g)*g-b));return a};
1401mxGraph.prototype.panGraph=function(a,b){if(this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container))this.container.scrollLeft=-a,this.container.scrollTop=-b;else{var c=this.view.getCanvas();if(this.dialect==mxConstants.DIALECT_SVG)if(0==a&&0==b){if(mxClient.IS_IE?c.setAttribute("transform","translate("+a+","+b+")"):c.removeAttribute("transform"),null!=this.shiftPreview1){for(var d=this.shiftPreview1.firstChild;null!=d;){var e=d.nextSibling;this.container.appendChild(d);d=e}null!=this.shiftPreview1.parentNode&&
1402this.shiftPreview1.parentNode.removeChild(this.shiftPreview1);this.shiftPreview1=null;this.container.appendChild(c.parentNode);for(d=this.shiftPreview2.firstChild;null!=d;)e=d.nextSibling,this.container.appendChild(d),d=e;null!=this.shiftPreview2.parentNode&&this.shiftPreview2.parentNode.removeChild(this.shiftPreview2);this.shiftPreview2=null}}else{c.setAttribute("transform","translate("+a+","+b+")");if(null==this.shiftPreview1){this.shiftPreview1=document.createElement("div");this.shiftPreview1.style.position=
1403"absolute";this.shiftPreview1.style.overflow="visible";this.shiftPreview2=document.createElement("div");this.shiftPreview2.style.position="absolute";this.shiftPreview2.style.overflow="visible";for(var f=this.shiftPreview1,d=this.container.firstChild;null!=d;)e=d.nextSibling,d!=c.parentNode?f.appendChild(d):f=this.shiftPreview2,d=e;null!=this.shiftPreview1.firstChild&&this.container.insertBefore(this.shiftPreview1,c.parentNode);null!=this.shiftPreview2.firstChild&&this.container.appendChild(this.shiftPreview2)}this.shiftPreview1.style.left=
1404a+"px";this.shiftPreview1.style.top=b+"px";this.shiftPreview2.style.left=a+"px";this.shiftPreview2.style.top=b+"px"}else c.style.left=a+"px",c.style.top=b+"px";this.panDx=a;this.panDy=b;this.fireEvent(new mxEventObject(mxEvent.PAN))}};mxGraph.prototype.zoomIn=function(){this.zoom(this.zoomFactor)};mxGraph.prototype.zoomOut=function(){this.zoom(1/this.zoomFactor)};
1405mxGraph.prototype.zoomActual=function(){1==this.view.scale?this.view.setTranslate(0,0):(this.view.translate.x=0,this.view.translate.y=0,this.view.setScale(1))};mxGraph.prototype.zoomTo=function(a,b){this.zoom(a/this.view.scale,b)};
1406mxGraph.prototype.center=function(a,b,c,d){a=null!=a?a:!0;b=null!=b?b:!0;c=null!=c?c:.5;d=null!=d?d:.5;var e=mxUtils.hasScrollbars(this.container),f=2*this.getBorder(),g=this.container.clientWidth-f,f=this.container.clientHeight-f,k=this.getGraphBounds(),l=this.view.translate,m=this.view.scale,n=a?g-k.width:0,p=b?f-k.height:0;e?(k.x-=l.x,k.y-=l.y,a=this.container.scrollWidth,b=this.container.scrollHeight,a>g&&(n=0),b>f&&(p=0),this.view.setTranslate(Math.floor(n/2-k.x),Math.floor(p/2-k.y)),this.container.scrollLeft=
1407(a-g)/2,this.container.scrollTop=(b-f)/2):this.view.setTranslate(a?Math.floor(l.x-k.x/m+n*c/m):l.x,b?Math.floor(l.y-k.y/m+p*d/m):l.y)};
1408mxGraph.prototype.zoom=function(a,b){b=null!=b?b:this.centerZoom;var c=Math.round(this.view.scale*a*100)/100,d=this.view.getState(this.getSelectionCell());a=c/this.view.scale;if(this.keepSelectionVisibleOnZoom&&null!=d)d=new mxRectangle(d.x*a,d.y*a,d.width*a,d.height*a),this.view.scale=c,this.scrollRectToVisible(d)||(this.view.revalidate(),this.view.setScale(c));else if(d=mxUtils.hasScrollbars(this.container),b&&!d){var d=this.container.offsetWidth,e=this.container.offsetHeight;if(1<a)var f=(a-1)/
1409(2*c),d=d*-f,e=e*-f;else f=(1/a-1)/(2*this.view.scale),d*=f,e*=f;this.view.scaleAndTranslate(c,this.view.translate.x+d,this.view.translate.y+e)}else{var f=this.view.translate.x,g=this.view.translate.y,k=this.container.scrollLeft,l=this.container.scrollTop;this.view.setScale(c);d&&(e=d=0,b&&(d=this.container.offsetWidth*(a-1)/2,e=this.container.offsetHeight*(a-1)/2),this.container.scrollLeft=(this.view.translate.x-f)*this.view.scale+Math.round(k*a+d),this.container.scrollTop=(this.view.translate.y-
1410g)*this.view.scale+Math.round(l*a+e))}};
1411mxGraph.prototype.zoomToRect=function(a){var b=this.container.clientWidth/a.width/(this.container.clientHeight/a.height);a.x=Math.max(0,a.x);a.y=Math.max(0,a.y);var c=Math.min(this.container.scrollWidth,a.x+a.width),d=Math.min(this.container.scrollHeight,a.y+a.height);a.width=c-a.x;a.height=d-a.y;1>b?(b=a.height/b,c=(b-a.height)/2,a.height=b,a.y-=Math.min(a.y,c),d=Math.min(this.container.scrollHeight,a.y+a.height),a.height=d-a.y):(b*=a.width,c=(b-a.width)/2,a.width=b,a.x-=Math.min(a.x,c),c=Math.min(this.container.scrollWidth,
1412a.x+a.width),a.width=c-a.x);b=this.container.clientWidth/a.width;c=this.view.scale*b;mxUtils.hasScrollbars(this.container)?(this.view.setScale(c),this.container.scrollLeft=Math.round(a.x*b),this.container.scrollTop=Math.round(a.y*b)):this.view.scaleAndTranslate(c,this.view.translate.x-a.x/this.view.scale,this.view.translate.y-a.y/this.view.scale)};
1413mxGraph.prototype.scrollCellToVisible=function(a,b){var c=-this.view.translate.x,d=-this.view.translate.y,e=this.view.getState(a);null!=e&&(c=new mxRectangle(c+e.x,d+e.y,e.width,e.height),b&&null!=this.container&&(d=this.container.clientWidth,e=this.container.clientHeight,c.x=c.getCenterX()-d/2,c.width=d,c.y=c.getCenterY()-e/2,c.height=e),d=new mxPoint(this.view.translate.x,this.view.translate.y),this.scrollRectToVisible(c)&&(c=new mxPoint(this.view.translate.x,this.view.translate.y),this.view.translate.x=
1414d.x,this.view.translate.y=d.y,this.view.setTranslate(c.x,c.y)))};
1415mxGraph.prototype.scrollRectToVisible=function(a){var b=!1;if(null!=a){var c=this.container.offsetWidth,d=this.container.offsetHeight,e=Math.min(c,a.width),f=Math.min(d,a.height);if(mxUtils.hasScrollbars(this.container)){c=this.container;a.x+=this.view.translate.x;a.y+=this.view.translate.y;var g=c.scrollLeft-a.x,d=Math.max(g-c.scrollLeft,0);0<g?c.scrollLeft-=g+2:(g=a.x+e-c.scrollLeft-c.clientWidth,0<g&&(c.scrollLeft+=g+2));e=c.scrollTop-a.y;g=Math.max(0,e-c.scrollTop);0<e?c.scrollTop-=e+2:(e=a.y+
1416f-c.scrollTop-c.clientHeight,0<e&&(c.scrollTop+=e+2));this.useScrollbarsForPanning||0==d&&0==g||this.view.setTranslate(d,g)}else{var g=-this.view.translate.x,k=-this.view.translate.y,l=this.view.scale;a.x+e>g+c&&(this.view.translate.x-=(a.x+e-c-g)/l,b=!0);a.y+f>k+d&&(this.view.translate.y-=(a.y+f-d-k)/l,b=!0);a.x<g&&(this.view.translate.x+=(g-a.x)/l,b=!0);a.y<k&&(this.view.translate.y+=(k-a.y)/l,b=!0);b&&(this.view.refresh(),null!=this.selectionCellsHandler&&this.selectionCellsHandler.refresh())}}return b};
1417mxGraph.prototype.getCellGeometry=function(a){return this.model.getGeometry(a)};mxGraph.prototype.isCellVisible=function(a){return this.model.isVisible(a)};mxGraph.prototype.isCellCollapsed=function(a){return this.model.isCollapsed(a)};mxGraph.prototype.isCellConnectable=function(a){return this.model.isConnectable(a)};
1418mxGraph.prototype.isOrthogonal=function(a){var b=a.style[mxConstants.STYLE_ORTHOGONAL];if(null!=b)return b;a=this.view.getEdgeStyle(a);return a==mxEdgeStyle.SegmentConnector||a==mxEdgeStyle.ElbowConnector||a==mxEdgeStyle.SideToSide||a==mxEdgeStyle.TopToBottom||a==mxEdgeStyle.EntityRelation||a==mxEdgeStyle.OrthConnector};mxGraph.prototype.isLoop=function(a){var b=a.getVisibleTerminalState(!0);a=a.getVisibleTerminalState(!1);return null!=b&&b==a};mxGraph.prototype.isCloneEvent=function(a){return mxEvent.isControlDown(a)};
1419mxGraph.prototype.isTransparentClickEvent=function(a){return!1};mxGraph.prototype.isToggleEvent=function(a){return mxClient.IS_MAC?mxEvent.isMetaDown(a):mxEvent.isControlDown(a)};mxGraph.prototype.isGridEnabledEvent=function(a){return null!=a&&!mxEvent.isAltDown(a)};mxGraph.prototype.isConstrainedEvent=function(a){return mxEvent.isShiftDown(a)};mxGraph.prototype.isIgnoreTerminalEvent=function(a){return!1};mxGraph.prototype.validationAlert=function(a){mxUtils.alert(a)};
1420mxGraph.prototype.isEdgeValid=function(a,b,c){return null==this.getEdgeValidationError(a,b,c)};
1421mxGraph.prototype.getEdgeValidationError=function(a,b,c){if(null!=a&&!this.isAllowDanglingEdges()&&(null==b||null==c))return"";if(null!=a&&null==this.model.getTerminal(a,!0)&&null==this.model.getTerminal(a,!1))return null;if(!this.allowLoops&&b==c&&null!=b||!this.isValidConnection(b,c))return"";if(null!=b&&null!=c){var d="";if(!this.multigraph){var e=this.model.getEdgesBetween(b,c,!0);if(1<e.length||1==e.length&&e[0]!=a)d+=(mxResources.get(this.alreadyConnectedResource)||this.alreadyConnectedResource)+
1422"\n"}var e=this.model.getDirectedEdgeCount(b,!0,a),f=this.model.getDirectedEdgeCount(c,!1,a);if(null!=this.multiplicities)for(var g=0;g<this.multiplicities.length;g++){var k=this.multiplicities[g].check(this,a,b,c,e,f);null!=k&&(d+=k)}k=this.validateEdge(a,b,c);null!=k&&(d+=k);return 0<d.length?d:null}return this.allowDanglingEdges?null:""};mxGraph.prototype.validateEdge=function(a,b,c){return null};
1423mxGraph.prototype.validateGraph=function(a,b){a=null!=a?a:this.model.getRoot();b=null!=b?b:{};for(var c=!0,d=this.model.getChildCount(a),e=0;e<d;e++){var f=this.model.getChildAt(a,e),g=b;this.isValidRoot(f)&&(g={});g=this.validateGraph(f,g);null!=g?this.setCellWarning(f,g.replace(/\n/g,"<br>")):this.setCellWarning(f,null);c=c&&null==g}d="";this.isCellCollapsed(a)&&!c&&(d+=(mxResources.get(this.containsValidationErrorsResource)||this.containsValidationErrorsResource)+"\n");d=this.model.isEdge(a)?d+
1424(this.getEdgeValidationError(a,this.model.getTerminal(a,!0),this.model.getTerminal(a,!1))||""):d+(this.getCellValidationError(a)||"");e=this.validateCell(a,b);null!=e&&(d+=e);null==this.model.getParent(a)&&this.view.validate();return 0<d.length||!c?d:null};
1425mxGraph.prototype.getCellValidationError=function(a){var b=this.model.getDirectedEdgeCount(a,!0),c=this.model.getDirectedEdgeCount(a,!1);a=this.model.getValue(a);var d="";if(null!=this.multiplicities)for(var e=0;e<this.multiplicities.length;e++){var f=this.multiplicities[e];f.source&&mxUtils.isNode(a,f.type,f.attr,f.value)&&(b>f.max||b<f.min)?d+=f.countError+"\n":!f.source&&mxUtils.isNode(a,f.type,f.attr,f.value)&&(c>f.max||c<f.min)&&(d+=f.countError+"\n")}return 0<d.length?d:null};
1426mxGraph.prototype.validateCell=function(a,b){return null};mxGraph.prototype.getBackgroundImage=function(){return this.backgroundImage};mxGraph.prototype.setBackgroundImage=function(a){this.backgroundImage=a};mxGraph.prototype.getFoldingImage=function(a){if(null!=a&&this.foldingEnabled&&!this.getModel().isEdge(a.cell)){var b=this.isCellCollapsed(a.cell);if(this.isCellFoldable(a.cell,!b))return b?this.collapsedImage:this.expandedImage}return null};
1427mxGraph.prototype.convertValueToString=function(a){a=this.model.getValue(a);if(null!=a){if(mxUtils.isNode(a))return a.nodeName;if("function"==typeof a.toString)return a.toString()}return""};mxGraph.prototype.getLabel=function(a){var b="";if(this.labelsVisible&&null!=a){var c=this.getCurrentCellStyle(a);mxUtils.getValue(c,mxConstants.STYLE_NOLABEL,!1)||(b=this.convertValueToString(a))}return b};mxGraph.prototype.isHtmlLabel=function(a){return this.isHtmlLabels()};mxGraph.prototype.isHtmlLabels=function(){return this.htmlLabels};
1428mxGraph.prototype.setHtmlLabels=function(a){this.htmlLabels=a};mxGraph.prototype.isWrapping=function(a){return"wrap"==this.getCurrentCellStyle(a)[mxConstants.STYLE_WHITE_SPACE]};mxGraph.prototype.isLabelClipped=function(a){return"hidden"==this.getCurrentCellStyle(a)[mxConstants.STYLE_OVERFLOW]};
1429mxGraph.prototype.getTooltip=function(a,b,c,d){var e=null;null!=a&&(null==a.control||b!=a.control.node&&b.parentNode!=a.control.node||(e=this.collapseExpandResource,e=mxUtils.htmlEntities(mxResources.get(e)||e).replace(/\\n/g,"<br>")),null==e&&null!=a.overlays&&a.overlays.visit(function(a,c){null!=e||b!=c.node&&b.parentNode!=c.node||(e=c.overlay.toString())}),null==e&&(c=this.selectionCellsHandler.getHandler(a.cell),null!=c&&"function"==typeof c.getTooltipForNode&&(e=c.getTooltipForNode(b))),null==
1430e&&(e=this.getTooltipForCell(a.cell)));return e};mxGraph.prototype.getTooltipForCell=function(a){return null!=a&&null!=a.getTooltip?a.getTooltip():this.convertValueToString(a)};mxGraph.prototype.getLinkForCell=function(a){return null};mxGraph.prototype.getLinkTargetForCell=function(a){return null};mxGraph.prototype.getCursorForMouseEvent=function(a){return this.getCursorForCell(a.getCell())};mxGraph.prototype.getCursorForCell=function(a){return null};
1431mxGraph.prototype.getStartSize=function(a,b){var c=new mxRectangle,d=this.getCurrentCellStyle(a,b),e=parseInt(mxUtils.getValue(d,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));mxUtils.getValue(d,mxConstants.STYLE_HORIZONTAL,!0)?c.height=e:c.width=e;return c};
1432mxGraph.prototype.getSwimlaneDirection=function(a){var b=mxUtils.getValue(a,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST),c=1==mxUtils.getValue(a,mxConstants.STYLE_FLIPH,0),d=1==mxUtils.getValue(a,mxConstants.STYLE_FLIPV,0);a=mxUtils.getValue(a,mxConstants.STYLE_HORIZONTAL,!0)?0:3;b==mxConstants.DIRECTION_NORTH?a--:b==mxConstants.DIRECTION_WEST?a+=2:b==mxConstants.DIRECTION_SOUTH&&(a+=1);b=mxUtils.mod(a,2);c&&1==b&&(a+=2);d&&0==b&&(a+=2);return[mxConstants.DIRECTION_NORTH,mxConstants.DIRECTION_EAST,
1433mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST][mxUtils.mod(a,4)]};mxGraph.prototype.getActualStartSize=function(a,b){var c=new mxRectangle;if(this.isSwimlane(a,b)){var d=this.getCurrentCellStyle(a,b),e=parseInt(mxUtils.getValue(d,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),d=this.getSwimlaneDirection(d);d==mxConstants.DIRECTION_NORTH?c.y=e:d==mxConstants.DIRECTION_WEST?c.x=e:d==mxConstants.DIRECTION_SOUTH?c.height=e:c.width=e}return c};
1434mxGraph.prototype.getImage=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_IMAGE]:null};mxGraph.prototype.isTransparentState=function(a){var b=!1;if(null!=a)var b=mxUtils.getValue(a.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),c=mxUtils.getValue(a.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE),b=b==mxConstants.NONE&&c==mxConstants.NONE&&null==this.getImage(a);return b};
1435mxGraph.prototype.getVerticalAlign=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_VERTICAL_ALIGN]||mxConstants.ALIGN_MIDDLE:null};mxGraph.prototype.getIndicatorColor=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_COLOR]:null};mxGraph.prototype.getIndicatorGradientColor=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_GRADIENTCOLOR]:null};
1436mxGraph.prototype.getIndicatorShape=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_SHAPE]:null};mxGraph.prototype.getIndicatorImage=function(a){return null!=a&&null!=a.style?a.style[mxConstants.STYLE_INDICATOR_IMAGE]:null};mxGraph.prototype.getBorder=function(){return this.border};mxGraph.prototype.setBorder=function(a){this.border=a};
1437mxGraph.prototype.isSwimlane=function(a,b){return null==a||this.model.getParent(a)==this.model.getRoot()||this.model.isEdge(a)?!1:this.getCurrentCellStyle(a,b)[mxConstants.STYLE_SHAPE]==mxConstants.SHAPE_SWIMLANE};mxGraph.prototype.isResizeContainer=function(){return this.resizeContainer};mxGraph.prototype.setResizeContainer=function(a){this.resizeContainer=a};mxGraph.prototype.isEnabled=function(){return this.enabled};
1438mxGraph.prototype.setEnabled=function(a){this.enabled=a;this.fireEvent(new mxEventObject("enabledChanged","enabled",a))};mxGraph.prototype.isEscapeEnabled=function(){return this.escapeEnabled};mxGraph.prototype.setEscapeEnabled=function(a){this.escapeEnabled=a};mxGraph.prototype.isInvokesStopCellEditing=function(){return this.invokesStopCellEditing};mxGraph.prototype.setInvokesStopCellEditing=function(a){this.invokesStopCellEditing=a};mxGraph.prototype.isEnterStopsCellEditing=function(){return this.enterStopsCellEditing};
1439mxGraph.prototype.setEnterStopsCellEditing=function(a){this.enterStopsCellEditing=a};mxGraph.prototype.isCellLocked=function(a){var b=this.model.getGeometry(a);return this.isCellsLocked()||null!=b&&this.model.isVertex(a)&&b.relative};mxGraph.prototype.isCellsLocked=function(){return this.cellsLocked};mxGraph.prototype.setCellsLocked=function(a){this.cellsLocked=a};mxGraph.prototype.getCloneableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellCloneable(a)}))};
1440mxGraph.prototype.isCellCloneable=function(a){a=this.getCurrentCellStyle(a);return this.isCellsCloneable()&&0!=a[mxConstants.STYLE_CLONEABLE]};mxGraph.prototype.isCellsCloneable=function(){return this.cellsCloneable};mxGraph.prototype.setCellsCloneable=function(a){this.cellsCloneable=a};mxGraph.prototype.getExportableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.canExportCell(a)}))};mxGraph.prototype.canExportCell=function(a){return this.exportEnabled};
1441mxGraph.prototype.getImportableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.canImportCell(a)}))};mxGraph.prototype.canImportCell=function(a){return this.importEnabled};mxGraph.prototype.isCellSelectable=function(a){return this.isCellsSelectable()};mxGraph.prototype.isCellsSelectable=function(){return this.cellsSelectable};mxGraph.prototype.setCellsSelectable=function(a){this.cellsSelectable=a};
1442mxGraph.prototype.getDeletableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellDeletable(a)}))};mxGraph.prototype.isCellDeletable=function(a){a=this.getCurrentCellStyle(a);return this.isCellsDeletable()&&0!=a[mxConstants.STYLE_DELETABLE]};mxGraph.prototype.isCellsDeletable=function(){return this.cellsDeletable};mxGraph.prototype.setCellsDeletable=function(a){this.cellsDeletable=a};
1443mxGraph.prototype.isLabelMovable=function(a){return!this.isCellLocked(a)&&(this.model.isEdge(a)&&this.edgeLabelsMovable||this.model.isVertex(a)&&this.vertexLabelsMovable)};mxGraph.prototype.getRotatableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellRotatable(a)}))};mxGraph.prototype.isCellRotatable=function(a){return 0!=this.getCurrentCellStyle(a)[mxConstants.STYLE_ROTATABLE]};
1444mxGraph.prototype.getMovableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellMovable(a)}))};mxGraph.prototype.isCellMovable=function(a){var b=this.getCurrentCellStyle(a);return this.isCellsMovable()&&!this.isCellLocked(a)&&0!=b[mxConstants.STYLE_MOVABLE]};mxGraph.prototype.isCellsMovable=function(){return this.cellsMovable};mxGraph.prototype.setCellsMovable=function(a){this.cellsMovable=a};mxGraph.prototype.isGridEnabled=function(){return this.gridEnabled};
1445mxGraph.prototype.setGridEnabled=function(a){this.gridEnabled=a};mxGraph.prototype.isPortsEnabled=function(){return this.portsEnabled};mxGraph.prototype.setPortsEnabled=function(a){this.portsEnabled=a};mxGraph.prototype.getGridSize=function(){return this.gridSize};mxGraph.prototype.setGridSize=function(a){this.gridSize=a};mxGraph.prototype.getTolerance=function(){return this.tolerance};mxGraph.prototype.setTolerance=function(a){this.tolerance=a};mxGraph.prototype.isVertexLabelsMovable=function(){return this.vertexLabelsMovable};
1446mxGraph.prototype.setVertexLabelsMovable=function(a){this.vertexLabelsMovable=a};mxGraph.prototype.isEdgeLabelsMovable=function(){return this.edgeLabelsMovable};mxGraph.prototype.setEdgeLabelsMovable=function(a){this.edgeLabelsMovable=a};mxGraph.prototype.isSwimlaneNesting=function(){return this.swimlaneNesting};mxGraph.prototype.setSwimlaneNesting=function(a){this.swimlaneNesting=a};mxGraph.prototype.isSwimlaneSelectionEnabled=function(){return this.swimlaneSelectionEnabled};
1447mxGraph.prototype.setSwimlaneSelectionEnabled=function(a){this.swimlaneSelectionEnabled=a};mxGraph.prototype.isMultigraph=function(){return this.multigraph};mxGraph.prototype.setMultigraph=function(a){this.multigraph=a};mxGraph.prototype.isAllowLoops=function(){return this.allowLoops};mxGraph.prototype.setAllowDanglingEdges=function(a){this.allowDanglingEdges=a};mxGraph.prototype.isAllowDanglingEdges=function(){return this.allowDanglingEdges};
1448mxGraph.prototype.setConnectableEdges=function(a){this.connectableEdges=a};mxGraph.prototype.isConnectableEdges=function(){return this.connectableEdges};mxGraph.prototype.setCloneInvalidEdges=function(a){this.cloneInvalidEdges=a};mxGraph.prototype.isCloneInvalidEdges=function(){return this.cloneInvalidEdges};mxGraph.prototype.setAllowLoops=function(a){this.allowLoops=a};mxGraph.prototype.isDisconnectOnMove=function(){return this.disconnectOnMove};
1449mxGraph.prototype.setDisconnectOnMove=function(a){this.disconnectOnMove=a};mxGraph.prototype.isDropEnabled=function(){return this.dropEnabled};mxGraph.prototype.setDropEnabled=function(a){this.dropEnabled=a};mxGraph.prototype.isSplitEnabled=function(){return this.splitEnabled};mxGraph.prototype.setSplitEnabled=function(a){this.splitEnabled=a};mxGraph.prototype.getResizableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellResizable(a)}))};
1450mxGraph.prototype.isCellResizable=function(a){var b=this.getCurrentCellStyle(a);return this.isCellsResizable()&&!this.isCellLocked(a)&&"0"!=mxUtils.getValue(b,mxConstants.STYLE_RESIZABLE,"1")};mxGraph.prototype.isCellsResizable=function(){return this.cellsResizable};mxGraph.prototype.setCellsResizable=function(a){this.cellsResizable=a};mxGraph.prototype.isTerminalPointMovable=function(a,b){return!0};
1451mxGraph.prototype.isCellBendable=function(a){var b=this.getCurrentCellStyle(a);return this.isCellsBendable()&&!this.isCellLocked(a)&&0!=b[mxConstants.STYLE_BENDABLE]};mxGraph.prototype.isCellsBendable=function(){return this.cellsBendable};mxGraph.prototype.setCellsBendable=function(a){this.cellsBendable=a};mxGraph.prototype.getEditableCells=function(a){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellEditable(a)}))};
1452mxGraph.prototype.isCellEditable=function(a){var b=this.getCurrentCellStyle(a);return this.isCellsEditable()&&!this.isCellLocked(a)&&0!=b[mxConstants.STYLE_EDITABLE]};mxGraph.prototype.isCellsEditable=function(){return this.cellsEditable};mxGraph.prototype.setCellsEditable=function(a){this.cellsEditable=a};mxGraph.prototype.isCellDisconnectable=function(a,b,c){return this.isCellsDisconnectable()&&!this.isCellLocked(a)};mxGraph.prototype.isCellsDisconnectable=function(){return this.cellsDisconnectable};
1453mxGraph.prototype.setCellsDisconnectable=function(a){this.cellsDisconnectable=a};mxGraph.prototype.isValidSource=function(a){return null==a&&this.allowDanglingEdges||null!=a&&(!this.model.isEdge(a)||this.connectableEdges)&&this.isCellConnectable(a)};mxGraph.prototype.isValidTarget=function(a){return this.isValidSource(a)};mxGraph.prototype.isValidConnection=function(a,b){return this.isValidSource(a)&&this.isValidTarget(b)};mxGraph.prototype.setConnectable=function(a){this.connectionHandler.setEnabled(a)};
1454mxGraph.prototype.isConnectable=function(){return this.connectionHandler.isEnabled()};mxGraph.prototype.setTooltips=function(a){this.tooltipHandler.setEnabled(a)};mxGraph.prototype.setPanning=function(a){this.panningHandler.panningEnabled=a};mxGraph.prototype.isEditing=function(a){if(null!=this.cellEditor){var b=this.cellEditor.getEditingCell();return null==a?null!=b:a==b}return!1};mxGraph.prototype.isAutoSizeCell=function(a){a=this.getCurrentCellStyle(a);return this.isAutoSizeCells()||1==a[mxConstants.STYLE_AUTOSIZE]};
1455mxGraph.prototype.isAutoSizeCells=function(){return this.autoSizeCells};mxGraph.prototype.setAutoSizeCells=function(a){this.autoSizeCells=a};mxGraph.prototype.isExtendParent=function(a){return!this.getModel().isEdge(a)&&this.isExtendParents()};mxGraph.prototype.isExtendParents=function(){return this.extendParents};mxGraph.prototype.setExtendParents=function(a){this.extendParents=a};mxGraph.prototype.isExtendParentsOnAdd=function(a){return this.extendParentsOnAdd};
1456mxGraph.prototype.setExtendParentsOnAdd=function(a){this.extendParentsOnAdd=a};mxGraph.prototype.isExtendParentsOnMove=function(){return this.extendParentsOnMove};mxGraph.prototype.setExtendParentsOnMove=function(a){this.extendParentsOnMove=a};mxGraph.prototype.isRecursiveResize=function(a){return this.recursiveResize};mxGraph.prototype.setRecursiveResize=function(a){this.recursiveResize=a};mxGraph.prototype.isConstrainChild=function(a){return this.isConstrainChildren()&&!this.getModel().isEdge(this.getModel().getParent(a))};
1457mxGraph.prototype.isConstrainChildren=function(){return this.constrainChildren};mxGraph.prototype.setConstrainChildren=function(a){this.constrainChildren=a};mxGraph.prototype.isConstrainRelativeChildren=function(){return this.constrainRelativeChildren};mxGraph.prototype.setConstrainRelativeChildren=function(a){this.constrainRelativeChildren=a};mxGraph.prototype.isAllowNegativeCoordinates=function(){return this.allowNegativeCoordinates};
1458mxGraph.prototype.setAllowNegativeCoordinates=function(a){this.allowNegativeCoordinates=a};mxGraph.prototype.getOverlap=function(a){return this.isAllowOverlapParent(a)?this.defaultOverlap:0};mxGraph.prototype.isAllowOverlapParent=function(a){return!1};mxGraph.prototype.getFoldableCells=function(a,b){return this.model.filterCells(a,mxUtils.bind(this,function(a){return this.isCellFoldable(a,b)}))};
1459mxGraph.prototype.isCellFoldable=function(a,b){var c=this.getCurrentCellStyle(a);return 0<this.model.getChildCount(a)&&0!=c[mxConstants.STYLE_FOLDABLE]};mxGraph.prototype.isValidDropTarget=function(a,b,c){return null!=a&&(this.isSplitEnabled()&&this.isSplitTarget(a,b,c)||!this.model.isEdge(a)&&(this.isSwimlane(a)||0<this.model.getChildCount(a)&&!this.isCellCollapsed(a)))};
1460mxGraph.prototype.isSplitTarget=function(a,b,c){return this.model.isEdge(a)&&null!=b&&1==b.length&&this.isCellConnectable(b[0])&&null==this.getEdgeValidationError(a,this.model.getTerminal(a,!0),b[0])?(c=this.model.getTerminal(a,!0),a=this.model.getTerminal(a,!1),!this.model.isAncestor(b[0],c)&&!this.model.isAncestor(b[0],a)):!1};
1461mxGraph.prototype.getDropTarget=function(a,b,c,d){if(!this.isSwimlaneNesting())for(var e=0;e<a.length;e++)if(this.isSwimlane(a[e]))return null;e=mxUtils.convertPoint(this.container,mxEvent.getClientX(b),mxEvent.getClientY(b));e.x-=this.panDx;e.y-=this.panDy;e=this.getSwimlaneAt(e.x,e.y);if(null==c)c=e;else if(null!=e){for(var f=this.model.getParent(e);null!=f&&this.isSwimlane(f)&&f!=c;)f=this.model.getParent(f);f==c&&(c=e)}for(;null!=c&&!this.isValidDropTarget(c,a,b)&&!this.model.isLayer(c);)c=this.model.getParent(c);
1462if(null==d||!d)for(var g=c;null!=g&&0>mxUtils.indexOf(a,g);)g=this.model.getParent(g);return this.model.isLayer(c)||null!=g?null:c};mxGraph.prototype.getDefaultParent=function(){var a=this.getCurrentRoot();null==a&&(a=this.defaultParent,null==a&&(a=this.model.getRoot(),a=this.model.getChildAt(a,0)));return a};mxGraph.prototype.setDefaultParent=function(a){this.defaultParent=a};mxGraph.prototype.getSwimlane=function(a){for(;null!=a&&!this.isSwimlane(a);)a=this.model.getParent(a);return a};
1463mxGraph.prototype.getSwimlaneAt=function(a,b,c){null==c&&(c=this.getCurrentRoot(),null==c&&(c=this.model.getRoot()));if(null!=c)for(var d=this.model.getChildCount(c),e=0;e<d;e++){var f=this.model.getChildAt(c,e);if(null!=f){var g=this.getSwimlaneAt(a,b,f);if(null!=g)return g;if(this.isCellVisible(f)&&this.isSwimlane(f)&&(g=this.view.getState(f),this.intersects(g,a,b)))return f}}return null};
1464mxGraph.prototype.getCellAt=function(a,b,c,d,e,f){d=null!=d?d:!0;e=null!=e?e:!0;null==c&&(c=this.getCurrentRoot(),null==c&&(c=this.getModel().getRoot()));if(null!=c)for(var g=this.model.getChildCount(c)-1;0<=g;g--){var k=this.model.getChildAt(c,g),l=this.getCellAt(a,b,k,d,e,f);if(null!=l)return l;if(this.isCellVisible(k)&&(e&&this.model.isEdge(k)||d&&this.model.isVertex(k))&&(l=this.view.getState(k),null!=l&&(null==f||!f(l,a,b))&&this.intersects(l,a,b)))return k}return null};
1465mxGraph.prototype.intersects=function(a,b,c){if(null!=a){var d=a.absolutePoints;if(null!=d){a=this.tolerance*this.tolerance;for(var e=d[0],f=1;f<d.length;f++){var g=d[f];if(mxUtils.ptSegDistSq(e.x,e.y,g.x,g.y,b,c)<=a)return!0;e=g}}else if(e=mxUtils.toRadians(mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION)||0),0!=e&&(d=Math.cos(-e),e=Math.sin(-e),f=new mxPoint(a.getCenterX(),a.getCenterY()),e=mxUtils.getRotatedPoint(new mxPoint(b,c),d,e,f),b=e.x,c=e.y),mxUtils.contains(a,b,c))return!0}return!1};
1466mxGraph.prototype.hitsSwimlaneContent=function(a,b,c){var d=this.getView().getState(a);a=this.getStartSize(a);if(null!=d){var e=this.getView().getScale();b-=d.x;c-=d.y;if(0<a.width&&0<b&&b>a.width*e||0<a.height&&0<c&&c>a.height*e)return!0}return!1};mxGraph.prototype.getChildVertices=function(a){return this.getChildCells(a,!0,!1)};mxGraph.prototype.getChildEdges=function(a){return this.getChildCells(a,!1,!0)};
1467mxGraph.prototype.getChildCells=function(a,b,c){a=null!=a?a:this.getDefaultParent();a=this.model.getChildCells(a,null!=b?b:!1,null!=c?c:!1);b=[];for(c=0;c<a.length;c++)this.isCellVisible(a[c])&&b.push(a[c]);return b};mxGraph.prototype.getConnections=function(a,b){return this.getEdges(a,b,!0,!0,!1)};mxGraph.prototype.getIncomingEdges=function(a,b){return this.getEdges(a,b,!0,!1,!1)};mxGraph.prototype.getOutgoingEdges=function(a,b){return this.getEdges(a,b,!1,!0,!1)};
1468mxGraph.prototype.getEdges=function(a,b,c,d,e,f){c=null!=c?c:!0;d=null!=d?d:!0;e=null!=e?e:!0;f=null!=f?f:!1;for(var g=[],k=this.isCellCollapsed(a),l=this.model.getChildCount(a),m=0;m<l;m++){var n=this.model.getChildAt(a,m);if(k||!this.isCellVisible(n))g=g.concat(this.model.getEdges(n,c,d))}g=g.concat(this.model.getEdges(a,c,d));k=[];for(m=0;m<g.length;m++)n=this.view.getState(g[m]),l=null!=n?n.getVisibleTerminal(!0):this.view.getVisibleTerminal(g[m],!0),n=null!=n?n.getVisibleTerminal(!1):this.view.getVisibleTerminal(g[m],
1469!1),(e&&l==n||l!=n&&(c&&n==a&&(null==b||this.isValidAncestor(l,b,f))||d&&l==a&&(null==b||this.isValidAncestor(n,b,f))))&&k.push(g[m]);return k};mxGraph.prototype.isValidAncestor=function(a,b,c){return c?this.model.isAncestor(b,a):this.model.getParent(a)==b};
1470mxGraph.prototype.getOpposites=function(a,b,c,d){c=null!=c?c:!0;d=null!=d?d:!0;var e=[],f=new mxDictionary;if(null!=a)for(var g=0;g<a.length;g++){var k=this.view.getState(a[g]),l=null!=k?k.getVisibleTerminal(!0):this.view.getVisibleTerminal(a[g],!0),k=null!=k?k.getVisibleTerminal(!1):this.view.getVisibleTerminal(a[g],!1);l==b&&null!=k&&k!=b&&d?f.get(k)||(f.put(k,!0),e.push(k)):k==b&&null!=l&&l!=b&&c&&!f.get(l)&&(f.put(l,!0),e.push(l))}return e};
1471mxGraph.prototype.getEdgesBetween=function(a,b,c){c=null!=c?c:!1;for(var d=this.getEdges(a),e=[],f=0;f<d.length;f++){var g=this.view.getState(d[f]),k=null!=g?g.getVisibleTerminal(!0):this.view.getVisibleTerminal(d[f],!0),g=null!=g?g.getVisibleTerminal(!1):this.view.getVisibleTerminal(d[f],!1);(k==a&&g==b||!c&&k==b&&g==a)&&e.push(d[f])}return e};
1472mxGraph.prototype.getPointForEvent=function(a,b){var c=mxUtils.convertPoint(this.container,mxEvent.getClientX(a),mxEvent.getClientY(a)),d=this.view.scale,e=this.view.translate,f=0!=b?this.gridSize/2:0;c.x=this.snap(c.x/d-e.x-f);c.y=this.snap(c.y/d-e.y-f);return c};
1473mxGraph.prototype.getCells=function(a,b,c,d,e,f,g,k,l){f=null!=f?f:[];if(0<c||0<d||null!=g){var m=this.getModel(),n=a+c,p=b+d;null==e&&(e=this.getCurrentRoot(),null==e&&(e=m.getRoot()));if(null!=e)for(var q=m.getChildCount(e),r=0;r<q;r++){var t=m.getChildAt(e,r),u=this.view.getState(t);if(null!=u&&this.isCellVisible(t)&&(null==k||!k(u))){var x=mxUtils.getValue(u.style,mxConstants.STYLE_ROTATION)||0;0!=x&&(u=mxUtils.getBoundingBox(u,x));(x=null!=g&&m.isVertex(t)&&mxUtils.intersects(g,u)||null!=g&&
1474m.isEdge(t)&&mxUtils.intersects(g,u)||null==g&&(m.isEdge(t)||m.isVertex(t))&&u.x>=a&&u.y+u.height<=p&&u.y>=b&&u.x+u.width<=n)&&f.push(t);x&&!l||this.getCells(a,b,c,d,t,f,g,k,l)}}}return f};mxGraph.prototype.getCellsBeyond=function(a,b,c,d,e){var f=[];if(d||e)if(null==c&&(c=this.getDefaultParent()),null!=c)for(var g=this.model.getChildCount(c),k=0;k<g;k++){var l=this.model.getChildAt(c,k),m=this.view.getState(l);this.isCellVisible(l)&&null!=m&&(!d||m.x>=a)&&(!e||m.y>=b)&&f.push(l)}return f};
1475mxGraph.prototype.findTreeRoots=function(a,b,c){b=null!=b?b:!1;c=null!=c?c:!1;var d=[];if(null!=a){for(var e=this.getModel(),f=e.getChildCount(a),g=null,k=0,l=0;l<f;l++){var m=e.getChildAt(a,l);if(this.model.isVertex(m)&&this.isCellVisible(m)){for(var n=this.getConnections(m,b?a:null),p=0,q=0,r=0;r<n.length;r++)this.view.getVisibleTerminal(n[r],!0)==m?p++:q++;(c&&0==p&&0<q||!c&&0==q&&0<p)&&d.push(m);n=c?q-p:p-q;n>k&&(k=n,g=m)}}0==d.length&&null!=g&&d.push(g)}return d};
1476mxGraph.prototype.traverse=function(a,b,c,d,e,f){if(null!=c&&null!=a&&(b=null!=b?b:!0,f=null!=f?f:!1,e=e||new mxDictionary,null==d||!e.get(d))&&(e.put(d,!0),d=c(a,d),null==d||d)&&(d=this.model.getEdgeCount(a),0<d))for(var g=0;g<d;g++){var k=this.model.getEdgeAt(a,g),l=this.model.getTerminal(k,!0)==a;b&&!f!=l||(l=this.model.getTerminal(k,!l),this.traverse(l,b,c,k,e,f))}};mxGraph.prototype.isCellSelected=function(a){return this.getSelectionModel().isSelected(a)};mxGraph.prototype.isSelectionEmpty=function(){return this.getSelectionModel().isEmpty()};
1477mxGraph.prototype.clearSelection=function(){return this.getSelectionModel().clear()};mxGraph.prototype.getSelectionCount=function(){return this.getSelectionModel().cells.length};mxGraph.prototype.getSelectionCell=function(){return this.getSelectionModel().cells[0]};mxGraph.prototype.getSelectionCells=function(){return this.getSelectionModel().cells.slice()};mxGraph.prototype.setSelectionCell=function(a){this.getSelectionModel().setCell(a)};mxGraph.prototype.setSelectionCells=function(a){this.getSelectionModel().setCells(a)};
1478mxGraph.prototype.addSelectionCell=function(a){this.getSelectionModel().addCell(a)};mxGraph.prototype.addSelectionCells=function(a){this.getSelectionModel().addCells(a)};mxGraph.prototype.removeSelectionCell=function(a){this.getSelectionModel().removeCell(a)};mxGraph.prototype.removeSelectionCells=function(a){this.getSelectionModel().removeCells(a)};mxGraph.prototype.selectRegion=function(a,b){var c=this.getCells(a.x,a.y,a.width,a.height);this.selectCellsForEvent(c,b);return c};
1479mxGraph.prototype.selectNextCell=function(){this.selectCell(!0)};mxGraph.prototype.selectPreviousCell=function(){this.selectCell()};mxGraph.prototype.selectParentCell=function(){this.selectCell(!1,!0)};mxGraph.prototype.selectChildCell=function(){this.selectCell(!1,!1,!0)};
1480mxGraph.prototype.selectCell=function(a,b,c){var d=this.selectionModel,e=0<d.cells.length?d.cells[0]:null;1<d.cells.length&&d.clear();var d=null!=e?this.model.getParent(e):this.getDefaultParent(),f=this.model.getChildCount(d);null==e&&0<f?(a=this.model.getChildAt(d,0),this.setSelectionCell(a)):null!=e&&!b||null==this.view.getState(d)||null==this.model.getGeometry(d)?null!=e&&c?0<this.model.getChildCount(e)&&(a=this.model.getChildAt(e,0),this.setSelectionCell(a)):0<f&&(b=d.getIndex(e),a?(b++,a=this.model.getChildAt(d,
1481b%f)):(b--,a=this.model.getChildAt(d,0>b?f-1:b)),this.setSelectionCell(a)):this.getCurrentRoot()!=d&&this.setSelectionCell(d)};mxGraph.prototype.selectAll=function(a,b){a=a||this.getDefaultParent();var c=b?this.model.filterDescendants(mxUtils.bind(this,function(b){return b!=a&&null!=this.view.getState(b)}),a):this.model.getChildren(a);null!=c&&this.setSelectionCells(c)};mxGraph.prototype.selectVertices=function(a,b){this.selectCells(!0,!1,a,b)};
1482mxGraph.prototype.selectEdges=function(a){this.selectCells(!1,!0,a)};mxGraph.prototype.selectCells=function(a,b,c,d){c=c||this.getDefaultParent();var e=mxUtils.bind(this,function(c){return null!=this.view.getState(c)&&((d||0==this.model.getChildCount(c))&&this.model.isVertex(c)&&a&&!this.model.isEdge(this.model.getParent(c))||this.model.isEdge(c)&&b)});c=this.model.filterDescendants(e,c);null!=c&&this.setSelectionCells(c)};
1483mxGraph.prototype.selectCellForEvent=function(a,b){var c=this.isCellSelected(a);this.isToggleEvent(b)?c?this.removeSelectionCell(a):this.addSelectionCell(a):c&&1==this.getSelectionCount()||this.setSelectionCell(a)};mxGraph.prototype.selectCellsForEvent=function(a,b){this.isToggleEvent(b)?this.addSelectionCells(a):this.setSelectionCells(a)};
1484mxGraph.prototype.createHandler=function(a){var b=null;if(null!=a)if(this.model.isEdge(a.cell))var b=a.getVisibleTerminalState(!0),c=a.getVisibleTerminalState(!1),d=this.getCellGeometry(a.cell),b=this.view.getEdgeStyle(a,null!=d?d.points:null,b,c),b=this.createEdgeHandler(a,b);else b=this.createVertexHandler(a);return b};mxGraph.prototype.createVertexHandler=function(a){return new mxVertexHandler(a)};
1485mxGraph.prototype.createEdgeHandler=function(a,b){return b==mxEdgeStyle.Loop||b==mxEdgeStyle.ElbowConnector||b==mxEdgeStyle.SideToSide||b==mxEdgeStyle.TopToBottom?this.createElbowEdgeHandler(a):b==mxEdgeStyle.SegmentConnector||b==mxEdgeStyle.OrthConnector?this.createEdgeSegmentHandler(a):new mxEdgeHandler(a)};mxGraph.prototype.createEdgeSegmentHandler=function(a){return new mxEdgeSegmentHandler(a)};mxGraph.prototype.createElbowEdgeHandler=function(a){return new mxElbowEdgeHandler(a)};
1486mxGraph.prototype.addMouseListener=function(a){null==this.mouseListeners&&(this.mouseListeners=[]);this.mouseListeners.push(a)};mxGraph.prototype.removeMouseListener=function(a){if(null!=this.mouseListeners)for(var b=0;b<this.mouseListeners.length;b++)if(this.mouseListeners[b]==a){this.mouseListeners.splice(b,1);break}};
1487mxGraph.prototype.updateMouseEvent=function(a,b){if(null==a.graphX||null==a.graphY){var c=mxUtils.convertPoint(this.container,a.getX(),a.getY());a.graphX=c.x-this.panDx;a.graphY=c.y-this.panDy;null==a.getCell()&&this.isMouseDown&&b==mxEvent.MOUSE_MOVE&&(a.state=this.view.getState(this.getCellAt(c.x,c.y,null,null,null,function(a){return null==a.shape||a.shape.paintBackground!=mxRectangleShape.prototype.paintBackground||"1"==mxUtils.getValue(a.style,mxConstants.STYLE_POINTER_EVENTS,"1")||null!=a.shape.fill&&
1488a.shape.fill!=mxConstants.NONE})))}return a};mxGraph.prototype.getStateForTouchEvent=function(a){var b=mxEvent.getClientX(a);a=mxEvent.getClientY(a);b=mxUtils.convertPoint(this.container,b,a);return this.view.getState(this.getCellAt(b.x,b.y))};
1489mxGraph.prototype.isEventIgnored=function(a,b,c){var d=mxEvent.isMouseEvent(b.getEvent()),e=!1;b.getEvent()==this.lastEvent?e=!0:this.lastEvent=b.getEvent();null!=this.eventSource&&a!=mxEvent.MOUSE_MOVE?(mxEvent.removeGestureListeners(this.eventSource,null,this.mouseMoveRedirect,this.mouseUpRedirect),this.eventSource=this.mouseUpRedirect=this.mouseMoveRedirect=null):mxClient.IS_GC||null==this.eventSource||b.getSource()==this.eventSource?!mxClient.IS_TOUCH||a!=mxEvent.MOUSE_DOWN||d||mxEvent.isPenEvent(b.getEvent())||
1490(this.eventSource=b.getSource(),this.mouseMoveRedirect=mxUtils.bind(this,function(a){this.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(a,this.getStateForTouchEvent(a)))}),this.mouseUpRedirect=mxUtils.bind(this,function(a){this.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(a,this.getStateForTouchEvent(a)))}),mxEvent.addGestureListeners(this.eventSource,null,this.mouseMoveRedirect,this.mouseUpRedirect)):e=!0;this.isSyntheticEventIgnored(a,b,c)&&(e=!0);if(!mxEvent.isPopupTrigger(this.lastEvent)&&
1491a!=mxEvent.MOUSE_MOVE&&2==this.lastEvent.detail)return!0;a==mxEvent.MOUSE_UP&&this.isMouseDown?this.isMouseDown=!1:a!=mxEvent.MOUSE_DOWN||this.isMouseDown?!e&&((!mxClient.IS_FF||a!=mxEvent.MOUSE_MOVE)&&this.isMouseDown&&this.isMouseTrigger!=d||a==mxEvent.MOUSE_DOWN&&this.isMouseDown||a==mxEvent.MOUSE_UP&&!this.isMouseDown)&&(e=!0):(this.isMouseDown=!0,this.isMouseTrigger=d);e||a!=mxEvent.MOUSE_DOWN||(this.lastMouseX=b.getX(),this.lastMouseY=b.getY());return e};
1492mxGraph.prototype.isSyntheticEventIgnored=function(a,b,c){c=!1;b=mxEvent.isMouseEvent(b.getEvent());this.ignoreMouseEvents&&b&&a!=mxEvent.MOUSE_MOVE?(this.ignoreMouseEvents=a!=mxEvent.MOUSE_UP,c=!0):mxClient.IS_FF&&!b&&a==mxEvent.MOUSE_UP&&(this.ignoreMouseEvents=!0);return c};
1493mxGraph.prototype.isEventSourceIgnored=function(a,b){var c=b.getSource(),d=null!=c.nodeName?c.nodeName.toLowerCase():"",e=!mxEvent.isMouseEvent(b.getEvent())||mxEvent.isLeftMouseButton(b.getEvent());return a==mxEvent.MOUSE_DOWN&&e&&("select"==d||"option"==d||"input"==d&&"checkbox"!=c.type&&"radio"!=c.type&&"button"!=c.type&&"submit"!=c.type&&"file"!=c.type)};mxGraph.prototype.getEventState=function(a){return a};
1494mxGraph.prototype.fireMouseEvent=function(a,b,c){if(this.isEventSourceIgnored(a,b))null!=this.tooltipHandler&&this.tooltipHandler.hide();else{null==c&&(c=this);b=this.updateMouseEvent(b,a);if(!this.nativeDblClickEnabled&&!mxEvent.isPopupTrigger(b.getEvent())||this.doubleTapEnabled&&mxClient.IS_TOUCH&&(mxEvent.isTouchEvent(b.getEvent())||mxEvent.isPenEvent(b.getEvent()))){var d=(new Date).getTime();if(a==mxEvent.MOUSE_DOWN)if(null!=this.lastTouchEvent&&this.lastTouchEvent!=b.getEvent()&&d-this.lastTouchTime<
1495this.doubleTapTimeout&&Math.abs(this.lastTouchX-b.getX())<this.doubleTapTolerance&&Math.abs(this.lastTouchY-b.getY())<this.doubleTapTolerance&&2>this.doubleClickCounter){if(this.doubleClickCounter++,d=!1,a==mxEvent.MOUSE_UP?b.getCell()==this.lastTouchCell&&null!=this.lastTouchCell&&(this.lastTouchTime=0,d=this.lastTouchCell,this.lastTouchCell=null,this.dblClick(b.getEvent(),d),d=!0):(this.fireDoubleClick=!0,this.lastTouchTime=0),d){mxEvent.consume(b.getEvent());return}}else{if(null==this.lastTouchEvent||
1496this.lastTouchEvent!=b.getEvent())this.lastTouchCell=b.getCell(),this.lastTouchX=b.getX(),this.lastTouchY=b.getY(),this.lastTouchTime=d,this.lastTouchEvent=b.getEvent(),this.doubleClickCounter=0}else if((this.isMouseDown||a==mxEvent.MOUSE_UP)&&this.fireDoubleClick){this.fireDoubleClick=!1;d=this.lastTouchCell;this.lastTouchCell=null;this.isMouseDown=!1;(null!=d||(mxEvent.isTouchEvent(b.getEvent())||mxEvent.isPenEvent(b.getEvent()))&&(mxClient.IS_GC||mxClient.IS_SF))&&Math.abs(this.lastTouchX-b.getX())<
1497this.doubleTapTolerance&&Math.abs(this.lastTouchY-b.getY())<this.doubleTapTolerance?this.dblClick(b.getEvent(),d):mxEvent.consume(b.getEvent());return}}if(!this.isEventIgnored(a,b,c)){b.state=this.getEventState(b.getState());this.fireEvent(new mxEventObject(mxEvent.FIRE_MOUSE_EVENT,"eventName",a,"event",b));if(mxClient.IS_OP||mxClient.IS_SF||mxClient.IS_GC||mxClient.IS_IE11||mxClient.IS_IE&&mxClient.IS_SVG||b.getEvent().target!=this.container){if(a==mxEvent.MOUSE_MOVE&&this.isMouseDown&&this.autoScroll&&
1498!mxEvent.isMultiTouchEvent(b.getEvent))this.scrollPointToVisible(b.getGraphX(),b.getGraphY(),this.autoExtend);else if(a==mxEvent.MOUSE_UP&&this.ignoreScrollbars&&this.translateToScrollPosition&&(0!=this.container.scrollLeft||0!=this.container.scrollTop)){var d=this.view.scale,e=this.view.translate;this.view.setTranslate(e.x-this.container.scrollLeft/d,e.y-this.container.scrollTop/d);this.container.scrollLeft=0;this.container.scrollTop=0}if(null!=this.mouseListeners)for(d=[c,b],b.getEvent().preventDefault||
1499(b.getEvent().returnValue=!0),e=0;e<this.mouseListeners.length;e++){var f=this.mouseListeners[e];a==mxEvent.MOUSE_DOWN?f.mouseDown.apply(f,d):a==mxEvent.MOUSE_MOVE?f.mouseMove.apply(f,d):a==mxEvent.MOUSE_UP&&f.mouseUp.apply(f,d)}a==mxEvent.MOUSE_UP&&this.click(b)}(mxEvent.isTouchEvent(b.getEvent())||mxEvent.isPenEvent(b.getEvent()))&&a==mxEvent.MOUSE_DOWN&&this.tapAndHoldEnabled&&!this.tapAndHoldInProgress?(this.tapAndHoldInProgress=!0,this.initialTouchX=b.getGraphX(),this.initialTouchY=b.getGraphY(),
1500this.tapAndHoldThread&&window.clearTimeout(this.tapAndHoldThread),this.tapAndHoldThread=window.setTimeout(mxUtils.bind(this,function(){this.tapAndHoldValid&&this.tapAndHold(b);this.tapAndHoldValid=this.tapAndHoldInProgress=!1}),this.tapAndHoldDelay),this.tapAndHoldValid=!0):a==mxEvent.MOUSE_UP?this.tapAndHoldValid=this.tapAndHoldInProgress=!1:this.tapAndHoldValid&&(this.tapAndHoldValid=Math.abs(this.initialTouchX-b.getGraphX())<this.tolerance&&Math.abs(this.initialTouchY-b.getGraphY())<this.tolerance);
1501a==mxEvent.MOUSE_DOWN&&this.isEditing()&&!this.cellEditor.isEventSource(b.getEvent())&&this.stopEditing(!this.isInvokesStopCellEditing());this.consumeMouseEvent(a,b,c)}}};mxGraph.prototype.consumeMouseEvent=function(a,b,c){a==mxEvent.MOUSE_DOWN&&mxEvent.isTouchEvent(b.getEvent())&&b.consume(!1)};mxGraph.prototype.fireGestureEvent=function(a,b){this.lastTouchTime=0;this.fireEvent(new mxEventObject(mxEvent.GESTURE,"event",a,"cell",b))};
1502mxGraph.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,null!=this.tooltipHandler&&this.tooltipHandler.destroy(),null!=this.selectionCellsHandler&&this.selectionCellsHandler.destroy(),null!=this.panningHandler&&this.panningHandler.destroy(),null!=this.popupMenuHandler&&this.popupMenuHandler.destroy(),null!=this.connectionHandler&&this.connectionHandler.destroy(),null!=this.graphHandler&&this.graphHandler.destroy(),null!=this.cellEditor&&this.cellEditor.destroy(),null!=this.view&&this.view.destroy(),
1503null!=this.model&&null!=this.graphModelChangeListener&&(this.model.removeListener(this.graphModelChangeListener),this.graphModelChangeListener=null),this.container=null)};function mxCellOverlay(a,b,c,d,e,f){this.image=a;this.tooltip=b;this.align=null!=c?c:this.align;this.verticalAlign=null!=d?d:this.verticalAlign;this.offset=null!=e?e:new mxPoint;this.cursor=null!=f?f:"help"}mxCellOverlay.prototype=new mxEventSource;mxCellOverlay.prototype.constructor=mxCellOverlay;mxCellOverlay.prototype.image=null;
1504mxCellOverlay.prototype.tooltip=null;mxCellOverlay.prototype.align=mxConstants.ALIGN_RIGHT;mxCellOverlay.prototype.verticalAlign=mxConstants.ALIGN_BOTTOM;mxCellOverlay.prototype.offset=null;mxCellOverlay.prototype.cursor=null;mxCellOverlay.prototype.defaultOverlap=.5;
1505mxCellOverlay.prototype.getBounds=function(a){var b=a.view.graph.getModel().isEdge(a.cell),c=a.view.scale,d=this.image.width,e=this.image.height;if(b)if(b=a.absolutePoints,1==b.length%2)b=b[Math.floor(b.length/2)];else{var f=b.length/2;a=b[f-1];b=b[f];b=new mxPoint(a.x+(b.x-a.x)/2,a.y+(b.y-a.y)/2)}else b=new mxPoint,b.x=this.align==mxConstants.ALIGN_LEFT?a.x:this.align==mxConstants.ALIGN_CENTER?a.x+a.width/2:a.x+a.width,b.y=this.verticalAlign==mxConstants.ALIGN_TOP?a.y:this.verticalAlign==mxConstants.ALIGN_MIDDLE?
1506a.y+a.height/2:a.y+a.height;return new mxRectangle(Math.round(b.x-(d*this.defaultOverlap-this.offset.x)*c),Math.round(b.y-(e*this.defaultOverlap-this.offset.y)*c),d*c,e*c)};mxCellOverlay.prototype.toString=function(){return this.tooltip};function mxOutline(a,b){this.source=a;null!=b&&this.init(b)}mxOutline.prototype.source=null;mxOutline.prototype.container=null;mxOutline.prototype.enabled=!0;mxOutline.prototype.suspended=!1;mxOutline.prototype.border=14;
1507mxOutline.prototype.opacity=mxClient.IS_IE11?.9:.7;
1508mxOutline.prototype.init=function(a){this.container=a;this.updateHandler=mxUtils.bind(this,function(a,c){this.update(!0)});this.source.getModel().addListener(mxEvent.CHANGE,this.updateHandler);this.source.addListener(mxEvent.REFRESH,this.updateHandler);a=this.source.getView();a.addListener(mxEvent.UP,this.updateHandler);a.addListener(mxEvent.DOWN,this.updateHandler);a.addListener(mxEvent.SCALE,this.updateHandler);a.addListener(mxEvent.TRANSLATE,this.updateHandler);a.addListener(mxEvent.SCALE_AND_TRANSLATE,
1509this.updateHandler);this.scrollHandler=mxUtils.bind(this,function(a,c){this.update(!1)});mxEvent.addListener(this.source.container,"scroll",this.scrollHandler);this.source.addListener(mxEvent.PAN,this.scrollHandler);this.update(!0)};mxOutline.prototype.isEnabled=function(){return this.enabled};mxOutline.prototype.setEnabled=function(a){this.enabled=a};mxOutline.prototype.isSuspended=function(){return this.suspended};mxOutline.prototype.setSuspended=function(a){this.suspended=a;this.update(!0)};
1510mxOutline.prototype.isScrolling=function(){return this.source.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.source.container)};
1511mxOutline.prototype.createSvg=function(){var a=document.createElementNS(mxConstants.NS_SVG,"svg");a.style.position="absolute";a.style.left="0px";a.style.top="0px";a.style.width="100%";a.style.height="100%";a.style.display="block";a.style.padding=this.border+"px";a.style.boxSizing="border-box";a.style.overflow="visible";a.style.cursor="default";a.setAttribute("shape-rendering","optimizeSpeed");a.setAttribute("image-rendering","optimizeSpeed");return a};
1512mxOutline.prototype.addGestureListeners=function(a){var b=null,c=0,d=0,e=1,f=mxUtils.bind(this,function(f){if(this.isEnabled()){b=new mxPoint(mxEvent.getClientX(f),mxEvent.getClientY(f));var l=a.clientWidth-2*this.border,n=a.clientHeight-2*this.border,p=this.getViewBox();e=Math.max(p.width/l,p.height/n);if(mxEvent.getSource(f)!=this.viewport)if(this.isScrolling()){var l=l-p.width/e,n=n-p.height/e,q=this.svg.getBoundingClientRect();this.source.container.scrollLeft=p.x-l*e/2+(b.x-this.border-q.left)*
1513e;this.source.container.scrollTop=p.y-n*e/2+(b.y-this.border-q.top)*e}else p=this.source.view.translate,n=this.viewport.getBoundingClientRect(),l=(mxEvent.getClientX(f)-n.left)*e/this.source.view.scale,n=(mxEvent.getClientY(f)-n.top)*e/this.source.view.scale,this.source.getView().setTranslate(p.x-l,p.y-n),this.source.panGraph(0,0);mxEvent.addGestureListeners(document,null,g,k);c=this.source.container.scrollLeft;d=this.source.container.scrollTop;mxEvent.consume(f)}}),g=mxUtils.bind(this,function(a){this.isEnabled()&&
1514null!=b&&(this.isScrolling()?(this.source.container.scrollLeft=c+(mxEvent.getClientX(a)-b.x)*e,this.source.container.scrollTop=d+(mxEvent.getClientY(a)-b.y)*e):this.source.panGraph((b.x-mxEvent.getClientX(a))*e,(b.y-mxEvent.getClientY(a))*e),mxEvent.consume(a))}),k=mxUtils.bind(this,function(a){if(this.isEnabled()&&null!=b){if(!this.isScrolling()){var c=(mxEvent.getClientX(a)-b.x)*e/this.source.view.scale,d=(mxEvent.getClientY(a)-b.y)*e/this.source.view.scale,f=this.source.view.translate;this.source.getView().setTranslate(f.x-
1515c,f.y-d);this.source.panGraph(0,0)}mxEvent.removeGestureListeners(document,null,g,k);mxEvent.consume(a);b=null}});mxEvent.addGestureListeners(a,f,g,k)};mxOutline.prototype.getViewBox=function(){return this.source.getGraphBounds()};
1516mxOutline.prototype.updateSvg=function(){null==this.svg&&(this.svg=this.createSvg(),this.addGestureListeners(this.svg),this.container.appendChild(this.svg));var a=this.getViewBox();this.svg.setAttribute("viewBox",Math.round(a.x)+" "+Math.round(a.y)+" "+Math.round(a.width)+" "+Math.round(a.height));a=this.source.background;this.svg.style.backgroundColor=a==mxConstants.NONE?"":a;this.updateDrawPane()};
1517mxOutline.prototype.updateDrawPane=function(){null!=this.drawPane&&this.drawPane.parentNode.removeChild(this.drawPane);this.drawPane=this.source.view.getDrawPane().cloneNode(!0);this.drawPane.style.opacity=this.opacity;this.processSvg(this.drawPane);null!=this.viewport?this.svg.insertBefore(this.drawPane,this.viewport):this.svg.appendChild(this.drawPane)};
1518mxOutline.prototype.processSvg=function(a){var b=mxClient.IS_IE11?Math.max(1,this.source.view.scale):this.source.view.scale;Array.prototype.slice.call(a.getElementsByTagName("*")).forEach(mxUtils.bind(this,function(a){if("text"!=a.nodeName&&"foreignObject"!=a.nodeName&&"hidden"!=a.getAttribute("visibility")&&a instanceof SVGElement){var c=parseInt(a.getAttribute("stroke-width")||1);isNaN(c)||a.setAttribute("stroke-width",Math.max(mxClient.IS_IE11?4:1,c/(5*b)));a.setAttribute("vector-effect","non-scaling-stroke");
1519a.style.cursor=""}else a.parentNode.removeChild(a)}))};
1520mxOutline.prototype.updateViewport=function(){if(null!=this.svg){null==this.viewport&&(this.viewport=this.createViewport(),this.svg.appendChild(this.viewport));var a=this.source.container,a=new mxRectangle(a.scrollLeft,a.scrollTop,a.clientWidth,a.clientHeight);this.isScrolling()||(a.x=-this.source.panDx,a.y=-this.source.panDy);this.viewport.setAttribute("x",a.x);this.viewport.setAttribute("y",a.y);this.viewport.setAttribute("width",a.width);this.viewport.setAttribute("height",a.height)}};
1521mxOutline.prototype.createViewport=function(){var a=this.svg.ownerDocument.createElementNS(mxConstants.NS_SVG,"rect");a.setAttribute("stroke-width",mxClient.IS_IE11?"12":"3");a.setAttribute("stroke",HoverIcons.prototype.arrowFill);a.setAttribute("fill",HoverIcons.prototype.arrowFill);a.setAttribute("vector-effect","non-scaling-stroke");a.setAttribute("fill-opacity",.2);a.style.cursor="move";return a};
1522mxOutline.prototype.update=function(a){null!=this.source&&null!=this.source.container&&(null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null),this.fullUpdate=this.fullUpdate||a,this.thread=window.setTimeout(mxUtils.bind(this,function(){this.isSuspended()||(this.fullUpdate&&this.updateSvg(),this.updateViewport());this.thread=this.fullUpdate=null}),this.isScrolling()?10:0))};
1523mxOutline.prototype.destroy=function(){null!=this.svg&&(this.svg.parentNode.removeChild(this.svg),this.svg=null);null!=this.source&&(this.source.removeListener(this.updateHandler),this.source.getView().removeListener(this.updateHandler),this.source.getModel().removeListener(this.updateHandler),this.source.removeListener(mxEvent.PAN,this.scrollHandler),mxEvent.removeListener(this.source.container,"scroll",this.scrollHandler),this.source=null)};
1524function mxMultiplicity(a,b,c,d,e,f,g,k,l,m){this.source=a;this.type=b;this.attr=c;this.value=d;this.min=null!=e?e:0;this.max=null!=f?f:"n";this.validNeighbors=g;this.countError=mxResources.get(k)||k;this.typeError=mxResources.get(l)||l;this.validNeighborsAllowed=null!=m?m:!0}mxMultiplicity.prototype.type=null;mxMultiplicity.prototype.attr=null;mxMultiplicity.prototype.value=null;mxMultiplicity.prototype.source=null;mxMultiplicity.prototype.min=null;mxMultiplicity.prototype.max=null;
1525mxMultiplicity.prototype.validNeighbors=null;mxMultiplicity.prototype.validNeighborsAllowed=!0;mxMultiplicity.prototype.countError=null;mxMultiplicity.prototype.typeError=null;
1526mxMultiplicity.prototype.check=function(a,b,c,d,e,f){var g="";if(this.source&&this.checkTerminal(a,c,b)||!this.source&&this.checkTerminal(a,d,b))null!=this.countError&&(this.source&&(0==this.max||e>=this.max)||!this.source&&(0==this.max||f>=this.max))&&(g+=this.countError+"\n"),null!=this.validNeighbors&&null!=this.typeError&&0<this.validNeighbors.length&&(this.checkNeighbors(a,b,c,d)||(g+=this.typeError+"\n"));return 0<g.length?g:null};
1527mxMultiplicity.prototype.checkNeighbors=function(a,b,c,d){b=a.model.getValue(c);d=a.model.getValue(d);c=!this.validNeighborsAllowed;for(var e=this.validNeighbors,f=0;f<e.length;f++)if(this.source&&this.checkType(a,d,e[f])){c=this.validNeighborsAllowed;break}else if(!this.source&&this.checkType(a,b,e[f])){c=this.validNeighborsAllowed;break}return c};mxMultiplicity.prototype.checkTerminal=function(a,b,c){b=a.model.getValue(b);return this.checkType(a,b,this.type,this.attr,this.value)};
1528mxMultiplicity.prototype.checkType=function(a,b,c,d,e){return null!=b?isNaN(b.nodeType)?b==c:mxUtils.isNode(b,c,d,e):!1};
1529function mxLayoutManager(a){this.undoHandler=mxUtils.bind(this,function(a,c){this.isEnabled()&&this.beforeUndo(c.getProperty("edit"))});this.moveHandler=mxUtils.bind(this,function(a,c){this.isEnabled()&&this.cellsMoved(c.getProperty("cells"),c.getProperty("event"))});this.resizeHandler=mxUtils.bind(this,function(a,c){this.isEnabled()&&this.cellsResized(c.getProperty("cells"),c.getProperty("bounds"),c.getProperty("previous"))});this.setGraph(a)}mxLayoutManager.prototype=new mxEventSource;
1530mxLayoutManager.prototype.constructor=mxLayoutManager;mxLayoutManager.prototype.graph=null;mxLayoutManager.prototype.bubbling=!0;mxLayoutManager.prototype.enabled=!0;mxLayoutManager.prototype.undoHandler=null;mxLayoutManager.prototype.moveHandler=null;mxLayoutManager.prototype.resizeHandler=null;mxLayoutManager.prototype.isEnabled=function(){return this.enabled};mxLayoutManager.prototype.setEnabled=function(a){this.enabled=a};mxLayoutManager.prototype.isBubbling=function(){return this.bubbling};
1531mxLayoutManager.prototype.setBubbling=function(a){this.bubbling=a};mxLayoutManager.prototype.getGraph=function(){return this.graph};
1532mxLayoutManager.prototype.setGraph=function(a){if(null!=this.graph){var b=this.graph.getModel();b.removeListener(this.undoHandler);this.graph.removeListener(this.moveHandler);this.graph.removeListener(this.resizeHandler)}this.graph=a;null!=this.graph&&(b=this.graph.getModel(),b.addListener(mxEvent.BEFORE_UNDO,this.undoHandler),this.graph.addListener(mxEvent.MOVE_CELLS,this.moveHandler),this.graph.addListener(mxEvent.RESIZE_CELLS,this.resizeHandler))};
1533mxLayoutManager.prototype.hasLayout=function(a){return this.getLayout(a,mxEvent.LAYOUT_CELLS)};mxLayoutManager.prototype.getLayout=function(a,b){return null};mxLayoutManager.prototype.beforeUndo=function(a){this.executeLayoutForCells(this.getCellsForChanges(a.changes))};
1534mxLayoutManager.prototype.cellsMoved=function(a,b){if(null!=a&&null!=b)for(var c=mxUtils.convertPoint(this.getGraph().container,mxEvent.getClientX(b),mxEvent.getClientY(b)),d=this.getGraph().getModel(),e=0;e<a.length;e++){var f=this.getLayout(d.getParent(a[e]),mxEvent.MOVE_CELLS);null!=f&&f.moveCell(a[e],c.x,c.y)}};
1535mxLayoutManager.prototype.cellsResized=function(a,b,c){if(null!=a&&null!=b)for(var d=this.getGraph().getModel(),e=0;e<a.length;e++){var f=this.getLayout(d.getParent(a[e]),mxEvent.RESIZE_CELLS);null!=f&&f.resizeCell(a[e],b[e],c[e])}};mxLayoutManager.prototype.getCellsForChanges=function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c];if(d instanceof mxRootChange)return[];b=b.concat(this.getCellsForChange(d))}return b};
1536mxLayoutManager.prototype.getCellsForChange=function(a){return a instanceof mxChildChange?this.addCellsWithLayout(a.child,this.addCellsWithLayout(a.previous)):a instanceof mxTerminalChange||a instanceof mxGeometryChange||a instanceof mxVisibleChange||a instanceof mxStyleChange?this.addCellsWithLayout(a.cell):[]};mxLayoutManager.prototype.addCellsWithLayout=function(a,b){return this.addDescendantsWithLayout(a,this.addAncestorsWithLayout(a,b))};
1537mxLayoutManager.prototype.addAncestorsWithLayout=function(a,b){b=null!=b?b:[];if(null!=a&&(null!=this.hasLayout(a)&&b.push(a),this.isBubbling())){var c=this.getGraph().getModel();this.addAncestorsWithLayout(c.getParent(a),b)}return b};mxLayoutManager.prototype.addDescendantsWithLayout=function(a,b){b=null!=b?b:[];if(null!=a&&this.hasLayout(a))for(var c=this.getGraph().getModel(),d=0;d<c.getChildCount(a);d++){var e=c.getChildAt(a,d);this.hasLayout(e)&&(b.push(e),this.addDescendantsWithLayout(e,b))}return b};
1538mxLayoutManager.prototype.executeLayoutForCells=function(a){a=mxUtils.sortCells(a,!1);this.layoutCells(a,!0);this.layoutCells(a.reverse(),!1)};mxLayoutManager.prototype.layoutCells=function(a,b){if(0<a.length){var c=this.getGraph().getModel();c.beginUpdate();try{for(var d=null,e=0;e<a.length;e++)a[e]!=c.getRoot()&&a[e]!=d&&(this.executeLayout(a[e],b),d=a[e]);this.fireEvent(new mxEventObject(mxEvent.LAYOUT_CELLS,"cells",a))}finally{c.endUpdate()}}};
1539mxLayoutManager.prototype.executeLayout=function(a,b){var c=this.getLayout(a,b?mxEvent.BEGIN_UPDATE:mxEvent.END_UPDATE);null!=c&&c.execute(a)};mxLayoutManager.prototype.destroy=function(){this.setGraph(null)};
1540function mxSwimlaneManager(a,b,c,d){this.horizontal=null!=b?b:!0;this.addEnabled=null!=c?c:!0;this.resizeEnabled=null!=d?d:!0;this.addHandler=mxUtils.bind(this,function(a,b){this.isEnabled()&&this.isAddEnabled()&&this.cellsAdded(b.getProperty("cells"))});this.resizeHandler=mxUtils.bind(this,function(a,b){this.isEnabled()&&this.isResizeEnabled()&&this.cellsResized(b.getProperty("cells"))});this.setGraph(a)}mxSwimlaneManager.prototype=new mxEventSource;mxSwimlaneManager.prototype.constructor=mxSwimlaneManager;
1541mxSwimlaneManager.prototype.graph=null;mxSwimlaneManager.prototype.enabled=!0;mxSwimlaneManager.prototype.horizontal=!0;mxSwimlaneManager.prototype.addEnabled=!0;mxSwimlaneManager.prototype.resizeEnabled=!0;mxSwimlaneManager.prototype.addHandler=null;mxSwimlaneManager.prototype.resizeHandler=null;mxSwimlaneManager.prototype.isEnabled=function(){return this.enabled};mxSwimlaneManager.prototype.setEnabled=function(a){this.enabled=a};mxSwimlaneManager.prototype.isHorizontal=function(){return this.horizontal};
1542mxSwimlaneManager.prototype.setHorizontal=function(a){this.horizontal=a};mxSwimlaneManager.prototype.isAddEnabled=function(){return this.addEnabled};mxSwimlaneManager.prototype.setAddEnabled=function(a){this.addEnabled=a};mxSwimlaneManager.prototype.isResizeEnabled=function(){return this.resizeEnabled};mxSwimlaneManager.prototype.setResizeEnabled=function(a){this.resizeEnabled=a};mxSwimlaneManager.prototype.getGraph=function(){return this.graph};
1543mxSwimlaneManager.prototype.setGraph=function(a){null!=this.graph&&(this.graph.removeListener(this.addHandler),this.graph.removeListener(this.resizeHandler));this.graph=a;null!=this.graph&&(this.graph.addListener(mxEvent.ADD_CELLS,this.addHandler),this.graph.addListener(mxEvent.CELLS_RESIZED,this.resizeHandler))};mxSwimlaneManager.prototype.isSwimlaneIgnored=function(a){return!this.getGraph().isSwimlane(a)};
1544mxSwimlaneManager.prototype.isCellHorizontal=function(a){return this.graph.isSwimlane(a)?(a=this.graph.getCellStyle(a),1==mxUtils.getValue(a,mxConstants.STYLE_HORIZONTAL,1)):!this.isHorizontal()};mxSwimlaneManager.prototype.cellsAdded=function(a){if(null!=a){var b=this.getGraph().getModel();b.beginUpdate();try{for(var c=0;c<a.length;c++)this.isSwimlaneIgnored(a[c])||this.swimlaneAdded(a[c])}finally{b.endUpdate()}}};
1545mxSwimlaneManager.prototype.swimlaneAdded=function(a){for(var b=this.getGraph().getModel(),c=b.getParent(a),d=b.getChildCount(c),e=null,f=0;f<d;f++){var g=b.getChildAt(c,f);if(g!=a&&!this.isSwimlaneIgnored(g)&&(e=b.getGeometry(g),null!=e))break}null!=e&&(b=null!=c?this.isCellHorizontal(c):this.horizontal,this.resizeSwimlane(a,e.width,e.height,b))};
1546mxSwimlaneManager.prototype.cellsResized=function(a){if(null!=a){var b=this.getGraph().getModel();b.beginUpdate();try{for(var c=0;c<a.length;c++)if(!this.isSwimlaneIgnored(a[c])){var d=b.getGeometry(a[c]);if(null!=d){for(var e=new mxRectangle(0,0,d.width,d.height),f=a[c],g=f;null!=g;){var f=g,g=b.getParent(g),k=this.graph.isSwimlane(g)?this.graph.getStartSize(g):new mxRectangle;e.width+=k.width;e.height+=k.height}var l=null!=g?this.isCellHorizontal(g):this.horizontal;this.resizeSwimlane(f,e.width,
1547e.height,l)}}}finally{b.endUpdate()}}};
1548mxSwimlaneManager.prototype.resizeSwimlane=function(a,b,c,d){var e=this.getGraph().getModel();e.beginUpdate();try{var f=this.isCellHorizontal(a);if(!this.isSwimlaneIgnored(a)){var g=e.getGeometry(a);null!=g&&(d&&g.height!=c||!d&&g.width!=b)&&(g=g.clone(),d?g.height=c:g.width=b,e.setGeometry(a,g))}var k=this.graph.isSwimlane(a)?this.graph.getStartSize(a):new mxRectangle;b-=k.width;c-=k.height;var l=e.getChildCount(a);for(d=0;d<l;d++){var m=e.getChildAt(a,d);this.resizeSwimlane(m,b,c,f)}}finally{e.endUpdate()}};
1549mxSwimlaneManager.prototype.destroy=function(){this.setGraph(null)};
1550function mxTemporaryCellStates(a,b,c,d,e,f){b=null!=b?b:1;this.view=a;this.oldValidateCellState=a.validateCellState;this.oldBounds=a.getGraphBounds();this.oldStates=a.getStates();this.oldScale=a.getScale();this.oldDoRedrawShape=a.graph.cellRenderer.doRedrawShape;var g=this;null!=e&&(a.graph.cellRenderer.doRedrawShape=function(b){var c=b.shape.paint;b.shape.paint=function(a){var d=e(b);null!=d&&a.setLink(d,null!=f?f(b):null);c.apply(this,arguments);null!=d&&a.setLink(null)};g.oldDoRedrawShape.apply(a.graph.cellRenderer,
1551arguments);b.shape.paint=c});a.validateCellState=function(b,c){return null==b||null==d||d(b)?g.oldValidateCellState.apply(a,arguments):null};a.setStates(new mxDictionary);a.setScale(b);if(null!=c){a.resetValidationState();b=null;for(var k=0;k<c.length;k++){var l=a.getBoundingBox(a.validateCellState(a.validateCell(c[k])));null==b?b=l:b.add(l)}a.setGraphBounds(b||new mxRectangle)}}mxTemporaryCellStates.prototype.view=null;mxTemporaryCellStates.prototype.oldStates=null;
1552mxTemporaryCellStates.prototype.oldBounds=null;mxTemporaryCellStates.prototype.oldScale=null;mxTemporaryCellStates.prototype.destroy=function(){this.view.setScale(this.oldScale);this.view.setStates(this.oldStates);this.view.setGraphBounds(this.oldBounds);this.view.validateCellState=this.oldValidateCellState;this.view.graph.cellRenderer.doRedrawShape=this.oldDoRedrawShape};function mxCellStatePreview(a){this.deltas=new mxDictionary;this.graph=a}mxCellStatePreview.prototype.graph=null;
1553mxCellStatePreview.prototype.deltas=null;mxCellStatePreview.prototype.count=0;mxCellStatePreview.prototype.isEmpty=function(){return 0==this.count};mxCellStatePreview.prototype.moveState=function(a,b,c,d,e){d=null!=d?d:!0;e=null!=e?e:!0;var f=this.deltas.get(a.cell);null==f?(f={point:new mxPoint(b,c),state:a},this.deltas.put(a.cell,f),this.count++):d?(f.point.x+=b,f.point.y+=c):(f.point.x=b,f.point.y=c);e&&this.addEdges(a);return f.point};
1554mxCellStatePreview.prototype.show=function(a){this.deltas.visit(mxUtils.bind(this,function(a,c){this.translateState(c.state,c.point.x,c.point.y)}));this.deltas.visit(mxUtils.bind(this,function(b,c){this.revalidateState(c.state,c.point.x,c.point.y,a)}))};
1555mxCellStatePreview.prototype.translateState=function(a,b,c){if(null!=a){var d=this.graph.getModel();if(d.isVertex(a.cell)){a.view.updateCellState(a);var e=d.getGeometry(a.cell);0==b&&0==c||null==e||e.relative&&null==this.deltas.get(a.cell)||(a.x+=b,a.y+=c)}for(var e=d.getChildCount(a.cell),f=0;f<e;f++)this.translateState(a.view.getState(d.getChildAt(a.cell,f)),b,c)}};
1556mxCellStatePreview.prototype.revalidateState=function(a,b,c,d){if(null!=a){var e=this.graph.getModel();e.isEdge(a.cell)&&a.view.updateCellState(a);var f=this.graph.getCellGeometry(a.cell),g=a.view.getState(e.getParent(a.cell));0==b&&0==c||null==f||!f.relative||!e.isVertex(a.cell)||null!=g&&!e.isVertex(g.cell)&&null==this.deltas.get(a.cell)||(a.x+=b,a.y+=c);this.graph.cellRenderer.redraw(a);null!=d&&d(a);f=e.getChildCount(a.cell);for(g=0;g<f;g++)this.revalidateState(this.graph.view.getState(e.getChildAt(a.cell,
1557g)),b,c,d)}};mxCellStatePreview.prototype.addEdges=function(a){for(var b=this.graph.getModel(),c=b.getEdgeCount(a.cell),d=0;d<c;d++){var e=a.view.getState(b.getEdgeAt(a.cell,d));null!=e&&this.moveState(e,0,0)}};function mxConnectionConstraint(a,b,c,d,e){this.point=a;this.perimeter=null!=b?b:!0;this.name=c;this.dx=d?d:0;this.dy=e?e:0}mxConnectionConstraint.prototype.point=null;mxConnectionConstraint.prototype.perimeter=null;mxConnectionConstraint.prototype.name=null;
1558mxConnectionConstraint.prototype.dx=null;mxConnectionConstraint.prototype.dy=null;
1559function mxGraphHandler(a){this.graph=a;this.graph.addMouseListener(this);this.panHandler=mxUtils.bind(this,function(){this.suspended||(this.updatePreview(),this.updateHint())});this.graph.addListener(mxEvent.PAN,this.panHandler);this.escapeHandler=mxUtils.bind(this,function(a,c){this.reset()});this.graph.addListener(mxEvent.ESCAPE,this.escapeHandler);this.refreshHandler=mxUtils.bind(this,function(a,c){this.refreshThread&&window.clearTimeout(this.refreshThread);this.refreshThread=window.setTimeout(mxUtils.bind(this,
1560function(){this.refreshThread=null;if(null!=this.first&&!this.suspended){var a=this.currentDx,b=this.currentDy;this.currentDy=this.currentDx=0;this.updatePreview();this.bounds=this.graph.getView().getBounds(this.cells);this.pBounds=this.getPreviewBounds(this.cells);null!=this.pBounds||this.livePreviewUsed?(this.currentDx=a,this.currentDy=b,this.updatePreview(),this.updateHint(),this.livePreviewUsed&&(this.setHandlesVisibleForCells(this.graph.selectionCellsHandler.getHandledSelectionCells(),!1,!0),
1561this.updatePreview())):this.reset()}}),0)});this.graph.getModel().addListener(mxEvent.CHANGE,this.refreshHandler);this.graph.addListener(mxEvent.REFRESH,this.refreshHandler);this.keyHandler=mxUtils.bind(this,function(a){null==this.graph.container||"hidden"==this.graph.container.style.visibility||null==this.first||this.suspended||(a=this.graph.isCloneEvent(a)&&this.graph.isCellsCloneable()&&this.isCloneEnabled(),a!=this.cloning&&(this.cloning=a,this.checkPreview(),this.updatePreview()))});mxEvent.addListener(document,
1562"keydown",this.keyHandler);mxEvent.addListener(document,"keyup",this.keyHandler)}mxGraphHandler.prototype.graph=null;mxGraphHandler.prototype.maxCells=mxClient.IS_IE?20:50;mxGraphHandler.prototype.enabled=!0;mxGraphHandler.prototype.highlightEnabled=!0;mxGraphHandler.prototype.cloneEnabled=!0;mxGraphHandler.prototype.moveEnabled=!0;mxGraphHandler.prototype.guidesEnabled=!1;mxGraphHandler.prototype.handlesVisible=!0;mxGraphHandler.prototype.guide=null;mxGraphHandler.prototype.currentDx=null;
1563mxGraphHandler.prototype.currentDy=null;mxGraphHandler.prototype.updateCursor=!0;mxGraphHandler.prototype.selectEnabled=!0;mxGraphHandler.prototype.removeCellsFromParent=!0;mxGraphHandler.prototype.removeEmptyParents=!1;mxGraphHandler.prototype.connectOnDrop=!1;mxGraphHandler.prototype.scrollOnMove=!0;mxGraphHandler.prototype.minimumSize=6;mxGraphHandler.prototype.previewColor="black";mxGraphHandler.prototype.htmlPreview=!1;mxGraphHandler.prototype.shape=null;mxGraphHandler.prototype.scaleGrid=!1;
1564mxGraphHandler.prototype.rotationEnabled=!0;mxGraphHandler.prototype.maxLivePreview=0;mxGraphHandler.prototype.allowLivePreview=mxClient.IS_SVG;mxGraphHandler.prototype.isEnabled=function(){return this.enabled};mxGraphHandler.prototype.setEnabled=function(a){this.enabled=a};mxGraphHandler.prototype.isCloneEnabled=function(){return this.cloneEnabled};mxGraphHandler.prototype.setCloneEnabled=function(a){this.cloneEnabled=a};mxGraphHandler.prototype.isMoveEnabled=function(){return this.moveEnabled};
1565mxGraphHandler.prototype.setMoveEnabled=function(a){this.moveEnabled=a};mxGraphHandler.prototype.isSelectEnabled=function(){return this.selectEnabled};mxGraphHandler.prototype.setSelectEnabled=function(a){this.selectEnabled=a};mxGraphHandler.prototype.isRemoveCellsFromParent=function(){return this.removeCellsFromParent};mxGraphHandler.prototype.setRemoveCellsFromParent=function(a){this.removeCellsFromParent=a};
1566mxGraphHandler.prototype.isPropagateSelectionCell=function(a,b,c){var d=this.graph.model.getParent(a);return b?(b=this.graph.model.isEdge(a)?null:this.graph.getCellGeometry(a),!this.graph.isSiblingSelected(a)&&(null!=b&&b.relative||!this.graph.isSwimlane(d))):(!this.graph.isToggleEvent(c.getEvent())||!this.graph.isSiblingSelected(a)&&!this.graph.isCellSelected(a)&&!this.graph.isSwimlane(d)||this.graph.isCellSelected(d))&&(this.graph.isToggleEvent(c.getEvent())||!this.graph.isCellSelected(d))};
1567mxGraphHandler.prototype.getInitialCellForEvent=function(a){var b=a.getState();if(!(this.graph.isToggleEvent(a.getEvent())&&mxEvent.isAltDown(a.getEvent())||null==b||this.graph.isCellSelected(b.cell)))for(var c=this.graph.model,d=this.graph.view.getState(c.getParent(b.cell));null!=d&&!this.graph.isCellSelected(d.cell)&&(c.isVertex(d.cell)||c.isEdge(d.cell))&&this.isPropagateSelectionCell(b.cell,!0,a);)b=d,d=this.graph.view.getState(this.graph.getModel().getParent(b.cell));return null!=b?b.cell:null};
1568mxGraphHandler.prototype.isDelayedSelection=function(a,b){if(!this.graph.isToggleEvent(b.getEvent())||!mxEvent.isAltDown(b.getEvent()))for(;null!=a;){if(this.graph.selectionCellsHandler.isHandled(a))return this.graph.cellEditor.getEditingCell()!=a;a=this.graph.model.getParent(a)}return this.graph.isToggleEvent(b.getEvent())&&!mxEvent.isAltDown(b.getEvent())};
1569mxGraphHandler.prototype.selectDelayed=function(a){if(!this.graph.popupMenuHandler.isPopupTrigger(a)){var b=a.getCell();null==b&&(b=this.cell);this.selectCellForEvent(b,a)}};
1570mxGraphHandler.prototype.selectCellForEvent=function(a,b){var c=this.graph.view.getState(a);if(null!=c){if(!(b.isSource(c.control)||this.graph.isToggleEvent(b.getEvent())&&mxEvent.isAltDown(b.getEvent())))for(var c=this.graph.getModel(),d=c.getParent(a);null!=this.graph.view.getState(d)&&(c.isVertex(d)||c.isEdge(d)&&!this.graph.isToggleEvent(b.getEvent()))&&this.isPropagateSelectionCell(a,!1,b);)a=d,d=c.getParent(a);this.graph.selectCellForEvent(a,b.getEvent())}return a};
1571mxGraphHandler.prototype.consumeMouseEvent=function(a,b){b.consume()};
1572mxGraphHandler.prototype.mouseDown=function(a,b){if(!b.isConsumed()&&this.isEnabled()&&this.graph.isEnabled()&&null!=b.getState()&&!mxEvent.isMultiTouchEvent(b.getEvent())){var c=this.getInitialCellForEvent(b);this.delayedSelection=this.isDelayedSelection(c,b);this.cell=null;this.isSelectEnabled()&&!this.delayedSelection&&this.graph.selectCellForEvent(c,b.getEvent());if(this.isMoveEnabled()){var d=this.graph.model,e=d.getGeometry(c);this.graph.isCellMovable(c)&&(!d.isEdge(c)||1<this.graph.getSelectionCount()||
1573null!=e.points&&0<e.points.length||null==d.getTerminal(c,!0)||null==d.getTerminal(c,!1)||this.graph.allowDanglingEdges||this.graph.isCloneEvent(b.getEvent())&&this.graph.isCellsCloneable())?this.start(c,b.getX(),b.getY()):this.delayedSelection&&(this.cell=c);this.cellWasClicked=!0;this.consumeMouseEvent(mxEvent.MOUSE_DOWN,b)}}};
1574mxGraphHandler.prototype.getGuideStates=function(){var a=this.graph.getDefaultParent(),b=this.graph.getModel(),c=mxUtils.bind(this,function(a){return null!=this.graph.view.getState(a)&&b.isVertex(a)&&null!=b.getGeometry(a)&&!b.getGeometry(a).relative});return this.graph.view.getCellStates(b.filterDescendants(c,a))};mxGraphHandler.prototype.getCells=function(a){return!this.delayedSelection&&this.graph.isCellMovable(a)?[a]:this.graph.getMovableCells(this.graph.getSelectionCells())};
1575mxGraphHandler.prototype.getPreviewBounds=function(a){a=this.getBoundingBox(a);null!=a&&(a.width=Math.max(0,a.width-1),a.height=Math.max(0,a.height-1),a.width<this.minimumSize?(a.x-=(this.minimumSize-a.width)/2,a.width=this.minimumSize):(a.x=Math.round(a.x),a.width=Math.ceil(a.width)),a.height<this.minimumSize?(a.y-=(this.minimumSize-a.height)/2,a.height=this.minimumSize):(a.y=Math.round(a.y),a.height=Math.ceil(a.height)));return a};
1576mxGraphHandler.prototype.getBoundingBox=function(a){var b=null;if(null!=a&&0<a.length)for(var c=this.graph.getModel(),d=0;d<a.length;d++)if(c.isVertex(a[d])||c.isEdge(a[d])){var e=this.graph.view.getState(a[d]);if(null!=e){var f=e;c.isVertex(a[d])&&null!=e.shape&&null!=e.shape.boundingBox&&(f=e.shape.boundingBox);null==b?b=mxRectangle.fromRectangle(f):b.add(f)}}return b};
1577mxGraphHandler.prototype.createPreviewShape=function(a){a=new mxRectangleShape(a,null,this.previewColor);a.isDashed=!0;this.htmlPreview?(a.dialect=mxConstants.DIALECT_STRICTHTML,a.init(this.graph.container)):(a.dialect=mxConstants.DIALECT_SVG,a.init(this.graph.getView().getOverlayPane()),a.pointerEvents=!1,mxClient.IS_IOS&&(a.getSvgScreenOffset=function(){return 0}));return a};
1578mxGraphHandler.prototype.start=function(a,b,c,d){this.cell=a;this.first=mxUtils.convertPoint(this.graph.container,b,c);this.cells=null!=d?d:this.getCells(this.cell);this.bounds=this.graph.getView().getBounds(this.cells);this.pBounds=this.getPreviewBounds(this.cells);this.allCells=new mxDictionary;this.cloning=!1;for(b=this.cellCount=0;b<this.cells.length;b++)this.cellCount+=this.addStates(this.cells[b],this.allCells);if(this.guidesEnabled){this.guide=new mxGuide(this.graph,this.getGuideStates());
1579var e=this.graph.model.getParent(a),f=2>this.graph.model.getChildCount(e),g=new mxDictionary;a=this.graph.getOpposites(this.graph.getEdges(this.cell),this.cell);for(b=0;b<a.length;b++)c=this.graph.view.getState(a[b]),null==c||g.get(c)||g.put(c,!0);this.guide.isStateIgnored=mxUtils.bind(this,function(a){var b=this.graph.model.getParent(a.cell);return null!=a.cell&&(!this.cloning&&this.isCellMoving(a.cell)||a.cell!=(this.target||e)&&!f&&!g.get(a)&&(null==this.target||2<=this.graph.model.getChildCount(this.target))&&
1580b!=(this.target||e))})}};mxGraphHandler.prototype.addStates=function(a,b){var c=this.graph.view.getState(a),d=0;if(null!=c&&null==b.get(a)){b.put(a,c);d++;for(var c=this.graph.model.getChildCount(a),e=0;e<c;e++)d+=this.addStates(this.graph.model.getChildAt(a,e),b)}return d};mxGraphHandler.prototype.isCellMoving=function(a){return null!=this.allCells.get(a)};
1581mxGraphHandler.prototype.useGuidesForEvent=function(a){return null!=this.guide?this.guide.isEnabledForEvent(a.getEvent())&&!this.graph.isConstrainedEvent(a.getEvent()):!0};mxGraphHandler.prototype.snap=function(a){var b=this.scaleGrid?this.graph.view.scale:1;a.x=this.graph.snap(a.x/b)*b;a.y=this.graph.snap(a.y/b)*b;return a};
1582mxGraphHandler.prototype.getDelta=function(a){a=mxUtils.convertPoint(this.graph.container,a.getX(),a.getY());return new mxPoint(a.x-this.first.x-this.graph.panDx,a.y-this.first.y-this.graph.panDy)};mxGraphHandler.prototype.updateHint=function(a){};mxGraphHandler.prototype.removeHint=function(){};mxGraphHandler.prototype.roundLength=function(a){return Math.round(100*a)/100};mxGraphHandler.prototype.isValidDropTarget=function(a,b){return this.graph.model.getParent(this.cell)!=a};
1583mxGraphHandler.prototype.checkPreview=function(){this.livePreviewActive&&this.cloning?(this.resetLivePreview(),this.livePreviewActive=!1):this.maxLivePreview>=this.cellCount&&!this.livePreviewActive&&this.allowLivePreview?this.cloning&&this.livePreviewActive||(this.livePreviewUsed=this.livePreviewActive=!0):this.livePreviewUsed||null!=this.shape||(this.shape=this.createPreviewShape(this.bounds))};
1584mxGraphHandler.prototype.mouseMove=function(a,b){var c=this.graph;if(b.isConsumed()||!c.isMouseDown||null==this.cell||null==this.first||null==this.bounds||this.suspended)!this.isMoveEnabled()&&!this.isCloneEnabled()||!this.updateCursor||b.isConsumed()||null==b.getState()&&null==b.sourceState||c.isMouseDown||(d=c.getCursorForMouseEvent(b),null==d&&c.isEnabled()&&c.isCellMovable(b.getCell())&&(d=c.getModel().isEdge(b.getCell())?mxConstants.CURSOR_MOVABLE_EDGE:mxConstants.CURSOR_MOVABLE_VERTEX),null!=
1585d&&null!=b.sourceState&&b.sourceState.setCursor(d));else if(mxEvent.isMultiTouchEvent(b.getEvent()))this.reset();else{var d=this.getDelta(b),e=c.tolerance;if(null!=this.shape||this.livePreviewActive||Math.abs(d.x)>e||Math.abs(d.y)>e){null==this.highlight&&(this.highlight=new mxCellHighlight(this.graph,mxConstants.DROP_TARGET_COLOR,3));var e=c.isCloneEvent(b.getEvent())&&c.isCellsCloneable()&&this.isCloneEnabled(),f=c.isGridEnabledEvent(b.getEvent()),g=b.getCell(),g=null!=g&&0>mxUtils.indexOf(this.cells,
1586g)?g:c.getCellAt(b.getGraphX(),b.getGraphY(),null,null,null,mxUtils.bind(this,function(a,b,c){return 0<=mxUtils.indexOf(this.cells,a.cell)})),k=!0,l=null;this.cloning=e;c.isDropEnabled()&&this.highlightEnabled&&(l=c.getDropTarget(this.cells,b.getEvent(),g,e));var m=c.getView().getState(l),n=!1;null!=m&&(e||this.isValidDropTarget(l,b))?(this.target!=l&&(this.target=l,this.setHighlightColor(mxConstants.DROP_TARGET_COLOR)),n=!0):(this.target=null,this.connectOnDrop&&null!=g&&1==this.cells.length&&c.getModel().isVertex(g)&&
1587c.isCellConnectable(g)&&(m=c.getView().getState(g),null!=m&&(g=null==c.getEdgeValidationError(null,this.cell,g)?mxConstants.VALID_COLOR:mxConstants.INVALID_CONNECT_TARGET_COLOR,this.setHighlightColor(g),n=!0)));null!=m&&n?this.highlight.highlight(m):this.highlight.hide();null!=this.guide&&this.useGuidesForEvent(b)?(d=this.guide.move(this.bounds,d,f,e),k=!1):d=this.graph.snapDelta(d,this.bounds,!f,!1,!1);null!=this.guide&&k&&this.guide.hide();c.isConstrainedEvent(b.getEvent())&&(Math.abs(d.x)>Math.abs(d.y)?
1588d.y=0:d.x=0);this.checkPreview();if(this.currentDx!=d.x||this.currentDy!=d.y)this.currentDx=d.x,this.currentDy=d.y,this.updatePreview()}this.updateHint(b);this.consumeMouseEvent(mxEvent.MOUSE_MOVE,b);mxEvent.consume(b.getEvent())}};mxGraphHandler.prototype.updatePreview=function(a){this.livePreviewUsed&&!a?null!=this.cells&&(this.setHandlesVisibleForCells(this.graph.selectionCellsHandler.getHandledSelectionCells(),!1),this.updateLivePreview(this.currentDx,this.currentDy)):this.updatePreviewShape()};
1589mxGraphHandler.prototype.updatePreviewShape=function(){null!=this.shape&&null!=this.pBounds&&(this.shape.bounds=new mxRectangle(Math.round(this.pBounds.x+this.currentDx),Math.round(this.pBounds.y+this.currentDy),this.pBounds.width,this.pBounds.height),this.shape.redraw())};
1590mxGraphHandler.prototype.updateLivePreview=function(a,b){if(!this.suspended){var c=[];null!=this.allCells&&this.allCells.visit(mxUtils.bind(this,function(d,e){var f=this.graph.view.getState(e.cell);f!=e&&(e.destroy(),null!=f?this.allCells.put(e.cell,f):this.allCells.remove(e.cell),e=f);null!=e&&(f=e.clone(),c.push([e,f]),null!=e.shape&&(null==e.shape.originalPointerEvents&&(e.shape.originalPointerEvents=e.shape.pointerEvents),e.shape.pointerEvents=!1,null!=e.text&&(null==e.text.originalPointerEvents&&
1591(e.text.originalPointerEvents=e.text.pointerEvents),e.text.pointerEvents=!1)),this.graph.model.isVertex(e.cell))&&((e.x+=a,e.y+=b,this.cloning)?null!=e.text&&(e.text.updateBoundingBox(),null!=e.text.boundingBox&&(e.text.boundingBox.x+=a,e.text.boundingBox.y+=b),null!=e.text.unrotatedBoundingBox&&(e.text.unrotatedBoundingBox.x+=a,e.text.unrotatedBoundingBox.y+=b)):(e.view.graph.cellRenderer.redraw(e,!0),e.view.invalidate(e.cell),e.invalid=!1,null!=e.control&&null!=e.control.node&&(e.control.node.style.visibility=
1592"hidden")))}));if(0==c.length)this.reset();else{for(var d=this.graph.view.scale,e=0;e<c.length;e++){var f=c[e][0];if(this.graph.model.isEdge(f.cell)){var g=this.graph.getCellGeometry(f.cell),k=[];if(null!=g&&null!=g.points)for(var l=0;l<g.points.length;l++)null!=g.points[l]&&k.push(new mxPoint(g.points[l].x+a/d,g.points[l].y+b/d));var g=f.visibleSourceState,l=f.visibleTargetState,m=c[e][1].absolutePoints;null!=g&&this.isCellMoving(g.cell)?f.view.updateFixedTerminalPoint(f,g,!0,this.graph.getConnectionConstraint(f,
1593g,!0)):(g=m[0],f.setAbsoluteTerminalPoint(new mxPoint(g.x+a,g.y+b),!0),g=null);null!=l&&this.isCellMoving(l.cell)?f.view.updateFixedTerminalPoint(f,l,!1,this.graph.getConnectionConstraint(f,l,!1)):(l=m[m.length-1],f.setAbsoluteTerminalPoint(new mxPoint(l.x+a,l.y+b),!1),l=null);f.view.updatePoints(f,k,g,l);f.view.updateFloatingTerminalPoints(f,g,l);f.view.updateEdgeLabelOffset(f);f.invalid=!1;this.cloning||f.view.graph.cellRenderer.redraw(f,!0)}}this.graph.view.validate();this.redrawHandles(c);this.resetPreviewStates(c)}}};
1594mxGraphHandler.prototype.redrawHandles=function(a){for(var b=0;b<a.length;b++){var c=this.graph.selectionCellsHandler.getHandler(a[b][0].cell);null!=c&&c.redraw(!0)}};mxGraphHandler.prototype.resetPreviewStates=function(a){for(var b=0;b<a.length;b++)a[b][0].setState(a[b][1])};
1595mxGraphHandler.prototype.suspend=function(){this.suspended||(this.livePreviewUsed&&this.updateLivePreview(0,0),null!=this.shape&&(this.shape.node.style.visibility="hidden"),null!=this.guide&&this.guide.setVisible(!1),this.suspended=!0)};mxGraphHandler.prototype.resume=function(){this.suspended&&(this.suspended=null,this.livePreviewUsed&&(this.livePreviewActive=!0),null!=this.shape&&(this.shape.node.style.visibility="visible"),null!=this.guide&&this.guide.setVisible(!0))};
1596mxGraphHandler.prototype.resetLivePreview=function(){null!=this.allCells&&(this.allCells.visit(mxUtils.bind(this,function(a,b){null!=b.shape&&null!=b.shape.originalPointerEvents&&(b.shape.pointerEvents=b.shape.originalPointerEvents,b.shape.originalPointerEvents=null,b.shape.bounds=null,null!=b.text&&(b.text.pointerEvents=b.text.originalPointerEvents,b.text.originalPointerEvents=null));null!=b.control&&null!=b.control.node&&"hidden"==b.control.node.style.visibility&&(b.control.node.style.visibility=
1597"");this.cloning||null!=b.text&&b.text.updateBoundingBox();b.view.invalidate(b.cell)})),this.graph.view.validate())};mxGraphHandler.prototype.setHandlesVisibleForCells=function(a,b,c){if(c||this.handlesVisible!=b)for(this.handlesVisible=b,c=0;c<a.length;c++){var d=this.graph.selectionCellsHandler.getHandler(a[c]);null!=d&&(d.setHandlesVisible(b),b&&d.redraw())}};mxGraphHandler.prototype.setHighlightColor=function(a){null!=this.highlight&&this.highlight.setHighlightColor(a)};
1598mxGraphHandler.prototype.mouseUp=function(a,b){if(!b.isConsumed())if(this.livePreviewUsed&&this.resetLivePreview(),null==this.cell||null==this.first||null==this.shape&&!this.livePreviewUsed||null==this.currentDx||null==this.currentDy)this.isSelectEnabled()&&this.delayedSelection&&null!=this.cell&&this.selectDelayed(b);else{var c=this.graph,d=b.getCell();if(this.connectOnDrop&&null==this.target&&null!=d&&c.getModel().isVertex(d)&&c.isCellConnectable(d)&&c.isEdgeValid(null,this.cell,d))c.connectionHandler.connect(this.cell,
1599d,b.getEvent());else{var d=c.isCloneEvent(b.getEvent())&&c.isCellsCloneable()&&this.isCloneEnabled(),e=c.getView().scale,f=this.roundLength(this.currentDx/e),e=this.roundLength(this.currentDy/e),g=this.target;c.isSplitEnabled()&&c.isSplitTarget(g,this.cells,b.getEvent())?c.splitEdge(g,this.cells,null,f,e,b.getGraphX(),b.getGraphY()):this.moveCells(this.cells,f,e,d,this.target,b.getEvent())}}this.cellWasClicked&&this.consumeMouseEvent(mxEvent.MOUSE_UP,b);this.reset()};
1600mxGraphHandler.prototype.reset=function(){this.livePreviewUsed&&(this.resetLivePreview(),this.setHandlesVisibleForCells(this.graph.selectionCellsHandler.getHandledSelectionCells(),!0));this.destroyShapes();this.removeHint();this.delayedSelection=!1;this.livePreviewUsed=this.livePreviewActive=null;this.cellWasClicked=!1;this.cellCount=this.currentDy=this.currentDx=this.suspended=null;this.cloning=!1;this.cell=this.cells=this.first=this.target=this.guides=this.pBounds=this.allCells=null};
1601mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(a,b,c){if(this.graph.getModel().isVertex(a)&&(a=this.graph.getView().getState(a),null!=a)){c=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(c),mxEvent.getClientY(c));var d=mxUtils.toRadians(mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION)||0);if(0!=d){b=Math.cos(-d);var d=Math.sin(-d),e=new mxPoint(a.getCenterX(),a.getCenterY());c=mxUtils.getRotatedPoint(c,b,d,e)}return!mxUtils.contains(a,c.x,c.y)}return!1};
1602mxGraphHandler.prototype.moveCells=function(a,b,c,d,e,f){d&&(a=this.graph.getCloneableCells(a));var g=this.graph.getModel().getParent(this.cell);null==e&&null!=f&&this.isRemoveCellsFromParent()&&this.shouldRemoveCellsFromParent(g,a,f)&&(e=this.graph.getDefaultParent());d=d&&!this.graph.isCellLocked(e||this.graph.getDefaultParent());this.graph.getModel().beginUpdate();try{g=[];if(!d&&null!=e&&this.removeEmptyParents){for(var k=new mxDictionary,l=0;l<a.length;l++)k.put(a[l],!0);for(l=0;l<a.length;l++){var m=
1603this.graph.model.getParent(a[l]);null==m||k.get(m)||(k.put(m,!0),g.push(m))}}a=this.graph.moveCells(a,b,c,d,e,f);b=[];for(l=0;l<g.length;l++)this.shouldRemoveParent(g[l])&&b.push(g[l]);this.graph.removeCells(b,!1)}finally{this.graph.getModel().endUpdate()}d&&this.graph.setSelectionCells(a);this.isSelectEnabled()&&this.scrollOnMove&&this.graph.scrollCellToVisible(a[0])};
1604mxGraphHandler.prototype.shouldRemoveParent=function(a){a=this.graph.view.getState(a);return null!=a&&(this.graph.model.isEdge(a.cell)||this.graph.model.isVertex(a.cell))&&this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)&&this.graph.isTransparentState(a)};
1605mxGraphHandler.prototype.destroyShapes=function(){null!=this.shape&&(this.shape.destroy(),this.shape=null);null!=this.guide&&(this.guide.destroy(),this.guide=null);null!=this.highlight&&(this.highlight.destroy(),this.highlight=null)};
1606mxGraphHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);this.graph.removeListener(this.panHandler);null!=this.escapeHandler&&(this.graph.removeListener(this.escapeHandler),this.escapeHandler=null);null!=this.refreshHandler&&(this.graph.getModel().removeListener(this.refreshHandler),this.graph.removeListener(this.refreshHandler),this.refreshHandler=null);mxEvent.removeListener(document,"keydown",this.keyHandler);mxEvent.removeListener(document,"keyup",this.keyHandler);this.destroyShapes();
1607this.removeHint()};
1608function mxPanningHandler(a){null!=a&&(this.graph=a,this.graph.addMouseListener(this),this.forcePanningHandler=mxUtils.bind(this,function(a,c){var b=c.getProperty("eventName"),e=c.getProperty("event");b==mxEvent.MOUSE_DOWN&&this.isForcePanningEvent(e)&&(this.start(e),this.active=!0,this.fireEvent(new mxEventObject(mxEvent.PAN_START,"event",e)),e.consume())}),this.graph.addListener(mxEvent.FIRE_MOUSE_EVENT,this.forcePanningHandler),this.gestureHandler=mxUtils.bind(this,function(a,c){if(this.isPinchEnabled()){var b=
1609c.getProperty("event");mxEvent.isConsumed(b)||"gesturestart"!=b.type?"gestureend"==b.type&&null!=this.initialScale&&(this.initialScale=null):(this.initialScale=this.graph.view.scale,this.active||null==this.mouseDownEvent||(this.start(this.mouseDownEvent),this.mouseDownEvent=null));null!=this.initialScale&&this.zoomGraph(b)}}),this.graph.addListener(mxEvent.GESTURE,this.gestureHandler),this.mouseUpListener=mxUtils.bind(this,function(){this.active&&this.reset()}),mxEvent.addGestureListeners(document,
1610null,null,this.mouseUpListener),mxEvent.addListener(document,"mouseleave",this.mouseUpListener))}mxPanningHandler.prototype=new mxEventSource;mxPanningHandler.prototype.constructor=mxPanningHandler;mxPanningHandler.prototype.graph=null;mxPanningHandler.prototype.useLeftButtonForPanning=!1;mxPanningHandler.prototype.usePopupTrigger=!0;mxPanningHandler.prototype.ignoreCell=!1;mxPanningHandler.prototype.previewEnabled=!0;mxPanningHandler.prototype.useGrid=!1;
1611mxPanningHandler.prototype.panningEnabled=!0;mxPanningHandler.prototype.pinchEnabled=!0;mxPanningHandler.prototype.maxScale=8;mxPanningHandler.prototype.minScale=.01;mxPanningHandler.prototype.dx=null;mxPanningHandler.prototype.dy=null;mxPanningHandler.prototype.startX=0;mxPanningHandler.prototype.startY=0;mxPanningHandler.prototype.isActive=function(){return this.active||null!=this.initialScale};mxPanningHandler.prototype.isPanningEnabled=function(){return this.panningEnabled};
1612mxPanningHandler.prototype.setPanningEnabled=function(a){this.panningEnabled=a};mxPanningHandler.prototype.isPinchEnabled=function(){return this.pinchEnabled};mxPanningHandler.prototype.setPinchEnabled=function(a){this.pinchEnabled=a};mxPanningHandler.prototype.isPanningTrigger=function(a){var b=a.getEvent();return this.useLeftButtonForPanning&&null==a.getState()&&mxEvent.isLeftMouseButton(b)||mxEvent.isControlDown(b)&&mxEvent.isShiftDown(b)||this.usePopupTrigger&&mxEvent.isPopupTrigger(b)};
1613mxPanningHandler.prototype.isForcePanningEvent=function(a){return this.ignoreCell||mxEvent.isMultiTouchEvent(a.getEvent())};mxPanningHandler.prototype.mouseDown=function(a,b){this.mouseDownEvent=b;!b.isConsumed()&&this.isPanningEnabled()&&!this.active&&this.isPanningTrigger(b)&&(this.start(b),this.consumePanningTrigger(b))};
1614mxPanningHandler.prototype.start=function(a){this.dx0=-this.graph.container.scrollLeft;this.dy0=-this.graph.container.scrollTop;this.startX=a.getX();this.startY=a.getY();this.dy=this.dx=null;this.panningTrigger=!0};mxPanningHandler.prototype.consumePanningTrigger=function(a){a.consume()};
1615mxPanningHandler.prototype.mouseMove=function(a,b){this.dx=b.getX()-this.startX;this.dy=b.getY()-this.startY;if(this.active)this.previewEnabled&&(this.useGrid&&(this.dx=this.graph.snap(this.dx),this.dy=this.graph.snap(this.dy)),this.graph.panGraph(this.dx+this.dx0,this.dy+this.dy0)),this.fireEvent(new mxEventObject(mxEvent.PAN,"event",b));else if(this.panningTrigger){var c=this.active;this.active=Math.abs(this.dx)>this.graph.tolerance||Math.abs(this.dy)>this.graph.tolerance;!c&&this.active&&this.fireEvent(new mxEventObject(mxEvent.PAN_START,
1616"event",b))}(this.active||this.panningTrigger)&&b.consume()};mxPanningHandler.prototype.mouseUp=function(a,b){if(this.active){if(null!=this.dx&&null!=this.dy){if(!this.graph.useScrollbarsForPanning||!mxUtils.hasScrollbars(this.graph.container)){var c=this.graph.getView().scale,d=this.graph.getView().translate;this.graph.panGraph(0,0);this.panGraph(d.x+this.dx/c,d.y+this.dy/c)}b.consume()}this.fireEvent(new mxEventObject(mxEvent.PAN_END,"event",b))}this.reset()};
1617mxPanningHandler.prototype.zoomGraph=function(a){var b=Math.round(this.initialScale*a.scale*100)/100;null!=this.minScale&&(b=Math.max(this.minScale,b));null!=this.maxScale&&(b=Math.min(this.maxScale,b));this.graph.view.scale!=b&&(this.graph.zoomTo(b),mxEvent.consume(a))};mxPanningHandler.prototype.reset=function(){this.panningTrigger=this.graph.isMouseDown=!1;this.mouseDownEvent=null;this.active=!1;this.dy=this.dx=null};
1618mxPanningHandler.prototype.panGraph=function(a,b){this.graph.getView().setTranslate(a,b)};mxPanningHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);this.graph.removeListener(this.forcePanningHandler);this.graph.removeListener(this.gestureHandler);mxEvent.removeGestureListeners(document,null,null,this.mouseUpListener);mxEvent.removeListener(document,"mouseleave",this.mouseUpListener)};
1619function mxPopupMenuHandler(a,b){null!=a&&(this.graph=a,this.factoryMethod=b,this.graph.addMouseListener(this),this.gestureHandler=mxUtils.bind(this,function(a,b){this.inTolerance=!1}),this.graph.addListener(mxEvent.GESTURE,this.gestureHandler),this.init())}mxPopupMenuHandler.prototype=new mxPopupMenu;mxPopupMenuHandler.prototype.constructor=mxPopupMenuHandler;mxPopupMenuHandler.prototype.graph=null;mxPopupMenuHandler.prototype.selectOnPopup=!0;
1620mxPopupMenuHandler.prototype.clearSelectionOnBackground=!0;mxPopupMenuHandler.prototype.triggerX=null;mxPopupMenuHandler.prototype.triggerY=null;mxPopupMenuHandler.prototype.screenX=null;mxPopupMenuHandler.prototype.screenY=null;mxPopupMenuHandler.prototype.init=function(){mxPopupMenu.prototype.init.apply(this);mxEvent.addGestureListeners(this.div,mxUtils.bind(this,function(a){this.graph.tooltipHandler.hide()}))};mxPopupMenuHandler.prototype.isSelectOnPopup=function(a){return this.selectOnPopup};
1621mxPopupMenuHandler.prototype.mouseDown=function(a,b){this.isEnabled()&&!mxEvent.isMultiTouchEvent(b.getEvent())&&(this.hideMenu(),this.triggerX=b.getGraphX(),this.triggerY=b.getGraphY(),this.screenX=mxEvent.getMainEvent(b.getEvent()).screenX,this.screenY=mxEvent.getMainEvent(b.getEvent()).screenY,this.popupTrigger=this.isPopupTrigger(b),this.inTolerance=!0)};
1622mxPopupMenuHandler.prototype.mouseMove=function(a,b){this.inTolerance&&null!=this.screenX&&null!=this.screenY&&(Math.abs(mxEvent.getMainEvent(b.getEvent()).screenX-this.screenX)>this.graph.tolerance||Math.abs(mxEvent.getMainEvent(b.getEvent()).screenY-this.screenY)>this.graph.tolerance)&&(this.inTolerance=!1)};
1623mxPopupMenuHandler.prototype.mouseUp=function(a,b,c){a=null==c;c=null!=c?c:mxUtils.bind(this,function(a){var c=mxUtils.getScrollOrigin();this.popup(b.getX()+c.x+1,b.getY()+c.y+1,a,b.getEvent())});if(this.popupTrigger&&this.inTolerance&&null!=this.triggerX&&null!=this.triggerY){var d=this.getCellForPopupEvent(b);this.graph.isEnabled()&&this.isSelectOnPopup(b)&&null!=d&&!this.graph.isCellSelected(d)?this.graph.setSelectionCell(d):this.clearSelectionOnBackground&&null==d&&this.graph.clearSelection();
1624this.graph.tooltipHandler.hide();c(d);a&&b.consume()}this.inTolerance=this.popupTrigger=!1};mxPopupMenuHandler.prototype.getCellForPopupEvent=function(a){return a.getCell()};mxPopupMenuHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);this.graph.removeListener(this.gestureHandler);mxPopupMenu.prototype.destroy.apply(this)};
1625function mxCellMarker(a,b,c,d){mxEventSource.call(this);null!=a&&(this.graph=a,this.validColor=null!=b?b:mxConstants.DEFAULT_VALID_COLOR,this.invalidColor=null!=c?c:mxConstants.DEFAULT_INVALID_COLOR,this.hotspot=null!=d?d:mxConstants.DEFAULT_HOTSPOT,this.highlight=new mxCellHighlight(a))}mxUtils.extend(mxCellMarker,mxEventSource);mxCellMarker.prototype.graph=null;mxCellMarker.prototype.enabled=!0;mxCellMarker.prototype.hotspot=mxConstants.DEFAULT_HOTSPOT;mxCellMarker.prototype.hotspotEnabled=!1;
1626mxCellMarker.prototype.validColor=null;mxCellMarker.prototype.invalidColor=null;mxCellMarker.prototype.currentColor=null;mxCellMarker.prototype.validState=null;mxCellMarker.prototype.markedState=null;mxCellMarker.prototype.setEnabled=function(a){this.enabled=a};mxCellMarker.prototype.isEnabled=function(){return this.enabled};mxCellMarker.prototype.setHotspot=function(a){this.hotspot=a};mxCellMarker.prototype.getHotspot=function(){return this.hotspot};
1627mxCellMarker.prototype.setHotspotEnabled=function(a){this.hotspotEnabled=a};mxCellMarker.prototype.isHotspotEnabled=function(){return this.hotspotEnabled};mxCellMarker.prototype.hasValidState=function(){return null!=this.validState};mxCellMarker.prototype.getValidState=function(){return this.validState};mxCellMarker.prototype.getMarkedState=function(){return this.markedState};mxCellMarker.prototype.reset=function(){this.validState=null;null!=this.markedState&&(this.markedState=null,this.unmark())};
1628mxCellMarker.prototype.process=function(a){var b=null;this.isEnabled()&&(b=this.getState(a),this.setCurrentState(b,a));return b};mxCellMarker.prototype.setCurrentState=function(a,b,c){var d=null!=a?this.isValidState(a):!1;c=null!=c?c:this.getMarkerColor(b.getEvent(),a,d);this.validState=d?a:null;if(a!=this.markedState||c!=this.currentColor)this.currentColor=c,null!=a&&null!=this.currentColor?(this.markedState=a,this.mark()):null!=this.markedState&&(this.markedState=null,this.unmark())};
1629mxCellMarker.prototype.markCell=function(a,b){var c=this.graph.getView().getState(a);null!=c&&(this.currentColor=null!=b?b:this.validColor,this.markedState=c,this.mark())};mxCellMarker.prototype.mark=function(){this.highlight.setHighlightColor(this.currentColor);this.highlight.highlight(this.markedState);this.fireEvent(new mxEventObject(mxEvent.MARK,"state",this.markedState))};mxCellMarker.prototype.unmark=function(){this.mark()};mxCellMarker.prototype.isValidState=function(a){return!0};
1630mxCellMarker.prototype.getMarkerColor=function(a,b,c){return c?this.validColor:this.invalidColor};mxCellMarker.prototype.getState=function(a){var b=this.graph.getView(),c=this.getCell(a),b=this.getStateToMark(b.getState(c));return null!=b&&this.intersects(b,a)?b:null};mxCellMarker.prototype.getCell=function(a){return a.getCell()};mxCellMarker.prototype.getStateToMark=function(a){return a};
1631mxCellMarker.prototype.intersects=function(a,b){return this.hotspotEnabled?mxUtils.intersectsHotspot(a,b.getGraphX(),b.getGraphY(),this.hotspot,mxConstants.MIN_HOTSPOT_SIZE,mxConstants.MAX_HOTSPOT_SIZE):!0};mxCellMarker.prototype.destroy=function(){this.graph.getView().removeListener(this.resetHandler);this.graph.getModel().removeListener(this.resetHandler);this.highlight.destroy()};
1632function mxSelectionCellsHandler(a){mxEventSource.call(this);this.graph=a;this.handlers=new mxDictionary;this.graph.addMouseListener(this);this.refreshHandler=mxUtils.bind(this,function(a,c){this.isEnabled()&&this.refresh()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.refreshHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.refreshHandler);this.graph.getView().addListener(mxEvent.SCALE,this.refreshHandler);this.graph.getView().addListener(mxEvent.TRANSLATE,this.refreshHandler);
1633this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.refreshHandler);this.graph.getView().addListener(mxEvent.DOWN,this.refreshHandler);this.graph.getView().addListener(mxEvent.UP,this.refreshHandler)}mxUtils.extend(mxSelectionCellsHandler,mxEventSource);mxSelectionCellsHandler.prototype.graph=null;mxSelectionCellsHandler.prototype.enabled=!0;mxSelectionCellsHandler.prototype.refreshHandler=null;mxSelectionCellsHandler.prototype.maxHandlers=100;
1634mxSelectionCellsHandler.prototype.handlers=null;mxSelectionCellsHandler.prototype.isEnabled=function(){return this.enabled};mxSelectionCellsHandler.prototype.setEnabled=function(a){this.enabled=a};mxSelectionCellsHandler.prototype.getHandler=function(a){return this.handlers.get(a)};mxSelectionCellsHandler.prototype.isHandled=function(a){return null!=this.getHandler(a)};mxSelectionCellsHandler.prototype.reset=function(){this.handlers.visit(function(a,b){b.reset.apply(b)})};
1635mxSelectionCellsHandler.prototype.getHandledSelectionCells=function(){return this.graph.getSelectionCells()};
1636mxSelectionCellsHandler.prototype.refresh=function(){var a=this.handlers;this.handlers=new mxDictionary;for(var b=mxUtils.sortCells(this.getHandledSelectionCells(),!1),c=0;c<b.length;c++){var d=this.graph.view.getState(b[c]);if(null!=d){var e=a.remove(b[c]);null!=e&&(e.state!=d?(e.destroy(),e=null):this.isHandlerActive(e)||(null!=e.refresh&&e.refresh(),e.redraw()));null!=e&&this.handlers.put(b[c],e)}}a.visit(mxUtils.bind(this,function(a,b){this.fireEvent(new mxEventObject(mxEvent.REMOVE,"state",b.state));
1637b.destroy()}));for(c=0;c<b.length;c++)d=this.graph.view.getState(b[c]),null!=d&&(e=this.handlers.get(b[c]),null==e?(e=this.graph.createHandler(d),this.fireEvent(new mxEventObject(mxEvent.ADD,"state",d)),this.handlers.put(b[c],e)):e.updateParentHighlight())};mxSelectionCellsHandler.prototype.isHandlerActive=function(a){return null!=a.index};
1638mxSelectionCellsHandler.prototype.updateHandler=function(a){var b=this.handlers.remove(a.cell);if(null!=b){var c=b.index,d=b.startX,e=b.startY;b.destroy();b=this.graph.createHandler(a);null!=b&&(this.handlers.put(a.cell,b),null!=c&&null!=d&&null!=e&&b.start(d,e,c))}};mxSelectionCellsHandler.prototype.mouseDown=function(a,b){if(this.graph.isEnabled()&&this.isEnabled()){var c=[a,b];this.handlers.visit(function(a,b){b.mouseDown.apply(b,c)})}};
1639mxSelectionCellsHandler.prototype.mouseMove=function(a,b){if(this.graph.isEnabled()&&this.isEnabled()){var c=[a,b];this.handlers.visit(function(a,b){b.mouseMove.apply(b,c)})}};mxSelectionCellsHandler.prototype.mouseUp=function(a,b){if(this.graph.isEnabled()&&this.isEnabled()){var c=[a,b];this.handlers.visit(function(a,b){b.mouseUp.apply(b,c)})}};
1640mxSelectionCellsHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);null!=this.refreshHandler&&(this.graph.getSelectionModel().removeListener(this.refreshHandler),this.graph.getModel().removeListener(this.refreshHandler),this.graph.getView().removeListener(this.refreshHandler),this.refreshHandler=null)};
1641function mxConnectionHandler(a,b){mxEventSource.call(this);null!=a&&(this.graph=a,this.factoryMethod=b,this.init(),this.escapeHandler=mxUtils.bind(this,function(a,b){this.reset()}),this.graph.addListener(mxEvent.ESCAPE,this.escapeHandler))}mxUtils.extend(mxConnectionHandler,mxEventSource);mxConnectionHandler.prototype.graph=null;mxConnectionHandler.prototype.factoryMethod=!0;mxConnectionHandler.prototype.moveIconFront=!1;mxConnectionHandler.prototype.moveIconBack=!1;
1642mxConnectionHandler.prototype.connectImage=null;mxConnectionHandler.prototype.targetConnectImage=!1;mxConnectionHandler.prototype.enabled=!0;mxConnectionHandler.prototype.select=!0;mxConnectionHandler.prototype.createTarget=!1;mxConnectionHandler.prototype.marker=null;mxConnectionHandler.prototype.constraintHandler=null;mxConnectionHandler.prototype.error=null;mxConnectionHandler.prototype.waypointsEnabled=!1;mxConnectionHandler.prototype.ignoreMouseDown=!1;mxConnectionHandler.prototype.first=null;
1643mxConnectionHandler.prototype.connectIconOffset=new mxPoint(0,mxConstants.TOOLTIP_VERTICAL_OFFSET);mxConnectionHandler.prototype.edgeState=null;mxConnectionHandler.prototype.changeHandler=null;mxConnectionHandler.prototype.drillHandler=null;mxConnectionHandler.prototype.mouseDownCounter=0;mxConnectionHandler.prototype.movePreviewAway=!1;mxConnectionHandler.prototype.outlineConnect=!1;mxConnectionHandler.prototype.livePreview=!1;mxConnectionHandler.prototype.cursor=null;
1644mxConnectionHandler.prototype.insertBeforeSource=!1;mxConnectionHandler.prototype.isEnabled=function(){return this.enabled};mxConnectionHandler.prototype.setEnabled=function(a){this.enabled=a};mxConnectionHandler.prototype.isInsertBefore=function(a,b,c,d,e){return this.insertBeforeSource&&b!=c};mxConnectionHandler.prototype.isCreateTarget=function(a){return this.createTarget};mxConnectionHandler.prototype.setCreateTarget=function(a){this.createTarget=a};
1645mxConnectionHandler.prototype.createShape=function(){var a=this.livePreview&&null!=this.edgeState?this.graph.cellRenderer.createShape(this.edgeState):new mxPolyline([],mxConstants.INVALID_COLOR);a.dialect=mxConstants.DIALECT_SVG;a.scale=this.graph.view.scale;a.svgStrokeTolerance=0;a.pointerEvents=!1;a.isDashed=!0;a.init(this.graph.getView().getOverlayPane());mxEvent.redirectMouseEvents(a.node,this.graph,null);return a};
1646mxConnectionHandler.prototype.init=function(){this.graph.addMouseListener(this);this.marker=this.createMarker();this.constraintHandler=new mxConstraintHandler(this.graph);this.changeHandler=mxUtils.bind(this,function(a){null!=this.iconState&&(this.iconState=this.graph.getView().getState(this.iconState.cell));null!=this.iconState?(this.redrawIcons(this.icons,this.iconState),this.constraintHandler.reset()):null!=this.previous&&null==this.graph.view.getState(this.previous.cell)&&this.reset()});this.graph.getModel().addListener(mxEvent.CHANGE,
1647this.changeHandler);this.graph.getView().addListener(mxEvent.SCALE,this.changeHandler);this.graph.getView().addListener(mxEvent.TRANSLATE,this.changeHandler);this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.changeHandler);this.drillHandler=mxUtils.bind(this,function(a){this.reset()});this.graph.addListener(mxEvent.START_EDITING,this.drillHandler);this.graph.getView().addListener(mxEvent.DOWN,this.drillHandler);this.graph.getView().addListener(mxEvent.UP,this.drillHandler)};
1648mxConnectionHandler.prototype.isConnectableCell=function(a){return!0};
1649mxConnectionHandler.prototype.createMarker=function(){var a=new mxCellMarker(this.graph);a.hotspotEnabled=!0;a.getCell=mxUtils.bind(this,function(b){var c=mxCellMarker.prototype.getCell.apply(a,arguments);this.error=null;null==c&&null!=this.currentPoint&&(c=this.graph.getCellAt(this.currentPoint.x,this.currentPoint.y));if(null!=c&&!this.graph.isCellConnectable(c)){var d=this.graph.getModel().getParent(c);this.graph.getModel().isVertex(d)&&this.graph.isCellConnectable(d)&&(c=d)}if(this.graph.isSwimlane(c)&&
1650null!=this.currentPoint&&this.graph.hitsSwimlaneContent(c,this.currentPoint.x,this.currentPoint.y)||!this.isConnectableCell(c))c=null;null!=c?this.isConnecting()?null!=this.previous&&(this.error=this.validateConnection(this.previous.cell,c),null!=this.error&&0==this.error.length&&(c=null,this.isCreateTarget(b.getEvent())&&(this.error=null))):this.isValidSource(c,b)||(c=null):!this.isConnecting()||this.isCreateTarget(b.getEvent())||this.graph.allowDanglingEdges||(this.error="");return c});a.isValidState=
1651mxUtils.bind(this,function(b){return this.isConnecting()?null==this.error:mxCellMarker.prototype.isValidState.apply(a,arguments)});a.getMarkerColor=mxUtils.bind(this,function(b,c,d){return null==this.connectImage||this.isConnecting()?mxCellMarker.prototype.getMarkerColor.apply(a,arguments):null});a.intersects=mxUtils.bind(this,function(b,c){return null!=this.connectImage||this.isConnecting()?!0:mxCellMarker.prototype.intersects.apply(a,arguments)});return a};
1652mxConnectionHandler.prototype.start=function(a,b,c,d){this.previous=a;this.first=new mxPoint(b,c);this.edgeState=null!=d?d:this.createEdgeState(null);this.marker.currentColor=this.marker.validColor;this.marker.markedState=a;this.marker.mark();this.fireEvent(new mxEventObject(mxEvent.START,"state",this.previous))};mxConnectionHandler.prototype.isConnecting=function(){return null!=this.first&&null!=this.shape};mxConnectionHandler.prototype.isValidSource=function(a,b){return this.graph.isValidSource(a)};
1653mxConnectionHandler.prototype.isValidTarget=function(a){return!0};mxConnectionHandler.prototype.validateConnection=function(a,b){return this.isValidTarget(b)?this.graph.getEdgeValidationError(null,a,b):""};mxConnectionHandler.prototype.getConnectImage=function(a){return this.connectImage};mxConnectionHandler.prototype.isMoveIconToFrontForState=function(a){return null!=a.text&&a.text.node.parentNode==this.graph.container?!0:this.moveIconFront};
1654mxConnectionHandler.prototype.createIcons=function(a){var b=this.getConnectImage(a);if(null!=b&&null!=a){this.iconState=a;var c=[],d=new mxRectangle(0,0,b.width,b.height),e=new mxImageShape(d,b.src,null,null,0);e.preserveImageAspect=!1;this.isMoveIconToFrontForState(a)?(e.dialect=mxConstants.DIALECT_STRICTHTML,e.init(this.graph.container)):(e.dialect=mxConstants.DIALECT_SVG,e.init(this.graph.getView().getOverlayPane()),this.moveIconBack&&null!=e.node.previousSibling&&e.node.parentNode.insertBefore(e.node,
1655e.node.parentNode.firstChild));e.node.style.cursor=mxConstants.CURSOR_CONNECT;var f=mxUtils.bind(this,function(){return null!=this.currentState?this.currentState:a}),b=mxUtils.bind(this,function(a){mxEvent.isConsumed(a)||(this.icon=e,this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(a,f())))});mxEvent.redirectMouseEvents(e.node,this.graph,f,b);c.push(e);this.redrawIcons(c,this.iconState);return c}return null};
1656mxConnectionHandler.prototype.redrawIcons=function(a,b){if(null!=a&&null!=a[0]&&null!=b){var c=this.getIconPosition(a[0],b);a[0].bounds.x=c.x;a[0].bounds.y=c.y;a[0].redraw()}};
1657mxConnectionHandler.prototype.getIconPosition=function(a,b){var c=this.graph.getView().scale,d=b.getCenterX(),e=b.getCenterY();if(this.graph.isSwimlane(b.cell)){var f=this.graph.getStartSize(b.cell),d=0!=f.width?b.x+f.width*c/2:d,e=0!=f.height?b.y+f.height*c/2:e,f=mxUtils.toRadians(mxUtils.getValue(b.style,mxConstants.STYLE_ROTATION)||0);if(0!=f)var c=Math.cos(f),f=Math.sin(f),g=new mxPoint(b.getCenterX(),b.getCenterY()),e=mxUtils.getRotatedPoint(new mxPoint(d,e),c,f,g),d=e.x,e=e.y}return new mxPoint(d-
1658a.bounds.width/2,e-a.bounds.height/2)};mxConnectionHandler.prototype.destroyIcons=function(){if(null!=this.icons){for(var a=0;a<this.icons.length;a++)this.icons[a].destroy();this.iconState=this.selectedIcon=this.icon=this.icons=null}};mxConnectionHandler.prototype.isStartEvent=function(a){return null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentConstraint||null!=this.previous&&null==this.error&&(null==this.icons||null!=this.icons&&null!=this.icon)};
1659mxConnectionHandler.prototype.mouseDown=function(a,b){this.mouseDownCounter++;if(this.isEnabled()&&this.graph.isEnabled()&&!b.isConsumed()&&!this.isConnecting()&&this.isStartEvent(b)){null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint?(this.sourceConstraint=this.constraintHandler.currentConstraint,this.previous=this.constraintHandler.currentFocus,this.first=this.constraintHandler.currentPoint.clone()):this.first=new mxPoint(b.getGraphX(),
1660b.getGraphY());this.edgeState=this.createEdgeState(b);this.mouseDownCounter=1;this.waypointsEnabled&&null==this.shape&&(this.waypoints=null,this.shape=this.createShape(),null!=this.edgeState&&this.shape.apply(this.edgeState));if(null==this.previous&&null!=this.edgeState){var c=this.graph.getPointForEvent(b.getEvent());this.edgeState.cell.geometry.setTerminalPoint(c,!0)}this.fireEvent(new mxEventObject(mxEvent.START,"state",this.previous));b.consume()}this.selectedIcon=this.icon;this.icon=null};
1661mxConnectionHandler.prototype.isImmediateConnectSource=function(a){return!this.graph.isCellMovable(a.cell)};mxConnectionHandler.prototype.createEdgeState=function(a){return null};
1662mxConnectionHandler.prototype.isOutlineConnectEvent=function(a){var b=mxUtils.getOffset(this.graph.container),c=a.getEvent(),d=mxEvent.getClientX(c),c=mxEvent.getClientY(c),e=document.documentElement,f=this.currentPoint.x-this.graph.container.scrollLeft+b.x-((window.pageXOffset||e.scrollLeft)-(e.clientLeft||0)),b=this.currentPoint.y-this.graph.container.scrollTop+b.y-((window.pageYOffset||e.scrollTop)-(e.clientTop||0));return this.outlineConnect&&(mxEvent.isShiftDown(a.getEvent())||a.isSource(this.marker.highlight.shape)||
1663mxEvent.isAltDown(a.getEvent())&&null!=a.getState()||this.marker.highlight.isHighlightAt(d,c)||(f!=d||b!=c)&&null==a.getState()&&this.marker.highlight.isHighlightAt(f,b))};
1664mxConnectionHandler.prototype.updateCurrentState=function(a,b){this.constraintHandler.update(a,null==this.first,!1,null==this.first||a.isSource(this.marker.highlight.shape)?null:b);if(null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentConstraint)null!=this.marker.highlight&&null!=this.marker.highlight.state&&this.marker.highlight.state.cell==this.constraintHandler.currentFocus.cell?"transparent"!=this.marker.highlight.shape.stroke&&(this.marker.highlight.shape.stroke="transparent",
1665this.marker.highlight.repaint()):this.marker.markCell(this.constraintHandler.currentFocus.cell,"transparent"),null!=this.previous&&(this.error=this.validateConnection(this.previous.cell,this.constraintHandler.currentFocus.cell),null==this.error&&(this.currentState=this.constraintHandler.currentFocus),(null!=this.error||null!=this.currentState&&!this.isCellEnabled(this.currentState.cell))&&this.constraintHandler.reset());else{this.graph.isIgnoreTerminalEvent(a.getEvent())?(this.marker.reset(),this.currentState=
1666null):(this.marker.process(a),this.currentState=this.marker.getValidState());null==this.currentState||this.isCellEnabled(this.currentState.cell)||(this.constraintHandler.reset(),this.marker.reset(),this.currentState=null);var c=this.isOutlineConnectEvent(a);null!=this.currentState&&c&&(a.isSource(this.marker.highlight.shape)&&(b=new mxPoint(a.getGraphX(),a.getGraphY())),c=this.graph.getOutlineConstraint(b,this.currentState,a),this.constraintHandler.setFocus(a,this.currentState,!1),this.constraintHandler.currentConstraint=
1667c,this.constraintHandler.currentPoint=b);this.outlineConnect&&null!=this.marker.highlight&&null!=this.marker.highlight.shape&&(c=this.graph.view.scale,null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(this.marker.highlight.shape.stroke=mxConstants.OUTLINE_HIGHLIGHT_COLOR,this.marker.highlight.shape.strokewidth=mxConstants.OUTLINE_HIGHLIGHT_STROKEWIDTH/c/c,this.marker.highlight.repaint()):this.marker.hasValidState()&&(this.graph.isCellConnectable(a.getCell())&&
1668this.marker.getValidState()!=a.getState()?(this.marker.highlight.shape.stroke="transparent",this.currentState=null):this.marker.highlight.shape.stroke=mxConstants.DEFAULT_VALID_COLOR,this.marker.highlight.shape.strokewidth=mxConstants.HIGHLIGHT_STROKEWIDTH/c/c,this.marker.highlight.repaint()))}};mxConnectionHandler.prototype.isCellEnabled=function(a){return!0};
1669mxConnectionHandler.prototype.convertWaypoint=function(a){var b=this.graph.getView().getScale(),c=this.graph.getView().getTranslate();a.x=a.x/b-c.x;a.y=a.y/b-c.y};
1670mxConnectionHandler.prototype.snapToPreview=function(a,b){if(!mxEvent.isAltDown(a.getEvent())&&null!=this.previous){var c=this.graph.gridSize*this.graph.view.scale/2,d=null!=this.sourceConstraint?this.first:new mxPoint(this.previous.getCenterX(),this.previous.getCenterY());Math.abs(d.x-a.getGraphX())<c&&(b.x=d.x);Math.abs(d.y-a.getGraphY())<c&&(b.y=d.y)}};
1671mxConnectionHandler.prototype.mouseMove=function(a,b){if(b.isConsumed()||!this.ignoreMouseDown&&null==this.first&&this.graph.isMouseDown)this.constraintHandler.reset();else{this.isEnabled()||null==this.currentState||(this.destroyIcons(),this.currentState=null);var c=this.graph.getView(),d=c.scale,e=c.translate,c=new mxPoint(b.getGraphX(),b.getGraphY());this.error=null;this.graph.isGridEnabledEvent(b.getEvent())&&(c=new mxPoint((this.graph.snap(c.x/d-e.x)+e.x)*d,(this.graph.snap(c.y/d-e.y)+e.y)*d));
1672this.snapToPreview(b,c);this.currentPoint=c;(null!=this.first||this.isEnabled()&&this.graph.isEnabled())&&(null!=this.shape||null==this.first||Math.abs(b.getGraphX()-this.first.x)>this.graph.tolerance||Math.abs(b.getGraphY()-this.first.y)>this.graph.tolerance)&&this.updateCurrentState(b,c);if(null!=this.first){var f=null,d=c;null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint?(f=this.constraintHandler.currentConstraint,
1673d=this.constraintHandler.currentPoint.clone()):null!=this.previous&&mxEvent.isShiftDown(b.getEvent())&&!this.graph.isIgnoreTerminalEvent(b.getEvent())&&(Math.abs(this.previous.getCenterX()-c.x)<Math.abs(this.previous.getCenterY()-c.y)?c.x=this.previous.getCenterX():c.y=this.previous.getCenterY());e=this.first;if(null!=this.selectedIcon){var g=this.selectedIcon.bounds.width,k=this.selectedIcon.bounds.height;null!=this.currentState&&this.targetConnectImage?(g=this.getIconPosition(this.selectedIcon,
1674this.currentState),this.selectedIcon.bounds.x=g.x,this.selectedIcon.bounds.y=g.y):(g=new mxRectangle(b.getGraphX()+this.connectIconOffset.x,b.getGraphY()+this.connectIconOffset.y,g,k),this.selectedIcon.bounds=g);this.selectedIcon.redraw()}null!=this.edgeState?(this.updateEdgeState(d,f),d=this.edgeState.absolutePoints[this.edgeState.absolutePoints.length-1],e=this.edgeState.absolutePoints[0]):(null!=this.currentState&&null==this.constraintHandler.currentConstraint&&(g=this.getTargetPerimeterPoint(this.currentState,
1675b),null!=g&&(d=g)),null==this.sourceConstraint&&null!=this.previous&&(g=this.getSourcePerimeterPoint(this.previous,null!=this.waypoints&&0<this.waypoints.length?this.waypoints[0]:d,b),null!=g&&(e=g)));if(null==this.currentState&&this.movePreviewAway){g=e;null!=this.edgeState&&2<=this.edgeState.absolutePoints.length&&(f=this.edgeState.absolutePoints[this.edgeState.absolutePoints.length-2],null!=f&&(g=f));f=d.x-g.x;g=d.y-g.y;k=Math.sqrt(f*f+g*g);if(0==k)return;this.originalPoint=d.clone();d.x-=4*f/
1676k;d.y-=4*g/k}else this.originalPoint=null;null==this.shape&&(f=Math.abs(b.getGraphX()-this.first.x),g=Math.abs(b.getGraphY()-this.first.y),f>this.graph.tolerance||g>this.graph.tolerance)&&(this.shape=this.createShape(),null!=this.edgeState&&this.shape.apply(this.edgeState),this.updateCurrentState(b,c));null!=this.shape&&(null!=this.edgeState?this.shape.points=this.edgeState.absolutePoints:(c=[e],null!=this.waypoints&&(c=c.concat(this.waypoints)),c.push(d),this.shape.points=c),this.drawPreview());
1677null!=this.cursor&&(this.graph.container.style.cursor=this.cursor);mxEvent.consume(b.getEvent());b.consume()}else this.isEnabled()&&this.graph.isEnabled()?this.previous!=this.currentState&&null==this.edgeState?(this.destroyIcons(),null!=this.currentState&&null==this.error&&null==this.constraintHandler.currentConstraint&&(this.icons=this.createIcons(this.currentState),null==this.icons&&(this.currentState.setCursor(mxConstants.CURSOR_CONNECT),b.consume())),this.previous=this.currentState):this.previous!=
1678this.currentState||null==this.currentState||null!=this.icons||this.graph.isMouseDown||b.consume():this.constraintHandler.reset();if(!this.graph.isMouseDown&&null!=this.currentState&&null!=this.icons){c=!1;d=b.getSource();for(e=0;e<this.icons.length&&!c;e++)c=d==this.icons[e].node||d.parentNode==this.icons[e].node;c||this.updateIcons(this.currentState,this.icons,b)}}};
1679mxConnectionHandler.prototype.updateEdgeState=function(a,b){null!=this.sourceConstraint&&null!=this.sourceConstraint.point&&(this.edgeState.style[mxConstants.STYLE_EXIT_X]=this.sourceConstraint.point.x,this.edgeState.style[mxConstants.STYLE_EXIT_Y]=this.sourceConstraint.point.y);null!=b&&null!=b.point?(this.edgeState.style[mxConstants.STYLE_ENTRY_X]=b.point.x,this.edgeState.style[mxConstants.STYLE_ENTRY_Y]=b.point.y):(delete this.edgeState.style[mxConstants.STYLE_ENTRY_X],delete this.edgeState.style[mxConstants.STYLE_ENTRY_Y]);
1680this.edgeState.absolutePoints=[null,null!=this.currentState?null:a];this.graph.view.updateFixedTerminalPoint(this.edgeState,this.previous,!0,this.sourceConstraint);null!=this.currentState&&(null==b&&(b=this.graph.getConnectionConstraint(this.edgeState,this.previous,!1)),this.edgeState.setAbsoluteTerminalPoint(null,!1),this.graph.view.updateFixedTerminalPoint(this.edgeState,this.currentState,!1,b));var c=null;if(null!=this.waypoints)for(var c=[],d=0;d<this.waypoints.length;d++){var e=this.waypoints[d].clone();
1681this.convertWaypoint(e);c[d]=e}this.graph.view.updatePoints(this.edgeState,c,this.previous,this.currentState);this.graph.view.updateFloatingTerminalPoints(this.edgeState,this.previous,this.currentState)};
1682mxConnectionHandler.prototype.getTargetPerimeterPoint=function(a,b){var c=null,d=a.view,e=d.getPerimeterFunction(a);if(null!=e){var f=null!=this.waypoints&&0<this.waypoints.length?this.waypoints[this.waypoints.length-1]:new mxPoint(this.previous.getCenterX(),this.previous.getCenterY()),d=e(d.getPerimeterBounds(a),this.edgeState,f,!1);null!=d&&(c=d)}else c=new mxPoint(a.getCenterX(),a.getCenterY());return c};
1683mxConnectionHandler.prototype.getSourcePerimeterPoint=function(a,b,c){c=null;var d=a.view,e=d.getPerimeterFunction(a),f=new mxPoint(a.getCenterX(),a.getCenterY());if(null!=e){var g=mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0),k=Math.PI/180*-g;0!=g&&(b=mxUtils.getRotatedPoint(new mxPoint(b.x,b.y),Math.cos(k),Math.sin(k),f));a=e(d.getPerimeterBounds(a),a,b,!1);null!=a&&(0!=g&&(a=mxUtils.getRotatedPoint(new mxPoint(a.x,a.y),Math.cos(-k),Math.sin(-k),f)),c=a)}else c=f;return c};
1684mxConnectionHandler.prototype.updateIcons=function(a,b,c){};mxConnectionHandler.prototype.isStopEvent=function(a){return null!=a.getState()};
1685mxConnectionHandler.prototype.addWaypointForEvent=function(a){var b=mxUtils.convertPoint(this.graph.container,a.getX(),a.getY()),c=Math.abs(b.x-this.first.x),b=Math.abs(b.y-this.first.y);if(null!=this.waypoints||1<this.mouseDownCounter&&(c>this.graph.tolerance||b>this.graph.tolerance))null==this.waypoints&&(this.waypoints=[]),c=this.graph.view.scale,b=new mxPoint(this.graph.snap(a.getGraphX()/c)*c,this.graph.snap(a.getGraphY()/c)*c),this.waypoints.push(b)};
1686mxConnectionHandler.prototype.checkConstraints=function(a,b){return null==a||null==b||null==a.point||null==b.point||!a.point.equals(b.point)||a.dx!=b.dx||a.dy!=b.dy||a.perimeter!=b.perimeter};
1687mxConnectionHandler.prototype.mouseUp=function(a,b){if(!b.isConsumed()&&this.isConnecting()){if(this.waypointsEnabled&&!this.isStopEvent(b)){this.addWaypointForEvent(b);b.consume();return}var c=this.sourceConstraint,d=this.constraintHandler.currentConstraint,e=null!=this.previous?this.previous.cell:null,f=null;null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(f=this.constraintHandler.currentFocus.cell);null==f&&null!=this.currentState&&(f=this.currentState.cell);
1688null!=this.error||null!=e&&null!=f&&e==f&&!this.checkConstraints(c,d)?(null!=this.previous&&null!=this.marker.validState&&this.previous.cell==this.marker.validState.cell&&this.graph.selectCellForEvent(this.marker.source,b.getEvent()),null!=this.error&&0<this.error.length&&this.graph.validationAlert(this.error)):this.connect(e,f,b.getEvent(),b.getCell());this.destroyIcons();b.consume()}null!=this.first&&this.reset()};
1689mxConnectionHandler.prototype.reset=function(){null!=this.shape&&(this.shape.destroy(),this.shape=null);null!=this.cursor&&null!=this.graph.container&&(this.graph.container.style.cursor="");this.destroyIcons();this.marker.reset();this.constraintHandler.reset();this.sourceConstraint=this.error=this.previous=this.edgeState=this.currentPoint=this.originalPoint=null;this.mouseDownCounter=0;this.first=null;this.fireEvent(new mxEventObject(mxEvent.RESET))};
1690mxConnectionHandler.prototype.drawPreview=function(){this.updatePreview(null==this.error);null!=this.edgeState&&(this.edgeState.shape=this.shape,this.graph.cellRenderer.postConfigureShape(this.edgeState),this.edgeState.shape=null);this.shape.redraw()};mxConnectionHandler.prototype.updatePreview=function(a){this.shape.strokewidth=this.getEdgeWidth(a);this.shape.stroke=this.getEdgeColor(a)};mxConnectionHandler.prototype.getEdgeColor=function(a){return a?mxConstants.VALID_COLOR:mxConstants.INVALID_COLOR};
1691mxConnectionHandler.prototype.getEdgeWidth=function(a){return a?3:1};
1692mxConnectionHandler.prototype.connect=function(a,b,c,d){if(null!=b||this.isCreateTarget(c)||this.graph.allowDanglingEdges){var e=this.graph.getModel(),f=!1,g=null;e.beginUpdate();try{if(null!=a&&null==b&&!this.graph.isIgnoreTerminalEvent(c)&&this.isCreateTarget(c)&&(b=this.createTargetVertex(c,a),null!=b)){d=this.graph.getDropTarget([b],c,d);f=!0;if(null!=d&&this.graph.getModel().isEdge(d))d=this.graph.getDefaultParent();else{var k=this.graph.getView().getState(d);if(null!=k){var l=e.getGeometry(b);
1693l.x-=k.origin.x;l.y-=k.origin.y}}this.graph.addCell(b,d)}var m=this.graph.getDefaultParent();null!=a&&null!=b&&e.getParent(a)==e.getParent(b)&&e.getParent(e.getParent(a))!=e.getRoot()&&(m=e.getParent(a),null!=a.geometry&&a.geometry.relative&&null!=b.geometry&&b.geometry.relative&&(m=e.getParent(m)));var n=k=null;null!=this.edgeState&&(k=this.edgeState.cell.value,n=this.edgeState.cell.style);g=this.insertEdge(m,null,k,a,b,n);if(null!=g){this.graph.setConnectionConstraint(g,a,!0,this.sourceConstraint);
1694this.graph.setConnectionConstraint(g,b,!1,this.constraintHandler.currentConstraint);null!=this.edgeState&&e.setGeometry(g,this.edgeState.cell.geometry);m=e.getParent(a);if(this.isInsertBefore(g,a,b,c,d)){for(l=a;null!=l.parent&&null!=l.geometry&&l.geometry.relative&&l.parent!=g.parent;)l=this.graph.model.getParent(l);null!=l&&null!=l.parent&&l.parent==g.parent&&e.add(m,g,l.parent.getIndex(l))}var p=e.getGeometry(g);null==p&&(p=new mxGeometry,p.relative=!0,e.setGeometry(g,p));if(null!=this.waypoints&&
16950<this.waypoints.length){var q=this.graph.view.scale,r=this.graph.view.translate;p.points=[];for(a=0;a<this.waypoints.length;a++){var t=this.waypoints[a];p.points.push(new mxPoint(t.x/q-r.x,t.y/q-r.y))}}if(null==b){var u=this.graph.view.translate,q=this.graph.view.scale,t=null!=this.originalPoint?new mxPoint(this.originalPoint.x/q-u.x,this.originalPoint.y/q-u.y):new mxPoint(this.currentPoint.x/q-u.x,this.currentPoint.y/q-u.y);t.x-=this.graph.panDx/this.graph.view.scale;t.y-=this.graph.panDy/this.graph.view.scale;
1696p.setTerminalPoint(t,!1)}this.fireEvent(new mxEventObject(mxEvent.CONNECT,"cell",g,"terminal",b,"event",c,"target",d,"terminalInserted",f))}}catch(x){mxLog.show(),mxLog.debug(x.message)}finally{e.endUpdate()}this.select&&this.selectCells(g,f?b:null)}};mxConnectionHandler.prototype.selectCells=function(a,b){this.graph.setSelectionCell(a)};
1697mxConnectionHandler.prototype.insertEdge=function(a,b,c,d,e,f){if(null==this.factoryMethod)return this.graph.insertEdge(a,b,c,d,e,f);b=this.createEdge(c,d,e,f);return this.graph.addEdge(b,a,d,e)};
1698mxConnectionHandler.prototype.createTargetVertex=function(a,b){for(var c=this.graph.getCellGeometry(b);null!=c&&c.relative;)b=this.graph.getModel().getParent(b),c=this.graph.getCellGeometry(b);var d=this.graph.cloneCell(b),c=this.graph.getModel().getGeometry(d);if(null!=c){var e=this.graph.view.translate,f=this.graph.view.scale,g=new mxPoint(this.currentPoint.x/f-e.x,this.currentPoint.y/f-e.y);c.x=Math.round(g.x-c.width/2-this.graph.panDx/f);c.y=Math.round(g.y-c.height/2-this.graph.panDy/f);g=this.getAlignmentTolerance();
1699if(0<g){var k=this.graph.view.getState(b);if(null!=k){var l=k.x/f-e.x,e=k.y/f-e.y;Math.abs(l-c.x)<=g&&(c.x=Math.round(l));Math.abs(e-c.y)<=g&&(c.y=Math.round(e))}}}return d};mxConnectionHandler.prototype.getAlignmentTolerance=function(a){return this.graph.isGridEnabled()?this.graph.gridSize/2:this.graph.tolerance};
1700mxConnectionHandler.prototype.createEdge=function(a,b,c,d){var e=null;null!=this.factoryMethod&&(e=this.factoryMethod(b,c,d));null==e&&(e=new mxCell(a||""),e.setEdge(!0),e.setStyle(d),a=new mxGeometry,a.relative=!0,e.setGeometry(a));return e};
1701mxConnectionHandler.prototype.destroy=function(){this.graph.removeMouseListener(this);null!=this.shape&&(this.shape.destroy(),this.shape=null);null!=this.marker&&(this.marker.destroy(),this.marker=null);null!=this.constraintHandler&&(this.constraintHandler.destroy(),this.constraintHandler=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getView().removeListener(this.changeHandler),this.changeHandler=null);null!=this.drillHandler&&(this.graph.removeListener(this.drillHandler),
1702this.graph.getView().removeListener(this.drillHandler),this.drillHandler=null);null!=this.escapeHandler&&(this.graph.removeListener(this.escapeHandler),this.escapeHandler=null)};
1703function mxConstraintHandler(a){this.graph=a;this.resetHandler=mxUtils.bind(this,function(a,c){null!=this.currentFocus&&null==this.graph.view.getState(this.currentFocus.cell)?this.reset():this.redraw()});this.graph.model.addListener(mxEvent.CHANGE,this.resetHandler);this.graph.view.addListener(mxEvent.SCALE_AND_TRANSLATE,this.resetHandler);this.graph.view.addListener(mxEvent.TRANSLATE,this.resetHandler);this.graph.view.addListener(mxEvent.SCALE,this.resetHandler);this.graph.addListener(mxEvent.ROOT,
1704this.resetHandler)}mxConstraintHandler.prototype.pointImage=new mxImage(mxClient.imageBasePath+"/point.gif",5,5);mxConstraintHandler.prototype.graph=null;mxConstraintHandler.prototype.enabled=!0;mxConstraintHandler.prototype.highlightColor=mxConstants.DEFAULT_VALID_COLOR;mxConstraintHandler.prototype.isEnabled=function(){return this.enabled};mxConstraintHandler.prototype.setEnabled=function(a){this.enabled=a};
1705mxConstraintHandler.prototype.reset=function(){if(null!=this.focusIcons){for(var a=0;a<this.focusIcons.length;a++)this.focusIcons[a].destroy();this.focusIcons=null}null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null);this.focusPoints=this.currentFocus=this.currentPoint=this.currentFocusArea=this.currentConstraint=null};mxConstraintHandler.prototype.getTolerance=function(a){return this.graph.getTolerance()};
1706mxConstraintHandler.prototype.getImageForConstraint=function(a,b,c){return this.pointImage};mxConstraintHandler.prototype.isEventIgnored=function(a,b){return!1};mxConstraintHandler.prototype.isStateIgnored=function(a,b){return!1};mxConstraintHandler.prototype.destroyIcons=function(){if(null!=this.focusIcons){for(var a=0;a<this.focusIcons.length;a++)this.focusIcons[a].destroy();this.focusPoints=this.focusIcons=null}};
1707mxConstraintHandler.prototype.destroyFocusHighlight=function(){null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null)};mxConstraintHandler.prototype.isKeepFocusEvent=function(a){return mxEvent.isShiftDown(a.getEvent())};
1708mxConstraintHandler.prototype.getCellForEvent=function(a,b){var c=a.getCell();null!=c||null==b||a.getGraphX()==b.x&&a.getGraphY()==b.y||(c=this.graph.getCellAt(b.x,b.y));if(null!=c&&!this.graph.isCellConnectable(c)){var d=this.graph.getModel().getParent(c);this.graph.getModel().isVertex(d)&&this.graph.isCellConnectable(d)&&(c=d)}return this.graph.isCellLocked(c)?null:c};
1709mxConstraintHandler.prototype.update=function(a,b,c,d){if(this.isEnabled()&&!this.isEventIgnored(a)){null==this.mouseleaveHandler&&null!=this.graph.container&&(this.mouseleaveHandler=mxUtils.bind(this,function(){this.reset()}),mxEvent.addListener(this.graph.container,"mouseleave",this.resetHandler));var e=this.getTolerance(a),f=null!=d?d.x:a.getGraphX(),g=null!=d?d.y:a.getGraphY(),f=new mxRectangle(f-e,g-e,2*e,2*e),e=new mxRectangle(a.getGraphX()-e,a.getGraphY()-e,2*e,2*e),k=this.graph.view.getState(this.getCellForEvent(a,
1710d));this.isKeepFocusEvent(a)||null!=this.currentFocusArea&&null!=this.currentFocus&&null==k&&this.graph.getModel().isVertex(this.currentFocus.cell)&&mxUtils.intersects(this.currentFocusArea,e)||k==this.currentFocus||(this.currentFocus=this.currentFocusArea=null,this.setFocus(a,k,b));a=this.currentPoint=this.currentConstraint=null;if(null!=this.focusIcons&&null!=this.constraints&&(null==k||this.currentFocus==k))for(var g=e.getCenterX(),l=e.getCenterY(),m=0;m<this.focusIcons.length;m++){var n=g-this.focusIcons[m].bounds.getCenterX(),
1711p=l-this.focusIcons[m].bounds.getCenterY(),n=n*n+p*p;if((this.intersects(this.focusIcons[m],e,b,c)||null!=d&&this.intersects(this.focusIcons[m],f,b,c))&&(null==a||n<a)){this.currentConstraint=this.constraints[m];this.currentPoint=this.focusPoints[m];a=n;n=this.focusIcons[m].bounds.clone();n.grow(mxConstants.HIGHLIGHT_SIZE+1);--n.width;--n.height;if(null==this.focusHighlight){p=this.createHighlightShape();p.dialect=mxConstants.DIALECT_SVG;p.pointerEvents=!1;p.init(this.graph.getView().getOverlayPane());
1712this.focusHighlight=p;var q=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:k});mxEvent.redirectMouseEvents(p.node,this.graph,q)}this.focusHighlight.bounds=n;this.focusHighlight.redraw()}}null==this.currentConstraint&&this.destroyFocusHighlight()}else this.currentPoint=this.currentFocus=this.currentConstraint=null};
1713mxConstraintHandler.prototype.redraw=function(){if(null!=this.currentFocus&&null!=this.constraints&&null!=this.focusIcons){var a=this.graph.view.getState(this.currentFocus.cell);this.currentFocus=a;this.currentFocusArea=new mxRectangle(a.x,a.y,a.width,a.height);for(var b=0;b<this.constraints.length;b++){var c=this.graph.getConnectionPoint(a,this.constraints[b]),d=this.getImageForConstraint(a,this.constraints[b],c),d=new mxRectangle(Math.round(c.x-d.width/2),Math.round(c.y-d.height/2),d.width,d.height);
1714this.focusIcons[b].bounds=d;this.focusIcons[b].redraw();this.currentFocusArea.add(this.focusIcons[b].bounds);this.focusPoints[b]=c}}};
1715mxConstraintHandler.prototype.setFocus=function(a,b,c){this.constraints=null!=b&&!this.isStateIgnored(b,c)&&this.graph.isCellConnectable(b.cell)?this.isEnabled()?this.graph.getAllConnectionConstraints(b,c)||[]:[]:null;if(null!=this.constraints){this.currentFocus=b;this.currentFocusArea=new mxRectangle(b.x,b.y,b.width,b.height);if(null!=this.focusIcons){for(c=0;c<this.focusIcons.length;c++)this.focusIcons[c].destroy();this.focusPoints=this.focusIcons=null}this.focusPoints=[];this.focusIcons=[];for(c=
17160;c<this.constraints.length;c++){var d=this.graph.getConnectionPoint(b,this.constraints[c]),e=this.getImageForConstraint(b,this.constraints[c],d),f=e.src,e=new mxRectangle(Math.round(d.x-e.width/2),Math.round(d.y-e.height/2),e.width,e.height),f=new mxImageShape(e,f);f.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG;f.preserveImageAspect=!1;f.init(this.graph.getView().getDecoratorPane());null!=f.node.previousSibling&&f.node.parentNode.insertBefore(f.node,
1717f.node.parentNode.firstChild);e=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:b});f.redraw();mxEvent.redirectMouseEvents(f.node,this.graph,e);this.currentFocusArea.add(f.bounds);this.focusIcons.push(f);this.focusPoints.push(d)}this.currentFocusArea.grow(this.getTolerance(a))}else this.destroyIcons(),this.destroyFocusHighlight()};
1718mxConstraintHandler.prototype.createHighlightShape=function(){var a=new mxRectangleShape(null,this.highlightColor,this.highlightColor,mxConstants.HIGHLIGHT_STROKEWIDTH);a.opacity=mxConstants.HIGHLIGHT_OPACITY;return a};mxConstraintHandler.prototype.intersects=function(a,b,c,d){return mxUtils.intersects(a.bounds,b)};
1719mxConstraintHandler.prototype.destroy=function(){this.reset();null!=this.resetHandler&&(this.graph.model.removeListener(this.resetHandler),this.graph.view.removeListener(this.resetHandler),this.graph.removeListener(this.resetHandler),this.resetHandler=null);null!=this.mouseleaveHandler&&null!=this.graph.container&&(mxEvent.removeListener(this.graph.container,"mouseleave",this.mouseleaveHandler),this.mouseleaveHandler=null)};
1720function mxRubberband(a){null!=a&&(this.graph=a,this.graph.addMouseListener(this),this.forceRubberbandHandler=mxUtils.bind(this,function(a,c){var b=c.getProperty("eventName"),e=c.getProperty("event");if(b==mxEvent.MOUSE_DOWN&&this.isForceRubberbandEvent(e)){var b=mxUtils.getOffset(this.graph.container),f=mxUtils.getScrollOrigin(this.graph.container);f.x-=b.x;f.y-=b.y;this.start(e.getX()+f.x,e.getY()+f.y);e.consume(!1)}}),this.graph.addListener(mxEvent.FIRE_MOUSE_EVENT,this.forceRubberbandHandler),
1721this.panHandler=mxUtils.bind(this,function(){this.repaint()}),this.graph.addListener(mxEvent.PAN,this.panHandler),this.gestureHandler=mxUtils.bind(this,function(a,c){null!=this.first&&this.reset()}),this.graph.addListener(mxEvent.GESTURE,this.gestureHandler),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()})))}mxRubberband.prototype.defaultOpacity=20;mxRubberband.prototype.enabled=!0;mxRubberband.prototype.div=null;mxRubberband.prototype.sharedDiv=null;
1722mxRubberband.prototype.currentX=0;mxRubberband.prototype.currentY=0;mxRubberband.prototype.fadeOut=!1;mxRubberband.prototype.isEnabled=function(){return this.enabled};mxRubberband.prototype.setEnabled=function(a){this.enabled=a};mxRubberband.prototype.isForceRubberbandEvent=function(a){return mxEvent.isAltDown(a.getEvent())};
1723mxRubberband.prototype.mouseDown=function(a,b){if(!b.isConsumed()&&this.isEnabled()&&this.graph.isEnabled()&&null==b.getState()&&!mxEvent.isMultiTouchEvent(b.getEvent())){var c=mxUtils.getOffset(this.graph.container),d=mxUtils.getScrollOrigin(this.graph.container);d.x-=c.x;d.y-=c.y;this.start(b.getX()+d.x,b.getY()+d.y);b.consume(!1)}};
1724mxRubberband.prototype.start=function(a,b){function c(a){a=new mxMouseEvent(a);var b=mxUtils.convertPoint(d,a.getX(),a.getY());a.graphX=b.x;a.graphY=b.y;return a}this.first=new mxPoint(a,b);var d=this.graph.container;this.dragHandler=mxUtils.bind(this,function(a){this.mouseMove(this.graph,c(a))});this.dropHandler=mxUtils.bind(this,function(a){this.mouseUp(this.graph,c(a))});mxClient.IS_FF&&mxEvent.addGestureListeners(document,null,this.dragHandler,this.dropHandler)};
1725mxRubberband.prototype.mouseMove=function(a,b){if(!b.isConsumed()&&null!=this.first){var c=mxUtils.getScrollOrigin(this.graph.container),d=mxUtils.getOffset(this.graph.container);c.x-=d.x;c.y-=d.y;var d=b.getX()+c.x,c=b.getY()+c.y,e=this.first.x-d,f=this.first.y-c,g=this.graph.tolerance;if(null!=this.div||Math.abs(e)>g||Math.abs(f)>g)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(d,c),b.consume()}};
1726mxRubberband.prototype.createShape=function(){null==this.sharedDiv&&(this.sharedDiv=document.createElement("div"),this.sharedDiv.className="mxRubberband",mxUtils.setOpacity(this.sharedDiv,this.defaultOpacity));this.graph.container.appendChild(this.sharedDiv);var a=this.sharedDiv;mxClient.IS_SVG&&(!mxClient.IS_IE||10<=document.documentMode)&&this.fadeOut&&(this.sharedDiv=null);return a};mxRubberband.prototype.isActive=function(a,b){return null!=this.div&&"none"!=this.div.style.display};
1727mxRubberband.prototype.mouseUp=function(a,b){var c=this.isActive();this.reset();c&&(this.execute(b.getEvent()),b.consume())};mxRubberband.prototype.execute=function(a){var b=new mxRectangle(this.x,this.y,this.width,this.height);this.graph.selectRegion(b,a)};
1728mxRubberband.prototype.reset=function(){if(null!=this.div)if(mxClient.IS_SVG&&(!mxClient.IS_IE||10<=document.documentMode)&&this.fadeOut){var a=this.div;mxUtils.setPrefixedStyle(a.style,"transition","all 0.2s linear");a.style.pointerEvents="none";a.style.opacity=0;window.setTimeout(function(){a.parentNode.removeChild(a)},200)}else this.div.parentNode.removeChild(this.div);mxEvent.removeGestureListeners(document,null,this.dragHandler,this.dropHandler);this.dropHandler=this.dragHandler=null;this.currentY=
1729this.currentX=0;this.div=this.first=null};mxRubberband.prototype.update=function(a,b){this.currentX=a;this.currentY=b;this.repaint()};
1730mxRubberband.prototype.repaint=function(){if(null!=this.div){var a=this.currentX-this.graph.panDx,b=this.currentY-this.graph.panDy;this.x=Math.min(this.first.x,a);this.y=Math.min(this.first.y,b);this.width=Math.max(this.first.x,a)-this.x;this.height=Math.max(this.first.y,b)-this.y;this.div.style.left=this.x+0+"px";this.div.style.top=this.y+0+"px";this.div.style.width=Math.max(1,this.width)+"px";this.div.style.height=Math.max(1,this.height)+"px"}};
1731mxRubberband.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,this.graph.removeMouseListener(this),this.graph.removeListener(this.forceRubberbandHandler),this.graph.removeListener(this.panHandler),this.reset(),null!=this.sharedDiv&&(this.sharedDiv=null))};function mxHandle(a,b,c,d){this.graph=a.view.graph;this.state=a;this.cursor=null!=b?b:this.cursor;this.image=null!=c?c:this.image;this.shape=null!=d?d:null;this.init()}mxHandle.prototype.cursor="default";mxHandle.prototype.image=null;
1732mxHandle.prototype.ignoreGrid=!1;mxHandle.prototype.getPosition=function(a){};mxHandle.prototype.setPosition=function(a,b,c){};mxHandle.prototype.execute=function(a){};mxHandle.prototype.copyStyle=function(a){this.graph.setCellStyles(a,this.state.style[a],[this.state.cell])};
1733mxHandle.prototype.processEvent=function(a){var b=this.graph.view.scale,c=this.graph.view.translate,c=new mxPoint(a.getGraphX()/b-c.x,a.getGraphY()/b-c.y);null!=this.shape&&null!=this.shape.bounds&&(c.x-=this.shape.bounds.width/b/4,c.y-=this.shape.bounds.height/b/4);var b=-mxUtils.toRadians(this.getRotation()),d=-mxUtils.toRadians(this.getTotalRotation())-b,c=this.flipPoint(this.rotatePoint(this.snapPoint(this.rotatePoint(c,b),this.ignoreGrid||!this.graph.isGridEnabledEvent(a.getEvent())),d));this.setPosition(this.state.getPaintBounds(),
1734c,a);this.redraw()};mxHandle.prototype.positionChanged=function(){null!=this.state.text&&this.state.text.apply(this.state);null!=this.state.shape&&this.state.shape.apply(this.state);this.graph.cellRenderer.redraw(this.state,!0)};mxHandle.prototype.getRotation=function(){return null!=this.state.shape?this.state.shape.getRotation():0};mxHandle.prototype.getTotalRotation=function(){return null!=this.state.shape?this.state.shape.getShapeRotation():0};
1735mxHandle.prototype.init=function(){var a=this.isHtmlRequired();null!=this.image?(this.shape=new mxImageShape(new mxRectangle(0,0,this.image.width,this.image.height),this.image.src),this.shape.preserveImageAspect=!1):null==this.shape&&(this.shape=this.createShape(a));this.initShape(a)};mxHandle.prototype.createShape=function(a){a=new mxRectangle(0,0,mxConstants.HANDLE_SIZE,mxConstants.HANDLE_SIZE);return new mxRectangleShape(a,mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};
1736mxHandle.prototype.initShape=function(a){a&&this.shape.isHtmlAllowed()?(this.shape.dialect=mxConstants.DIALECT_STRICTHTML,this.shape.init(this.graph.container)):(this.shape.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,null!=this.cursor&&this.shape.init(this.graph.getView().getOverlayPane()));mxEvent.redirectMouseEvents(this.shape.node,this.graph,this.state);this.shape.node.style.cursor=this.cursor};
1737mxHandle.prototype.redraw=function(){if(null!=this.shape&&null!=this.state.shape){var a=this.getPosition(this.state.getPaintBounds());if(null!=a){var b=mxUtils.toRadians(this.getTotalRotation()),a=this.rotatePoint(this.flipPoint(a),b),b=this.graph.view.scale,c=this.graph.view.translate;this.shape.bounds.x=Math.floor((a.x+c.x)*b-this.shape.bounds.width/2);this.shape.bounds.y=Math.floor((a.y+c.y)*b-this.shape.bounds.height/2);this.shape.redraw()}}};
1738mxHandle.prototype.isHtmlRequired=function(){return null!=this.state.text&&this.state.text.node.parentNode==this.graph.container};mxHandle.prototype.rotatePoint=function(a,b){var c=this.state.getCellBounds(),c=new mxPoint(c.getCenterX(),c.getCenterY());return mxUtils.getRotatedPoint(a,Math.cos(b),Math.sin(b),c)};
1739mxHandle.prototype.flipPoint=function(a){if(null!=this.state.shape){var b=this.state.getCellBounds();this.state.shape.flipH&&(a.x=2*b.x+b.width-a.x);this.state.shape.flipV&&(a.y=2*b.y+b.height-a.y)}return a};mxHandle.prototype.snapPoint=function(a,b){b||(a.x=this.graph.snap(a.x),a.y=this.graph.snap(a.y));return a};mxHandle.prototype.setVisible=function(a){null!=this.shape&&null!=this.shape.node&&(this.shape.node.style.display=a?"":"none")};
1740mxHandle.prototype.reset=function(){this.setVisible(!0);this.state.style=this.graph.getCellStyle(this.state.cell);this.positionChanged()};mxHandle.prototype.destroy=function(){null!=this.shape&&(this.shape.destroy(),this.shape=null)};
1741function mxVertexHandler(a){null!=a&&(this.state=a,this.init(),this.escapeHandler=mxUtils.bind(this,function(a,c){this.livePreview&&null!=this.index&&(this.state.view.graph.cellRenderer.redraw(this.state,!0),this.state.view.invalidate(this.state.cell),this.state.invalid=!1,this.state.view.validate());this.reset()}),this.state.view.graph.addListener(mxEvent.ESCAPE,this.escapeHandler))}mxVertexHandler.prototype.graph=null;mxVertexHandler.prototype.state=null;mxVertexHandler.prototype.singleSizer=!1;
1742mxVertexHandler.prototype.index=null;mxVertexHandler.prototype.allowHandleBoundsCheck=!0;mxVertexHandler.prototype.handleImage=null;mxVertexHandler.prototype.handlesVisible=!0;mxVertexHandler.prototype.tolerance=0;mxVertexHandler.prototype.rotationEnabled=!1;mxVertexHandler.prototype.parentHighlightEnabled=!1;mxVertexHandler.prototype.rotationRaster=!0;mxVertexHandler.prototype.rotationCursor="crosshair";mxVertexHandler.prototype.livePreview=!1;mxVertexHandler.prototype.movePreviewToFront=!1;
1743mxVertexHandler.prototype.manageSizers=!1;mxVertexHandler.prototype.constrainGroupByChildren=!1;mxVertexHandler.prototype.rotationHandleVSpacing=-16;mxVertexHandler.prototype.horizontalOffset=0;mxVertexHandler.prototype.verticalOffset=0;
1744mxVertexHandler.prototype.init=function(){this.graph=this.state.view.graph;this.selectionBounds=this.getSelectionBounds(this.state);this.bounds=new mxRectangle(this.selectionBounds.x,this.selectionBounds.y,this.selectionBounds.width,this.selectionBounds.height);this.selectionBorder=this.createSelectionShape(this.bounds);this.selectionBorder.dialect=mxConstants.DIALECT_SVG;this.selectionBorder.pointerEvents=!1;this.selectionBorder.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0");
1745this.selectionBorder.init(this.graph.getView().getOverlayPane());mxEvent.redirectMouseEvents(this.selectionBorder.node,this.graph,this.state);this.graph.isCellMovable(this.state.cell)&&!this.graph.isCellLocked(this.state.cell)&&this.selectionBorder.setCursor(mxConstants.CURSOR_MOVABLE_VERTEX);if(0>=mxGraphHandler.prototype.maxCells||this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells){var a=this.graph.isCellResizable(this.state.cell)&&!this.graph.isCellLocked(this.state.cell);this.sizers=
1746[];if(a||this.graph.isLabelMovable(this.state.cell)&&2<=this.state.width&&2<=this.state.height){var b=0;a&&(this.singleSizer||(this.sizers.push(this.createSizer("nw-resize",b++)),this.sizers.push(this.createSizer("n-resize",b++)),this.sizers.push(this.createSizer("ne-resize",b++)),this.sizers.push(this.createSizer("w-resize",b++)),this.sizers.push(this.createSizer("e-resize",b++)),this.sizers.push(this.createSizer("sw-resize",b++)),this.sizers.push(this.createSizer("s-resize",b++))),this.sizers.push(this.createSizer("se-resize",
1747b++)));a=this.graph.model.getGeometry(this.state.cell);null==a||a.relative||this.graph.isSwimlane(this.state.cell)||!this.graph.isLabelMovable(this.state.cell)||(this.labelShape=this.createSizer(mxConstants.CURSOR_LABEL_HANDLE,mxEvent.LABEL_HANDLE,mxConstants.LABEL_HANDLE_SIZE,mxConstants.LABEL_HANDLE_FILLCOLOR),this.sizers.push(this.labelShape))}else this.graph.isCellMovable(this.state.cell)&&!a&&2>this.state.width&&2>this.state.height&&(this.labelShape=this.createSizer(mxConstants.CURSOR_MOVABLE_VERTEX,
1748mxEvent.LABEL_HANDLE,null,mxConstants.LABEL_HANDLE_FILLCOLOR),this.sizers.push(this.labelShape))}this.isRotationHandleVisible()&&(this.rotationShape=this.createSizer(this.rotationCursor,mxEvent.ROTATION_HANDLE,mxConstants.HANDLE_SIZE+3,mxConstants.HANDLE_FILLCOLOR),this.sizers.push(this.rotationShape));this.graph.isCellLocked(this.state.cell)||(this.customHandles=this.createCustomHandles());this.redraw();this.constrainGroupByChildren&&this.updateMinBounds()};
1749mxVertexHandler.prototype.isRotationHandleVisible=function(){return this.graph.isEnabled()&&this.rotationEnabled&&!this.graph.isCellLocked(this.state.cell)&&this.graph.isCellRotatable(this.state.cell)&&(0>=mxGraphHandler.prototype.maxCells||this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells)};mxVertexHandler.prototype.isConstrainedEvent=function(a){return mxEvent.isShiftDown(a.getEvent())||"fixed"==this.state.style[mxConstants.STYLE_ASPECT]};
1750mxVertexHandler.prototype.isCenteredEvent=function(a,b){return!1};mxVertexHandler.prototype.createCustomHandles=function(){return null};
1751mxVertexHandler.prototype.updateMinBounds=function(){var a=this.graph.getChildCells(this.state.cell);if(0<a.length&&(this.minBounds=this.graph.view.getBounds(a),null!=this.minBounds)){var a=this.state.view.scale,b=this.state.view.translate;this.minBounds.x-=this.state.x;this.minBounds.y-=this.state.y;this.minBounds.x/=a;this.minBounds.y/=a;this.minBounds.width/=a;this.minBounds.height/=a;this.x0=this.state.x/a-b.x;this.y0=this.state.y/a-b.y}};
1752mxVertexHandler.prototype.getSelectionBounds=function(a){return new mxRectangle(Math.round(a.x),Math.round(a.y),Math.round(a.width),Math.round(a.height))};mxVertexHandler.prototype.createParentHighlightShape=function(a){return this.createSelectionShape(a)};mxVertexHandler.prototype.createSelectionShape=function(a){a=new mxRectangleShape(mxRectangle.fromRectangle(a),null,this.getSelectionColor());a.strokewidth=this.getSelectionStrokeWidth();a.isDashed=this.isSelectionDashed();return a};
1753mxVertexHandler.prototype.getSelectionColor=function(){return this.graph.isCellEditable(this.state.cell)?mxConstants.VERTEX_SELECTION_COLOR:mxConstants.LOCKED_HANDLE_FILLCOLOR};mxVertexHandler.prototype.getSelectionStrokeWidth=function(){return mxConstants.VERTEX_SELECTION_STROKEWIDTH};mxVertexHandler.prototype.isSelectionDashed=function(){return mxConstants.VERTEX_SELECTION_DASHED};
1754mxVertexHandler.prototype.createSizer=function(a,b,c,d){c=c||mxConstants.HANDLE_SIZE;c=new mxRectangle(0,0,c,c);d=this.createSizerShape(c,b,d);d.isHtmlAllowed()&&null!=this.state.text&&this.state.text.node.parentNode==this.graph.container?(--d.bounds.height,--d.bounds.width,d.dialect=mxConstants.DIALECT_STRICTHTML,d.init(this.graph.container)):(d.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,d.init(this.graph.getView().getOverlayPane()));
1755mxEvent.redirectMouseEvents(d.node,this.graph,this.state);this.graph.isEnabled()&&d.setCursor(a);this.isSizerVisible(b)||(d.visible=!1);return d};mxVertexHandler.prototype.isSizerVisible=function(a){return!0};
1756mxVertexHandler.prototype.createSizerShape=function(a,b,c){return null!=this.handleImage?(a=new mxRectangle(a.x,a.y,this.handleImage.width,this.handleImage.height),a=new mxImageShape(a,this.handleImage.src),a.preserveImageAspect=!1,a):b==mxEvent.ROTATION_HANDLE?new mxEllipse(a,c||mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR):new mxRectangleShape(a,c||mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};
1757mxVertexHandler.prototype.moveSizerTo=function(a,b,c){null!=a&&(a.bounds.x=Math.floor(b-a.bounds.width/2),a.bounds.y=Math.floor(c-a.bounds.height/2),null!=a.node&&"none"!=a.node.style.display&&a.redraw())};
1758mxVertexHandler.prototype.getHandleForEvent=function(a){var b=mxEvent.isMouseEvent(a.getEvent())?1:this.tolerance,c=this.allowHandleBoundsCheck&&(mxClient.IS_IE||0<b)?new mxRectangle(a.getGraphX()-b,a.getGraphY()-b,2*b,2*b):null,b=mxUtils.bind(this,function(b){var d=null!=b&&b.constructor!=mxImageShape&&this.allowHandleBoundsCheck?b.strokewidth+b.svgStrokeTolerance:null,d=null!=d?new mxRectangle(a.getGraphX()-Math.floor(d/2),a.getGraphY()-Math.floor(d/2),d,d):c;return null!=b&&(a.isSource(b)||null!=
1759d&&mxUtils.intersects(b.bounds,d)&&"none"!=b.node.style.display&&"hidden"!=b.node.style.visibility)});if(b(this.rotationShape))return mxEvent.ROTATION_HANDLE;if(b(this.labelShape))return mxEvent.LABEL_HANDLE;if(null!=this.sizers)for(var d=0;d<this.sizers.length;d++)if(b(this.sizers[d]))return d;if(null!=this.customHandles&&this.isCustomHandleEvent(a))for(d=this.customHandles.length-1;0<=d;d--)if(b(this.customHandles[d].shape))return mxEvent.CUSTOM_HANDLE-d;return null};
1760mxVertexHandler.prototype.isCustomHandleEvent=function(a){return!0};mxVertexHandler.prototype.mouseDown=function(a,b){if(!b.isConsumed()&&this.graph.isEnabled()){var c=this.getHandleForEvent(b);null!=c&&(this.start(b.getGraphX(),b.getGraphY(),c),b.consume())}};mxVertexHandler.prototype.isLivePreviewBorder=function(){return null!=this.state.shape&&null==this.state.shape.fill&&null==this.state.shape.stroke};
1761mxVertexHandler.prototype.start=function(a,b,c){if(null!=this.selectionBorder)if(this.livePreviewActive=this.livePreview&&0==this.graph.model.getChildCount(this.state.cell),this.inTolerance=!0,this.childOffsetY=this.childOffsetX=0,this.index=c,this.startX=a,this.startY=b,this.index<=mxEvent.CUSTOM_HANDLE&&this.isGhostPreview())this.ghostPreview=this.createGhostPreview();else{a=this.state.view.graph.model;b=a.getParent(this.state.cell);this.state.view.currentRoot!=b&&(a.isVertex(b)||a.isEdge(b))&&
1762(this.parentState=this.state.view.graph.view.getState(b));this.selectionBorder.node.style.display=c==mxEvent.ROTATION_HANDLE?"inline":"none";if(!this.livePreviewActive||this.isLivePreviewBorder())this.preview=this.createSelectionShape(this.bounds),mxClient.IS_SVG&&0!=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0")||null==this.state.text||this.state.text.node.parentNode!=this.graph.container?(this.preview.dialect=mxConstants.DIALECT_SVG,this.preview.init(this.graph.view.getOverlayPane())):
1763(this.preview.dialect=mxConstants.DIALECT_STRICTHTML,this.preview.init(this.graph.container));c==mxEvent.ROTATION_HANDLE&&(b=this.getRotationHandlePosition(),a=b.x-this.state.getCenterX(),b=b.y-this.state.getCenterY(),this.startAngle=0!=a?180*Math.atan(b/a)/Math.PI+90:0,this.startDist=Math.sqrt(a*a+b*b));if(this.livePreviewActive)for(this.hideSizers(),c==mxEvent.ROTATION_HANDLE?this.rotationShape.node.style.display="":c==mxEvent.LABEL_HANDLE?this.labelShape.node.style.display="":null!=this.sizers&&
1764null!=this.sizers[c]?this.sizers[c].node.style.display="":c<=mxEvent.CUSTOM_HANDLE&&null!=this.customHandles&&this.customHandles[mxEvent.CUSTOM_HANDLE-c].setVisible(!0),c=this.graph.getEdges(this.state.cell),this.edgeHandlers=[],a=0;a<c.length;a++)b=this.graph.selectionCellsHandler.getHandler(c[a]),null!=b&&this.edgeHandlers.push(b)}};
1765mxVertexHandler.prototype.createGhostPreview=function(){var a=this.graph.cellRenderer.createShape(this.state);a.init(this.graph.view.getOverlayPane());a.scale=this.state.view.scale;a.bounds=this.bounds;a.outline=!0;return a};mxVertexHandler.prototype.setHandlesVisible=function(a){this.handlesVisible=a;if(null!=this.sizers)for(var b=0;b<this.sizers.length;b++)this.sizers[b].node.style.display=a?"":"none";if(null!=this.customHandles)for(b=0;b<this.customHandles.length;b++)this.customHandles[b].setVisible(a)};
1766mxVertexHandler.prototype.hideSizers=function(){this.setHandlesVisible(!1)};mxVertexHandler.prototype.checkTolerance=function(a){this.inTolerance&&null!=this.startX&&null!=this.startY&&(mxEvent.isMouseEvent(a.getEvent())||Math.abs(a.getGraphX()-this.startX)>this.graph.tolerance||Math.abs(a.getGraphY()-this.startY)>this.graph.tolerance)&&(this.inTolerance=!1)};mxVertexHandler.prototype.updateHint=function(a){};mxVertexHandler.prototype.removeHint=function(){};
1767mxVertexHandler.prototype.roundAngle=function(a){return Math.round(10*a)/10};mxVertexHandler.prototype.roundLength=function(a){return Math.round(100*a)/100};
1768mxVertexHandler.prototype.mouseMove=function(a,b){b.isConsumed()||null==this.index?this.graph.isMouseDown||null==this.getHandleForEvent(b)||b.consume(!1):(this.checkTolerance(b),this.inTolerance||(this.index<=mxEvent.CUSTOM_HANDLE?null!=this.customHandles&&(this.customHandles[mxEvent.CUSTOM_HANDLE-this.index].processEvent(b),this.customHandles[mxEvent.CUSTOM_HANDLE-this.index].active=!0,null!=this.ghostPreview?(this.ghostPreview.apply(this.state),this.ghostPreview.strokewidth=this.getSelectionStrokeWidth()/
1769this.ghostPreview.scale/this.ghostPreview.scale,this.ghostPreview.isDashed=this.isSelectionDashed(),this.ghostPreview.stroke=this.getSelectionColor(),this.ghostPreview.redraw(),null!=this.selectionBounds&&(this.selectionBorder.node.style.display="none")):(this.movePreviewToFront&&this.moveToFront(),this.customHandles[mxEvent.CUSTOM_HANDLE-this.index].positionChanged())):this.index==mxEvent.LABEL_HANDLE?this.moveLabel(b):(this.index==mxEvent.ROTATION_HANDLE?this.rotateVertex(b):this.resizeVertex(b),
1770this.updateHint(b))),b.consume())};mxVertexHandler.prototype.isGhostPreview=function(){return 0<this.state.view.graph.model.getChildCount(this.state.cell)};
1771mxVertexHandler.prototype.moveLabel=function(a){var b=new mxPoint(a.getGraphX(),a.getGraphY()),c=this.graph.view.translate,d=this.graph.view.scale;this.graph.isGridEnabledEvent(a.getEvent())&&(b.x=(this.graph.snap(b.x/d-c.x)+c.x)*d,b.y=(this.graph.snap(b.y/d-c.y)+c.y)*d);this.moveSizerTo(this.sizers[null!=this.rotationShape?this.sizers.length-2:this.sizers.length-1],b.x,b.y)};
1772mxVertexHandler.prototype.rotateVertex=function(a){var b=new mxPoint(a.getGraphX(),a.getGraphY()),c=this.state.x+this.state.width/2-b.x,d=this.state.y+this.state.height/2-b.y;this.currentAlpha=0!=c?180*Math.atan(d/c)/Math.PI+90:0>d?180:0;0<c&&(this.currentAlpha-=180);this.currentAlpha-=this.startAngle;this.rotationRaster&&this.graph.isGridEnabledEvent(a.getEvent())?(c=b.x-this.state.getCenterX(),d=b.y-this.state.getCenterY(),a=Math.sqrt(c*c+d*d),raster=2>a-this.startDist?15:25>a-this.startDist?5:
17731,this.currentAlpha=Math.round(this.currentAlpha/raster)*raster):this.currentAlpha=this.roundAngle(this.currentAlpha);this.selectionBorder.rotation=this.currentAlpha;this.selectionBorder.redraw();this.livePreviewActive&&this.redrawHandles()};
1774mxVertexHandler.prototype.resizeVertex=function(a){var b=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),c=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),d=new mxPoint(a.getGraphX(),a.getGraphY()),e=this.graph.view.translate,f=this.graph.view.scale,g=Math.cos(-c),k=Math.sin(-c),l=d.x-this.startX,m=d.y-this.startY,d=k*l+g*m,l=g*l-k*m,m=d,g=this.graph.getCellGeometry(this.state.cell);this.unscaledBounds=this.union(g,l/f,m/f,this.index,this.graph.isGridEnabledEvent(a.getEvent()),
17751,new mxPoint(0,0),this.isConstrainedEvent(a),this.isCenteredEvent(this.state,a));g.relative||(k=this.graph.getMaximumGraphBounds(),null!=k&&null!=this.parentState&&(k=mxRectangle.fromRectangle(k),k.x-=(this.parentState.x-e.x*f)/f,k.y-=(this.parentState.y-e.y*f)/f),this.graph.isConstrainChild(this.state.cell)&&(d=this.graph.getCellContainmentArea(this.state.cell),null!=d&&(l=this.graph.getOverlap(this.state.cell),0<l&&(d=mxRectangle.fromRectangle(d),d.x-=d.width*l,d.y-=d.height*l,d.width+=2*d.width*
1776l,d.height+=2*d.height*l),null==k?k=d:(k=mxRectangle.fromRectangle(k),k.intersect(d)))),null!=k&&(this.unscaledBounds.x<k.x&&(this.unscaledBounds.width-=k.x-this.unscaledBounds.x,this.unscaledBounds.x=k.x),this.unscaledBounds.y<k.y&&(this.unscaledBounds.height-=k.y-this.unscaledBounds.y,this.unscaledBounds.y=k.y),this.unscaledBounds.x+this.unscaledBounds.width>k.x+k.width&&(this.unscaledBounds.width-=this.unscaledBounds.x+this.unscaledBounds.width-k.x-k.width),this.unscaledBounds.y+this.unscaledBounds.height>
1777k.y+k.height&&(this.unscaledBounds.height-=this.unscaledBounds.y+this.unscaledBounds.height-k.y-k.height)));d=this.bounds;this.bounds=new mxRectangle((null!=this.parentState?this.parentState.x:e.x*f)+this.unscaledBounds.x*f,(null!=this.parentState?this.parentState.y:e.y*f)+this.unscaledBounds.y*f,this.unscaledBounds.width*f,this.unscaledBounds.height*f);g.relative&&null!=this.parentState&&(this.bounds.x+=this.state.x-this.parentState.x,this.bounds.y+=this.state.y-this.parentState.y);g=Math.cos(c);
1778k=Math.sin(c);c=new mxPoint(this.bounds.getCenterX(),this.bounds.getCenterY());l=c.x-b.x;m=c.y-b.y;b=g*l-k*m-l;c=k*l+g*m-m;l=this.bounds.x-this.state.x;m=this.bounds.y-this.state.y;e=g*l-k*m;g=k*l+g*m;this.bounds.x+=b;this.bounds.y+=c;this.unscaledBounds.x=this.roundLength(this.unscaledBounds.x+b/f);this.unscaledBounds.y=this.roundLength(this.unscaledBounds.y+c/f);this.unscaledBounds.width=this.roundLength(this.unscaledBounds.width);this.unscaledBounds.height=this.roundLength(this.unscaledBounds.height);
1779this.graph.isCellCollapsed(this.state.cell)||0==b&&0==c?this.childOffsetY=this.childOffsetX=0:(this.childOffsetX=this.state.x-this.bounds.x+e,this.childOffsetY=this.state.y-this.bounds.y+g);d.equals(this.bounds)||(this.livePreviewActive&&this.updateLivePreview(a),null!=this.preview?this.drawPreview():this.updateParentHighlight())};
1780mxVertexHandler.prototype.updateLivePreview=function(a){var b=this.graph.view.scale,c=this.graph.view.translate;a=this.state.clone();this.state.x=this.bounds.x;this.state.y=this.bounds.y;this.state.origin=new mxPoint(this.state.x/b-c.x,this.state.y/b-c.y);this.state.width=this.bounds.width;this.state.height=this.bounds.height;b=this.state.absoluteOffset;new mxPoint(b.x,b.y);this.state.absoluteOffset.x=0;this.state.absoluteOffset.y=0;b=this.graph.getCellGeometry(this.state.cell);null!=b&&(c=b.offset||
1781this.EMPTY_POINT,null==c||b.relative||(this.state.absoluteOffset.x=this.state.view.scale*c.x,this.state.absoluteOffset.y=this.state.view.scale*c.y),this.state.view.updateVertexLabelOffset(this.state));this.state.view.graph.cellRenderer.redraw(this.state,!0);this.state.view.invalidate(this.state.cell);this.state.invalid=!1;this.state.view.validate();this.redrawHandles();this.movePreviewToFront&&this.moveToFront();null!=this.state.control&&null!=this.state.control.node&&(this.state.control.node.style.visibility=
1782"hidden");this.state.setState(a)};
1783mxVertexHandler.prototype.moveToFront=function(){if(null!=this.state.text&&null!=this.state.text.node&&null!=this.state.text.node.nextSibling||null!=this.state.shape&&null!=this.state.shape.node&&null!=this.state.shape.node.nextSibling&&(null==this.state.text||this.state.shape.node.nextSibling!=this.state.text.node))null!=this.state.shape&&null!=this.state.shape.node&&this.state.shape.node.parentNode.appendChild(this.state.shape.node),null!=this.state.text&&null!=this.state.text.node&&this.state.text.node.parentNode.appendChild(this.state.text.node)};
1784mxVertexHandler.prototype.mouseUp=function(a,b){if(null!=this.index&&null!=this.state){var c=new mxPoint(b.getGraphX(),b.getGraphY()),d=this.index;this.index=null;null==this.ghostPreview&&(this.state.view.invalidate(this.state.cell,!1,!1),this.state.view.validate());this.graph.getModel().beginUpdate();try{if(d<=mxEvent.CUSTOM_HANDLE){if(null!=this.customHandles){var e=this.state.view.graph.getCellStyle(this.state.cell);this.customHandles[mxEvent.CUSTOM_HANDLE-d].active=!1;this.customHandles[mxEvent.CUSTOM_HANDLE-
1785d].execute(b);null!=this.customHandles&&null!=this.customHandles[mxEvent.CUSTOM_HANDLE-d]&&(this.state.style=e,this.customHandles[mxEvent.CUSTOM_HANDLE-d].positionChanged())}}else if(d==mxEvent.ROTATION_HANDLE)if(null!=this.currentAlpha){var f=this.currentAlpha-(this.state.style[mxConstants.STYLE_ROTATION]||0);0!=f&&this.rotateCell(this.state.cell,f)}else this.rotateClick();else{var g=this.graph.isGridEnabledEvent(b.getEvent()),k=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),
1786l=Math.cos(-k),m=Math.sin(-k),n=c.x-this.startX,p=c.y-this.startY,c=m*n+l*p,n=l*n-m*p,p=c,q=this.graph.view.scale,r=this.isRecursiveResize(this.state,b);this.resizeCell(this.state.cell,this.roundLength(n/q),this.roundLength(p/q),d,g,this.isConstrainedEvent(b),r)}}finally{this.graph.getModel().endUpdate()}b.consume();this.reset();this.redrawHandles()}};mxVertexHandler.prototype.isRecursiveResize=function(a,b){return this.graph.isRecursiveResize(this.state)};mxVertexHandler.prototype.rotateClick=function(){};
1787mxVertexHandler.prototype.rotateCell=function(a,b,c){if(0!=b){var d=this.graph.getModel();if(d.isVertex(a)||d.isEdge(a)){if(!d.isEdge(a)){var e=(this.graph.getCurrentCellStyle(a)[mxConstants.STYLE_ROTATION]||0)+b;this.graph.setCellStyles(mxConstants.STYLE_ROTATION,e,[a])}e=this.graph.getCellGeometry(a);if(null!=e){var f=this.graph.getCellGeometry(c);null==f||d.isEdge(c)||(e=e.clone(),e.rotate(b,new mxPoint(f.width/2,f.height/2)),d.setGeometry(a,e));if(d.isVertex(a)&&!e.relative||d.isEdge(a))for(c=
1788d.getChildCount(a),e=0;e<c;e++)this.rotateCell(d.getChildAt(a,e),b,a)}}}};
1789mxVertexHandler.prototype.reset=function(){null!=this.sizers&&null!=this.index&&null!=this.sizers[this.index]&&"none"==this.sizers[this.index].node.style.display&&(this.sizers[this.index].node.style.display="");this.index=this.inTolerance=this.currentAlpha=null;null!=this.preview&&(this.preview.destroy(),this.preview=null);null!=this.ghostPreview&&(this.ghostPreview.destroy(),this.ghostPreview=null);if(this.livePreviewActive&&null!=this.sizers){for(var a=0;a<this.sizers.length;a++)null!=this.sizers[a]&&
1790(this.sizers[a].node.style.display="");null!=this.state.control&&null!=this.state.control.node&&(this.state.control.node.style.visibility="")}if(null!=this.customHandles)for(a=0;a<this.customHandles.length;a++)this.customHandles[a].active?(this.customHandles[a].active=!1,this.customHandles[a].reset()):this.customHandles[a].setVisible(!0);null!=this.selectionBorder&&(this.selectionBorder.node.style.display="inline",this.selectionBounds=this.getSelectionBounds(this.state),this.bounds=new mxRectangle(this.selectionBounds.x,
1791this.selectionBounds.y,this.selectionBounds.width,this.selectionBounds.height),this.drawPreview());this.removeHint();this.redrawHandles();this.edgeHandlers=null;this.handlesVisible=!0;this.livePreviewActive=this.unscaledBounds=null};
1792mxVertexHandler.prototype.resizeCell=function(a,b,c,d,e,f,g){b=this.graph.model.getGeometry(a);null!=b&&(d==mxEvent.LABEL_HANDLE?(d=-mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),g=Math.cos(d),c=Math.sin(d),d=this.graph.view.scale,g=mxUtils.getRotatedPoint(new mxPoint(Math.round((this.labelShape.bounds.getCenterX()-this.startX)/d),Math.round((this.labelShape.bounds.getCenterY()-this.startY)/d)),g,c),b=b.clone(),null==b.offset?b.offset=g:(b.offset.x+=g.x,b.offset.y+=g.y),this.graph.model.setGeometry(a,
1793b)):null!=this.unscaledBounds&&(d=this.graph.view.scale,0==this.childOffsetX&&0==this.childOffsetY||this.moveChildren(a,Math.round(this.childOffsetX/d),Math.round(this.childOffsetY/d)),this.graph.resizeCell(a,this.unscaledBounds,g)))};mxVertexHandler.prototype.moveChildren=function(a,b,c){for(var d=this.graph.getModel(),e=d.getChildCount(a),f=0;f<e;f++){var g=d.getChildAt(a,f),k=this.graph.getCellGeometry(g);null!=k&&(k=k.clone(),k.translate(b,c),d.setGeometry(g,k))}};
1794mxVertexHandler.prototype.union=function(a,b,c,d,e,f,g,k,l){e=null!=e?e&&this.graph.gridEnabled:this.graph.gridEnabled;if(this.singleSizer)return d=a.x+a.width+b,g=a.y+a.height+c,e&&(d=this.graph.snap(d/f)*f,g=this.graph.snap(g/f)*f),f=new mxRectangle(a.x,a.y,0,0),f.add(new mxRectangle(d,g,0,0)),f;var m=a.width,n=a.height,p=a.x-g.x*f,q=p+m;a=a.y-g.y*f;var r=a+n,t=p+m/2,u=a+n/2;4<d?(r+=c,r=e?this.graph.snap(r/f)*f:Math.round(r/f)*f):3>d&&(a+=c,a=e?this.graph.snap(a/f)*f:Math.round(a/f)*f);if(0==d||
17953==d||5==d)p+=b,p=e?this.graph.snap(p/f)*f:Math.round(p/f)*f;else if(2==d||4==d||7==d)q+=b,q=e?this.graph.snap(q/f)*f:Math.round(q/f)*f;e=q-p;c=r-a;k&&(k=this.graph.getCellGeometry(this.state.cell),null!=k&&(k=k.width/k.height,1==d||2==d||7==d||6==d?e=c*k:c=e/k,0==d&&(p=q-e,a=r-c)));l&&(e+=e-m,c+=c-n,p+=t-(p+e/2),a+=u-(a+c/2));0>e&&(p+=e,e=Math.abs(e));0>c&&(a+=c,c=Math.abs(c));d=new mxRectangle(p+g.x*f,a+g.y*f,e,c);null!=this.minBounds&&(d.width=Math.max(d.width,this.minBounds.x*f+this.minBounds.width*
1796f+Math.max(0,this.x0*f-d.x)),d.height=Math.max(d.height,this.minBounds.y*f+this.minBounds.height*f+Math.max(0,this.y0*f-d.y)));return d};mxVertexHandler.prototype.redraw=function(a){this.selectionBounds=this.getSelectionBounds(this.state);this.bounds=new mxRectangle(this.selectionBounds.x,this.selectionBounds.y,this.selectionBounds.width,this.selectionBounds.height);this.drawPreview();a||this.redrawHandles()};
1797mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),b=this.tolerance;null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]&&(this.bounds.width<2*this.sizers[0].bounds.width+2*b||this.bounds.height<2*this.sizers[0].bounds.height+2*b)&&(b/=2,a.x=this.sizers[0].bounds.width+b,a.y=this.sizers[0].bounds.height+b);return a};mxVertexHandler.prototype.getSizerBounds=function(){return this.bounds};
1798mxVertexHandler.prototype.redrawHandles=function(){var a=this.getSizerBounds(),b=this.tolerance;this.verticalOffset=this.horizontalOffset=0;if(null!=this.customHandles)for(var c=0;c<this.customHandles.length;c++){var d=this.customHandles[c].shape.node.style.display;this.customHandles[c].redraw();this.customHandles[c].shape.node.style.display=d;this.customHandles[c].shape.node.style.visibility=this.handlesVisible&&this.isCustomHandleVisible(this.customHandles[c])?"":"hidden"}if(null!=this.sizers&&
17990<this.sizers.length&&null!=this.sizers[0]){if(null==this.index&&this.manageSizers&&8<=this.sizers.length){c=this.getHandlePadding();this.horizontalOffset=c.x;this.verticalOffset=c.y;if(0!=this.horizontalOffset||0!=this.verticalOffset)a=new mxRectangle(a.x,a.y,a.width,a.height),a.x-=this.horizontalOffset/2,a.width+=this.horizontalOffset,a.y-=this.verticalOffset/2,a.height+=this.verticalOffset;8<=this.sizers.length&&(a.width<2*this.sizers[0].bounds.width+2*b||a.height<2*this.sizers[0].bounds.height+
18002*b?(this.sizers[0].node.style.display="none",this.sizers[2].node.style.display="none",this.sizers[5].node.style.display="none",this.sizers[7].node.style.display="none"):this.handlesVisible&&(this.sizers[0].node.style.display="",this.sizers[2].node.style.display="",this.sizers[5].node.style.display="",this.sizers[7].node.style.display=""))}b=a.x+a.width;c=a.y+a.height;if(this.singleSizer)this.moveSizerTo(this.sizers[0],b,c);else{var d=a.x+a.width/2,e=a.y+a.height/2;if(8<=this.sizers.length){var f=
1801"nw-resize n-resize ne-resize e-resize se-resize s-resize sw-resize w-resize".split(" "),g=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),k=Math.cos(g),l=Math.sin(g),g=Math.round(4*g/Math.PI),m=new mxPoint(a.getCenterX(),a.getCenterY()),n=mxUtils.getRotatedPoint(new mxPoint(a.x,a.y),k,l,m);this.moveSizerTo(this.sizers[0],n.x,n.y);this.sizers[0].setCursor(f[mxUtils.mod(0+g,f.length)]);n.x=d;n.y=a.y;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[1],n.x,n.y);this.sizers[1].setCursor(f[mxUtils.mod(1+
1802g,f.length)]);n.x=b;n.y=a.y;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[2],n.x,n.y);this.sizers[2].setCursor(f[mxUtils.mod(2+g,f.length)]);n.x=a.x;n.y=e;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[3],n.x,n.y);this.sizers[3].setCursor(f[mxUtils.mod(7+g,f.length)]);n.x=b;n.y=e;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[4],n.x,n.y);this.sizers[4].setCursor(f[mxUtils.mod(3+g,f.length)]);n.x=a.x;n.y=c;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[5],
1803n.x,n.y);this.sizers[5].setCursor(f[mxUtils.mod(6+g,f.length)]);n.x=d;n.y=c;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[6],n.x,n.y);this.sizers[6].setCursor(f[mxUtils.mod(5+g,f.length)]);n.x=b;n.y=c;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[7],n.x,n.y);this.sizers[7].setCursor(f[mxUtils.mod(4+g,f.length)]);n.x=d+this.state.absoluteOffset.x;n.y=e+this.state.absoluteOffset.y;n=mxUtils.getRotatedPoint(n,k,l,m);this.moveSizerTo(this.sizers[8],n.x,n.y)}else 2<=
1804this.state.width&&2<=this.state.height?this.moveSizerTo(this.sizers[0],d+this.state.absoluteOffset.x,e+this.state.absoluteOffset.y):this.moveSizerTo(this.sizers[0],this.state.x,this.state.y)}}null!=this.rotationShape&&(g=mxUtils.toRadians(null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0"),k=Math.cos(g),l=Math.sin(g),m=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),n=mxUtils.getRotatedPoint(this.getRotationHandlePosition(),k,l,m),null!=this.rotationShape.node&&
1805(this.moveSizerTo(this.rotationShape,n.x,n.y),this.rotationShape.node.style.visibility=this.state.view.graph.isEditing()||!this.handlesVisible?"hidden":""));null!=this.selectionBorder&&(this.selectionBorder.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"));if(null!=this.edgeHandlers)for(c=0;c<this.edgeHandlers.length;c++)this.edgeHandlers[c].redraw()};mxVertexHandler.prototype.isCustomHandleVisible=function(a){return!this.graph.isEditing()&&1==this.state.view.graph.getSelectionCount()};
1806mxVertexHandler.prototype.getRotationHandlePosition=function(){return new mxPoint(this.bounds.x+this.bounds.width/2,this.bounds.y+this.rotationHandleVSpacing)};mxVertexHandler.prototype.isParentHighlightVisible=function(){return!this.graph.isCellSelected(this.graph.model.getParent(this.state.cell))};
1807mxVertexHandler.prototype.updateParentHighlight=function(){if(!this.isDestroyed()){var a=this.isParentHighlightVisible(),b=this.graph.model.getParent(this.state.cell),c=this.graph.view.getState(b);null!=this.parentHighlight?this.graph.model.isVertex(b)&&a?(a=this.parentHighlight.bounds,null==c||a.x==c.x&&a.y==c.y&&a.width==c.width&&a.height==c.height||(this.parentHighlight.bounds=mxRectangle.fromRectangle(c),this.parentHighlight.redraw())):(null!=c&&c.parentHighlight==this.parentHighlight&&(c.parentHighlight=
1808null),this.parentHighlight.destroy(),this.parentHighlight=null):this.parentHighlightEnabled&&a&&this.graph.model.isVertex(b)&&null!=c&&null==c.parentHighlight&&(this.parentHighlight=this.createParentHighlightShape(c),this.parentHighlight.dialect=mxConstants.DIALECT_SVG,this.parentHighlight.pointerEvents=!1,this.parentHighlight.rotation=Number(c.style[mxConstants.STYLE_ROTATION]||"0"),this.parentHighlight.init(this.graph.getView().getOverlayPane()),this.parentHighlight.redraw(),c.parentHighlight=this.parentHighlight)}};
1809mxVertexHandler.prototype.drawPreview=function(){null!=this.preview&&(this.preview.bounds=this.bounds,this.preview.node.parentNode==this.graph.container&&(this.preview.bounds.width=Math.max(0,this.preview.bounds.width-1),this.preview.bounds.height=Math.max(0,this.preview.bounds.height-1)),this.preview.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"),this.preview.redraw());this.selectionBorder.bounds=this.getSelectionBorderBounds();this.selectionBorder.redraw();this.updateParentHighlight()};
1810mxVertexHandler.prototype.getSelectionBorderBounds=function(){return this.bounds};mxVertexHandler.prototype.isDestroyed=function(){return null==this.selectionBorder};
1811mxVertexHandler.prototype.destroy=function(){null!=this.escapeHandler&&(this.state.view.graph.removeListener(this.escapeHandler),this.escapeHandler=null);null!=this.preview&&(this.preview.destroy(),this.preview=null);if(null!=this.parentHighlight){var a=this.graph.model.getParent(this.state.cell),a=this.graph.view.getState(a);null!=a&&a.parentHighlight==this.parentHighlight&&(a.parentHighlight=null);this.parentHighlight.destroy();this.parentHighlight=null}null!=this.ghostPreview&&(this.ghostPreview.destroy(),
1812this.ghostPreview=null);null!=this.selectionBorder&&(this.selectionBorder.destroy(),this.selectionBorder=null);this.labelShape=null;this.removeHint();if(null!=this.sizers){for(a=0;a<this.sizers.length;a++)this.sizers[a].destroy();this.sizers=null}if(null!=this.customHandles){for(a=0;a<this.customHandles.length;a++)this.customHandles[a].destroy();this.customHandles=null}};
1813function mxEdgeHandler(a){null!=a&&null!=a.shape&&(this.state=a,this.init(),this.escapeHandler=mxUtils.bind(this,function(b,c){var d=null!=this.index;this.reset();d&&this.graph.cellRenderer.redraw(this.state,!1,a.view.isRendering())}),this.state.view.graph.addListener(mxEvent.ESCAPE,this.escapeHandler))}mxEdgeHandler.prototype.graph=null;mxEdgeHandler.prototype.state=null;mxEdgeHandler.prototype.marker=null;mxEdgeHandler.prototype.constraintHandler=null;mxEdgeHandler.prototype.error=null;
1814mxEdgeHandler.prototype.shape=null;mxEdgeHandler.prototype.bends=null;mxEdgeHandler.prototype.labelShape=null;mxEdgeHandler.prototype.cloneEnabled=!0;mxEdgeHandler.prototype.addEnabled=!1;mxEdgeHandler.prototype.removeEnabled=!1;mxEdgeHandler.prototype.dblClickRemoveEnabled=!1;mxEdgeHandler.prototype.mergeRemoveEnabled=!1;mxEdgeHandler.prototype.straightRemoveEnabled=!1;mxEdgeHandler.prototype.virtualBendsEnabled=!1;mxEdgeHandler.prototype.virtualBendOpacity=20;
1815mxEdgeHandler.prototype.parentHighlightEnabled=!1;mxEdgeHandler.prototype.preferHtml=!1;mxEdgeHandler.prototype.allowHandleBoundsCheck=!0;mxEdgeHandler.prototype.snapToTerminals=!1;mxEdgeHandler.prototype.handleImage=null;mxEdgeHandler.prototype.tolerance=0;mxEdgeHandler.prototype.outlineConnect=!1;mxEdgeHandler.prototype.manageLabelHandle=!1;
1816mxEdgeHandler.prototype.init=function(){this.graph=this.state.view.graph;this.marker=this.createMarker();this.constraintHandler=new mxConstraintHandler(this.graph);this.points=[];this.abspoints=this.getSelectionPoints(this.state);this.shape=this.createSelectionShape(this.abspoints);this.shape.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG;this.shape.init(this.graph.getView().getOverlayPane());this.shape.svgStrokeTolerance=0;this.shape.pointerEvents=
1817!1;mxEvent.redirectMouseEvents(this.shape.node,this.graph,this.state);this.graph.isCellMovable(this.state.cell)&&this.shape.setCursor(mxConstants.CURSOR_MOVABLE_EDGE);this.preferHtml=null!=this.state.text&&this.state.text.node.parentNode==this.graph.container;if(!this.preferHtml){var a=this.state.getVisibleTerminalState(!0);null!=a&&(this.preferHtml=null!=a.text&&a.text.node.parentNode==this.graph.container);this.preferHtml||(a=this.state.getVisibleTerminalState(!1),null!=a&&(this.preferHtml=null!=
1818a.text&&a.text.node.parentNode==this.graph.container))}this.graph.isCellEditable(this.state.cell)&&(this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells||0>=mxGraphHandler.prototype.maxCells)&&(this.bends=this.createBends(),this.isVirtualBendsEnabled()&&(this.virtualBends=this.createVirtualBends()));this.label=new mxPoint(this.state.absoluteOffset.x,this.state.absoluteOffset.y);this.labelShape=this.createLabelHandleShape();this.initBend(this.labelShape);this.graph.isCellEditable(this.state.cell)&&
1819(this.labelShape.setCursor(mxConstants.CURSOR_LABEL_HANDLE),this.customHandles=this.createCustomHandles());this.updateParentHighlight();this.redraw()};mxEdgeHandler.prototype.isParentHighlightVisible=mxVertexHandler.prototype.isParentHighlightVisible;mxEdgeHandler.prototype.updateParentHighlight=mxVertexHandler.prototype.updateParentHighlight;mxEdgeHandler.prototype.createCustomHandles=function(){return null};
1820mxEdgeHandler.prototype.isVirtualBendsEnabled=function(a){return this.virtualBendsEnabled&&(null==this.state.style[mxConstants.STYLE_EDGE]||this.state.style[mxConstants.STYLE_EDGE]==mxConstants.NONE||1==this.state.style[mxConstants.STYLE_NOEDGESTYLE])&&"arrow"!=mxUtils.getValue(this.state.style,mxConstants.STYLE_SHAPE,null)};mxEdgeHandler.prototype.isCellEnabled=function(a){return!0};mxEdgeHandler.prototype.isAddPointEvent=function(a){return mxEvent.isShiftDown(a)};
1821mxEdgeHandler.prototype.isRemovePointEvent=function(a){return mxEvent.isShiftDown(a)};mxEdgeHandler.prototype.getSelectionPoints=function(a){return a.absolutePoints};mxEdgeHandler.prototype.createParentHighlightShape=function(a){a=new mxRectangleShape(mxRectangle.fromRectangle(a),null,this.getSelectionColor());a.strokewidth=this.getSelectionStrokeWidth();a.isDashed=this.isSelectionDashed();return a};
1822mxEdgeHandler.prototype.createSelectionShape=function(a){a=new this.state.shape.constructor;a.outline=!0;a.apply(this.state);a.isDashed=this.isSelectionDashed();a.stroke=this.getSelectionColor();a.isShadow=!1;return a};mxEdgeHandler.prototype.getSelectionColor=function(){return this.graph.isCellEditable(this.state.cell)?mxConstants.EDGE_SELECTION_COLOR:mxConstants.LOCKED_HANDLE_FILLCOLOR};mxEdgeHandler.prototype.getSelectionStrokeWidth=function(){return mxConstants.EDGE_SELECTION_STROKEWIDTH};
1823mxEdgeHandler.prototype.isSelectionDashed=function(){return mxConstants.EDGE_SELECTION_DASHED};mxEdgeHandler.prototype.isConnectableCell=function(a){return!0};mxEdgeHandler.prototype.getCellAt=function(a,b){return this.outlineConnect?null:this.graph.getCellAt(a,b)};
1824mxEdgeHandler.prototype.createMarker=function(){var a=new mxCellMarker(this.graph),b=this;a.getCell=function(a){var c=mxCellMarker.prototype.getCell.apply(this,arguments);c!=b.state.cell&&null!=c||null==b.currentPoint||(c=b.graph.getCellAt(b.currentPoint.x,b.currentPoint.y));if(null!=c&&!this.graph.isCellConnectable(c)){var e=this.graph.getModel().getParent(c);this.graph.getModel().isVertex(e)&&this.graph.isCellConnectable(e)&&(c=e)}e=b.graph.getModel();if(this.graph.isSwimlane(c)&&null!=b.currentPoint&&
1825this.graph.hitsSwimlaneContent(c,b.currentPoint.x,b.currentPoint.y)||!b.isConnectableCell(c)||c==b.state.cell||null!=c&&!b.graph.connectableEdges&&e.isEdge(c)||e.isAncestor(b.state.cell,c))c=null;this.graph.isCellConnectable(c)||(c=null);return c};a.isValidState=function(a){var c=b.graph.getModel(),c=b.graph.view.getTerminalPort(a,b.graph.view.getState(c.getTerminal(b.state.cell,!b.isSource)),!b.isSource),c=null!=c?c.cell:null;b.error=b.validateConnection(b.isSource?a.cell:c,b.isSource?c:a.cell);
1826return null==b.error};return a};mxEdgeHandler.prototype.validateConnection=function(a,b){return this.graph.getEdgeValidationError(this.state.cell,a,b)};
1827mxEdgeHandler.prototype.createBends=function(){for(var a=this.state.cell,b=[],c=0;c<this.abspoints.length;c++)if(this.isHandleVisible(c)){var d=c==this.abspoints.length-1,e=0==c||d;(e||this.graph.isCellBendable(a))&&mxUtils.bind(this,function(a){var d=this.createHandleShape(a);this.initBend(d,mxUtils.bind(this,mxUtils.bind(this,function(){this.dblClickRemoveEnabled&&this.removePoint(this.state,a)})));this.isHandleEnabled(c)&&d.setCursor(e?mxConstants.CURSOR_TERMINAL_HANDLE:mxConstants.CURSOR_BEND_HANDLE);
1828b.push(d);e||(this.points.push(new mxPoint(0,0)),d.node.style.visibility="hidden")})(c)}return b};mxEdgeHandler.prototype.createVirtualBends=function(){var a=[];if(this.graph.isCellBendable(this.state.cell))for(var b=1;b<this.abspoints.length;b++)mxUtils.bind(this,function(b){this.initBend(b);b.setCursor(mxConstants.CURSOR_VIRTUAL_BEND_HANDLE);a.push(b)})(this.createHandleShape());return a};mxEdgeHandler.prototype.isHandleEnabled=function(a){return!0};
1829mxEdgeHandler.prototype.isHandleVisible=function(a){var b=this.state.getVisibleTerminalState(!0),c=this.state.getVisibleTerminalState(!1),d=this.graph.getCellGeometry(this.state.cell);return(null!=d?this.graph.view.getEdgeStyle(this.state,d.points,b,c):null)!=mxEdgeStyle.EntityRelation||0==a||a==this.abspoints.length-1};
1830mxEdgeHandler.prototype.createHandleShape=function(a){if(null!=this.handleImage)return a=new mxImageShape(new mxRectangle(0,0,this.handleImage.width,this.handleImage.height),this.handleImage.src),a.preserveImageAspect=!1,a;a=mxConstants.HANDLE_SIZE;this.preferHtml&&--a;return new mxRectangleShape(new mxRectangle(0,0,a,a),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};
1831mxEdgeHandler.prototype.createLabelHandleShape=function(){if(null!=this.labelHandleImage){var a=new mxImageShape(new mxRectangle(0,0,this.labelHandleImage.width,this.labelHandleImage.height),this.labelHandleImage.src);a.preserveImageAspect=!1;return a}a=mxConstants.LABEL_HANDLE_SIZE;return new mxRectangleShape(new mxRectangle(0,0,a,a),mxConstants.LABEL_HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};
1832mxEdgeHandler.prototype.initBend=function(a,b){this.preferHtml?(a.dialect=mxConstants.DIALECT_STRICTHTML,a.init(this.graph.container)):(a.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,a.init(this.graph.getView().getOverlayPane()));mxEvent.redirectMouseEvents(a.node,this.graph,this.state,null,null,null,b);mxClient.IS_TOUCH&&a.node.setAttribute("pointer-events","none")};
1833mxEdgeHandler.prototype.getHandleForEvent=function(a){var b=null;if(null!=this.state){var c=function(b){if(null!=b&&null!=b.node&&"none"!=b.node.style.display&&"hidden"!=b.node.style.visibility&&(a.isSource(b)||null!=e&&mxUtils.intersects(b.bounds,e))){var c=a.getGraphX()-b.bounds.getCenterX();b=a.getGraphY()-b.bounds.getCenterY();c=c*c+b*b;if(null==f||c<=f)return f=c,!0}return!1},d=mxEvent.isMouseEvent(a.getEvent())?1:this.tolerance,e=this.allowHandleBoundsCheck&&(mxClient.IS_IE||0<d)?new mxRectangle(a.getGraphX()-
1834d,a.getGraphY()-d,2*d,2*d):null,f=null;if(null!=this.customHandles&&this.isCustomHandleEvent(a))for(d=this.customHandles.length-1;0<=d;d--)if(c(this.customHandles[d].shape))return mxEvent.CUSTOM_HANDLE-d;if(a.isSource(this.state.text)||c(this.labelShape))b=mxEvent.LABEL_HANDLE;if(null!=this.bends)for(d=0;d<this.bends.length;d++)c(this.bends[d])&&(b=d);if(null!=this.virtualBends&&this.isAddVirtualBendEvent(a))for(d=0;d<this.virtualBends.length;d++)c(this.virtualBends[d])&&(b=mxEvent.VIRTUAL_HANDLE-
1835d)}return b};mxEdgeHandler.prototype.isAddVirtualBendEvent=function(a){return!0};mxEdgeHandler.prototype.isCustomHandleEvent=function(a){return!0};
1836mxEdgeHandler.prototype.mouseDown=function(a,b){if(this.graph.isCellEditable(this.state.cell)){var c=this.getHandleForEvent(b);if(null!=this.bends&&null!=this.bends[c]){var d=this.bends[c].bounds;this.snapPoint=new mxPoint(d.getCenterX(),d.getCenterY())}if(this.addEnabled&&null==c&&this.isAddPointEvent(b.getEvent()))this.addPoint(this.state,b.getEvent()),b.consume();else if(null!=c&&!b.isConsumed()&&this.graph.isEnabled()){if(this.removeEnabled&&this.isRemovePointEvent(b.getEvent()))this.removePoint(this.state,
1837c);else if(c!=mxEvent.LABEL_HANDLE||this.graph.isLabelMovable(b.getCell()))c<=mxEvent.VIRTUAL_HANDLE&&mxUtils.setOpacity(this.virtualBends[mxEvent.VIRTUAL_HANDLE-c].node,100),this.start(b.getX(),b.getY(),c);b.consume()}}};
1838mxEdgeHandler.prototype.start=function(a,b,c){this.startX=a;this.startY=b;this.isSource=null==this.bends?!1:0==c;this.isTarget=null==this.bends?!1:c==this.bends.length-1;this.isLabel=c==mxEvent.LABEL_HANDLE;if(this.isSource||this.isTarget){if(a=this.state.cell,b=this.graph.model.getTerminal(a,this.isSource),null==b&&this.graph.isTerminalPointMovable(a,this.isSource)||null!=b&&this.graph.isCellDisconnectable(a,b,this.isSource))this.index=c}else this.index=c;if(this.index<=mxEvent.CUSTOM_HANDLE&&this.index>
1839mxEvent.VIRTUAL_HANDLE&&null!=this.customHandles)for(c=0;c<this.customHandles.length;c++)c!=mxEvent.CUSTOM_HANDLE-this.index&&this.customHandles[c].setVisible(!1)};mxEdgeHandler.prototype.clonePreviewState=function(a,b){return this.state.clone()};mxEdgeHandler.prototype.getSnapToTerminalTolerance=function(){return this.graph.gridSize*this.graph.view.scale/2};mxEdgeHandler.prototype.updateHint=function(a,b){};mxEdgeHandler.prototype.removeHint=function(){};mxEdgeHandler.prototype.roundLength=function(a){return Math.round(a)};
1840mxEdgeHandler.prototype.isSnapToTerminalsEvent=function(a){return this.snapToTerminals&&!mxEvent.isAltDown(a.getEvent())};
1841mxEdgeHandler.prototype.getPointForEvent=function(a){var b=this.graph.getView(),c=b.scale,d=new mxPoint(this.roundLength(a.getGraphX()/c)*c,this.roundLength(a.getGraphY()/c)*c),e=this.getSnapToTerminalTolerance(),f=!1,g=!1;if(0<e&&this.isSnapToTerminalsEvent(a)){var k=function(a){null!=a&&l.call(this,new mxPoint(b.getRoutingCenterX(a),b.getRoutingCenterY(a)))},l=function(a){if(null!=a){var b=a.x;Math.abs(d.x-b)<e&&(d.x=b,f=!0);a=a.y;Math.abs(d.y-a)<e&&(d.y=a,g=!0)}};k.call(this,this.state.getVisibleTerminalState(!0));
1842k.call(this,this.state.getVisibleTerminalState(!1));k=this.state.absolutePoints;if(null!=k)for(var m=0;m<k.length;m++)(0<m||!this.state.isFloatingTerminalPoint(!0))&&(m<k.length-1||!this.state.isFloatingTerminalPoint(!1))&&l.call(this,this.state.absolutePoints[m])}this.graph.isGridEnabledEvent(a.getEvent())&&(a=b.translate,f||(d.x=(this.graph.snap(d.x/c-a.x)+a.x)*c),g||(d.y=(this.graph.snap(d.y/c-a.y)+a.y)*c));return d};
1843mxEdgeHandler.prototype.getPreviewTerminalState=function(a){this.constraintHandler.update(a,this.isSource,!0,a.isSource(this.marker.highlight.shape)?null:this.currentPoint);if(null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentConstraint)return null!=this.marker.highlight&&null!=this.marker.highlight.state&&this.marker.highlight.state.cell==this.constraintHandler.currentFocus.cell?"transparent"!=this.marker.highlight.shape.stroke&&(this.marker.highlight.shape.stroke="transparent",
1844this.marker.highlight.repaint()):this.marker.markCell(this.constraintHandler.currentFocus.cell,"transparent"),a=this.graph.getModel(),a=this.graph.view.getTerminalPort(this.state,this.graph.view.getState(a.getTerminal(this.state.cell,!this.isSource)),!this.isSource),a=null!=a?a.cell:null,this.error=this.validateConnection(this.isSource?this.constraintHandler.currentFocus.cell:a,this.isSource?a:this.constraintHandler.currentFocus.cell),a=null,null==this.error&&(a=this.constraintHandler.currentFocus),
1845(null!=this.error||null!=a&&!this.isCellEnabled(a.cell))&&this.constraintHandler.reset(),a;if(this.graph.isIgnoreTerminalEvent(a.getEvent()))return this.marker.reset(),null;this.marker.process(a);a=this.marker.getValidState();null==a||this.isCellEnabled(a.cell)||(this.constraintHandler.reset(),this.marker.reset());return this.marker.getValidState()};
1846mxEdgeHandler.prototype.getPreviewPoints=function(a,b){var c=this.graph.getCellGeometry(this.state.cell),c=null!=c.points?c.points.slice():null,d=new mxPoint(a.x,a.y),e=null;if(this.isSource||this.isTarget)this.graph.resetEdgesOnConnect&&(c=null);else if(this.convertPoint(d,!1),null==c)c=[d];else{this.index<=mxEvent.VIRTUAL_HANDLE&&c.splice(mxEvent.VIRTUAL_HANDLE-this.index,0,d);if(!this.isSource&&!this.isTarget){for(var f=0;f<this.bends.length;f++)if(f!=this.index){var g=this.bends[f];null!=g&&mxUtils.contains(g.bounds,
1847a.x,a.y)&&(this.index<=mxEvent.VIRTUAL_HANDLE?c.splice(mxEvent.VIRTUAL_HANDLE-this.index,1):c.splice(this.index-1,1),e=c)}if(null==e&&this.straightRemoveEnabled&&(null==b||!mxEvent.isAltDown(b.getEvent()))){f=this.graph.tolerance*this.graph.tolerance;g=this.state.absolutePoints.slice();g[this.index]=a;var k=this.state.getVisibleTerminalState(!0);if(null!=k){var l=this.graph.getConnectionConstraint(this.state,k,!0);if(null==l||null==this.graph.getConnectionPoint(k,l))g[0]=new mxPoint(k.view.getRoutingCenterX(k),
1848k.view.getRoutingCenterY(k))}k=this.state.getVisibleTerminalState(!1);null!=k&&(l=this.graph.getConnectionConstraint(this.state,k,!1),null==l||null==this.graph.getConnectionPoint(k,l))&&(g[g.length-1]=new mxPoint(k.view.getRoutingCenterX(k),k.view.getRoutingCenterY(k)));l=this.index;0<l&&l<g.length-1&&mxUtils.ptSegDistSq(g[l-1].x,g[l-1].y,g[l+1].x,g[l+1].y,a.x,a.y)<f&&(c.splice(l-1,1),e=c)}}null==e&&this.index>mxEvent.VIRTUAL_HANDLE&&(c[this.index-1]=d)}return null!=e?e:c};
1849mxEdgeHandler.prototype.isOutlineConnectEvent=function(a){var b=mxUtils.getOffset(this.graph.container),c=a.getEvent(),d=mxEvent.getClientX(c),c=mxEvent.getClientY(c),e=document.documentElement,f=this.currentPoint.x-this.graph.container.scrollLeft+b.x-((window.pageXOffset||e.scrollLeft)-(e.clientLeft||0)),b=this.currentPoint.y-this.graph.container.scrollTop+b.y-((window.pageYOffset||e.scrollTop)-(e.clientTop||0));return this.outlineConnect&&(mxEvent.isShiftDown(a.getEvent())||a.isSource(this.marker.highlight.shape)||
1850mxEvent.isAltDown(a.getEvent())&&null!=a.getState()||this.marker.highlight.isHighlightAt(d,c)||(f!=d||b!=c)&&null==a.getState()&&this.marker.highlight.isHighlightAt(f,b))};
1851mxEdgeHandler.prototype.updatePreviewState=function(a,b,c,d,e){var f=this.isSource?c:this.state.getVisibleTerminalState(!0),g=this.isTarget?c:this.state.getVisibleTerminalState(!1),k=this.graph.getConnectionConstraint(a,f,!0),l=this.graph.getConnectionConstraint(a,g,!1),m=this.constraintHandler.currentConstraint;null==m&&e&&(null!=c?(d.isSource(this.marker.highlight.shape)&&(b=new mxPoint(d.getGraphX(),d.getGraphY())),m=this.graph.getOutlineConstraint(b,c,d),this.constraintHandler.setFocus(d,c,this.isSource),
1852this.constraintHandler.currentConstraint=m,this.constraintHandler.currentPoint=b):m=new mxConnectionConstraint);if(this.outlineConnect&&null!=this.marker.highlight&&null!=this.marker.highlight.shape){var n=this.graph.view.scale;null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(this.marker.highlight.shape.stroke=e?mxConstants.OUTLINE_HIGHLIGHT_COLOR:"transparent",this.marker.highlight.shape.strokewidth=mxConstants.OUTLINE_HIGHLIGHT_STROKEWIDTH/n/n,this.marker.highlight.repaint()):
1853this.marker.hasValidState()&&(this.marker.highlight.shape.stroke=this.graph.isCellConnectable(d.getCell())&&this.marker.getValidState()!=d.getState()?"transparent":mxConstants.DEFAULT_VALID_COLOR,this.marker.highlight.shape.strokewidth=mxConstants.HIGHLIGHT_STROKEWIDTH/n/n,this.marker.highlight.repaint())}this.isSource?k=m:this.isTarget&&(l=m);if(this.isSource||this.isTarget)null!=m&&null!=m.point?(a.style[this.isSource?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X]=m.point.x,a.style[this.isSource?
1854mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y]=m.point.y):(delete a.style[this.isSource?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X],delete a.style[this.isSource?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y]);a.setVisibleTerminalState(f,!0);a.setVisibleTerminalState(g,!1);this.isSource&&null==f||a.view.updateFixedTerminalPoint(a,f,!0,k);this.isTarget&&null==g||a.view.updateFixedTerminalPoint(a,g,!1,l);(this.isSource||this.isTarget)&&null==c&&(a.setAbsoluteTerminalPoint(b,this.isSource),
1855null==this.marker.getMarkedState()&&(this.error=this.graph.allowDanglingEdges?null:""));a.view.updatePoints(a,this.points,f,g);a.view.updateFloatingTerminalPoints(a,f,g)};
1856mxEdgeHandler.prototype.mouseMove=function(a,b){if(null!=this.index&&null!=this.marker){this.currentPoint=this.getPointForEvent(b);this.error=null;null!=this.snapPoint&&mxEvent.isShiftDown(b.getEvent())&&!this.graph.isIgnoreTerminalEvent(b.getEvent())&&null==this.constraintHandler.currentFocus&&this.constraintHandler.currentFocus!=this.state&&(Math.abs(this.snapPoint.x-this.currentPoint.x)<Math.abs(this.snapPoint.y-this.currentPoint.y)?this.currentPoint.x=this.snapPoint.x:this.currentPoint.y=this.snapPoint.y);
1857if(this.index<=mxEvent.CUSTOM_HANDLE&&this.index>mxEvent.VIRTUAL_HANDLE)null!=this.customHandles&&(this.customHandles[mxEvent.CUSTOM_HANDLE-this.index].processEvent(b),this.customHandles[mxEvent.CUSTOM_HANDLE-this.index].positionChanged(),null!=this.shape&&null!=this.shape.node&&(this.shape.node.style.display="none"));else if(this.isLabel)this.label.x=this.currentPoint.x,this.label.y=this.currentPoint.y;else{this.points=this.getPreviewPoints(this.currentPoint,b);var c=this.isSource||this.isTarget?
1858this.getPreviewTerminalState(b):null;if(null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint)this.currentPoint=this.constraintHandler.currentPoint.clone();else if(this.outlineConnect){var d=this.isSource||this.isTarget?this.isOutlineConnectEvent(b):!1;d?c=this.marker.highlight.state:null!=c&&c!=b.getState()&&this.graph.isCellConnectable(b.getCell())&&null!=this.marker.highlight.shape&&(this.marker.highlight.shape.stroke=
1859"transparent",this.marker.highlight.repaint(),c=null)}null==c||this.isCellEnabled(c.cell)||(c=null,this.marker.reset());var e=this.clonePreviewState(this.currentPoint,null!=c?c.cell:null);this.updatePreviewState(e,this.currentPoint,c,b,d);this.setPreviewColor(null==this.error?this.marker.validColor:this.marker.invalidColor);this.abspoints=e.absolutePoints;this.active=!0;this.updateHint(b,this.currentPoint)}this.drawPreview();mxEvent.consume(b.getEvent());b.consume()}else mxClient.IS_IE&&null!=this.getHandleForEvent(b)&&
1860b.consume(!1)};
1861mxEdgeHandler.prototype.mouseUp=function(a,b){if(null!=this.index&&null!=this.marker){null!=this.shape&&null!=this.shape.node&&(this.shape.node.style.display="");var c=this.state.cell,d=this.index;this.index=null;if(b.getX()!=this.startX||b.getY()!=this.startY){var e=!this.graph.isIgnoreTerminalEvent(b.getEvent())&&this.graph.isCloneEvent(b.getEvent())&&this.cloneEnabled&&this.graph.isCellsCloneable();if(null!=this.error)0<this.error.length&&this.graph.validationAlert(this.error);else if(d<=mxEvent.CUSTOM_HANDLE&&
1862d>mxEvent.VIRTUAL_HANDLE){if(null!=this.customHandles){var f=this.graph.getModel();f.beginUpdate();try{this.customHandles[mxEvent.CUSTOM_HANDLE-d].execute(b),null!=this.shape&&null!=this.shape.node&&(this.shape.apply(this.state),this.shape.redraw())}finally{f.endUpdate()}}}else if(this.isLabel)this.moveLabel(this.state,this.label.x,this.label.y);else if(this.isSource||this.isTarget)if(d=null,null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(d=this.constraintHandler.currentFocus.cell),
1863null==d&&this.marker.hasValidState()&&null!=this.marker.highlight&&null!=this.marker.highlight.shape&&"transparent"!=this.marker.highlight.shape.stroke&&"white"!=this.marker.highlight.shape.stroke&&(d=this.marker.validState.cell),null!=d){var f=this.graph.getModel(),g=f.getParent(c);f.beginUpdate();try{if(e){var k=f.getGeometry(c),e=this.graph.cloneCell(c);f.add(g,e,f.getChildCount(g));null!=k&&(k=k.clone(),f.setGeometry(e,k));var l=f.getTerminal(c,!this.isSource);this.graph.connectCell(e,l,!this.isSource);
1864c=e}c=this.connect(c,d,this.isSource,e,b)}finally{f.endUpdate()}}else this.graph.isAllowDanglingEdges()&&(f=this.abspoints[this.isSource?0:this.abspoints.length-1],f.x=this.roundLength(f.x/this.graph.view.scale-this.graph.view.translate.x),f.y=this.roundLength(f.y/this.graph.view.scale-this.graph.view.translate.y),k=this.graph.getView().getState(this.graph.getModel().getParent(c)),null!=k&&(f.x-=k.origin.x,f.y-=k.origin.y),f.x-=this.graph.panDx/this.graph.view.scale,f.y-=this.graph.panDy/this.graph.view.scale,
1865c=this.changeTerminalPoint(c,f,this.isSource,e));else this.active?c=this.changePoints(c,this.points,e):(this.graph.getView().invalidate(this.state.cell),this.graph.getView().validate(this.state.cell))}else this.graph.isToggleEvent(b.getEvent())&&this.graph.selectCellForEvent(this.state.cell,b.getEvent());null!=this.marker&&(this.reset(),c!=this.state.cell&&this.graph.setSelectionCell(c));b.consume()}};
1866mxEdgeHandler.prototype.reset=function(){this.active&&this.refresh();this.snapPoint=this.points=this.label=this.index=this.error=null;this.active=this.isTarget=this.isSource=this.isLabel=!1;if(this.livePreview&&null!=this.sizers)for(var a=0;a<this.sizers.length;a++)null!=this.sizers[a]&&(this.sizers[a].node.style.display="");null!=this.marker&&this.marker.reset();null!=this.constraintHandler&&this.constraintHandler.reset();if(null!=this.customHandles)for(a=0;a<this.customHandles.length;a++)this.customHandles[a].reset();
1867this.setPreviewColor(mxConstants.EDGE_SELECTION_COLOR);this.removeHint();this.redraw()};mxEdgeHandler.prototype.setPreviewColor=function(a){null!=this.shape&&(this.shape.stroke=a)};
1868mxEdgeHandler.prototype.convertPoint=function(a,b){var c=this.graph.getView().getScale(),d=this.graph.getView().getTranslate();b&&(a.x=this.graph.snap(a.x),a.y=this.graph.snap(a.y));a.x=Math.round(a.x/c-d.x);a.y=Math.round(a.y/c-d.y);c=this.graph.getView().getState(this.graph.getModel().getParent(this.state.cell));null!=c&&(a.x-=c.origin.x,a.y-=c.origin.y);return a};
1869mxEdgeHandler.prototype.moveLabel=function(a,b,c){var d=this.graph.getModel(),e=d.getGeometry(a.cell);if(null!=e){var f=this.graph.getView().scale,e=e.clone();if(e.relative){var g=this.graph.getView().getRelativePoint(a,b,c);e.x=Math.round(1E4*g.x)/1E4;e.y=Math.round(g.y);e.offset=new mxPoint(0,0);g=this.graph.view.getPoint(a,e);e.offset=new mxPoint(Math.round((b-g.x)/f),Math.round((c-g.y)/f))}else{var k=a.absolutePoints,g=k[0],k=k[k.length-1];null!=g&&null!=k&&(e.offset=new mxPoint(Math.round((b-
1870(g.x+(k.x-g.x)/2))/f),Math.round((c-(g.y+(k.y-g.y)/2))/f)),e.x=0,e.y=0)}d.setGeometry(a.cell,e)}};mxEdgeHandler.prototype.connect=function(a,b,c,d,e){d=this.graph.getModel();d.getParent(a);d.beginUpdate();try{var f=this.constraintHandler.currentConstraint;null==f&&(f=new mxConnectionConstraint);this.graph.connectCell(a,b,c,f)}finally{d.endUpdate()}return a};
1871mxEdgeHandler.prototype.changeTerminalPoint=function(a,b,c,d){var e=this.graph.getModel();e.beginUpdate();try{if(d){var f=e.getParent(a),g=e.getTerminal(a,!c);a=this.graph.cloneCell(a);e.add(f,a,e.getChildCount(f));e.setTerminal(a,g,!c)}var k=e.getGeometry(a);null!=k&&(k=k.clone(),k.setTerminalPoint(b,c),e.setGeometry(a,k),this.graph.connectCell(a,null,c,new mxConnectionConstraint))}finally{e.endUpdate()}return a};
1872mxEdgeHandler.prototype.changePoints=function(a,b,c){var d=this.graph.getModel();d.beginUpdate();try{if(c){var e=d.getParent(a),f=d.getTerminal(a,!0),g=d.getTerminal(a,!1);a=this.graph.cloneCell(a);d.add(e,a,d.getChildCount(e));d.setTerminal(a,f,!0);d.setTerminal(a,g,!1)}var k=d.getGeometry(a);null!=k&&(k=k.clone(),k.points=b,d.setGeometry(a,k))}finally{d.endUpdate()}return a};
1873mxEdgeHandler.prototype.addPoint=function(a,b){var c=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),d=this.graph.isGridEnabledEvent(b);this.convertPoint(c,d);this.addPointAt(a,c.x,c.y);mxEvent.consume(b)};
1874mxEdgeHandler.prototype.addPointAt=function(a,b,c){var d=this.graph.getCellGeometry(a.cell);b=new mxPoint(b,c);if(null!=d){var d=d.clone(),e=this.graph.view.translate;c=this.graph.view.scale;var e=new mxPoint(e.x*c,e.y*c),f=this.graph.model.getParent(this.state.cell);this.graph.model.isVertex(f)&&(e=this.graph.view.getState(f),e=new mxPoint(e.x,e.y));c=mxUtils.findNearestSegment(a,b.x*c+e.x,b.y*c+e.y);null==d.points?d.points=[b]:d.points.splice(c,0,b);this.graph.getModel().setGeometry(a.cell,d);this.refresh();
1875this.redraw()}};mxEdgeHandler.prototype.removePoint=function(a,b){if(0<b&&b<this.abspoints.length-1){var c=this.graph.getCellGeometry(this.state.cell);null!=c&&null!=c.points&&(c=c.clone(),c.points.splice(b-1,1),this.graph.getModel().setGeometry(a.cell,c),this.refresh(),this.redraw())}};
1876mxEdgeHandler.prototype.getHandleFillColor=function(a){a=0==a;var b=this.state.cell,c=this.graph.getModel().getTerminal(b,a),d=mxConstants.HANDLE_FILLCOLOR;null!=c&&!this.graph.isCellDisconnectable(b,c,a)||null==c&&!this.graph.isTerminalPointMovable(b,a)?d=mxConstants.LOCKED_HANDLE_FILLCOLOR:null!=c&&this.graph.isCellDisconnectable(b,c,a)&&(d=mxConstants.CONNECT_HANDLE_FILLCOLOR);return d};
1877mxEdgeHandler.prototype.redraw=function(a){if(null!=this.state){this.abspoints=this.state.absolutePoints.slice();var b=this.graph.getModel().getGeometry(this.state.cell);if(null!=b&&(b=b.points,null!=this.bends&&0<this.bends.length&&null!=b)){null==this.points&&(this.points=[]);for(var c=1;c<this.bends.length-1;c++)null!=this.bends[c]&&null!=this.abspoints[c]&&(this.points[c-1]=b[c-1])}this.drawPreview();a||this.redrawHandles()}};
1878mxEdgeHandler.prototype.redrawHandles=function(){var a=this.state.cell,b=this.labelShape.bounds;this.label=new mxPoint(this.state.absoluteOffset.x,this.state.absoluteOffset.y);this.labelShape.bounds=new mxRectangle(Math.round(this.label.x-b.width/2),Math.round(this.label.y-b.height/2),b.width,b.height);b=this.graph.getLabel(a);this.labelShape.visible=null!=b&&0<b.length&&this.graph.isCellEditable(this.state.cell)&&this.graph.isLabelMovable(a);if(null!=this.bends&&0<this.bends.length){var c=this.abspoints.length-
18791,a=this.abspoints[0],d=a.x,e=a.y,b=this.bends[0].bounds;this.bends[0].bounds=new mxRectangle(Math.floor(d-b.width/2),Math.floor(e-b.height/2),b.width,b.height);this.bends[0].fill=this.getHandleFillColor(0);this.bends[0].redraw();this.manageLabelHandle&&this.checkLabelHandle(this.bends[0].bounds);var c=this.abspoints[c],d=c.x,e=c.y,f=this.bends.length-1,b=this.bends[f].bounds;this.bends[f].bounds=new mxRectangle(Math.floor(d-b.width/2),Math.floor(e-b.height/2),b.width,b.height);this.bends[f].fill=
1880this.getHandleFillColor(f);this.bends[f].redraw();this.manageLabelHandle&&this.checkLabelHandle(this.bends[f].bounds);this.redrawInnerBends(a,c)}if(null!=this.abspoints&&null!=this.virtualBends&&0<this.virtualBends.length)for(c=this.abspoints[0],a=0;a<this.virtualBends.length;a++)null!=this.virtualBends[a]&&null!=this.abspoints[a+1]&&(d=this.abspoints[a+1],b=this.virtualBends[a],b.bounds=new mxRectangle(Math.floor(c.x+(d.x-c.x)/2-b.bounds.width/2),Math.floor(c.y+(d.y-c.y)/2-b.bounds.height/2),b.bounds.width,
1881b.bounds.height),b.redraw(),mxUtils.setOpacity(b.node,this.virtualBendOpacity),c=d,this.manageLabelHandle&&this.checkLabelHandle(b.bounds));null!=this.labelShape&&this.labelShape.redraw();if(null!=this.customHandles)for(a=0;a<this.customHandles.length;a++)b=this.customHandles[a].shape.node.style.display,this.customHandles[a].redraw(),this.customHandles[a].shape.node.style.display=b,this.customHandles[a].shape.node.style.visibility=this.isCustomHandleVisible(this.customHandles[a])?"":"hidden"};
1882mxEdgeHandler.prototype.isCustomHandleVisible=function(a){return!this.graph.isEditing()&&1==this.state.view.graph.getSelectionCount()};
1883mxEdgeHandler.prototype.setHandlesVisible=function(a){if(null!=this.bends)for(var b=0;b<this.bends.length;b++)this.bends[b].node.style.display=a?"":"none";if(null!=this.virtualBends)for(b=0;b<this.virtualBends.length;b++)this.virtualBends[b].node.style.display=a?"":"none";null!=this.labelShape&&(this.labelShape.node.style.display=a?"":"none");if(null!=this.customHandles)for(b=0;b<this.customHandles.length;b++)this.customHandles[b].setVisible(a)};
1884mxEdgeHandler.prototype.redrawInnerBends=function(a,b){for(var c=1;c<this.bends.length-1;c++)if(null!=this.bends[c])if(null!=this.abspoints[c]){var d=this.abspoints[c].x,e=this.abspoints[c].y,f=this.bends[c].bounds;this.bends[c].node.style.visibility="visible";this.bends[c].bounds=new mxRectangle(Math.round(d-f.width/2),Math.round(e-f.height/2),f.width,f.height);this.manageLabelHandle?this.checkLabelHandle(this.bends[c].bounds):null==this.handleImage&&this.labelShape.visible&&mxUtils.intersects(this.bends[c].bounds,
1885this.labelShape.bounds)&&(w=mxConstants.HANDLE_SIZE+3,h=mxConstants.HANDLE_SIZE+3,this.bends[c].bounds=new mxRectangle(Math.round(d-w/2),Math.round(e-h/2),w,h));this.bends[c].redraw()}else this.bends[c].destroy(),this.bends[c]=null};mxEdgeHandler.prototype.checkLabelHandle=function(a){if(null!=this.labelShape){var b=this.labelShape.bounds;mxUtils.intersects(a,b)&&(a.getCenterY()<b.getCenterY()?b.y=a.y+a.height:b.y=a.y-b.height)}};
1886mxEdgeHandler.prototype.drawPreview=function(){try{if(this.isLabel){var a=this.labelShape.bounds,b=new mxRectangle(Math.round(this.label.x-a.width/2),Math.round(this.label.y-a.height/2),a.width,a.height);this.labelShape.bounds.equals(b)||(this.labelShape.bounds=b,this.labelShape.redraw())}null==this.shape||mxUtils.equalPoints(this.shape.points,this.abspoints)||(this.shape.apply(this.state),this.shape.points=this.abspoints.slice(),this.shape.scale=this.state.view.scale,this.shape.isDashed=this.isSelectionDashed(),
1887this.shape.stroke=this.getSelectionColor(),this.shape.strokewidth=this.getSelectionStrokeWidth()/this.shape.scale/this.shape.scale,this.shape.isShadow=!1,this.shape.redraw());this.updateParentHighlight()}catch(c){}};
1888mxEdgeHandler.prototype.refresh=function(){null!=this.state&&(this.abspoints=this.getSelectionPoints(this.state),this.points=[],null!=this.bends&&(this.destroyBends(this.bends),this.bends=this.createBends()),null!=this.virtualBends&&(this.destroyBends(this.virtualBends),this.virtualBends=this.createVirtualBends()),null!=this.customHandles&&(this.destroyBends(this.customHandles),this.customHandles=this.createCustomHandles()),null!=this.labelShape&&null!=this.labelShape.node&&null!=this.labelShape.node.parentNode&&
1889this.labelShape.node.parentNode.appendChild(this.labelShape.node))};mxEdgeHandler.prototype.isDestroyed=function(){return null==this.shape};mxEdgeHandler.prototype.destroyBends=function(a){if(null!=a)for(var b=0;b<a.length;b++)null!=a[b]&&a[b].destroy()};
1890mxEdgeHandler.prototype.destroy=function(){null!=this.escapeHandler&&(this.state.view.graph.removeListener(this.escapeHandler),this.escapeHandler=null);null!=this.marker&&(this.marker.destroy(),this.marker=null);null!=this.shape&&(this.shape.destroy(),this.shape=null);if(null!=this.parentHighlight){var a=this.graph.model.getParent(this.state.cell),a=this.graph.view.getState(a);null!=a&&a.parentHighlight==this.parentHighlight&&(a.parentHighlight=null);this.parentHighlight.destroy();this.parentHighlight=
1891null}null!=this.labelShape&&(this.labelShape.destroy(),this.labelShape=null);null!=this.constraintHandler&&(this.constraintHandler.destroy(),this.constraintHandler=null);this.destroyBends(this.virtualBends);this.virtualBends=null;this.destroyBends(this.customHandles);this.customHandles=null;this.destroyBends(this.bends);this.bends=null;this.removeHint()};function mxElbowEdgeHandler(a){mxEdgeHandler.call(this,a)}mxUtils.extend(mxElbowEdgeHandler,mxEdgeHandler);
1892mxElbowEdgeHandler.prototype.flipEnabled=!0;mxElbowEdgeHandler.prototype.doubleClickOrientationResource="none"!=mxClient.language?"doubleClickOrientation":"";
1893mxElbowEdgeHandler.prototype.createBends=function(){var a=[],b=this.createHandleShape(0);this.initBend(b);b.setCursor(mxConstants.CURSOR_TERMINAL_HANDLE);a.push(b);a.push(this.createVirtualBend(mxUtils.bind(this,function(a){!mxEvent.isConsumed(a)&&this.flipEnabled&&(this.graph.flipEdge(this.state.cell,a),mxEvent.consume(a))})));this.points.push(new mxPoint(0,0));b=this.createHandleShape(2);this.initBend(b);b.setCursor(mxConstants.CURSOR_TERMINAL_HANDLE);a.push(b);return a};
1894mxElbowEdgeHandler.prototype.createVirtualBend=function(a){var b=this.createHandleShape();this.initBend(b,a);b.setCursor(this.getCursorForBend());this.graph.isCellBendable(this.state.cell)||(b.node.style.display="none");return b};
1895mxElbowEdgeHandler.prototype.getCursorForBend=function(){return this.state.style[mxConstants.STYLE_EDGE]==mxEdgeStyle.TopToBottom||this.state.style[mxConstants.STYLE_EDGE]==mxConstants.EDGESTYLE_TOPTOBOTTOM||(this.state.style[mxConstants.STYLE_EDGE]==mxEdgeStyle.ElbowConnector||this.state.style[mxConstants.STYLE_EDGE]==mxConstants.EDGESTYLE_ELBOW)&&this.state.style[mxConstants.STYLE_ELBOW]==mxConstants.ELBOW_VERTICAL?"row-resize":"col-resize"};
1896mxElbowEdgeHandler.prototype.getTooltipForNode=function(a){var b=null;null==this.bends||null==this.bends[1]||a!=this.bends[1].node&&a.parentNode!=this.bends[1].node||(b=this.doubleClickOrientationResource,b=mxResources.get(b)||b);return b};
1897mxElbowEdgeHandler.prototype.convertPoint=function(a,b){var c=this.graph.getView().getScale(),d=this.graph.getView().getTranslate(),e=this.state.origin;b&&(a.x=this.graph.snap(a.x),a.y=this.graph.snap(a.y));a.x=Math.round(a.x/c-d.x-e.x);a.y=Math.round(a.y/c-d.y-e.y);return a};
1898mxElbowEdgeHandler.prototype.redrawInnerBends=function(a,b){var c=this.graph.getModel().getGeometry(this.state.cell),d=this.state.absolutePoints,e=null;1<d.length?(a=d[1],b=d[d.length-2]):null!=c.points&&0<c.points.length&&(e=d[0]);e=null==e?new mxPoint(a.x+(b.x-a.x)/2,a.y+(b.y-a.y)/2):new mxPoint(this.graph.getView().scale*(e.x+this.graph.getView().translate.x+this.state.origin.x),this.graph.getView().scale*(e.y+this.graph.getView().translate.y+this.state.origin.y));d=this.bends[1].bounds;c=d.width;
1899d=d.height;c=new mxRectangle(Math.round(e.x-c/2),Math.round(e.y-d/2),c,d);this.manageLabelHandle?this.checkLabelHandle(c):null==this.handleImage&&this.labelShape.visible&&mxUtils.intersects(c,this.labelShape.bounds)&&(c=mxConstants.HANDLE_SIZE+3,d=mxConstants.HANDLE_SIZE+3,c=new mxRectangle(Math.floor(e.x-c/2),Math.floor(e.y-d/2),c,d));this.bends[1].bounds=c;this.bends[1].redraw();this.manageLabelHandle&&this.checkLabelHandle(this.bends[1].bounds)};
1900function mxEdgeSegmentHandler(a){mxEdgeHandler.call(this,a)}mxUtils.extend(mxEdgeSegmentHandler,mxElbowEdgeHandler);
1901mxEdgeSegmentHandler.prototype.getCurrentPoints=function(){var a=this.state.absolutePoints;if(null!=a){var b=Math.max(1,this.graph.view.scale);if(2==a.length||3==a.length&&(Math.abs(a[0].x-a[1].x)<b&&Math.abs(a[1].x-a[2].x)<b||Math.abs(a[0].y-a[1].y)<b&&Math.abs(a[1].y-a[2].y)<b))var b=a[0].x+(a[a.length-1].x-a[0].x)/2,c=a[0].y+(a[a.length-1].y-a[0].y)/2,a=[a[0],new mxPoint(b,c),new mxPoint(b,c),a[a.length-1]]}return a};
1902mxEdgeSegmentHandler.prototype.getPreviewPoints=function(a){if(this.isSource||this.isTarget)return mxElbowEdgeHandler.prototype.getPreviewPoints.apply(this,arguments);var b=this.getCurrentPoints(),c=this.convertPoint(b[0].clone(),!1);a=this.convertPoint(a.clone(),!1);for(var d=[],e=1;e<b.length;e++){var f=this.convertPoint(b[e].clone(),!1);e==this.index&&(0==Math.round(c.x-f.x)&&(c.x=a.x,f.x=a.x),0==Math.round(c.y-f.y)&&(c.y=a.y,f.y=a.y));e<b.length-1&&d.push(f);c=f}if(1==d.length){var b=this.state.getVisibleTerminalState(!0),
1903c=this.state.getVisibleTerminalState(!1),f=this.state.view.getScale(),g=this.state.view.getTranslate(),e=d[0].x*f+g.x,f=d[0].y*f+g.y;if(null!=b&&mxUtils.contains(b,e,f)||null!=c&&mxUtils.contains(c,e,f))d=[a,a]}return d};
1904mxEdgeSegmentHandler.prototype.updatePreviewState=function(a,b,c,d){mxEdgeHandler.prototype.updatePreviewState.apply(this,arguments);if(!this.isSource&&!this.isTarget){b=this.convertPoint(b.clone(),!1);for(var e=a.absolutePoints,f=e[0],g=e[1],k=[],l=2;l<e.length;l++){var m=e[l];0==Math.round(f.x-g.x)&&0==Math.round(g.x-m.x)||0==Math.round(f.y-g.y)&&0==Math.round(g.y-m.y)||k.push(this.convertPoint(g.clone(),!1));f=g;g=m}f=this.state.getVisibleTerminalState(!0);g=this.state.getVisibleTerminalState(!1);
1905l=this.state.absolutePoints;if(0==k.length&&(0==Math.round(e[0].x-e[e.length-1].x)||0==Math.round(e[0].y-e[e.length-1].y)))k=[b,b];else if(5==e.length&&2==k.length&&null!=f&&null!=g&&null!=l&&0==Math.round(l[0].x-l[l.length-1].x)){var k=this.graph.getView(),l=k.getScale(),m=k.getTranslate(),e=k.getRoutingCenterY(f)/l-m.y,n=this.graph.getConnectionConstraint(a,f,!0);null!=n&&(n=this.graph.getConnectionPoint(f,n),null!=n&&(this.convertPoint(n,!1),e=n.y));k=k.getRoutingCenterY(g)/l-m.y;if(l=this.graph.getConnectionConstraint(a,
1906g,!1))n=this.graph.getConnectionPoint(g,l),null!=n&&(this.convertPoint(n,!1),k=n.y);k=[new mxPoint(b.x,e),new mxPoint(b.x,k)]}this.points=k;a.view.updateFixedTerminalPoints(a,f,g);a.view.updatePoints(a,this.points,f,g);a.view.updateFloatingTerminalPoints(a,f,g)}};
1907mxEdgeSegmentHandler.prototype.connect=function(a,b,c,d,e){var f=this.graph.getModel(),g=f.getGeometry(a),k=null;if(null!=g&&null!=g.points&&0<g.points.length)for(var l=this.abspoints,m=l[0],n=l[1],k=[],p=2;p<l.length;p++){var q=l[p];0==Math.round(m.x-n.x)&&0==Math.round(n.x-q.x)||0==Math.round(m.y-n.y)&&0==Math.round(n.y-q.y)||k.push(this.convertPoint(n.clone(),!1));m=n;n=q}f.beginUpdate();try{null!=k&&(g=f.getGeometry(a),null!=g&&(g=g.clone(),g.points=k,f.setGeometry(a,g))),a=mxEdgeHandler.prototype.connect.apply(this,
1908arguments)}finally{f.endUpdate()}return a};mxEdgeSegmentHandler.prototype.getTooltipForNode=function(a){return null};mxEdgeSegmentHandler.prototype.start=function(a,b,c){mxEdgeHandler.prototype.start.apply(this,arguments);null==this.bends||null==this.bends[c]||this.isSource||this.isTarget||mxUtils.setOpacity(this.bends[c].node,100)};
1909mxEdgeSegmentHandler.prototype.createBends=function(){var a=[],b=this.createHandleShape(0);this.initBend(b);b.setCursor(mxConstants.CURSOR_TERMINAL_HANDLE);a.push(b);var c=this.getCurrentPoints();if(this.graph.isCellBendable(this.state.cell)){null==this.points&&(this.points=[]);for(var d=0;d<c.length-1;d++){b=this.createVirtualBend();a.push(b);var e=0==Math.round(c[d].x-c[d+1].x);0==Math.round(c[d].y-c[d+1].y)&&d<c.length-2&&(e=0==Math.round(c[d].x-c[d+2].x));b.setCursor(e?"col-resize":"row-resize");
1910this.points.push(new mxPoint(0,0))}}b=this.createHandleShape(c.length);this.initBend(b);b.setCursor(mxConstants.CURSOR_TERMINAL_HANDLE);a.push(b);return a};mxEdgeSegmentHandler.prototype.redraw=function(){this.refresh();mxEdgeHandler.prototype.redraw.apply(this,arguments)};
1911mxEdgeSegmentHandler.prototype.redrawInnerBends=function(a,b){if(this.graph.isCellBendable(this.state.cell)){var c=this.getCurrentPoints();if(null!=c&&1<c.length){var d=!1;if(4==c.length&&0==Math.round(c[1].x-c[2].x)&&0==Math.round(c[1].y-c[2].y))if(d=!0,0==Math.round(c[0].y-c[c.length-1].y)){var e=c[0].x+(c[c.length-1].x-c[0].x)/2;c[1]=new mxPoint(e,c[1].y);c[2]=new mxPoint(e,c[2].y)}else e=c[0].y+(c[c.length-1].y-c[0].y)/2,c[1]=new mxPoint(c[1].x,e),c[2]=new mxPoint(c[2].x,e);for(e=0;e<c.length-
19121;e++)if(null!=this.bends[e+1]){a=c[e];b=c[e+1];var f=new mxPoint(a.x+(b.x-a.x)/2,a.y+(b.y-a.y)/2),g=this.bends[e+1].bounds;this.bends[e+1].bounds=new mxRectangle(Math.floor(f.x-g.width/2),Math.floor(f.y-g.height/2),g.width,g.height);this.bends[e+1].redraw();this.manageLabelHandle&&this.checkLabelHandle(this.bends[e+1].bounds)}d&&(mxUtils.setOpacity(this.bends[1].node,this.virtualBendOpacity),mxUtils.setOpacity(this.bends[3].node,this.virtualBendOpacity))}}};
1913function mxKeyHandler(a,b){null!=a&&(this.graph=a,this.target=b||document.documentElement,this.normalKeys=[],this.shiftKeys=[],this.controlKeys=[],this.controlShiftKeys=[],this.keydownHandler=mxUtils.bind(this,function(a){this.keyDown(a)}),mxEvent.addListener(this.target,"keydown",this.keydownHandler),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()})))}mxKeyHandler.prototype.graph=null;mxKeyHandler.prototype.target=null;
1914mxKeyHandler.prototype.normalKeys=null;mxKeyHandler.prototype.shiftKeys=null;mxKeyHandler.prototype.controlKeys=null;mxKeyHandler.prototype.controlShiftKeys=null;mxKeyHandler.prototype.enabled=!0;mxKeyHandler.prototype.isEnabled=function(){return this.enabled};mxKeyHandler.prototype.setEnabled=function(a){this.enabled=a};mxKeyHandler.prototype.bindKey=function(a,b){this.normalKeys[a]=b};mxKeyHandler.prototype.bindShiftKey=function(a,b){this.shiftKeys[a]=b};
1915mxKeyHandler.prototype.bindControlKey=function(a,b){this.controlKeys[a]=b};mxKeyHandler.prototype.bindControlShiftKey=function(a,b){this.controlShiftKeys[a]=b};mxKeyHandler.prototype.isControlDown=function(a){return mxEvent.isControlDown(a)};mxKeyHandler.prototype.getFunction=function(a){return null==a||mxEvent.isAltDown(a)?null:this.isControlDown(a)?mxEvent.isShiftDown(a)?this.controlShiftKeys[a.keyCode]:this.controlKeys[a.keyCode]:mxEvent.isShiftDown(a)?this.shiftKeys[a.keyCode]:this.normalKeys[a.keyCode]};
1916mxKeyHandler.prototype.isGraphEvent=function(a){var b=mxEvent.getSource(a);return b==this.target||b.parentNode==this.target||null!=this.graph.cellEditor&&this.graph.cellEditor.isEventSource(a)?!0:mxUtils.isAncestorNode(this.graph.container,b)};mxKeyHandler.prototype.keyDown=function(a){if(this.isEnabledForEvent(a))if(27==a.keyCode)this.escape(a);else if(!this.isEventIgnored(a)){var b=this.getFunction(a);null!=b&&(b(a),mxEvent.consume(a))}};
1917mxKeyHandler.prototype.isEnabledForEvent=function(a){return this.graph.isEnabled()&&!mxEvent.isConsumed(a)&&this.isGraphEvent(a)&&this.isEnabled()};mxKeyHandler.prototype.isEventIgnored=function(a){return this.graph.isEditing()};mxKeyHandler.prototype.escape=function(a){this.graph.isEscapeEnabled()&&this.graph.escape(a)};
1918mxKeyHandler.prototype.destroy=function(){null!=this.target&&null!=this.keydownHandler&&(mxEvent.removeListener(this.target,"keydown",this.keydownHandler),this.keydownHandler=null);this.target=null};function mxTooltipHandler(a,b){null!=a&&(this.graph=a,this.delay=b||500,this.graph.addMouseListener(this))}mxTooltipHandler.prototype.zIndex=10005;mxTooltipHandler.prototype.graph=null;mxTooltipHandler.prototype.delay=null;mxTooltipHandler.prototype.ignoreTouchEvents=!0;
1919mxTooltipHandler.prototype.hideOnHover=!1;mxTooltipHandler.prototype.destroyed=!1;mxTooltipHandler.prototype.enabled=!0;mxTooltipHandler.prototype.isEnabled=function(){return this.enabled};mxTooltipHandler.prototype.setEnabled=function(a){this.enabled=a};mxTooltipHandler.prototype.isHideOnHover=function(){return this.hideOnHover};mxTooltipHandler.prototype.setHideOnHover=function(a){this.hideOnHover=a};
1920mxTooltipHandler.prototype.init=function(){null!=document.body&&(this.div=document.createElement("div"),this.div.className="mxTooltip",this.div.style.visibility="hidden",document.body.appendChild(this.div),mxEvent.addGestureListeners(this.div,mxUtils.bind(this,function(a){"A"!=mxEvent.getSource(a).nodeName&&this.hideTooltip()})))};mxTooltipHandler.prototype.getStateForEvent=function(a){return a.getState()};mxTooltipHandler.prototype.mouseDown=function(a,b){this.reset(b,!1);this.hideTooltip()};
1921mxTooltipHandler.prototype.mouseMove=function(a,b){if(b.getX()!=this.lastX||b.getY()!=this.lastY){this.reset(b,!0);var c=this.getStateForEvent(b);(this.isHideOnHover()||c!=this.state||b.getSource()!=this.node&&(!this.stateSource||null!=c&&this.stateSource==(b.isSource(c.shape)||!b.isSource(c.text))))&&this.hideTooltip()}this.lastX=b.getX();this.lastY=b.getY()};mxTooltipHandler.prototype.mouseUp=function(a,b){this.reset(b,!0);this.hideTooltip()};
1922mxTooltipHandler.prototype.resetTimer=function(){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null)};
1923mxTooltipHandler.prototype.reset=function(a,b,c){if(!this.ignoreTouchEvents||mxEvent.isMouseEvent(a.getEvent()))if(this.resetTimer(),c=null!=c?c:this.getStateForEvent(a),b&&this.isEnabled()&&null!=c&&(null==this.div||"hidden"==this.div.style.visibility)){var d=a.getSource(),e=a.getX(),f=a.getY(),g=a.isSource(c.shape)||a.isSource(c.text);this.thread=window.setTimeout(mxUtils.bind(this,function(){if(!this.graph.isEditing()&&!this.graph.popupMenuHandler.isMenuShowing()&&!this.graph.isMouseDown){var a=
1924this.graph.getTooltip(c,d,e,f);this.show(a,e,f);this.state=c;this.node=d;this.stateSource=g}}),this.delay)}};mxTooltipHandler.prototype.hide=function(){this.resetTimer();this.hideTooltip()};mxTooltipHandler.prototype.hideTooltip=function(){null!=this.div&&(this.div.style.visibility="hidden",this.div.innerHTML="")};
1925mxTooltipHandler.prototype.show=function(a,b,c){if(!this.destroyed&&null!=a&&0<a.length){null==this.div&&this.init();var d=mxUtils.getScrollOrigin();this.div.style.zIndex=this.zIndex;this.div.style.left=b+d.x+"px";this.div.style.top=c+mxConstants.TOOLTIP_VERTICAL_OFFSET+d.y+"px";mxUtils.isNode(a)?(this.div.innerHTML="",this.div.appendChild(a)):this.div.innerHTML=a.replace(/\n/g,"<br>");this.div.style.visibility="";mxUtils.fit(this.div)}};
1926mxTooltipHandler.prototype.destroy=function(){this.destroyed||(this.graph.removeMouseListener(this),mxEvent.release(this.div),null!=this.div&&null!=this.div.parentNode&&this.div.parentNode.removeChild(this.div),this.destroyed=!0,this.div=null)};function mxCellTracker(a,b,c){mxCellMarker.call(this,a,b);this.graph.addMouseListener(this);null!=c&&(this.getCell=c);mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()}))}mxUtils.extend(mxCellTracker,mxCellMarker);
1927mxCellTracker.prototype.mouseDown=function(a,b){};mxCellTracker.prototype.mouseMove=function(a,b){this.isEnabled()&&this.process(b)};mxCellTracker.prototype.mouseUp=function(a,b){};mxCellTracker.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,this.graph.removeMouseListener(this),mxCellMarker.prototype.destroy.apply(this))};
1928function mxCellHighlight(a,b,c,d){null!=a&&(this.graph=a,this.highlightColor=null!=b?b:mxConstants.DEFAULT_VALID_COLOR,this.strokeWidth=null!=c?c:mxConstants.HIGHLIGHT_STROKEWIDTH,this.dashed=null!=d?d:!1,this.opacity=mxConstants.HIGHLIGHT_OPACITY,this.repaintHandler=mxUtils.bind(this,function(){if(null!=this.state){var a=this.graph.view.getState(this.state.cell);null==a?this.hide():(this.state=a,this.repaint())}}),this.graph.getView().addListener(mxEvent.SCALE,this.repaintHandler),this.graph.getView().addListener(mxEvent.TRANSLATE,
1929this.repaintHandler),this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.repaintHandler),this.graph.getModel().addListener(mxEvent.CHANGE,this.repaintHandler),this.resetHandler=mxUtils.bind(this,function(){this.hide()}),this.graph.getView().addListener(mxEvent.DOWN,this.resetHandler),this.graph.getView().addListener(mxEvent.UP,this.resetHandler))}mxCellHighlight.prototype.keepOnTop=!1;mxCellHighlight.prototype.graph=null;mxCellHighlight.prototype.state=null;
1930mxCellHighlight.prototype.spacing=2;mxCellHighlight.prototype.resetHandler=null;mxCellHighlight.prototype.setHighlightColor=function(a){this.highlightColor=a;null!=this.shape&&(this.shape.stroke=a)};mxCellHighlight.prototype.drawHighlight=function(){this.shape=this.createShape();this.repaint();this.keepOnTop||this.shape.node.parentNode.firstChild==this.shape.node||this.shape.node.parentNode.insertBefore(this.shape.node,this.shape.node.parentNode.firstChild)};
1931mxCellHighlight.prototype.createShape=function(){var a=this.graph.cellRenderer.createShape(this.state);a.svgStrokeTolerance=this.graph.tolerance;a.points=this.state.absolutePoints;a.apply(this.state);a.stroke=this.highlightColor;a.opacity=this.opacity;a.isDashed=this.dashed;a.isShadow=!1;a.dialect=mxConstants.DIALECT_SVG;a.init(this.graph.getView().getOverlayPane());mxEvent.redirectMouseEvents(a.node,this.graph,this.state);this.graph.dialect!=mxConstants.DIALECT_SVG?a.pointerEvents=!1:a.svgPointerEvents=
1932"stroke";return a};mxCellHighlight.prototype.getStrokeWidth=function(a){return this.strokeWidth};
1933mxCellHighlight.prototype.repaint=function(){null!=this.state&&null!=this.shape&&(this.shape.scale=this.state.view.scale,this.graph.model.isEdge(this.state.cell)?(this.shape.strokewidth=this.getStrokeWidth(),this.shape.points=this.state.absolutePoints,this.shape.outline=!1):(this.shape.bounds=new mxRectangle(this.state.x-this.spacing,this.state.y-this.spacing,this.state.width+2*this.spacing,this.state.height+2*this.spacing),this.shape.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||
1934"0"),this.shape.strokewidth=this.getStrokeWidth()/this.state.view.scale,this.shape.outline=!0),null!=this.state.shape&&this.shape.setCursor(this.state.shape.getCursor()),this.shape.redraw())};mxCellHighlight.prototype.hide=function(){this.highlight(null)};mxCellHighlight.prototype.highlight=function(a){this.state!=a&&(null!=this.shape&&(this.shape.destroy(),this.shape=null),this.state=a,null!=this.state&&this.drawHighlight())};
1935mxCellHighlight.prototype.isHighlightAt=function(a,b){var c=!1;if(null!=this.shape&&null!=document.elementFromPoint)for(var d=document.elementFromPoint(a,b);null!=d;){if(d==this.shape.node){c=!0;break}d=d.parentNode}return c};mxCellHighlight.prototype.destroy=function(){this.graph.getView().removeListener(this.resetHandler);this.graph.getView().removeListener(this.repaintHandler);this.graph.getModel().removeListener(this.repaintHandler);null!=this.shape&&(this.shape.destroy(),this.shape=null)};
1936var mxCodecRegistry={codecs:[],aliases:[],register:function(a){if(null!=a){var b=a.getName();mxCodecRegistry.codecs[b]=a;var c=mxUtils.getFunctionName(a.template.constructor);c!=b&&mxCodecRegistry.addAlias(c,b)}return a},addAlias:function(a,b){mxCodecRegistry.aliases[a]=b},getCodec:function(a){var b=null;if(null!=a){var b=mxUtils.getFunctionName(a),c=mxCodecRegistry.aliases[b];null!=c&&(b=c);b=mxCodecRegistry.codecs[b];if(null==b)try{b=new mxObjectCodec(new a),mxCodecRegistry.register(b)}catch(d){}}return b}};
1937function mxCodec(a){this.document=a||mxUtils.createXmlDocument();this.objects=[]}mxCodec.prototype.document=null;mxCodec.prototype.objects=null;mxCodec.prototype.elements=null;mxCodec.prototype.encodeDefaults=!1;mxCodec.prototype.putObject=function(a,b){return this.objects[a]=b};mxCodec.prototype.getObject=function(a){var b=null;null!=a&&(b=this.objects[a],null==b&&(b=this.lookup(a),null==b&&(a=this.getElementById(a),null!=a&&(b=this.decode(a)))));return b};mxCodec.prototype.lookup=function(a){return null};
1938mxCodec.prototype.getElementById=function(a){this.updateElements();return this.elements[a]};mxCodec.prototype.updateElements=function(){null==this.elements&&(this.elements={},null!=this.document.documentElement&&this.addElement(this.document.documentElement))};
1939mxCodec.prototype.addElement=function(a){if(a.nodeType==mxConstants.NODETYPE_ELEMENT){var b=a.getAttribute("id");if(null!=b)if(null==this.elements[b])this.elements[b]=a;else if(this.elements[b]!=a)throw Error(b+": Duplicate ID");}for(a=a.firstChild;null!=a;)this.addElement(a),a=a.nextSibling};mxCodec.prototype.getId=function(a){var b=null;null!=a&&(b=this.reference(a),null==b&&a instanceof mxCell&&(b=a.getId(),null==b&&(b=mxCellPath.create(a),0==b.length&&(b="root"))));return b};
1940mxCodec.prototype.reference=function(a){return null};mxCodec.prototype.encode=function(a){var b=null;if(null!=a&&null!=a.constructor){var c=mxCodecRegistry.getCodec(a.constructor);null!=c?b=c.encode(this,a):mxUtils.isNode(a)?b=mxUtils.importNode(this.document,a,!0):mxLog.warn("mxCodec.encode: No codec for "+mxUtils.getFunctionName(a.constructor))}return b};
1941mxCodec.prototype.decode=function(a,b){this.updateElements();var c=null;if(null!=a&&a.nodeType==mxConstants.NODETYPE_ELEMENT){c=null;try{c=window[a.nodeName]}catch(d){}c=mxCodecRegistry.getCodec(c);null!=c?c=c.decode(this,a,b):(c=a.cloneNode(!0),c.removeAttribute("as"))}return c};mxCodec.prototype.encodeCell=function(a,b,c){b.appendChild(this.encode(a));if(null==c||c){c=a.getChildCount();for(var d=0;d<c;d++)this.encodeCell(a.getChildAt(d),b)}};
1942mxCodec.prototype.isCellCodec=function(a){return null!=a&&"function"==typeof a.isCellCodec?a.isCellCodec():!1};mxCodec.prototype.decodeCell=function(a,b){b=null!=b?b:!0;var c=null;if(null!=a&&a.nodeType==mxConstants.NODETYPE_ELEMENT){c=mxCodecRegistry.getCodec(a.nodeName);if(!this.isCellCodec(c))for(var d=a.firstChild;null!=d&&!this.isCellCodec(c);)c=mxCodecRegistry.getCodec(d.nodeName),d=d.nextSibling;this.isCellCodec(c)||(c=mxCodecRegistry.getCodec(mxCell));c=c.decode(this,a);b&&this.insertIntoGraph(c)}return c};
1943mxCodec.prototype.insertIntoGraph=function(a){var b=a.parent,c=a.getTerminal(!0),d=a.getTerminal(!1);a.setTerminal(null,!1);a.setTerminal(null,!0);a.parent=null;if(null!=b){if(b==a)throw Error(b.id+": Self Reference");b.insert(a)}null!=c&&c.insertEdge(a,!0);null!=d&&d.insertEdge(a,!1)};mxCodec.prototype.setAttribute=function(a,b,c){null!=b&&null!=c&&a.setAttribute(b,c)};
1944function mxObjectCodec(a,b,c,d){this.template=a;this.exclude=null!=b?b:[];this.idrefs=null!=c?c:[];this.mapping=null!=d?d:[];this.reverse={};for(var e in this.mapping)this.reverse[this.mapping[e]]=e}mxObjectCodec.allowEval=!1;mxObjectCodec.prototype.template=null;mxObjectCodec.prototype.exclude=null;mxObjectCodec.prototype.idrefs=null;mxObjectCodec.prototype.mapping=null;mxObjectCodec.prototype.reverse=null;mxObjectCodec.prototype.getName=function(){return mxUtils.getFunctionName(this.template.constructor)};
1945mxObjectCodec.prototype.cloneTemplate=function(){return new this.template.constructor};mxObjectCodec.prototype.getFieldName=function(a){if(null!=a){var b=this.reverse[a];null!=b&&(a=b)}return a};mxObjectCodec.prototype.getAttributeName=function(a){if(null!=a){var b=this.mapping[a];null!=b&&(a=b)}return a};mxObjectCodec.prototype.isExcluded=function(a,b,c,d){return b==mxObjectIdentity.FIELD_NAME||0<=mxUtils.indexOf(this.exclude,b)};
1946mxObjectCodec.prototype.isReference=function(a,b,c,d){return 0<=mxUtils.indexOf(this.idrefs,b)};mxObjectCodec.prototype.encode=function(a,b){var c=a.document.createElement(this.getName());b=this.beforeEncode(a,b,c);this.encodeObject(a,b,c);return this.afterEncode(a,b,c)};mxObjectCodec.prototype.encodeObject=function(a,b,c){a.setAttribute(c,"id",a.getId(b));for(var d in b){var e=d,f=b[e];null==f||this.isExcluded(b,e,f,!0)||(mxUtils.isInteger(e)&&(e=null),this.encodeValue(a,b,e,f,c))}};
1947mxObjectCodec.prototype.encodeValue=function(a,b,c,d,e){if(null!=d){if(this.isReference(b,c,d,!0)){var f=a.getId(d);if(null==f){mxLog.warn("mxObjectCodec.encode: No ID for "+this.getName()+"."+c+"="+d);return}d=f}f=this.template[c];if(null==c||a.encodeDefaults||f!=d)c=this.getAttributeName(c),this.writeAttribute(a,b,c,d,e)}};mxObjectCodec.prototype.writeAttribute=function(a,b,c,d,e){"object"!=typeof d?this.writePrimitiveAttribute(a,b,c,d,e):this.writeComplexAttribute(a,b,c,d,e)};
1948mxObjectCodec.prototype.writePrimitiveAttribute=function(a,b,c,d,e){d=this.convertAttributeToXml(a,b,c,d,e);null==c?(b=a.document.createElement("add"),"function"==typeof d?b.appendChild(a.document.createTextNode(d)):a.setAttribute(b,"value",d),e.appendChild(b)):"function"!=typeof d&&a.setAttribute(e,c,d)};
1949mxObjectCodec.prototype.writeComplexAttribute=function(a,b,c,d,e){a=a.encode(d);null!=a?(null!=c&&a.setAttribute("as",c),e.appendChild(a)):mxLog.warn("mxObjectCodec.encode: No node for "+this.getName()+"."+c+": "+d)};mxObjectCodec.prototype.convertAttributeToXml=function(a,b,c,d){this.isBooleanAttribute(a,b,c,d)&&(d=1==d?"1":"0");return d};mxObjectCodec.prototype.isBooleanAttribute=function(a,b,c,d){return"undefined"==typeof d.length&&(1==d||0==d)};
1950mxObjectCodec.prototype.convertAttributeFromXml=function(a,b,c){var d=b.value;this.isNumericAttribute(a,b,c)&&(d=parseFloat(d),isNaN(d)||!isFinite(d))&&(d=0);return d};mxObjectCodec.prototype.isNumericAttribute=function(a,b,c){return c.constructor==mxGeometry&&("x"==b.name||"y"==b.name||"width"==b.name||"height"==b.name)||c.constructor==mxPoint&&("x"==b.name||"y"==b.name)||mxUtils.isNumeric(b.value)};mxObjectCodec.prototype.beforeEncode=function(a,b,c){return b};
1951mxObjectCodec.prototype.afterEncode=function(a,b,c){return c};mxObjectCodec.prototype.decode=function(a,b,c){var d=b.getAttribute("id"),e=a.objects[d];null==e&&(e=c||this.cloneTemplate(),null!=d&&a.putObject(d,e));b=this.beforeDecode(a,b,e);this.decodeNode(a,b,e);return this.afterDecode(a,b,e)};mxObjectCodec.prototype.decodeNode=function(a,b,c){null!=b&&(this.decodeAttributes(a,b,c),this.decodeChildren(a,b,c))};
1952mxObjectCodec.prototype.decodeAttributes=function(a,b,c){b=b.attributes;if(null!=b)for(var d=0;d<b.length;d++)this.decodeAttribute(a,b[d],c)};mxObjectCodec.prototype.isIgnoredAttribute=function(a,b,c){return"as"==b.nodeName||"id"==b.nodeName};
1953mxObjectCodec.prototype.decodeAttribute=function(a,b,c){if(!this.isIgnoredAttribute(a,b,c)){var d=b.nodeName;b=this.convertAttributeFromXml(a,b,c);var e=this.getFieldName(d);if(this.isReference(c,e,b,!1)){a=a.getObject(b);if(null==a){mxLog.warn("mxObjectCodec.decode: No object for "+this.getName()+"."+d+"="+b);return}b=a}this.isExcluded(c,d,b,!1)||(c[d]=b)}};
1954mxObjectCodec.prototype.decodeChildren=function(a,b,c){for(b=b.firstChild;null!=b;){var d=b.nextSibling;b.nodeType!=mxConstants.NODETYPE_ELEMENT||this.processInclude(a,b,c)||this.decodeChild(a,b,c);b=d}};
1955mxObjectCodec.prototype.decodeChild=function(a,b,c){var d=this.getFieldName(b.getAttribute("as"));if(null==d||!this.isExcluded(c,d,b,!1)){var e=this.getFieldTemplate(c,d,b);"add"==b.nodeName?(a=b.getAttribute("value"),null==a&&mxObjectCodec.allowEval&&(a=mxUtils.eval(mxUtils.getTextContent(b)))):a=a.decode(b,e);try{this.addObjectValue(c,d,a,e)}catch(f){throw Error(f.message+" for "+b.nodeName);}}};
1956mxObjectCodec.prototype.getFieldTemplate=function(a,b,c){a=a[b];a instanceof Array&&0<a.length&&(a=null);return a};mxObjectCodec.prototype.addObjectValue=function(a,b,c,d){null!=c&&c!=d&&(null!=b&&0<b.length?a[b]=c:a.push(c))};mxObjectCodec.prototype.processInclude=function(a,b,c){if("include"==b.nodeName){b=b.getAttribute("name");if(null!=b)try{var d=mxUtils.load(b).getDocumentElement();null!=d&&a.decode(d,c)}catch(e){}return!0}return!1};mxObjectCodec.prototype.beforeDecode=function(a,b,c){return b};
1957mxObjectCodec.prototype.afterDecode=function(a,b,c){return c};
1958mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxCell,["children","edges","overlays","mxTransient"],["parent","source","target"]);a.isCellCodec=function(){return!0};a.isNumericAttribute=function(a,c,d){return"value"!==c.nodeName&&mxObjectCodec.prototype.isNumericAttribute.apply(this,arguments)};a.isExcluded=function(a,c,d,e){return mxObjectCodec.prototype.isExcluded.apply(this,arguments)||e&&"value"==c&&d.nodeType==mxConstants.NODETYPE_ELEMENT};a.afterEncode=function(a,c,d){if(null!=
1959c.value&&c.value.nodeType==mxConstants.NODETYPE_ELEMENT){var b=d;d=mxUtils.importNode(a.document,c.value,!0);d.appendChild(b);a=b.getAttribute("id");d.setAttribute("id",a);b.removeAttribute("id")}return d};a.beforeDecode=function(a,c,d){var b=c.cloneNode(!0),f=this.getName();c.nodeName!=f?(b=c.getElementsByTagName(f)[0],null!=b&&b.parentNode==c?(mxUtils.removeWhitespace(b,!0),mxUtils.removeWhitespace(b,!1),b.parentNode.removeChild(b)):b=null,d.value=c.cloneNode(!0),c=d.value.getAttribute("id"),null!=
1960c&&(d.setId(c),d.value.removeAttribute("id"))):d.setId(c.getAttribute("id"));if(null!=b)for(c=0;c<this.idrefs.length;c++){var f=this.idrefs[c],g=b.getAttribute(f);if(null!=g){b.removeAttribute(f);var k=a.objects[g]||a.lookup(g);null==k&&(g=a.getElementById(g),null!=g&&(k=(mxCodecRegistry.codecs[g.nodeName]||this).decode(a,g)));d[f]=k}}return b};return a}());
1961mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxGraphModel);a.encodeObject=function(a,c,d){var b=a.document.createElement("root");a.encodeCell(c.getRoot(),b);d.appendChild(b)};a.decodeChild=function(a,c,d){"root"==c.nodeName?this.decodeRoot(a,c,d):mxObjectCodec.prototype.decodeChild.apply(this,arguments)};a.decodeRoot=function(a,c,d){var b=null;for(c=c.firstChild;null!=c;){var f=a.decodeCell(c);null!=f&&null==f.getParent()&&(b=f);c=c.nextSibling}null!=b&&d.setRoot(b)};return a}());
1962mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxRootChange,["model","previous","root"]);a.afterEncode=function(a,c,d){a.encodeCell(c.root,d);return d};a.beforeDecode=function(a,c,d){if(null!=c.firstChild&&c.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT){c=c.cloneNode(!0);var b=c.firstChild;d.root=a.decodeCell(b,!1);d=b.nextSibling;b.parentNode.removeChild(b);for(b=d;null!=b;)d=b.nextSibling,a.decodeCell(b),b.parentNode.removeChild(b),b=d}return c};a.afterDecode=function(a,c,
1963d){d.previous=d.root;return d};return a}());
1964mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxChildChange,["model","child","previousIndex"],["parent","previous"]);a.isReference=function(a,c,d,e){return"child"!=c||e&&!a.model.contains(a.previous)?0<=mxUtils.indexOf(this.idrefs,c):!0};a.isExcluded=function(a,c,d,e){return mxObjectCodec.prototype.isExcluded.apply(this,arguments)||e&&null!=d&&("previous"==c||"parent"==c)&&!a.model.contains(d)};a.afterEncode=function(a,c,d){this.isReference(c,"child",c.child,!0)?d.setAttribute("child",
1965a.getId(c.child)):a.encodeCell(c.child,d);return d};a.beforeDecode=function(a,c,d){if(null!=c.firstChild&&c.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT){c=c.cloneNode(!0);var b=c.firstChild;d.child=a.decodeCell(b,!1);d=b.nextSibling;b.parentNode.removeChild(b);for(b=d;null!=b;){d=b.nextSibling;if(b.nodeType==mxConstants.NODETYPE_ELEMENT){var f=b.getAttribute("id");null==a.lookup(f)&&a.decodeCell(b)}b.parentNode.removeChild(b);b=d}}else b=c.getAttribute("child"),d.child=a.getObject(b);return c};
1966a.afterDecode=function(a,c,d){null!=d.child&&(null!=d.child.parent&&null!=d.previous&&d.child.parent!=d.previous&&(d.previous=d.child.parent),d.child.parent=d.previous,d.previous=d.parent,d.previousIndex=d.index);return d};return a}());mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxTerminalChange,["model","previous"],["cell","terminal"]);a.afterDecode=function(a,c,d){d.previous=d.terminal;return d};return a}());
1967var mxGenericChangeCodec=function(a,b){var c=new mxObjectCodec(a,["model","previous"],["cell"]);c.afterDecode=function(a,c,f){mxUtils.isNode(f.cell)&&(f.cell=a.decodeCell(f.cell,!1));f.previous=f[b];return f};return c};mxCodecRegistry.register(mxGenericChangeCodec(new mxValueChange,"value"));mxCodecRegistry.register(mxGenericChangeCodec(new mxStyleChange,"style"));mxCodecRegistry.register(mxGenericChangeCodec(new mxGeometryChange,"geometry"));
1968mxCodecRegistry.register(mxGenericChangeCodec(new mxCollapseChange,"collapsed"));mxCodecRegistry.register(mxGenericChangeCodec(new mxVisibleChange,"visible"));mxCodecRegistry.register(mxGenericChangeCodec(new mxCellAttributeChange,"value"));mxCodecRegistry.register(function(){return new mxObjectCodec(new mxGraph,"graphListeners eventListeners view container cellRenderer editor selection".split(" "))}());
1969mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxGraphView);a.encode=function(a,c){return this.encodeCell(a,c,c.graph.getModel().getRoot())};a.encodeCell=function(a,c,d){var b=c.graph.getModel(),f=c.getState(d),g=b.getParent(d);if(null==g||null!=f){var k=b.getChildCount(d),l=c.graph.getCellGeometry(d),m=null;g==b.getRoot()?m="layer":null==g?m="graph":b.isEdge(d)?m="edge":0<k&&null!=l?m="group":b.isVertex(d)&&(m="vertex");if(null!=m){var n=a.document.createElement(m);null!=c.graph.getLabel(d)&&
1970(n.setAttribute("label",c.graph.getLabel(d)),c.graph.isHtmlLabel(d)&&n.setAttribute("html",!0));if(null==g){var p=c.getGraphBounds();null!=p&&(n.setAttribute("x",Math.round(p.x)),n.setAttribute("y",Math.round(p.y)),n.setAttribute("width",Math.round(p.width)),n.setAttribute("height",Math.round(p.height)));n.setAttribute("scale",c.scale)}else if(null!=f&&null!=l){for(p in f.style)g=f.style[p],"function"==typeof g&&"object"==typeof g&&(g=mxStyleRegistry.getName(g)),null!=g&&"function"!=typeof g&&"object"!=
1971typeof g&&n.setAttribute(p,g);g=f.absolutePoints;if(null!=g&&0<g.length){l=Math.round(g[0].x)+","+Math.round(g[0].y);for(p=1;p<g.length;p++)l+=" "+Math.round(g[p].x)+","+Math.round(g[p].y);n.setAttribute("points",l)}else n.setAttribute("x",Math.round(f.x)),n.setAttribute("y",Math.round(f.y)),n.setAttribute("width",Math.round(f.width)),n.setAttribute("height",Math.round(f.height));p=f.absoluteOffset;null!=p&&(0!=p.x&&n.setAttribute("dx",Math.round(p.x)),0!=p.y&&n.setAttribute("dy",Math.round(p.y)))}for(p=
19720;p<k;p++)f=this.encodeCell(a,c,b.getChildAt(d,p)),null!=f&&n.appendChild(f)}}return n};return a}());
1973var mxStylesheetCodec=mxCodecRegistry.register(function(){var a=new mxObjectCodec(new mxStylesheet);a.encode=function(a,c){var b=a.document.createElement(this.getName()),e;for(e in c.styles){var f=c.styles[e],g=a.document.createElement("add");if(null!=e){g.setAttribute("as",e);for(var k in f){var l=this.getStringValue(k,f[k]);if(null!=l){var m=a.document.createElement("add");m.setAttribute("value",l);m.setAttribute("as",k);g.appendChild(m)}}0<g.childNodes.length&&b.appendChild(g)}}return b};a.getStringValue=
1974function(a,c){var b=typeof c;"function"==b?c=mxStyleRegistry.getName(c):"object"==b&&(c=null);return c};a.decode=function(a,c,d){d=d||new this.template.constructor;var b=c.getAttribute("id");null!=b&&(a.objects[b]=d);for(c=c.firstChild;null!=c;){if(!this.processInclude(a,c,d)&&"add"==c.nodeName&&(b=c.getAttribute("as"),null!=b)){var f=c.getAttribute("extend"),g=null!=f?mxUtils.clone(d.styles[f]):null;null==g&&(null!=f&&mxLog.warn("mxStylesheetCodec.decode: stylesheet "+f+" not found to extend"),g=
1975{});for(f=c.firstChild;null!=f;){if(f.nodeType==mxConstants.NODETYPE_ELEMENT){var k=f.getAttribute("as");if("add"==f.nodeName){var l=mxUtils.getTextContent(f);null!=l&&0<l.length&&mxStylesheetCodec.allowEval?l=mxUtils.eval(l):(l=f.getAttribute("value"),mxUtils.isNumeric(l)&&(l=parseFloat(l)));null!=l&&(g[k]=l)}else"remove"==f.nodeName&&delete g[k]}f=f.nextSibling}d.putCellStyle(b,g)}c=c.nextSibling}return d};return a}());mxStylesheetCodec.allowEval=!0;/*
1976 GNU Lesser General Public License, http://www.gnu.org/copyleft/lesser.html
1977 @author  Jan Odvarko, http://odvarko.cz
1978 @created 2008-06-15
1979 @updated 2012-01-19
1980 @link    http://jscolor.com
1981*/
1982var mxJSColor={bindClass:"color",binding:!0,preloading:!0,install:function(){},init:function(){mxJSColor.preloading&&mxJSColor.preload()},getDir:function(){return IMAGE_PATH+"/"},detectDir:function(){for(var a=location.href,b=document.getElementsByTagName("base"),c=0;c<b.length;c+=1)b[c].href&&(a=b[c].href);b=document.getElementsByTagName("script");for(c=0;c<b.length;c+=1)if(b[c].src&&/(^|\/)jscolor\.js([?#].*)?$/i.test(b[c].src))return a=(new mxJSColor.URI(b[c].src)).toAbsolute(a),a.path=a.path.replace(/[^\/]+$/,
1983""),a.query=null,a.fragment=null,a.toString();return!1},preload:function(){for(var a in mxJSColor.imgRequire)mxJSColor.imgRequire.hasOwnProperty(a)&&mxJSColor.loadImage(a)},images:{pad:[181,101],sld:[16,101],cross:[15,15],arrow:[7,11]},imgRequire:{},imgLoaded:{},requireImage:function(a){mxJSColor.imgRequire[a]=!0},loadImage:function(a){mxJSColor.imgLoaded[a]||(mxJSColor.imgLoaded[a]=new Image,mxJSColor.imgLoaded[a].src=mxJSColor.getDir()+a)},fetchElement:function(a){return"string"===typeof a?document.getElementById(a):
1984a},addEvent:function(a,b,c){a.addEventListener?a.addEventListener(b,c,!1):a.attachEvent&&a.attachEvent("on"+b,c)},fireEvent:function(a,b){if(a)if(document.createEvent){var c=document.createEvent("HTMLEvents");c.initEvent(b,!0,!0);a.dispatchEvent(c)}else if(document.createEventObject)c=document.createEventObject(),a.fireEvent("on"+b,c);else if(a["on"+b])a["on"+b]()},getElementPos:function(a){var b=a,c=0,d=0;if(b.offsetParent){do c+=b.offsetLeft,d+=b.offsetTop;while(b=b.offsetParent)}for(;(a=a.parentNode)&&
1985"BODY"!==a.nodeName.toUpperCase();)c-=a.scrollLeft,d-=a.scrollTop;return[c,d]},getElementSize:function(a){return[a.offsetWidth,a.offsetHeight]},getRelMousePos:function(a){var b=0,c=0;a||(a=window.event);"number"===typeof a.offsetX?(b=a.offsetX,c=a.offsetY):"number"===typeof a.layerX&&(b=a.layerX,c=a.layerY);return{x:b,y:c}},getViewPos:function(){return"number"===typeof window.pageYOffset?[window.pageXOffset,window.pageYOffset]:document.body&&(document.body.scrollLeft||document.body.scrollTop)?[document.body.scrollLeft,
1986document.body.scrollTop]:document.documentElement&&(document.documentElement.scrollLeft||document.documentElement.scrollTop)?[document.documentElement.scrollLeft,document.documentElement.scrollTop]:[0,0]},getViewSize:function(){return"number"===typeof window.innerWidth?[window.innerWidth,window.innerHeight]:document.body&&(document.body.clientWidth||document.body.clientHeight)?[document.body.clientWidth,document.body.clientHeight]:document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)?
1987[document.documentElement.clientWidth,document.documentElement.clientHeight]:[0,0]},URI:function(a){function b(a){for(var b="";a;)if("../"===a.substr(0,3)||"./"===a.substr(0,2))a=a.replace(/^\.+/,"").substr(1);else if("/./"===a.substr(0,3)||"/."===a)a="/"+a.substr(3);else if("/../"===a.substr(0,4)||"/.."===a)a="/"+a.substr(4),b=b.replace(/\/?[^\/]*$/,"");else if("."===a||".."===a)a="";else{var c=a.match(/^\/?[^\/]*/)[0];a=a.substr(c.length);b+=c}return b}this.authority=this.scheme=null;this.path=
1988"";this.fragment=this.query=null;this.parse=function(a){a=a.match(/^(([A-Za-z][0-9A-Za-z+.-]*)(:))?((\/\/)([^\/?#]*))?([^?#]*)((\?)([^#]*))?((#)(.*))?/);this.scheme=a[3]?a[2]:null;this.authority=a[5]?a[6]:null;this.path=a[7];this.query=a[9]?a[10]:null;this.fragment=a[12]?a[13]:null;return this};this.toString=function(){var a="";null!==this.scheme&&(a=a+this.scheme+":");null!==this.authority&&(a=a+"//"+this.authority);null!==this.path&&(a+=this.path);null!==this.query&&(a=a+"?"+this.query);null!==
1989this.fragment&&(a=a+"#"+this.fragment);return a};this.toAbsolute=function(a){a=new mxJSColor.URI(a);var c=new mxJSColor.URI;if(null===a.scheme)return!1;null!==this.scheme&&this.scheme.toLowerCase()===a.scheme.toLowerCase()&&(this.scheme=null);null!==this.scheme?(c.scheme=this.scheme,c.authority=this.authority,c.path=b(this.path),c.query=this.query):(null!==this.authority?(c.authority=this.authority,c.path=b(this.path),c.query=this.query):(""===this.path?(c.path=a.path,c.query=null!==this.query?this.query:
1990a.query):("/"===this.path.substr(0,1)?c.path=b(this.path):(c.path=null!==a.authority&&""===a.path?"/"+this.path:a.path.replace(/[^\/]+$/,"")+this.path,c.path=b(c.path)),c.query=this.query),c.authority=a.authority),c.scheme=a.scheme);c.fragment=this.fragment;return c};a&&this.parse(a)},color:function(a,b){function c(a,b,c){if(null===a)return[c,c,c];var d=Math.floor(a),e=c*(1-b);a=c*(1-b*(d%2?a-d:1-(a-d)));switch(d){case 6:case 0:return[c,a,e];case 1:return[a,c,e];case 2:return[e,c,a];case 3:return[e,
1991a,c];case 4:return[a,e,c];case 5:return[c,e,a]}}function d(b,c){if(!mxJSColor.picker){mxJSColor.picker={box:document.createElement("div"),boxB:document.createElement("div"),pad:document.createElement("div"),padB:document.createElement("div"),padM:document.createElement("div"),sld:document.createElement("div"),sldB:document.createElement("div"),sldM:document.createElement("div"),btn:document.createElement("div"),btnS:document.createElement("span"),btnT:document.createTextNode(r.pickerCloseText)};for(var d=
19920;d<mxJSColor.images.sld[1];d+=4){var k=document.createElement("div");k.style.height="4px";k.style.fontSize="1px";k.style.lineHeight="0";mxJSColor.picker.sld.appendChild(k)}mxJSColor.picker.sldB.appendChild(mxJSColor.picker.sld);mxJSColor.picker.box.appendChild(mxJSColor.picker.sldB);mxJSColor.picker.box.appendChild(mxJSColor.picker.sldM);mxJSColor.picker.padB.appendChild(mxJSColor.picker.pad);mxJSColor.picker.box.appendChild(mxJSColor.picker.padB);mxJSColor.picker.box.appendChild(mxJSColor.picker.padM);
1993mxJSColor.picker.btnS.appendChild(mxJSColor.picker.btnT);mxJSColor.picker.btn.appendChild(mxJSColor.picker.btnS);mxJSColor.picker.box.appendChild(mxJSColor.picker.btn);mxJSColor.picker.boxB.appendChild(mxJSColor.picker.box)}var l=mxJSColor.picker;l.box.onmouseup=l.box.onmouseout=function(){mxClient.IS_TOUCH||a.focus()};l.box.onmousedown=function(){};l.box.onmousemove=function(a){if(y||B)y&&m(a),B&&n(a),document.selection?document.selection.empty():window.getSelection&&window.getSelection().removeAllRanges(),
1994p()};l.padM.onmouseup=l.padM.onmouseout=function(){y&&(y=!1,mxJSColor.fireEvent(u,"change"))};l.padM.onmousedown=function(a){switch(t){case 0:0===r.hsv[2]&&r.fromHSV(null,null,1);break;case 1:0===r.hsv[1]&&r.fromHSV(null,1,null)}y=!0;m(a);p()};l.sldM.onmouseup=l.sldM.onmouseout=function(){B&&(B=!1,mxJSColor.fireEvent(u,"change"))};l.sldM.onmousedown=function(a){B=!0;n(a);p()};d=e(r);l.box.style.width=d[0]+"px";l.box.style.height=d[1]+"px";l.boxB.style.position="absolute";l.boxB.style.clear="both";
1995l.boxB.style.left=b+"px";l.boxB.style.top=c+"px";l.boxB.style.zIndex=r.pickerZIndex;l.boxB.style.border=r.pickerBorder+"px solid";l.boxB.style.borderColor=r.pickerBorderColor;l.boxB.style.background=r.pickerFaceColor;l.pad.style.width=mxJSColor.images.pad[0]+"px";l.pad.style.height=mxJSColor.images.pad[1]+"px";l.padB.style.position="absolute";l.padB.style.left=r.pickerFace+"px";l.padB.style.top=r.pickerFace+"px";l.padB.style.border=r.pickerInset+"px solid";l.padB.style.borderColor=r.pickerInsetColor;
1996l.padM.style.position="absolute";l.padM.style.left="0";l.padM.style.top="0";l.padM.style.width=r.pickerFace+2*r.pickerInset+mxJSColor.images.pad[0]+mxJSColor.images.arrow[0]+"px";l.padM.style.height=l.box.style.height;l.padM.style.cursor="crosshair";l.sld.style.overflow="hidden";l.sld.style.width=mxJSColor.images.sld[0]+"px";l.sld.style.height=mxJSColor.images.sld[1]+"px";l.sldB.style.display=r.slider?"block":"none";l.sldB.style.position="absolute";l.sldB.style.right=r.pickerFace+"px";l.sldB.style.top=
1997r.pickerFace+"px";l.sldB.style.border=r.pickerInset+"px solid";l.sldB.style.borderColor=r.pickerInsetColor;l.sldM.style.display=r.slider?"block":"none";l.sldM.style.position="absolute";l.sldM.style.right="0";l.sldM.style.top="0";l.sldM.style.width=mxJSColor.images.sld[0]+mxJSColor.images.arrow[0]+r.pickerFace+2*r.pickerInset+"px";l.sldM.style.height=l.box.style.height;try{l.sldM.style.cursor="pointer"}catch(F){l.sldM.style.cursor="hand"}l.btn.style.display=r.pickerClosable?"block":"none";l.btn.style.position=
1998"absolute";l.btn.style.left=r.pickerFace+"px";l.btn.style.bottom=r.pickerFace+"px";l.btn.style.padding="0 15px";l.btn.style.height="18px";l.btn.style.border=r.pickerInset+"px solid";(function(){var a=r.pickerInsetColor.split(/\s+/);l.btn.style.borderColor=2>a.length?a[0]:a[1]+" "+a[0]+" "+a[0]+" "+a[1]})();l.btn.style.color=r.pickerButtonColor;l.btn.style.font="12px sans-serif";l.btn.style.textAlign="center";try{l.btn.style.cursor="pointer"}catch(F){l.btn.style.cursor="hand"}l.btn.onmousedown=function(){r.hidePicker()};
1999l.btnS.style.lineHeight=l.btn.style.height;switch(t){case 0:var q="hs.png";break;case 1:q="hv.png"}l.padM.style.backgroundImage="url(data:image/gif;base64,R0lGODlhDwAPAKEBAAAAAP///////////yH5BAEKAAIALAAAAAAPAA8AAAIklB8Qx53b4otSUWcvyiz4/4AeQJbmKY4p1HHapBlwPL/uVRsFADs=)";l.padM.style.backgroundRepeat="no-repeat";l.sldM.style.backgroundImage="url(data:image/gif;base64,R0lGODlhBwALAKECAAAAAP///6g8eKg8eCH5BAEKAAIALAAAAAAHAAsAAAITTIQYcLnsgGxvijrxqdQq6DRJAQA7)";l.sldM.style.backgroundRepeat="no-repeat";
2000l.pad.style.backgroundImage="url('"+mxJSColor.getDir()+q+"')";l.pad.style.backgroundRepeat="no-repeat";l.pad.style.backgroundPosition="0 0";f();g();mxJSColor.picker.owner=r;document.getElementsByTagName("body")[0].appendChild(l.boxB)}function e(a){return[2*a.pickerInset+2*a.pickerFace+mxJSColor.images.pad[0]+(a.slider?2*a.pickerInset+2*mxJSColor.images.arrow[0]+mxJSColor.images.sld[0]:0),a.pickerClosable?4*a.pickerInset+3*a.pickerFace+mxJSColor.images.pad[1]+a.pickerButtonHeight:2*a.pickerInset+2*
2001a.pickerFace+mxJSColor.images.pad[1]]}function f(){switch(t){case 0:var a=1;break;case 1:a=2}mxJSColor.picker.padM.style.backgroundPosition=r.pickerFace+r.pickerInset+Math.round(r.hsv[0]/6*(mxJSColor.images.pad[0]-1))-Math.floor(mxJSColor.images.cross[0]/2)+"px "+(r.pickerFace+r.pickerInset+Math.round((1-r.hsv[a])*(mxJSColor.images.pad[1]-1))-Math.floor(mxJSColor.images.cross[1]/2))+"px";a=mxJSColor.picker.sld.childNodes;switch(t){case 0:for(var b=c(r.hsv[0],r.hsv[1],1),d=0;d<a.length;d+=1)a[d].style.backgroundColor=
2002"rgb("+b[0]*(1-d/a.length)*100+"%,"+b[1]*(1-d/a.length)*100+"%,"+b[2]*(1-d/a.length)*100+"%)";break;case 1:var e,f=[r.hsv[2],0,0],d=Math.floor(r.hsv[0]),g=d%2?r.hsv[0]-d:1-(r.hsv[0]-d);switch(d){case 6:case 0:b=[0,1,2];break;case 1:b=[1,0,2];break;case 2:b=[2,0,1];break;case 3:b=[2,1,0];break;case 4:b=[1,2,0];break;case 5:b=[0,2,1]}for(d=0;d<a.length;d+=1)e=1-1/(a.length-1)*d,f[1]=f[0]*(1-e*g),f[2]=f[0]*(1-e),a[d].style.backgroundColor="rgb("+100*f[b[0]]+"%,"+100*f[b[1]]+"%,"+100*f[b[2]]+"%)"}}function g(){switch(t){case 0:var a=
20032;break;case 1:a=1}mxJSColor.picker.sldM.style.backgroundPosition="0 "+(r.pickerFace+r.pickerInset+Math.round((1-r.hsv[a])*(mxJSColor.images.sld[1]-1))-Math.floor(mxJSColor.images.arrow[1]/2))+"px"}function k(){return mxJSColor.picker&&mxJSColor.picker.owner===r}function l(){u!==a&&r.importColor()}function m(a){var b=mxJSColor.getRelMousePos(a);a=b.x-r.pickerFace-r.pickerInset;b=b.y-r.pickerFace-r.pickerInset;switch(t){case 0:r.fromHSV(6/(mxJSColor.images.pad[0]-1)*a,1-b/(mxJSColor.images.pad[1]-
20041),null,v);break;case 1:r.fromHSV(6/(mxJSColor.images.pad[0]-1)*a,null,1-b/(mxJSColor.images.pad[1]-1),v)}}function n(a){a=mxJSColor.getRelMousePos(a).y-r.pickerFace-r.pickerInset;switch(t){case 0:r.fromHSV(null,null,1-a/(mxJSColor.images.sld[1]-1),C);break;case 1:r.fromHSV(null,1-a/(mxJSColor.images.sld[1]-1),null,C)}}function p(){if(r.onImmediateChange)if("string"===typeof r.onImmediateChange)eval(r.onImmediateChange);else r.onImmediateChange(r)}this.adjust=this.required=!0;this.hash=!1;this.slider=
2005this.caps=!0;this.styleElement=this.valueElement=a;this.onImmediateChange=null;this.hsv=[0,0,1];this.rgb=[1,1,1];this.pickerOnfocus=!0;this.pickerMode="HSV";this.pickerPosition="bottom";this.pickerSmartPosition=!0;this.pickerButtonHeight=20;this.pickerClosable=!1;this.pickerCloseText="Close";this.pickerButtonColor="ButtonText";this.pickerFace=0;this.pickerFaceColor="ThreeDFace";this.pickerBorder=1;this.pickerBorderColor="ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight";this.pickerInset=
20061;this.pickerInsetColor="ThreeDShadow ThreeDHighlight ThreeDHighlight ThreeDShadow";this.pickerZIndex=1E4;for(var q in b)b.hasOwnProperty(q)&&(this[q]=b[q]);this.hidePicker=function(){k()&&(delete mxJSColor.picker.owner,document.getElementsByTagName("body")[0].removeChild(mxJSColor.picker.boxB))};this.showPicker=function(){k()||(mxJSColor.getElementPos(a),mxJSColor.getElementSize(a),mxJSColor.getViewPos(),mxJSColor.getViewSize(),e(this),this.pickerPosition.toLowerCase(),d(0,0))};this.importColor=
2007function(){u?this.adjust?!this.required&&/^\s*$/.test(u.value)?(u.value="",x.style.backgroundImage=x.jscStyle.backgroundImage,x.style.backgroundColor=x.jscStyle.backgroundColor,x.style.color=x.jscStyle.color,this.exportColor(A|z)):this.fromString(u.value)||this.exportColor():this.fromString(u.value,A)||(x.style.backgroundImage=x.jscStyle.backgroundImage,x.style.backgroundColor=x.jscStyle.backgroundColor,x.style.color=x.jscStyle.color,this.exportColor(A|z)):this.exportColor()};this.exportColor=function(a){if(!(a&
2008A)&&u){var b=this.toString();this.caps&&(b=b.toUpperCase());this.hash&&(b="#"+b);u.value=b}a&z||!x||(x.style.backgroundImage="none",x.style.backgroundColor="#"+this.toString(),x.style.color=.5>.213*this.rgb[0]+.715*this.rgb[1]+.072*this.rgb[2]?"#FFF":"#000");a&C||!k()||f();a&v||!k()||g()};this.fromHSV=function(a,b,d,e){0>a&&(a=0);6<a&&(a=6);0>b&&(b=0);1<b&&(b=1);0>d&&(d=0);1<d&&(d=1);this.rgb=c(null===a?this.hsv[0]:this.hsv[0]=a,null===b?this.hsv[1]:this.hsv[1]=b,null===d?this.hsv[2]:this.hsv[2]=
2009d);this.exportColor(e)};this.fromRGB=function(a,b,c,d){0>a&&(a=0);1<a&&(a=1);0>b&&(b=0);1<b&&(b=1);0>c&&(c=0);1<c&&(c=1);a=null===a?this.rgb[0]:this.rgb[0]=a;b=null===b?this.rgb[1]:this.rgb[1]=b;var e=null===c?this.rgb[2]:this.rgb[2]=c,f=Math.min(Math.min(a,b),e);c=Math.max(Math.max(a,b),e);var g=c-f;0===g?a=[null,0,c]:(a=a===f?3+(e-b)/g:b===f?5+(a-e)/g:1+(b-a)/g,a=[6===a?0:a,g/c,c]);null!==a[0]&&(this.hsv[0]=a[0]);0!==a[2]&&(this.hsv[1]=a[1]);this.hsv[2]=a[2];this.exportColor(d)};this.fromString=
2010function(a,b){var c=a.match(/^\W*([0-9A-F]{3}([0-9A-F]{3})?)\W*$/i);return c?(6===c[1].length?this.fromRGB(parseInt(c[1].substr(0,2),16)/255,parseInt(c[1].substr(2,2),16)/255,parseInt(c[1].substr(4,2),16)/255,b):this.fromRGB(parseInt(c[1].charAt(0)+c[1].charAt(0),16)/255,parseInt(c[1].charAt(1)+c[1].charAt(1),16)/255,parseInt(c[1].charAt(2)+c[1].charAt(2),16)/255,b),!0):!1};this.toString=function(){return(256|Math.round(255*this.rgb[0])).toString(16).substr(1)+(256|Math.round(255*this.rgb[1])).toString(16).substr(1)+
2011(256|Math.round(255*this.rgb[2])).toString(16).substr(1)};var r=this,t="hvs"===this.pickerMode.toLowerCase()?1:0,u=mxJSColor.fetchElement(this.valueElement),x=mxJSColor.fetchElement(this.styleElement),y=!1,B=!1,A=1,z=2,C=4,v=8;u&&(q=function(){r.fromString(u.value,A);p()},mxJSColor.addEvent(u,"keyup",q),mxJSColor.addEvent(u,"input",q),mxJSColor.addEvent(u,"blur",l),u.setAttribute("autocomplete","off"));x&&(x.jscStyle={backgroundImage:x.style.backgroundImage,backgroundColor:x.style.backgroundColor,
2012color:x.style.color});switch(t){case 0:mxJSColor.requireImage("hs.png");break;case 1:mxJSColor.requireImage("hv.png")}this.importColor()}};mxJSColor.install();
2013Editor=function(b,c,e,k,g){mxEventSource.call(this);this.chromeless=null!=b?b:this.chromeless;this.initStencilRegistry();this.graph=k||this.createGraph(c,e);this.editable=null!=g?g:!b;this.undoManager=this.createUndoManager();this.status="";this.getOrCreateFilename=function(){return this.filename||mxResources.get("drawing",[Editor.pageCounter])+".xml"};this.getFilename=function(){return this.filename};this.setStatus=function(b){this.status=b;this.fireEvent(new mxEventObject("statusChanged"))};this.getStatus=
2014function(){return this.status};this.graphChangeListener=function(b,c){var d=null!=c?c.getProperty("edit"):null;null!=d&&d.ignoreEdit||this.setModified(!0)};this.graph.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.graphChangeListener.apply(this,arguments)}));this.graph.resetViewOnRootChange=!1;this.init()};Editor.pageCounter=0;
2015(function(){try{for(var b=window;null!=b.opener&&"undefined"!==typeof b.opener.Editor&&!isNaN(b.opener.Editor.pageCounter)&&b.opener!=b;)b=b.opener;null!=b&&(b.Editor.pageCounter++,Editor.pageCounter=b.Editor.pageCounter)}catch(c){}})();Editor.defaultHtmlFont='-apple-system, BlinkMacSystemFont, "Segoe UI Variable", "Segoe UI", system-ui, ui-sans-serif, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"';Editor.useLocalStorage="undefined"!=typeof Storage&&mxClient.IS_IOS;
2016Editor.rowMoveImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAEBAMAAACw6DhOAAAAGFBMVEUzMzP///9tbW1QUFCKiopBQUF8fHxfX1/IXlmXAAAAFElEQVQImWNgNVdzYBAUFBRggLMAEzYBy29kEPgAAAAASUVORK5CYII=":IMAGE_PATH+"/thumb_horz.png";
2017Editor.lightCheckmarkImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhFQAVAMQfAGxsbHx8fIqKioaGhvb29nJycvr6+sDAwJqamltbW5OTk+np6YGBgeTk5Ly8vJiYmP39/fLy8qWlpa6ursjIyOLi4vj4+N/f3+3t7fT09LCwsHZ2dubm5r6+vmZmZv///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OEY4NTZERTQ5QUFBMTFFMUE5MTVDOTM5MUZGMTE3M0QiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OEY4NTZERTU5QUFBMTFFMUE5MTVDOTM5MUZGMTE3M0QiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4Rjg1NkRFMjlBQUExMUUxQTkxNUM5MzkxRkYxMTczRCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4Rjg1NkRFMzlBQUExMUUxQTkxNUM5MzkxRkYxMTczRCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAB8ALAAAAAAVABUAAAVI4CeOZGmeaKqubKtylktSgCOLRyLd3+QJEJnh4VHcMoOfYQXQLBcBD4PA6ngGlIInEHEhPOANRkaIFhq8SuHCE1Hb8Lh8LgsBADs=":IMAGE_PATH+
2018"/checkmark.gif";Editor.darkHelpImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAP1BMVEUAAAD///////////////////////////////////////////////////////////////////////////////9Du/pqAAAAFXRSTlMAT30qCJRBboyDZyCgRzUUdF46MJlgXETgAAAAeklEQVQY022O2w4DIQhEQUURda/9/28tUO2+7CQS5sgQ4F1RapX78YUwRqQjTU8ILqQfKerTKTvACJ4nLX3krt+8aS82oI8aQC4KavRgtvEW/mDvsICgA03PSGRr79MqX1YPNIxzjyqtw8ZnnRo4t5a5undtJYRywau+ds4Cyza3E6YAAAAASUVORK5CYII=";Editor.darkCheckmarkImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAMAAACeyVWkAAAARVBMVEUAAACZmZkICAgEBASNjY2Dg4MYGBiTk5N5eXl1dXVmZmZQUFBCQkI3NzceHh4MDAykpKSJiYl+fn5sbGxaWlo/Pz8SEhK96uPlAAAAAXRSTlMAQObYZgAAAE5JREFUGNPFzTcSgDAQQ1HJGUfy/Y9K7V1qeOUfzQifCQZai1XHaz11LFysbDbzgDSSWMZiETz3+b8yNUc/MMsktxuC8XQBSncdLwz+8gCCggGXzBcozAAAAABJRU5ErkJggg==";
2019Editor.menuImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTMgMThoMTh2LTJIM3Yyem0wLTVoMTh2LTJIM3Yyem0wLTd2MmgxOFY2SDN6Ii8+PC9zdmc+";Editor.lightHelpImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDB6Ii8+PHBhdGggZD0iTTExIDE4aDJ2LTJoLTJ2MnptMS0xNkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6bTAtMTRjLTIuMjEgMC00IDEuNzktNCA0aDJjMC0xLjEuOS0yIDItMnMyIC45IDIgMmMwIDItMyAxLjc1LTMgNWgyYzAtMi4yNSAzLTIuNSAzLTUgMC0yLjIxLTEuNzktNC00LTR6Ii8+PC9zdmc+";
2020Editor.moveImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI4cHgiIGhlaWdodD0iMjhweCI+PGc+PC9nPjxnPjxnPjxnPjxwYXRoIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIuNCwyLjQpc2NhbGUoMC44KXJvdGF0ZSg0NSwxMiwxMikiIHN0cm9rZT0iIzI5YjZmMiIgZmlsbD0iIzI5YjZmMiIgZD0iTTE1LDNsMi4zLDIuM2wtMi44OSwyLjg3bDEuNDIsMS40MkwxOC43LDYuN0wyMSw5VjNIMTV6IE0zLDlsMi4zLTIuM2wyLjg3LDIuODlsMS40Mi0xLjQyTDYuNyw1LjNMOSwzSDNWOXogTTksMjEgbC0yLjMtMi4zbDIuODktMi44N2wtMS40Mi0xLjQyTDUuMywxNy4zTDMsMTV2Nkg5eiBNMjEsMTVsLTIuMywyLjNsLTIuODctMi44OWwtMS40MiwxLjQybDIuODksMi44N0wxNSwyMWg2VjE1eiIvPjwvZz48L2c+PC9nPjwvc3ZnPgo=";
2021Editor.zoomInImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHptMi41LTRoLTJ2Mkg5di0ySDdWOWgyVjdoMXYyaDJ2MXoiLz48L3N2Zz4=";
2022Editor.zoomOutImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHpNNyA5aDV2MUg3eiIvPjwvc3ZnPg==";
2023Editor.fullscreenImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyA1djRoMlY1aDRWM0g1Yy0xLjEgMC0yIC45LTIgMnptMiAxMEgzdjRjMCAxLjEuOSAyIDIgMmg0di0ySDV2LTR6bTE0IDRoLTR2Mmg0YzEuMSAwIDItLjkgMi0ydi00aC0ydjR6bTAtMTZoLTR2Mmg0djRoMlY1YzAtMS4xLS45LTItMi0yeiIvPjwvc3ZnPg==";Editor.fullscreenExitImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTUgMTZoM3YzaDJ2LTVINXYyem0zLThINXYyaDVWNUg4djN6bTYgMTFoMnYtM2gzdi0yaC01djV6bTItMTFWNWgtMnY1aDVWOGgtM3oiLz48L3N2Zz4=";
2024Editor.zoomFitImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMThweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMThweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTUgMTVIM3Y0YzAgMS4xLjkgMiAyIDJoNHYtMkg1di00ek01IDVoNFYzSDVjLTEuMSAwLTIgLjktMiAydjRoMlY1em03IDNjLTIuMjEgMC00IDEuNzktNCA0czEuNzkgNCA0IDQgNC0xLjc5IDQtNC0xLjc5LTQtNC00em0wIDZjLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyem03LTExaC00djJoNHY0aDJWNWMwLTEuMS0uOS0yLTItMnptMCAxNmgtNHYyaDRjMS4xIDAgMi0uOSAyLTJ2LTRoLTJ2NHoiLz48L3N2Zz4=";
2025Editor.layersImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMThweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMThweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTExLjk5IDE4LjU0bC03LjM3LTUuNzNMMyAxNC4wN2w5IDcgOS03LTEuNjMtMS4yN3pNMTIgMTZsNy4zNi01LjczTDIxIDlsLTktNy05IDcgMS42MyAxLjI3TDEyIDE2em0wLTExLjQ3TDE3Ljc0IDkgMTIgMTMuNDcgNi4yNiA5IDEyIDQuNTN6Ii8+PC9zdmc+";Editor.previousImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMThweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMThweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE1LjQxIDcuNDFMMTQgNmwtNiA2IDYgNiAxLjQxLTEuNDFMMTAuODMgMTJsNC41OC00LjU5eiIvPjwvc3ZnPg==";
2026Editor.nextImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMThweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMThweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTEwIDZMOC41OSA3LjQxIDEzLjE3IDEybC00LjU4IDQuNTlMMTAgMThsNi02LTYtNnoiLz48L3N2Zz4=";Editor.editImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMThweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMThweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE0LjA2IDkuMDJsLjkyLjkyTDUuOTIgMTlINXYtLjkybDkuMDYtOS4wNk0xNy42NiAzYy0uMjUgMC0uNTEuMS0uNy4yOWwtMS44MyAxLjgzIDMuNzUgMy43NSAxLjgzLTEuODNjLjM5LS4zOS4zOS0xLjAyIDAtMS40MWwtMi4zNC0yLjM0Yy0uMi0uMi0uNDUtLjI5LS43MS0uMjl6bS0zLjYgMy4xOUwzIDE3LjI1VjIxaDMuNzVMMTcuODEgOS45NGwtMy43NS0zLjc1eiIvPjwvc3ZnPg==";
2027Editor.duplicateImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMThweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMThweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE2IDFINGMtMS4xIDAtMiAuOS0yIDJ2MTRoMlYzaDEyVjF6bTMgNEg4Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDExYzEuMSAwIDItLjkgMi0yVjdjMC0xLjEtLjktMi0yLTJ6bTAgMTZIOFY3aDExdjE0eiIvPjwvc3ZnPg==";Editor.addImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMThweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMThweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE5IDEzaC02djZoLTJ2LTZINXYtMmg2VjVoMnY2aDZ2MnoiLz48L3N2Zz4=";
2028Editor.crossImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMThweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMThweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE5IDYuNDFMMTcuNTkgNSAxMiAxMC41OSA2LjQxIDUgNSA2LjQxIDEwLjU5IDEyIDUgMTcuNTkgNi40MSAxOSAxMiAxMy40MSAxNy41OSAxOSAxOSAxNy41OSAxMy40MSAxMiAxOSA2LjQxeiIvPjwvc3ZnPg==";Editor.verticalDotsImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMThweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMThweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTEyIDhjMS4xIDAgMi0uOSAyLTJzLS45LTItMi0yLTIgLjktMiAyIC45IDIgMiAyem0wIDJjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yem0wIDZjLTEuMSAwLTIgLjktMiAycy45IDIgMiAyIDItLjkgMi0yLS45LTItMi0yeiIvPjwvc3ZnPg==";
2029Editor.trashImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMThweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMThweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE2IDl2MTBIOFY5aDhtLTEuNS02aC01bC0xIDFINXYyaDE0VjRoLTMuNWwtMS0xek0xOCA3SDZ2MTJjMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yVjd6Ii8+PC9zdmc+";Editor.hiddenImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMThweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMThweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6bTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTEyIDZjMy43OSAwIDcuMTcgMi4xMyA4LjgyIDUuNS0uNTkgMS4yMi0xLjQyIDIuMjctMi40MSAzLjEybDEuNDEgMS40MWMxLjM5LTEuMjMgMi40OS0yLjc3IDMuMTgtNC41M0MyMS4yNyA3LjExIDE3IDQgMTIgNGMtMS4yNyAwLTIuNDkuMi0zLjY0LjU3bDEuNjUgMS42NUMxMC42NiA2LjA5IDExLjMyIDYgMTIgNnptLTEuMDcgMS4xNEwxMyA5LjIxYy41Ny4yNSAxLjAzLjcxIDEuMjggMS4yOGwyLjA3IDIuMDdjLjA4LS4zNC4xNC0uNy4xNC0xLjA3QzE2LjUgOS4wMSAxNC40OCA3IDEyIDdjLS4zNyAwLS43Mi4wNS0xLjA3LjE0ek0yLjAxIDMuODdsMi42OCAyLjY4QzMuMDYgNy44MyAxLjc3IDkuNTMgMSAxMS41IDIuNzMgMTUuODkgNyAxOSAxMiAxOWMxLjUyIDAgMi45OC0uMjkgNC4zMi0uODJsMy40MiAzLjQyIDEuNDEtMS40MUwzLjQyIDIuNDUgMi4wMSAzLjg3em03LjUgNy41bDIuNjEgMi42MWMtLjA0LjAxLS4wOC4wMi0uMTIuMDItMS4zOCAwLTIuNS0xLjEyLTIuNS0yLjUgMC0uMDUuMDEtLjA4LjAxLS4xM3ptLTMuNC0zLjRsMS43NSAxLjc1Yy0uMjMuNTUtLjM2IDEuMTUtLjM2IDEuNzggMCAyLjQ4IDIuMDIgNC41IDQuNSA0LjUuNjMgMCAxLjIzLS4xMyAxLjc3LS4zNmwuOTguOThjLS44OC4yNC0xLjguMzgtMi43NS4zOC0zLjc5IDAtNy4xNy0yLjEzLTguODItNS41LjctMS40MyAxLjcyLTIuNjEgMi45My0zLjUzeiIvPjwvc3ZnPg==";
2030Editor.visibleImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMThweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMThweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTEyIDZjMy43OSAwIDcuMTcgMi4xMyA4LjgyIDUuNUMxOS4xNyAxNC44NyAxNS43OSAxNyAxMiAxN3MtNy4xNy0yLjEzLTguODItNS41QzQuODMgOC4xMyA4LjIxIDYgMTIgNm0wLTJDNyA0IDIuNzMgNy4xMSAxIDExLjUgMi43MyAxNS44OSA3IDE5IDEyIDE5czkuMjctMy4xMSAxMS03LjVDMjEuMjcgNy4xMSAxNyA0IDEyIDR6bTAgNWMxLjM4IDAgMi41IDEuMTIgMi41IDIuNVMxMy4zOCAxNCAxMiAxNHMtMi41LTEuMTItMi41LTIuNVMxMC42MiA5IDEyIDltMC0yYy0yLjQ4IDAtNC41IDIuMDItNC41IDQuNVM5LjUyIDE2IDEyIDE2czQuNS0yLjAyIDQuNS00LjVTMTQuNDggNyAxMiA3eiIvPjwvc3ZnPg==";
2031Editor.lockedImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMThweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMThweCIgZmlsbD0iIzAwMDAwMCI+PGcgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6Ii8+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBvcGFjaXR5PSIuODciLz48L2c+PHBhdGggZD0iTTE4IDhoLTFWNmMwLTIuNzYtMi4yNC01LTUtNVM3IDMuMjQgNyA2djJINmMtMS4xIDAtMiAuOS0yIDJ2MTBjMCAxLjEuOSAyIDIgMmgxMmMxLjEgMCAyLS45IDItMlYxMGMwLTEuMS0uOS0yLTItMnpNOSA2YzAtMS42NiAxLjM0LTMgMy0zczMgMS4zNCAzIDN2Mkg5VjZ6bTkgMTRINlYxMGgxMnYxMHptLTYtM2MxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6Ii8+PC9zdmc+";
2032Editor.unlockedImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE4IDhoLTFWNmMwLTIuNzYtMi4yNC01LTUtNVM3IDMuMjQgNyA2aDJjMC0xLjY2IDEuMzQtMyAzLTNzMyAxLjM0IDMgM3YySDZjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWMTBjMC0xLjEtLjktMi0yLTJ6bTAgMTJINlYxMGgxMnYxMHptLTYtM2MxLjEgMCAyLS45IDItMnMtLjktMi0yLTItMiAuOS0yIDIgLjkgMiAyIDJ6Ii8+PC9zdmc+";
2033Editor.printImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMThweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMThweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE5IDhoLTFWM0g2djVINWMtMS42NiAwLTMgMS4zNC0zIDN2Nmg0djRoMTJ2LTRoNHYtNmMwLTEuNjYtMS4zNC0zLTMtM3pNOCA1aDh2M0g4VjV6bTggMTJ2Mkg4di00aDh2MnptMi0ydi0ySDZ2Mkg0di00YzAtLjU1LjQ1LTEgMS0xaDE0Yy41NSAwIDEgLjQ1IDEgMXY0aC0yeiIvPjxjaXJjbGUgY3g9IjE4IiBjeT0iMTEuNSIgcj0iMSIvPjwvc3ZnPg==";
2034Editor.refreshImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMThweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMThweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE3LjY1IDYuMzVDMTYuMiA0LjkgMTQuMjEgNCAxMiA0Yy00LjQyIDAtNy45OSAzLjU4LTcuOTkgOHMzLjU3IDggNy45OSA4YzMuNzMgMCA2Ljg0LTIuNTUgNy43My02aC0yLjA4Yy0uODIgMi4zMy0zLjA0IDQtNS42NSA0LTMuMzEgMC02LTIuNjktNi02czIuNjktNiA2LTZjMS42NiAwIDMuMTQuNjkgNC4yMiAxLjc4TDEzIDExaDdWNGwtMi4zNSAyLjM1eiIvPjwvc3ZnPg==";
2035Editor.backImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMThweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMThweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIiBvcGFjaXR5PSIuODciLz48cGF0aCBkPSJNMTcuNTEgMy44N0wxNS43MyAyLjEgNS44NCAxMmw5LjkgOS45IDEuNzctMS43N0w5LjM4IDEybDguMTMtOC4xM3oiLz48L3N2Zz4=";Editor.closeImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMThweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMThweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIiBvcGFjaXR5PSIuODciLz48cGF0aCBkPSJNMTIgMkM2LjQ3IDIgMiA2LjQ3IDIgMTJzNC40NyAxMCAxMCAxMCAxMC00LjQ3IDEwLTEwUzE3LjUzIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6bTMuNTktMTNMMTIgMTAuNTkgOC40MSA3IDcgOC40MSAxMC41OSAxMiA3IDE1LjU5IDguNDEgMTcgMTIgMTMuNDEgMTUuNTkgMTcgMTcgMTUuNTkgMTMuNDEgMTIgMTcgOC40MXoiLz48L3N2Zz4=";
2036Editor.closeBlackImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjZweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjZweCI+PGVsbGlwc2UgY3g9IjEyIiBjeT0iMTIiIHJ4PSI5IiByeT0iOSIgc3Ryb2tlPSJub25lIiBmaWxsPSIjMDAwIi8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTE0LjU5IDhMMTIgMTAuNTkgOS40MSA4IDggOS40MSAxMC41OSAxMiA4IDE0LjU5IDkuNDEgMTYgMTIgMTMuNDEgMTQuNTkgMTYgMTYgMTQuNTkgMTMuNDEgMTIgMTYgOS40MSAxNC41OSA4ek0xMiAyQzYuNDcgMiAyIDYuNDcgMiAxMnM0LjQ3IDEwIDEwIDEwIDEwLTQuNDcgMTAtMTBTMTcuNTMgMiAxMiAyem0wIDE4Yy00LjQxIDAtOC0zLjU5LTgtOHMzLjU5LTggOC04IDggMy41OSA4IDgtMy41OSA4LTggOHoiLz48L3N2Zz4=";
2037Editor.plusImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgMTNoLTZ2NmgtMnYtNkg1di0yaDZWNWgydjZoNnYyeiIvPjwvc3ZnPg==";Editor.shapesImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxnPjxwYXRoIGQ9Ik0wLDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvZz48Zz48Zz48cGF0aCBkPSJNMywxMWg4VjNIM1YxMXogTTUsNWg0djRINVY1eiIvPjxwYXRoIGQ9Ik0xMywzdjhoOFYzSDEzeiBNMTksOWgtNFY1aDRWOXoiLz48cGF0aCBkPSJNMywyMWg4di04SDNWMjF6IE01LDE1aDR2NEg1VjE1eiIvPjxwb2x5Z29uIHBvaW50cz0iMTgsMTMgMTYsMTMgMTYsMTYgMTMsMTYgMTMsMTggMTYsMTggMTYsMjEgMTgsMjEgMTgsMTggMjEsMTggMjEsMTYgMTgsMTYiLz48L2c+PC9nPjwvc3ZnPg==";
2038Editor.formatImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgM2MtNC45NyAwLTkgNC4wMy05IDlzNC4wMyA5IDkgOWMuODMgMCAxLjUtLjY3IDEuNS0xLjUgMC0uMzktLjE1LS43NC0uMzktMS4wMS0uMjMtLjI2LS4zOC0uNjEtLjM4LS45OSAwLS44My42Ny0xLjUgMS41LTEuNUgxNmMyLjc2IDAgNS0yLjI0IDUtNSAwLTQuNDItNC4wMy04LTktOHptLTUuNSA5Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTNS42NyA5IDYuNSA5IDggOS42NyA4IDEwLjUgNy4zMyAxMiA2LjUgMTJ6bTMtNEM4LjY3IDggOCA3LjMzIDggNi41UzguNjcgNSA5LjUgNXMxLjUuNjcgMS41IDEuNVMxMC4zMyA4IDkuNSA4em01IDBjLS44MyAwLTEuNS0uNjctMS41LTEuNVMxMy42NyA1IDE0LjUgNXMxLjUuNjcgMS41IDEuNVMxNS4zMyA4IDE0LjUgOHptMyA0Yy0uODMgMC0xLjUtLjY3LTEuNS0xLjVTMTYuNjcgOSAxNy41IDlzMS41LjY3IDEuNSAxLjUtLjY3IDEuNS0xLjUgMS41eiIvPjwvc3ZnPg==";
2039Editor.freehandImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHJlY3QgZmlsbD0ibm9uZSIgaGVpZ2h0PSIyNCIgd2lkdGg9IjI0Ii8+PHBhdGggZD0iTTQuNSw4YzEuMDQsMCwyLjM0LTEuNSw0LjI1LTEuNWMxLjUyLDAsMi43NSwxLjIzLDIuNzUsMi43NWMwLDIuMDQtMS45OSwzLjE1LTMuOTEsNC4yMkM1LjQyLDE0LjY3LDQsMTUuNTcsNCwxNyBjMCwxLjEsMC45LDIsMiwydjJjLTIuMjEsMC00LTEuNzktNC00YzAtMi43MSwyLjU2LTQuMTQsNC42Mi01LjI4YzEuNDItMC43OSwyLjg4LTEuNiwyLjg4LTIuNDdjMC0wLjQxLTAuMzQtMC43NS0wLjc1LTAuNzUgQzcuNSw4LjUsNi4yNSwxMCw0LjUsMTBDMy4xMiwxMCwyLDguODgsMiw3LjVDMiw1LjQ1LDQuMTcsMi44Myw1LDJsMS40MSwxLjQxQzUuNDEsNC40Miw0LDYuNDMsNCw3LjVDNCw3Ljc4LDQuMjIsOCw0LjUsOHogTTgsMjEgbDMuNzUsMGw4LjA2LTguMDZsLTMuNzUtMy43NUw4LDE3LjI1TDgsMjF6IE0xMCwxOC4wOGw2LjA2LTYuMDZsMC45MiwwLjkyTDEwLjkyLDE5TDEwLDE5TDEwLDE4LjA4eiBNMjAuMzcsNi4yOSBjLTAuMzktMC4zOS0xLjAyLTAuMzktMS40MSwwbC0xLjgzLDEuODNsMy43NSwzLjc1bDEuODMtMS44M2MwLjM5LTAuMzksMC4zOS0xLjAyLDAtMS40MUwyMC4zNyw2LjI5eiIvPjwvc3ZnPg==";
2040Editor.templateImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTEzIDExaC0ydjNIOHYyaDN2M2gydi0zaDN2LTJoLTN6bTEtOUg2Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS44OSAyIDEuOTkgMkgxOGMxLjEgMCAyLS45IDItMlY4bC02LTZ6bTQgMThINlY0aDd2NWg1djExeiIvPjwvc3ZnPg==";Editor.darkImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjxwYXRoIGQ9Ik05LjM3LDUuNTFDOS4xOSw2LjE1LDkuMSw2LjgyLDkuMSw3LjVjMCw0LjA4LDMuMzIsNy40LDcuNCw3LjRjMC42OCwwLDEuMzUtMC4wOSwxLjk5LTAuMjdDMTcuNDUsMTcuMTksMTQuOTMsMTksMTIsMTkgYy0zLjg2LDAtNy0zLjE0LTctN0M1LDkuMDcsNi44MSw2LjU1LDkuMzcsNS41MXogTTEyLDNjLTQuOTcsMC05LDQuMDMtOSw5czQuMDMsOSw5LDlzOS00LjAzLDktOWMwLTAuNDYtMC4wNC0wLjkyLTAuMS0xLjM2IGMtMC45OCwxLjM3LTIuNTgsMi4yNi00LjQsMi4yNmMtMi45OCwwLTUuNC0yLjQyLTUuNC01LjRjMC0xLjgxLDAuODktMy40MiwyLjI2LTQuNEMxMi45MiwzLjA0LDEyLjQ2LDMsMTIsM0wxMiwzeiIvPjwvc3ZnPg==";
2041Editor.lightImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiMwMDAwMDAiPjxyZWN0IGZpbGw9Im5vbmUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIvPjxwYXRoIGQ9Ik0xMiw5YzEuNjUsMCwzLDEuMzUsMywzcy0xLjM1LDMtMywzcy0zLTEuMzUtMy0zUzEwLjM1LDksMTIsOSBNMTIsN2MtMi43NiwwLTUsMi4yNC01LDVzMi4yNCw1LDUsNXM1LTIuMjQsNS01IFMxNC43Niw3LDEyLDdMMTIsN3ogTTIsMTNsMiwwYzAuNTUsMCwxLTAuNDUsMS0xcy0wLjQ1LTEtMS0xbC0yLDBjLTAuNTUsMC0xLDAuNDUtMSwxUzEuNDUsMTMsMiwxM3ogTTIwLDEzbDIsMGMwLjU1LDAsMS0wLjQ1LDEtMSBzLTAuNDUtMS0xLTFsLTIsMGMtMC41NSwwLTEsMC40NS0xLDFTMTkuNDUsMTMsMjAsMTN6IE0xMSwydjJjMCwwLjU1LDAuNDUsMSwxLDFzMS0wLjQ1LDEtMVYyYzAtMC41NS0wLjQ1LTEtMS0xUzExLDEuNDUsMTEsMnogTTExLDIwdjJjMCwwLjU1LDAuNDUsMSwxLDFzMS0wLjQ1LDEtMXYtMmMwLTAuNTUtMC40NS0xLTEtMUMxMS40NSwxOSwxMSwxOS40NSwxMSwyMHogTTUuOTksNC41OGMtMC4zOS0wLjM5LTEuMDMtMC4zOS0xLjQxLDAgYy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MWwxLjA2LDEuMDZjMC4zOSwwLjM5LDEuMDMsMC4zOSwxLjQxLDBzMC4zOS0xLjAzLDAtMS40MUw1Ljk5LDQuNTh6IE0xOC4zNiwxNi45NSBjLTAuMzktMC4zOS0xLjAzLTAuMzktMS40MSwwYy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MWwxLjA2LDEuMDZjMC4zOSwwLjM5LDEuMDMsMC4zOSwxLjQxLDBjMC4zOS0wLjM5LDAuMzktMS4wMywwLTEuNDEgTDE4LjM2LDE2Ljk1eiBNMTkuNDIsNS45OWMwLjM5LTAuMzksMC4zOS0xLjAzLDAtMS40MWMtMC4zOS0wLjM5LTEuMDMtMC4zOS0xLjQxLDBsLTEuMDYsMS4wNmMtMC4zOSwwLjM5LTAuMzksMS4wMywwLDEuNDEgczEuMDMsMC4zOSwxLjQxLDBMMTkuNDIsNS45OXogTTcuMDUsMTguMzZjMC4zOS0wLjM5LDAuMzktMS4wMywwLTEuNDFjLTAuMzktMC4zOS0xLjAzLTAuMzktMS40MSwwbC0xLjA2LDEuMDYgYy0wLjM5LDAuMzktMC4zOSwxLjAzLDAsMS40MXMxLjAzLDAuMzksMS40MSwwTDcuMDUsMTguMzZ6Ii8+PC9zdmc+";
2042Editor.undoImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIuNSA4Yy0yLjY1IDAtNS4wNS45OS02LjkgMi42TDIgN3Y5aDlsLTMuNjItMy42MmMxLjM5LTEuMTYgMy4xNi0xLjg4IDUuMTItMS44OCAzLjU0IDAgNi41NSAyLjMxIDcuNiA1LjVsMi4zNy0uNzhDMjEuMDggMTEuMDMgMTcuMTUgOCAxMi41IDh6Ii8+PC9zdmc+";Editor.redoImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTguNCAxMC42QzE2LjU1IDguOTkgMTQuMTUgOCAxMS41IDhjLTQuNjUgMC04LjU4IDMuMDMtOS45NiA3LjIyTDMuOSAxNmMxLjA1LTMuMTkgNC4wNS01LjUgNy42LTUuNSAxLjk1IDAgMy43My43MiA1LjEyIDEuODhMMTMgMTZoOVY3bC0zLjYgMy42eiIvPjwvc3ZnPg==";
2043Editor.outlineImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0yMC41IDNsLS4xNi4wM0wxNSA1LjEgOSAzIDMuMzYgNC45Yy0uMjEuMDctLjM2LjI1LS4zNi40OFYyMC41YzAgLjI4LjIyLjUuNS41bC4xNi0uMDNMOSAxOC45bDYgMi4xIDUuNjQtMS45Yy4yMS0uMDcuMzYtLjI1LjM2LS40OFYzLjVjMC0uMjgtLjIyLS41LS41LS41ek0xNSAxOWwtNi0yLjExVjVsNiAyLjExVjE5eiIvPjwvc3ZnPg==";
2044Editor.saveImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMThweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMThweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE5IDEydjdINXYtN0gzdjdjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnYtN2gtMnptLTYgLjY3bDIuNTktMi41OEwxNyAxMS41bC01IDUtNS01IDEuNDEtMS40MUwxMSAxMi42N1YzaDJ2OS42N3oiLz48L3N2Zz4=";Editor.tableImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTIwIDNINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNWMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDJ2M0g1VjVoMTV6bS01IDE0aC01di05aDV2OXpNNSAxMGgzdjlINXYtOXptMTIgOXYtOWgzdjloLTN6Ii8+PC9zdmc+";
2045Editor.roughFillStyles=[{val:"auto",dispName:"Auto"},{val:"hachure",dispName:"Hachure"},{val:"solid",dispName:"Solid"},{val:"zigzag",dispName:"ZigZag"},{val:"cross-hatch",dispName:"Cross Hatch"},{val:"dots",dispName:"Dots"},{val:"dashed",dispName:"Dashed"},{val:"zigzag-line",dispName:"ZigZag Line"}];Editor.themes=null;Editor.ctrlKey=mxClient.IS_MAC?"Cmd":"Ctrl";Editor.hintOffset=20;Editor.shapePickerHoverDelay=300;Editor.fitWindowBorders=null;
2046Editor.popupsAllowed=null!=window.urlParams?"1"!=urlParams.noDevice:!0;Editor.simpleLabels=!1;Editor.enableNativeCipboard=window==window.top&&!mxClient.IS_FF&&null!=navigator.clipboard;Editor.sketchMode=!1;Editor.darkMode=!1;Editor.darkColor="#2a2a2a";Editor.lightColor="#f0f0f0";Editor.isDarkMode=function(b){return Editor.darkMode||"dark"==uiTheme};Editor.helpImage=Editor.isDarkMode()&&mxClient.IS_SVG?Editor.darkHelpImage:Editor.lightHelpImage;
2047Editor.checkmarkImage=Editor.isDarkMode()&&mxClient.IS_SVG?Editor.darkCheckmarkImage:Editor.lightCheckmarkImage;mxUtils.extend(Editor,mxEventSource);Editor.prototype.originalNoForeignObject=mxClient.NO_FO;Editor.prototype.transparentImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhMAAwAIAAAP///wAAACH5BAEAAAAALAAAAAAwADAAAAIxhI+py+0Po5y02ouz3rz7D4biSJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8Si8egpAAA7":IMAGE_PATH+"/transparent.gif";Editor.prototype.extendCanvas=!0;Editor.prototype.chromeless=!1;
2048Editor.prototype.cancelFirst=!0;Editor.prototype.enabled=!0;Editor.prototype.filename=null;Editor.prototype.modified=!1;Editor.prototype.autosave=!0;Editor.prototype.initialTopSpacing=0;Editor.prototype.appName=document.title;Editor.prototype.editBlankUrl=window.location.protocol+"//"+window.location.host+"/";Editor.prototype.defaultGraphOverflow="hidden";Editor.prototype.init=function(){};Editor.prototype.isChromelessView=function(){return this.chromeless};
2049Editor.prototype.setAutosave=function(b){this.autosave=b;this.fireEvent(new mxEventObject("autosaveChanged"))};Editor.prototype.getEditBlankUrl=function(b){return this.editBlankUrl+b};
2050Editor.prototype.editAsNew=function(b,c){var e=null!=c?"?title="+encodeURIComponent(c):"";null!=urlParams.ui&&(e+=(0<e.length?"&":"?")+"ui="+urlParams.ui);if("undefined"!==typeof window.postMessage&&(null==document.documentMode||10<=document.documentMode)){var k=null,g=mxUtils.bind(this,function(c){"ready"==c.data&&c.source==k&&(mxEvent.removeListener(window,"message",g),k.postMessage(b,"*"))});mxEvent.addListener(window,"message",g);k=this.graph.openLink(this.getEditBlankUrl(e+(0<e.length?"&":"?")+
2051"client=1"),null,!0)}else this.graph.openLink(this.getEditBlankUrl(e)+"#R"+encodeURIComponent(b))};Editor.prototype.createGraph=function(b,c){var e=new Graph(null,c,null,null,b);e.transparentBackground=!1;var k=e.isCssTransformsSupported,g=this;e.isCssTransformsSupported=function(){return k.apply(this,arguments)&&(!g.chromeless||!mxClient.IS_SF)};this.chromeless||(e.isBlankLink=function(b){return!this.isExternalProtocol(b)});return e};
2052Editor.prototype.resetGraph=function(){this.graph.gridEnabled=this.graph.defaultGridEnabled&&(!this.isChromelessView()||"1"==urlParams.grid);this.graph.graphHandler.guidesEnabled=!0;this.graph.setTooltips(!0);this.graph.setConnectable(!0);this.graph.foldingEnabled=!0;this.graph.scrollbars=this.graph.defaultScrollbars;this.graph.pageVisible=this.graph.defaultPageVisible;this.graph.pageBreaksVisible=this.graph.pageVisible;this.graph.preferPageSize=this.graph.pageBreaksVisible;this.graph.background=
2053null;this.graph.pageScale=mxGraph.prototype.pageScale;this.graph.pageFormat=mxGraph.prototype.pageFormat;this.graph.currentScale=1;this.graph.currentTranslate.x=0;this.graph.currentTranslate.y=0;this.updateGraphComponents();this.graph.view.setScale(1)};
2054Editor.prototype.readGraphState=function(b){var c=b.getAttribute("grid");if(null==c||""==c)c=this.graph.defaultGridEnabled?"1":"0";this.graph.gridEnabled="0"!=c&&(!this.isChromelessView()||"1"==urlParams.grid);this.graph.gridSize=parseFloat(b.getAttribute("gridSize"))||mxGraph.prototype.gridSize;this.graph.graphHandler.guidesEnabled="0"!=b.getAttribute("guides");this.graph.setTooltips("0"!=b.getAttribute("tooltips"));this.graph.setConnectable("0"!=b.getAttribute("connect"));this.graph.connectionArrowsEnabled=
2055"0"!=b.getAttribute("arrows");this.graph.foldingEnabled="0"!=b.getAttribute("fold");this.isChromelessView()&&this.graph.foldingEnabled&&(this.graph.foldingEnabled="1"==urlParams.nav,this.graph.cellRenderer.forceControlClickHandler=this.graph.foldingEnabled);c=parseFloat(b.getAttribute("pageScale"));!isNaN(c)&&0<c?this.graph.pageScale=c:this.graph.pageScale=mxGraph.prototype.pageScale;this.graph.isLightboxView()||this.graph.isViewer()?this.graph.pageVisible=!1:(c=b.getAttribute("page"),this.graph.pageVisible=
2056null!=c?"0"!=c:this.graph.defaultPageVisible);this.graph.pageBreaksVisible=this.graph.pageVisible;this.graph.preferPageSize=this.graph.pageBreaksVisible;var c=parseFloat(b.getAttribute("pageWidth")),e=parseFloat(b.getAttribute("pageHeight"));isNaN(c)||isNaN(e)||(this.graph.pageFormat=new mxRectangle(0,0,c,e));b=b.getAttribute("background");this.graph.background=null!=b&&0<b.length?b:null};
2057Editor.prototype.setGraphXml=function(b){if(null!=b){var c=new mxCodec(b.ownerDocument);if("mxGraphModel"==b.nodeName){this.graph.model.beginUpdate();try{this.graph.model.clear(),this.graph.view.scale=1,this.readGraphState(b),this.updateGraphComponents(),c.decode(b,this.graph.getModel())}finally{this.graph.model.endUpdate()}this.fireEvent(new mxEventObject("resetGraphView"))}else if("root"==b.nodeName){this.resetGraph();var e=c.document.createElement("mxGraphModel");e.appendChild(b);c.decode(e,this.graph.getModel());
2058this.updateGraphComponents();this.fireEvent(new mxEventObject("resetGraphView"))}else throw{message:mxResources.get("cannotOpenFile"),node:b,toString:function(){return this.message}};}else this.resetGraph(),this.graph.model.clear(),this.fireEvent(new mxEventObject("resetGraphView"))};
2059Editor.prototype.getGraphXml=function(b){b=(null!=b?b:1)?(new mxCodec(mxUtils.createXmlDocument())).encode(this.graph.getModel()):this.graph.encodeCells(mxUtils.sortCells(this.graph.model.getTopmostCells(this.graph.getSelectionCells())));if(0!=this.graph.view.translate.x||0!=this.graph.view.translate.y)b.setAttribute("dx",Math.round(100*this.graph.view.translate.x)/100),b.setAttribute("dy",Math.round(100*this.graph.view.translate.y)/100);b.setAttribute("grid",this.graph.isGridEnabled()?"1":"0");b.setAttribute("gridSize",
2060this.graph.gridSize);b.setAttribute("guides",this.graph.graphHandler.guidesEnabled?"1":"0");b.setAttribute("tooltips",this.graph.tooltipHandler.isEnabled()?"1":"0");b.setAttribute("connect",this.graph.connectionHandler.isEnabled()?"1":"0");b.setAttribute("arrows",this.graph.connectionArrowsEnabled?"1":"0");b.setAttribute("fold",this.graph.foldingEnabled?"1":"0");b.setAttribute("page",this.graph.pageVisible?"1":"0");b.setAttribute("pageScale",this.graph.pageScale);b.setAttribute("pageWidth",this.graph.pageFormat.width);
2061b.setAttribute("pageHeight",this.graph.pageFormat.height);null!=this.graph.background&&b.setAttribute("background",this.graph.background);return b};Editor.prototype.updateGraphComponents=function(){var b=this.graph;null!=b.container&&(b.view.validateBackground(),b.container.style.overflow=b.scrollbars?"auto":this.defaultGraphOverflow,this.fireEvent(new mxEventObject("updateGraphComponents")))};Editor.prototype.setModified=function(b){this.modified=b};
2062Editor.prototype.setFilename=function(b){this.filename=b};
2063Editor.prototype.createUndoManager=function(){var b=this.graph,c=new mxUndoManager;this.undoListener=function(b,e){c.undoableEditHappened(e.getProperty("edit"))};var e=mxUtils.bind(this,function(b,c){this.undoListener.apply(this,arguments)});b.getModel().addListener(mxEvent.UNDO,e);b.getView().addListener(mxEvent.UNDO,e);e=function(c,e){var g=b.getSelectionCellsForChanges(e.getProperty("edit").changes,function(b){return!(b instanceof mxChildChange)});if(0<g.length){b.getModel();for(var k=[],d=0;d<
2064g.length;d++)null!=b.view.getState(g[d])&&k.push(g[d]);b.setSelectionCells(k)}};c.addListener(mxEvent.UNDO,e);c.addListener(mxEvent.REDO,e);return c};Editor.prototype.initStencilRegistry=function(){};Editor.prototype.destroy=function(){null!=this.graph&&(this.graph.destroy(),this.graph=null)};OpenFile=function(b){this.consumer=this.producer=null;this.done=b;this.args=null};OpenFile.prototype.setConsumer=function(b){this.consumer=b;this.execute()};
2065OpenFile.prototype.setData=function(){this.args=arguments;this.execute()};OpenFile.prototype.error=function(b){this.cancel(!0);mxUtils.alert(b)};OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.args&&(this.cancel(!1),this.consumer.apply(this,this.args))};OpenFile.prototype.cancel=function(b){null!=this.done&&this.done(null!=b?b:!0)};
2066function Dialog(b,c,e,k,g,p,t,d,f,l,q){var m=f?57:0,n=e,u=k,v=f?0:64,y=Editor.inlineFullscreen||null==b.embedViewport?mxUtils.getDocumentSize():mxUtils.clone(b.embedViewport);null==b.embedViewport&&null!=window.innerHeight&&(y.height=window.innerHeight);var x=y.height,D=Math.max(1,Math.round((y.width-e-v)/2)),I=Math.max(1,Math.round((x-k-b.footerHeight)/3));c.style.maxHeight="100%";e=null!=document.body?Math.min(e,document.body.scrollWidth-v):e;k=Math.min(k,x-v);0<b.dialogs.length&&(this.zIndex+=
20672*b.dialogs.length);null==this.bg&&(this.bg=b.createDiv("background"),this.bg.style.position="absolute",this.bg.style.background=Dialog.backdropColor,this.bg.style.height=x+"px",this.bg.style.right="0px",this.bg.style.zIndex=this.zIndex-2,mxUtils.setOpacity(this.bg,this.bgOpacity));y=mxUtils.getDocumentScrollOrigin(document);this.bg.style.left=y.x+"px";this.bg.style.top=y.y+"px";D+=y.x;I+=y.y;Editor.inlineFullscreen||null==b.embedViewport||(this.bg.style.height=mxUtils.getDocumentSize().height+"px",
2068I+=b.embedViewport.y,D+=b.embedViewport.x);g&&document.body.appendChild(this.bg);var B=b.createDiv(f?"geTransDialog":"geDialog");g=this.getPosition(D,I,e,k);D=g.x;I=g.y;B.style.width=e+"px";B.style.height=k+"px";B.style.left=D+"px";B.style.top=I+"px";B.style.zIndex=this.zIndex;B.appendChild(c);document.body.appendChild(B);!d&&c.clientHeight>B.clientHeight-v&&(c.style.overflowY="auto");c.style.overflowX="hidden";if(p&&(p=document.createElement("img"),p.setAttribute("src",Dialog.prototype.closeImage),
2069p.setAttribute("title",mxResources.get("close")),p.className="geDialogClose",p.style.top=I+14+"px",p.style.left=D+e+38-m+"px",p.style.zIndex=this.zIndex,mxEvent.addListener(p,"click",mxUtils.bind(this,function(){b.hideDialog(!0)})),document.body.appendChild(p),this.dialogImg=p,!q)){var F=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(b){F=!0}),null,mxUtils.bind(this,function(d){F&&(b.hideDialog(!0),F=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=l){var f=l();
2070null!=f&&(n=e=f.w,u=k=f.h)}f=mxUtils.getDocumentSize();x=f.height;this.bg.style.height=x+"px";Editor.inlineFullscreen||null==b.embedViewport||(this.bg.style.height=mxUtils.getDocumentSize().height+"px");D=Math.max(1,Math.round((f.width-e-v)/2));I=Math.max(1,Math.round((x-k-b.footerHeight)/3));e=null!=document.body?Math.min(n,document.body.scrollWidth-v):n;k=Math.min(u,x-v);f=this.getPosition(D,I,e,k);D=f.x;I=f.y;B.style.left=D+"px";B.style.top=I+"px";B.style.width=e+"px";B.style.height=k+"px";!d&&
2071c.clientHeight>B.clientHeight-v&&(c.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=I+14+"px",this.dialogImg.style.left=D+e+38-m+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=t;this.container=B;b.editor.fireEvent(new mxEventObject("showDialog"))}Dialog.backdropColor="white";Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-2;
2072Dialog.prototype.noColorImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkEzRDlBMUUwODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkEzRDlBMUUxODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTNEOUExREU4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTNEOUExREY4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5xh3fmAAAABlBMVEX////MzMw46qqDAAAAGElEQVR42mJggAJGKGAYIIGBth8KAAIMAEUQAIElnLuQAAAAAElFTkSuQmCC":IMAGE_PATH+
2073"/nocolor.png";Dialog.prototype.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAQMAAADaX5RTAAAABlBMVEV7mr3///+wksspAAAAAnRSTlP/AOW3MEoAAAAdSURBVAgdY9jXwCDDwNDRwHCwgeExmASygSL7GgB12QiqNHZZIwAAAABJRU5ErkJggg==":IMAGE_PATH+"/close.png";
2074Dialog.prototype.clearImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQAKAIABAMDAwP///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUIzOEM1NzI4NjEyMTFFMUEzMkNDMUE3NjZERDE2QjIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUIzOEM1NzM4NjEyMTFFMUEzMkNDMUE3NjZERDE2QjIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QjM4QzU3MDg2MTIxMUUxQTMyQ0MxQTc2NkREMTZCMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QjM4QzU3MTg2MTIxMUUxQTMyQ0MxQTc2NkREMTZCMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAEALAAAAAANAAoAAAIXTGCJebD9jEOTqRlttXdrB32PJ2ncyRQAOw==":IMAGE_PATH+
2075"/clear.gif";Dialog.prototype.bgOpacity=80;Dialog.prototype.getPosition=function(b,c){return new mxPoint(b,c)};Dialog.prototype.close=function(b,c){if(null!=this.onDialogClose){if(0==this.onDialogClose(b,c))return!1;this.onDialogClose=null}null!=this.dialogImg&&(this.dialogImg.parentNode.removeChild(this.dialogImg),this.dialogImg=null);null!=this.bg&&null!=this.bg.parentNode&&this.bg.parentNode.removeChild(this.bg);mxEvent.removeListener(window,"resize",this.resizeListener);this.container.parentNode.removeChild(this.container)};
2076var ErrorDialog=function(b,c,e,k,g,p,t,d,f,l,q){f=null!=f?f:!0;var m=document.createElement("div");m.style.textAlign="center";if(null!=c){var n=document.createElement("div");n.style.padding="0px";n.style.margin="0px";n.style.fontSize="18px";n.style.paddingBottom="16px";n.style.marginBottom="10px";n.style.borderBottom="1px solid #c0c0c0";n.style.color="gray";n.style.whiteSpace="nowrap";n.style.textOverflow="ellipsis";n.style.overflow="hidden";mxUtils.write(n,c);n.setAttribute("title",c);m.appendChild(n)}c=
2077document.createElement("div");c.style.lineHeight="1.2em";c.style.padding="6px";c.innerHTML=e;m.appendChild(c);e=document.createElement("div");e.style.marginTop="12px";e.style.textAlign="center";null!=p&&(c=mxUtils.button(mxResources.get("tryAgain"),function(){b.hideDialog();p()}),c.className="geBtn",e.appendChild(c),e.style.textAlign="center");null!=l&&(l=mxUtils.button(l,function(){null!=q&&q()}),l.className="geBtn",e.appendChild(l));var u=mxUtils.button(k,function(){f&&b.hideDialog();null!=g&&g()});
2078u.className="geBtn";e.appendChild(u);null!=t&&(k=mxUtils.button(t,function(){f&&b.hideDialog();null!=d&&d()}),k.className="geBtn gePrimaryBtn",e.appendChild(k));this.init=function(){u.focus()};m.appendChild(e);this.container=m},PrintDialog=function(b,c){this.create(b,c)};
2079PrintDialog.prototype.create=function(b){function c(b){var f=d.checked||l.checked,c=parseInt(m.value)/100;isNaN(c)&&(c=1,m.value="100%");var c=.75*c,g=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,k=1/e.pageScale;if(f){var n=d.checked?1:parseInt(q.value);isNaN(n)||(k=mxUtils.getScaleForPageCount(n,e,g))}e.getGraphBounds();var u=n=0,g=mxRectangle.fromRectangle(g);g.width=Math.ceil(g.width*c);g.height=Math.ceil(g.height*c);k*=c;!f&&e.pageVisible?(c=e.getPageLayout(),n-=c.x*g.width,u-=c.y*g.height):
2080f=!0;f=PrintDialog.createPrintPreview(e,k,g,0,n,u,f);f.open();b&&PrintDialog.printPreview(f)}var e=b.editor.graph,k,g,p=document.createElement("table");p.style.width="100%";p.style.height="100%";var t=document.createElement("tbody");k=document.createElement("tr");var d=document.createElement("input");d.setAttribute("type","checkbox");g=document.createElement("td");g.setAttribute("colspan","2");g.style.fontSize="10pt";g.appendChild(d);var f=document.createElement("span");mxUtils.write(f," "+mxResources.get("fitPage"));
2081g.appendChild(f);mxEvent.addListener(f,"click",function(b){d.checked=!d.checked;l.checked=!d.checked;mxEvent.consume(b)});mxEvent.addListener(d,"change",function(){l.checked=!d.checked});k.appendChild(g);t.appendChild(k);k=k.cloneNode(!1);var l=document.createElement("input");l.setAttribute("type","checkbox");g=document.createElement("td");g.style.fontSize="10pt";g.appendChild(l);f=document.createElement("span");mxUtils.write(f," "+mxResources.get("posterPrint")+":");g.appendChild(f);mxEvent.addListener(f,
2082"click",function(b){l.checked=!l.checked;d.checked=!l.checked;mxEvent.consume(b)});k.appendChild(g);var q=document.createElement("input");q.setAttribute("value","1");q.setAttribute("type","number");q.setAttribute("min","1");q.setAttribute("size","4");q.setAttribute("disabled","disabled");q.style.width="50px";g=document.createElement("td");g.style.fontSize="10pt";g.appendChild(q);mxUtils.write(g," "+mxResources.get("pages")+" (max)");k.appendChild(g);t.appendChild(k);mxEvent.addListener(l,"change",
2083function(){l.checked?q.removeAttribute("disabled"):q.setAttribute("disabled","disabled");d.checked=!l.checked});k=k.cloneNode(!1);g=document.createElement("td");mxUtils.write(g,mxResources.get("pageScale")+":");k.appendChild(g);g=document.createElement("td");var m=document.createElement("input");m.setAttribute("value","100 %");m.setAttribute("size","5");m.style.width="50px";g.appendChild(m);k.appendChild(g);t.appendChild(k);k=document.createElement("tr");g=document.createElement("td");g.colSpan=2;
2084g.style.paddingTop="20px";g.setAttribute("align","right");f=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});f.className="geBtn";b.editor.cancelFirst&&g.appendChild(f);if(PrintDialog.previewEnabled){var n=mxUtils.button(mxResources.get("preview"),function(){b.hideDialog();c(!1)});n.className="geBtn";g.appendChild(n)}n=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){b.hideDialog();c(!0)});n.className="geBtn gePrimaryBtn";g.appendChild(n);b.editor.cancelFirst||
2085g.appendChild(f);k.appendChild(g);t.appendChild(k);p.appendChild(t);this.container=p};PrintDialog.printPreview=function(b){try{if(null!=b.wnd){var c=function(){b.wnd.focus();b.wnd.print();b.wnd.close()};mxClient.IS_GC?window.setTimeout(c,500):c()}}catch(e){}};
2086PrintDialog.createPrintPreview=function(b,c,e,k,g,p,t){c=new mxPrintPreview(b,c,e,k,g,p);c.title=mxResources.get("preview");c.printBackgroundImage=!0;c.autoOrigin=t;b=b.background;if(null==b||""==b||b==mxConstants.NONE)b="#ffffff";c.backgroundColor=b;var d=c.writeHead;c.writeHead=function(b){d.apply(this,arguments);b.writeln('<style type="text/css">');b.writeln("@media screen {");b.writeln("  body > div { padding:30px;box-sizing:content-box; }");b.writeln("}");b.writeln("</style>")};return c};
2087PrintDialog.previewEnabled=!0;
2088var PageSetupDialog=function(b){function c(){null==q||q==mxConstants.NONE?(l.style.backgroundColor="",l.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(l.style.backgroundColor=q,l.style.backgroundImage="")}function e(){var d=v;null!=d&&Graph.isPageLink(d.src)&&(d=b.createImageForPageLink(d.src,null));null!=d&&null!=d.src?(u.setAttribute("src",d.src),u.style.display=""):(u.removeAttribute("src"),u.style.display="none")}var k=b.editor.graph,g,p,t=document.createElement("table");t.style.width=
2089"100%";t.style.height="100%";var d=document.createElement("tbody");g=document.createElement("tr");p=document.createElement("td");p.style.verticalAlign="top";p.style.fontSize="10pt";mxUtils.write(p,mxResources.get("paperSize")+":");g.appendChild(p);p=document.createElement("td");p.style.verticalAlign="top";p.style.fontSize="10pt";var f=PageSetupDialog.addPageFormatPanel(p,"pagesetupdialog",k.pageFormat);g.appendChild(p);d.appendChild(g);g=document.createElement("tr");p=document.createElement("td");
2090mxUtils.write(p,mxResources.get("background")+":");g.appendChild(p);p=document.createElement("td");p.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var l=document.createElement("button");l.style.width="22px";l.style.height="22px";l.style.cursor="pointer";l.style.marginRight="20px";l.style.backgroundPosition="center center";l.style.backgroundRepeat="no-repeat";mxClient.IS_FF&&(l.style.position="relative",l.style.top="-6px");var q=k.background;c();mxEvent.addListener(l,
2091"click",function(d){b.pickColor(q||"none",function(b){q=b;c()});mxEvent.consume(d)});p.appendChild(l);mxUtils.write(p,mxResources.get("gridSize")+":");var m=document.createElement("input");m.setAttribute("type","number");m.setAttribute("min","0");m.style.width="40px";m.style.marginLeft="6px";m.value=k.getGridSize();p.appendChild(m);mxEvent.addListener(m,"change",function(){var b=parseInt(m.value);m.value=Math.max(1,isNaN(b)?k.getGridSize():b)});g.appendChild(p);d.appendChild(g);g=document.createElement("tr");
2092p=document.createElement("td");mxUtils.write(p,mxResources.get("image")+":");g.appendChild(p);p=document.createElement("td");var n=document.createElement("button");n.className="geBtn";n.style.margin="0px";mxUtils.write(n,mxResources.get("change")+"...");var u=document.createElement("img");u.setAttribute("valign","middle");u.style.verticalAlign="middle";u.style.border="1px solid lightGray";u.style.borderRadius="4px";u.style.marginRight="14px";u.style.maxWidth="100px";u.style.cursor="pointer";u.style.height=
2093"60px";u.style.padding="4px";var v=k.backgroundImage,y=function(d){b.showBackgroundImageDialog(function(b,d){d||(v=b,e())},v);mxEvent.consume(d)};mxEvent.addListener(n,"click",y);mxEvent.addListener(u,"click",y);e();p.appendChild(u);p.appendChild(n);g.appendChild(p);d.appendChild(g);g=document.createElement("tr");p=document.createElement("td");p.colSpan=2;p.style.paddingTop="16px";p.setAttribute("align","right");n=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});n.className="geBtn";
2094b.editor.cancelFirst&&p.appendChild(n);y=mxUtils.button(mxResources.get("apply"),function(){b.hideDialog();var d=parseInt(m.value);isNaN(d)||k.gridSize===d||k.setGridSize(d);d=new ChangePageSetup(b,q,v,f.get());d.ignoreColor=k.background==q;d.ignoreImage=(null!=k.backgroundImage?k.backgroundImage.src:null)===(null!=v?v.src:null);k.pageFormat.width==d.previousFormat.width&&k.pageFormat.height==d.previousFormat.height&&d.ignoreColor&&d.ignoreImage||k.model.execute(d)});y.className="geBtn gePrimaryBtn";
2095p.appendChild(y);b.editor.cancelFirst||p.appendChild(n);g.appendChild(p);d.appendChild(g);t.appendChild(d);this.container=t};
2096PageSetupDialog.addPageFormatPanel=function(b,c,e,k){function g(b,c,l){if(l||m!=document.activeElement&&n!=document.activeElement){b=!1;for(c=0;c<v.length;c++)l=v[c],I?"custom"==l.key&&(d.value=l.key,I=!1):null!=l.format&&("a4"==l.key?826==e.width?(e=mxRectangle.fromRectangle(e),e.width=827):826==e.height&&(e=mxRectangle.fromRectangle(e),e.height=827):"a5"==l.key&&(584==e.width?(e=mxRectangle.fromRectangle(e),e.width=583):584==e.height&&(e=mxRectangle.fromRectangle(e),e.height=583)),e.width==l.format.width&&
2097e.height==l.format.height?(d.value=l.key,p.setAttribute("checked","checked"),p.defaultChecked=!0,p.checked=!0,t.removeAttribute("checked"),t.defaultChecked=!1,t.checked=!1,b=!0):e.width==l.format.height&&e.height==l.format.width&&(d.value=l.key,p.removeAttribute("checked"),p.defaultChecked=!1,p.checked=!1,t.setAttribute("checked","checked"),t.defaultChecked=!0,b=t.checked=!0));b?(f.style.display="",q.style.display="none"):(m.value=e.width/100,n.value=e.height/100,p.setAttribute("checked","checked"),
2098d.value="custom",f.style.display="none",q.style.display="")}}c="format-"+c;var p=document.createElement("input");p.setAttribute("name",c);p.setAttribute("type","radio");p.setAttribute("value","portrait");var t=document.createElement("input");t.setAttribute("name",c);t.setAttribute("type","radio");t.setAttribute("value","landscape");var d=document.createElement("select");d.style.marginBottom="8px";d.style.borderRadius="4px";d.style.border="1px solid rgb(160, 160, 160)";d.style.width="206px";var f=
2099document.createElement("div");f.style.marginLeft="4px";f.style.width="210px";f.style.height="24px";p.style.marginRight="6px";f.appendChild(p);c=document.createElement("span");c.style.maxWidth="100px";mxUtils.write(c,mxResources.get("portrait"));f.appendChild(c);t.style.marginLeft="10px";t.style.marginRight="6px";f.appendChild(t);var l=document.createElement("span");l.style.width="100px";mxUtils.write(l,mxResources.get("landscape"));f.appendChild(l);var q=document.createElement("div");q.style.marginLeft=
2100"4px";q.style.width="210px";q.style.height="24px";var m=document.createElement("input");m.setAttribute("size","7");m.style.textAlign="right";q.appendChild(m);mxUtils.write(q," in x ");var n=document.createElement("input");n.setAttribute("size","7");n.style.textAlign="right";q.appendChild(n);mxUtils.write(q," in");f.style.display="none";q.style.display="none";for(var u={},v=PageSetupDialog.getFormats(),y=0;y<v.length;y++){var x=v[y];u[x.key]=x;var D=document.createElement("option");D.setAttribute("value",
2101x.key);mxUtils.write(D,x.title);d.appendChild(D)}var I=!1;g();b.appendChild(d);mxUtils.br(b);b.appendChild(f);b.appendChild(q);var B=e,F=function(b,c){var l=u[d.value];null!=l.format?(m.value=l.format.width/100,n.value=l.format.height/100,q.style.display="none",f.style.display=""):(f.style.display="none",q.style.display="");l=parseFloat(m.value);if(isNaN(l)||0>=l)m.value=e.width/100;l=parseFloat(n.value);if(isNaN(l)||0>=l)n.value=e.height/100;l=new mxRectangle(0,0,Math.floor(100*parseFloat(m.value)),
2102Math.floor(100*parseFloat(n.value)));"custom"!=d.value&&t.checked&&(l=new mxRectangle(0,0,l.height,l.width));c&&I||l.width==B.width&&l.height==B.height||(B=l,null!=k&&k(B))};mxEvent.addListener(c,"click",function(b){p.checked=!0;F(b);mxEvent.consume(b)});mxEvent.addListener(l,"click",function(b){t.checked=!0;F(b);mxEvent.consume(b)});mxEvent.addListener(m,"blur",F);mxEvent.addListener(m,"click",F);mxEvent.addListener(n,"blur",F);mxEvent.addListener(n,"click",F);mxEvent.addListener(t,"change",F);mxEvent.addListener(p,
2103"change",F);mxEvent.addListener(d,"change",function(b){I="custom"==d.value;F(b,!0)});F();return{set:function(b){e=b;g(null,null,!0)},get:function(){return B},widthInput:m,heightInput:n}};
2104PageSetupDialog.getFormats=function(){return[{key:"letter",title:'US-Letter (8,5" x 11")',format:mxConstants.PAGE_FORMAT_LETTER_PORTRAIT},{key:"legal",title:'US-Legal (8,5" x 14")',format:new mxRectangle(0,0,850,1400)},{key:"tabloid",title:'US-Tabloid (11" x 17")',format:new mxRectangle(0,0,1100,1700)},{key:"executive",title:'US-Executive (7" x 10")',format:new mxRectangle(0,0,700,1E3)},{key:"a0",title:"A0 (841 mm x 1189 mm)",format:new mxRectangle(0,0,3300,4681)},{key:"a1",title:"A1 (594 mm x 841 mm)",
2105format:new mxRectangle(0,0,2339,3300)},{key:"a2",title:"A2 (420 mm x 594 mm)",format:new mxRectangle(0,0,1654,2336)},{key:"a3",title:"A3 (297 mm x 420 mm)",format:new mxRectangle(0,0,1169,1654)},{key:"a4",title:"A4 (210 mm x 297 mm)",format:mxConstants.PAGE_FORMAT_A4_PORTRAIT},{key:"a5",title:"A5 (148 mm x 210 mm)",format:new mxRectangle(0,0,583,827)},{key:"a6",title:"A6 (105 mm x 148 mm)",format:new mxRectangle(0,0,413,583)},{key:"a7",title:"A7 (74 mm x 105 mm)",format:new mxRectangle(0,0,291,413)},
2106{key:"b4",title:"B4 (250 mm x 353 mm)",format:new mxRectangle(0,0,980,1390)},{key:"b5",title:"B5 (176 mm x 250 mm)",format:new mxRectangle(0,0,690,980)},{key:"16-9",title:"16:9 (1600 x 900)",format:new mxRectangle(0,0,900,1600)},{key:"16-10",title:"16:10 (1920 x 1200)",format:new mxRectangle(0,0,1200,1920)},{key:"4-3",title:"4:3 (1600 x 1200)",format:new mxRectangle(0,0,1200,1600)},{key:"custom",title:mxResources.get("custom"),format:null}]};
2107var FilenameDialog=function(b,c,e,k,g,p,t,d,f,l,q,m){f=null!=f?f:!0;var n,u,v=document.createElement("table"),y=document.createElement("tbody");v.style.position="absolute";v.style.top="30px";v.style.left="20px";n=document.createElement("tr");u=document.createElement("td");u.style.textOverflow="ellipsis";u.style.textAlign="right";u.style.maxWidth="100px";u.style.fontSize="10pt";u.style.width="84px";mxUtils.write(u,(g||mxResources.get("filename"))+":");n.appendChild(u);var x=document.createElement("input");
2108x.setAttribute("value",c||"");x.style.marginLeft="4px";x.style.width=null!=m?m+"px":"180px";var D=mxUtils.button(e,function(){if(null==p||p(x.value))f&&b.hideDialog(),k(x.value)});D.className="geBtn gePrimaryBtn";this.init=function(){if(null!=g||null==t)if(x.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?x.select():document.execCommand("selectAll",!1,null),Graph.fileSupport){var b=v.parentNode;if(null!=b){var d=null;mxEvent.addListener(b,"dragleave",function(b){null!=d&&(d.style.backgroundColor=
2109"",d=null);b.stopPropagation();b.preventDefault()});mxEvent.addListener(b,"dragover",mxUtils.bind(this,function(b){null==d&&(!mxClient.IS_IE||10<document.documentMode)&&(d=x,d.style.backgroundColor="#ebf2f9");b.stopPropagation();b.preventDefault()}));mxEvent.addListener(b,"drop",mxUtils.bind(this,function(b){null!=d&&(d.style.backgroundColor="",d=null);0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")&&(x.value=decodeURIComponent(b.dataTransfer.getData("text/uri-list")),D.click());b.stopPropagation();
2110b.preventDefault()}))}}};u=document.createElement("td");u.style.whiteSpace="nowrap";u.appendChild(x);n.appendChild(u);if(null!=g||null==t)y.appendChild(n),null!=q&&(u.appendChild(FilenameDialog.createTypeHint(b,x,q)),null!=b.editor.diagramFileTypes&&(n=document.createElement("tr"),u=document.createElement("td"),u.style.textOverflow="ellipsis",u.style.textAlign="right",u.style.maxWidth="100px",u.style.fontSize="10pt",u.style.width="84px",mxUtils.write(u,mxResources.get("type")+":"),n.appendChild(u),
2111u=document.createElement("td"),u.style.whiteSpace="nowrap",n.appendChild(u),c=FilenameDialog.createFileTypes(b,x,b.editor.diagramFileTypes),c.style.marginLeft="4px",c.style.width="198px",u.appendChild(c),x.style.width=null!=m?m-40+"px":"190px",n.appendChild(u),y.appendChild(n)));null!=t&&(n=document.createElement("tr"),u=document.createElement("td"),u.colSpan=2,u.appendChild(t),n.appendChild(u),y.appendChild(n));n=document.createElement("tr");u=document.createElement("td");u.colSpan=2;u.style.paddingTop=
2112null!=q?"12px":"20px";u.style.whiteSpace="nowrap";u.setAttribute("align","right");q=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog();null!=l&&l()});q.className="geBtn";b.editor.cancelFirst&&u.appendChild(q);null!=d&&(m=mxUtils.button(mxResources.get("help"),function(){b.editor.graph.openLink(d)}),m.className="geBtn",u.appendChild(m));mxEvent.addListener(x,"keypress",function(b){13==b.keyCode&&D.click()});u.appendChild(D);b.editor.cancelFirst||u.appendChild(q);n.appendChild(u);y.appendChild(n);
2113v.appendChild(y);this.container=v};FilenameDialog.filenameHelpLink=null;
2114FilenameDialog.createTypeHint=function(b,c,e){var k=document.createElement("img");k.style.backgroundPosition="center bottom";k.style.backgroundRepeat="no-repeat";k.style.margin="2px 0 0 4px";k.style.verticalAlign="top";k.style.cursor="pointer";k.style.height="16px";k.style.width="16px";mxUtils.setOpacity(k,70);var g=function(){k.setAttribute("src",Editor.helpImage);k.setAttribute("title",mxResources.get("help"));for(var b=0;b<e.length;b++)if(0<e[b].ext.length&&c.value.toLowerCase().substring(c.value.length-
2115e[b].ext.length-1)=="."+e[b].ext){k.setAttribute("title",mxResources.get(e[b].title));break}};mxEvent.addListener(c,"keyup",g);mxEvent.addListener(c,"change",g);mxEvent.addListener(k,"click",function(c){var e=k.getAttribute("title");k.getAttribute("src")==Editor.helpImage?b.editor.graph.openLink(FilenameDialog.filenameHelpLink):""!=e&&b.showError(null,e,mxResources.get("help"),function(){b.editor.graph.openLink(FilenameDialog.filenameHelpLink)},null,mxResources.get("ok"),null,null,null,340,90);mxEvent.consume(c)});
2116g();return k};
2117FilenameDialog.createFileTypes=function(b,c,e){var k=document.createElement("select");for(b=0;b<e.length;b++){var g=document.createElement("option");g.setAttribute("value",b);mxUtils.write(g,mxResources.get(e[b].description)+" (."+e[b].extension+")");k.appendChild(g)}mxEvent.addListener(k,"change",function(b){b=e[k.value].extension;var g=c.value.lastIndexOf(".drawio."),g=0<g?g:c.value.lastIndexOf(".");"drawio"!=b&&(b="drawio."+b);c.value=0<g?c.value.substring(0,g+1)+b:c.value+"."+b;"createEvent"in
2118document?(b=document.createEvent("HTMLEvents"),b.initEvent("change",!1,!0),c.dispatchEvent(b)):c.fireEvent("onchange")});b=function(b){b=c.value.toLowerCase();for(var g=0,d=0;d<e.length;d++){var f=e[d].extension,l=null;"drawio"!=f&&(l=f,f=".drawio."+f);if(b.substring(b.length-f.length-1)=="."+f||null!=l&&b.substring(b.length-l.length-1)=="."+l){g=d;break}}k.value=g};mxEvent.addListener(c,"change",b);mxEvent.addListener(c,"keyup",b);b();return k};
2119(function(){mxGraphView.prototype.validateBackgroundPage=function(){var b=this.graph;if(null!=b.container&&!b.transparentBackground){if(b.pageVisible){var d=this.getBackgroundPageBounds();if(null==this.backgroundPageShape){for(var f=b.container.firstChild;null!=f&&f.nodeType!=mxConstants.NODETYPE_ELEMENT;)f=f.nextSibling;null!=f&&(this.backgroundPageShape=this.createBackgroundPageShape(d),this.backgroundPageShape.scale=1,this.backgroundPageShape.isShadow=!0,this.backgroundPageShape.dialect=mxConstants.DIALECT_STRICTHTML,
2120this.backgroundPageShape.init(b.container),f.style.position="absolute",b.container.insertBefore(this.backgroundPageShape.node,f),this.backgroundPageShape.redraw(),this.backgroundPageShape.node.className="geBackgroundPage",mxEvent.addListener(this.backgroundPageShape.node,"dblclick",mxUtils.bind(this,function(d){b.dblClick(d)})),mxEvent.addGestureListeners(this.backgroundPageShape.node,mxUtils.bind(this,function(d){b.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(d))}),mxUtils.bind(this,function(d){null!=
2121b.tooltipHandler&&b.tooltipHandler.isHideOnHover()&&b.tooltipHandler.hide();b.isMouseDown&&!mxEvent.isConsumed(d)&&b.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(d))}),mxUtils.bind(this,function(d){b.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(d))})))}else this.backgroundPageShape.scale=1,this.backgroundPageShape.bounds=d,this.backgroundPageShape.redraw()}else null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=null);this.validateBackgroundStyles()}};
2122mxGraphView.prototype.validateBackgroundStyles=function(){var b=this.graph,d=null==b.background||b.background==mxConstants.NONE?b.defaultPageBackgroundColor:b.background,f=null!=d&&this.gridColor!=d.toLowerCase()?this.gridColor:"#ffffff",c="none",e="";if(b.isGridEnabled()||b.gridVisible){e=10;mxClient.IS_SVG?(c=unescape(encodeURIComponent(this.createSvgGrid(f))),c=window.btoa?btoa(c):Base64.encode(c,!0),c="url(data:image/svg+xml;base64,"+c+")",e=b.gridSize*this.scale*this.gridSteps):c="url("+this.gridImage+
2123")";var g=f=0;null!=b.view.backgroundPageShape&&(g=this.getBackgroundPageBounds(),f=1+g.x,g=1+g.y);e=-Math.round(e-mxUtils.mod(this.translate.x*this.scale-f,e))+"px "+-Math.round(e-mxUtils.mod(this.translate.y*this.scale-g,e))+"px"}f=b.view.canvas;null!=f.ownerSVGElement&&(f=f.ownerSVGElement);null!=b.view.backgroundPageShape?(b.view.backgroundPageShape.node.style.backgroundPosition=e,b.view.backgroundPageShape.node.style.backgroundImage=c,b.view.backgroundPageShape.node.style.backgroundColor=d,b.view.backgroundPageShape.node.style.borderColor=
2124b.defaultPageBorderColor,b.container.className="geDiagramContainer geDiagramBackdrop",f.style.backgroundImage="none",f.style.backgroundColor=""):(b.container.className="geDiagramContainer",f.style.backgroundPosition=e,f.style.backgroundColor=d,f.style.backgroundImage=c)};mxGraphView.prototype.createSvgGrid=function(b){for(var d=this.graph.gridSize*this.scale;d<this.minGridSize;)d*=2;for(var f=this.gridSteps*d,c=[],e=1;e<this.gridSteps;e++){var g=e*d;c.push("M 0 "+g+" L "+f+" "+g+" M "+g+" 0 L "+g+
2125" "+f)}return'<svg width="'+f+'" height="'+f+'" xmlns="'+mxConstants.NS_SVG+'"><defs><pattern id="grid" width="'+f+'" height="'+f+'" patternUnits="userSpaceOnUse"><path d="'+c.join(" ")+'" fill="none" stroke="'+b+'" opacity="0.2" stroke-width="1"/><path d="M '+f+" 0 L 0 0 0 "+f+'" fill="none" stroke="'+b+'" stroke-width="1"/></pattern></defs><rect width="100%" height="100%" fill="url(#grid)"/></svg>'};var b=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(c,d){b.apply(this,arguments);
2126if(null!=this.shiftPreview1){var f=this.view.canvas;null!=f.ownerSVGElement&&(f=f.ownerSVGElement);var l=this.gridSize*this.view.scale*this.view.gridSteps,l=-Math.round(l-mxUtils.mod(this.view.translate.x*this.view.scale+c,l))+"px "+-Math.round(l-mxUtils.mod(this.view.translate.y*this.view.scale+d,l))+"px";f.style.backgroundPosition=l}};mxGraph.prototype.updatePageBreaks=function(b,d,f){var c=this.view.scale,e=this.view.translate,g=this.pageFormat,k=c*this.pageScale,u=this.view.getBackgroundPageBounds();
2127d=u.width;f=u.height;var v=new mxRectangle(c*e.x,c*e.y,g.width*k,g.height*k),t=(b=b&&Math.min(v.width,v.height)>this.minPageBreakDist)?Math.ceil(f/v.height)-1:0,x=b?Math.ceil(d/v.width)-1:0,p=u.x+d,I=u.y+f;null==this.horizontalPageBreaks&&0<t&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<x&&(this.verticalPageBreaks=[]);b=mxUtils.bind(this,function(b){if(null!=b){for(var d=b==this.horizontalPageBreaks?t:x,f=0;f<=d;f++){var c=b==this.horizontalPageBreaks?[new mxPoint(Math.round(u.x),
2128Math.round(u.y+(f+1)*v.height)),new mxPoint(Math.round(p),Math.round(u.y+(f+1)*v.height))]:[new mxPoint(Math.round(u.x+(f+1)*v.width),Math.round(u.y)),new mxPoint(Math.round(u.x+(f+1)*v.width),Math.round(I))];null!=b[f]?(b[f].points=c,b[f].redraw()):(c=new mxPolyline(c,this.pageBreakColor),c.dialect=this.dialect,c.isDashed=this.pageBreakDashed,c.pointerEvents=!1,c.init(this.view.backgroundPane),c.redraw(),b[f]=c)}for(f=d;f<b.length;f++)b[f].destroy();b.splice(d,b.length-d)}});b(this.horizontalPageBreaks);
2129b(this.verticalPageBreaks)};var c=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(b,d,f){for(var l=0;l<d.length;l++){if(this.graph.isTableCell(d[l])||this.graph.isTableRow(d[l]))return!1;if(this.graph.getModel().isVertex(d[l])){var e=this.graph.getCellGeometry(d[l]);if(null!=e&&e.relative)return!1}}return c.apply(this,arguments)};var e=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var b=
2130e.apply(this,arguments);b.intersects=mxUtils.bind(this,function(d,f){return this.isConnecting()?!0:mxCellMarker.prototype.intersects.apply(b,arguments)});return b};mxGraphView.prototype.createBackgroundPageShape=function(b){return new mxRectangleShape(b,"#ffffff",this.graph.defaultPageBorderColor)};mxGraphView.prototype.getBackgroundPageBounds=function(){var b=this.getGraphBounds(),d=0<b.width?b.x/this.scale-this.translate.x:0,f=0<b.height?b.y/this.scale-this.translate.y:0,c=this.graph.pageFormat,
2131e=this.graph.pageScale,g=c.width*e,c=c.height*e,e=Math.floor(Math.min(0,d)/g),k=Math.floor(Math.min(0,f)/c);return new mxRectangle(this.scale*(this.translate.x+e*g),this.scale*(this.translate.y+k*c),this.scale*(Math.ceil(Math.max(1,d+b.width/this.scale)/g)-e)*g,this.scale*(Math.ceil(Math.max(1,f+b.height/this.scale)/c)-k)*c)};var k=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(b,d){k.apply(this,arguments);this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||
2132this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=b+"px",this.view.backgroundPageShape.node.style.marginTop=d+"px")};var g=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(b,d,f,c,e,k){var l=g.apply(this,arguments);null==k||k||mxEvent.addListener(l,"mousedown",function(b){mxEvent.consume(b)});return l};var p=mxGraphHandler.prototype.isPropagateSelectionCell;mxGraphHandler.prototype.isPropagateSelectionCell=
2133function(b,d,f){var c,e=this.graph.model.getParent(b);if(d)c=this.graph.model.isEdge(b)?null:this.graph.getCellGeometry(b),c=!this.graph.model.isEdge(e)&&!this.graph.isSiblingSelected(b)&&(null!=c&&c.relative||!this.graph.isContainer(e)||this.graph.isPart(b));else if(c=p.apply(this,arguments),this.graph.isTableCell(b)||this.graph.isTableRow(b))c=e,this.graph.isTable(c)||(c=this.graph.model.getParent(c)),c=!this.graph.selectionCellsHandler.isHandled(c)||this.graph.isCellSelected(c)&&this.graph.isToggleEvent(f.getEvent())||
2134this.graph.isCellSelected(b)&&!this.graph.isToggleEvent(f.getEvent())||this.graph.isTableCell(b)&&this.graph.isCellSelected(e);return c};mxPopupMenuHandler.prototype.getCellForPopupEvent=function(b){b=b.getCell();for(var d=this.graph.getModel(),f=d.getParent(b),c=this.graph.view.getState(f),e=this.graph.isCellSelected(b);null!=c&&(d.isVertex(f)||d.isEdge(f));){var g=this.graph.isCellSelected(f),e=e||g;if(g||!e&&(this.graph.isTableCell(b)||this.graph.isTableRow(b)))b=f;f=d.getParent(f)}return b}})();EditorUi=function(b,c,e){mxEventSource.call(this);this.destroyFunctions=[];this.editor=b||new Editor;this.container=c||document.body;var k=this.editor.graph;k.lightbox=e;var g=k.getGraphBounds;k.getGraphBounds=function(b){var d=g.apply(this,arguments);b=this.backgroundImage;if(null!=b){var f=this.view.translate,c=this.view.scale,d=mxRectangle.fromRectangle(d);d.add(new mxRectangle((f.x+b.x)*c,(f.y+b.y)*c,b.width*c,b.height*c))}return d};k.useCssTransforms&&(this.lazyZoomDelay=0);mxClient.IS_SVG?mxPopupMenu.prototype.submenuImage=
2135"data:image/gif;base64,R0lGODlhCQAJAIAAAP///zMzMyH5BAEAAAAALAAAAAAJAAkAAAIPhI8WebHsHopSOVgb26AAADs=":(new Image).src=mxPopupMenu.prototype.submenuImage;mxClient.IS_SVG||null==mxConnectionHandler.prototype.connectImage||((new Image).src=mxConnectionHandler.prototype.connectImage.src);this.editor.chromeless&&!this.editor.editable&&(this.footerHeight=0,k.isEnabled=function(){return!1},k.panningHandler.isForcePanningEvent=function(b){return!mxEvent.isPopupTrigger(b.getEvent())});this.actions=new Actions(this);
2136this.menus=this.createMenus();if(!k.standalone){var p="rounded shadow glass dashed dashPattern labelBackgroundColor labelBorderColor comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle pointerEvents".split(" "),t="shape edgeStyle curved rounded elbow jumpStyle jumpSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle".split(" "),
2137d="curved sourcePerimeterSpacing targetPerimeterSpacing startArrow startFill startSize endArrow endFill endSize".split(" ");this.setDefaultStyle=function(b){try{var d=k.view.getState(b);if(null!=d){var f=b.clone();f.style="";var c=k.getCellStyle(f);b=[];var f=[],e;for(e in d.style)c[e]!=d.style[e]&&(b.push(d.style[e]),f.push(e));for(var l=k.getModel().getStyle(d.cell),g=null!=l?l.split(";"):[],l=0;l<g.length;l++){var q=g[l],m=q.indexOf("=");if(0<=m){e=q.substring(0,m);var n=q.substring(m+1);null!=
2138c[e]&&"none"==n&&(b.push(n),f.push(e))}}k.getModel().isEdge(d.cell)?k.currentEdgeStyle={}:k.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",f,"values",b,"cells",[d.cell]))}}catch(oa){this.handleError(oa)}};this.clearDefaultStyle=function(){k.currentEdgeStyle=mxUtils.clone(k.defaultEdgeStyle);k.currentVertexStyle=mxUtils.clone(k.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var f=["fontFamily","fontSource","fontSize",
2139"fontColor"];for(c=0;c<f.length;c++)0>mxUtils.indexOf(p,f[c])&&p.push(f[c]);var l="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),q=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],["fillColor","gradientColor","gradientDirection"],["align","verticalAlign"],["opacity"],["html"]];for(c=0;c<q.length;c++)for(e=0;e<q[c].length;e++)p.push(q[c][e]);for(c=0;c<t.length;c++)0>
2140mxUtils.indexOf(p,t[c])&&p.push(t[c]);var m=function(b,f,c,e,l,g,m){e=null!=e?e:k.currentVertexStyle;l=null!=l?l:k.currentEdgeStyle;g=null!=g?g:!0;c=null!=c?c:k.getModel();if(m){m=[];for(var H=0;H<b.length;H++)m=m.concat(c.getDescendants(b[H]));b=m}c.beginUpdate();try{for(H=0;H<b.length;H++){var n=b[H],A;if(f)A=["fontSize","fontFamily","fontColor"];else{var v=c.getStyle(n),u=null!=v?v.split(";"):[];A=p.slice();for(var J=0;J<u.length;J++){var x=u[J],t=x.indexOf("=");if(0<=t){var N=x.substring(0,t),
2141y=mxUtils.indexOf(A,N);0<=y&&A.splice(y,1);for(m=0;m<q.length;m++){var Z=q[m];if(0<=mxUtils.indexOf(Z,N))for(var B=0;B<Z.length;B++){var C=mxUtils.indexOf(A,Z[B]);0<=C&&A.splice(C,1)}}}}}var F=c.isEdge(n);m=F?l:e;for(var Q=c.getStyle(n),J=0;J<A.length;J++){var N=A[J],D=m[N];null!=D&&"edgeStyle"!=N&&("shape"!=N||F)&&(!F||g||0>mxUtils.indexOf(d,N))&&(Q=mxUtils.setStyle(Q,N,D))}Editor.simpleLabels&&(Q=mxUtils.setStyle(mxUtils.setStyle(Q,"html",null),"whiteSpace",null));c.setStyle(n,Q)}}finally{c.endUpdate()}return b};
2142k.addListener("cellsInserted",function(b,d){m(d.getProperty("cells"),null,null,null,null,!0,!0)});k.addListener("textInserted",function(b,d){m(d.getProperty("cells"),!0)});this.insertHandler=m;this.createDivs();this.createUi();this.refresh();var n=mxUtils.bind(this,function(b){null==b&&(b=window.event);return k.isEditing()||null!=b&&this.isSelectionAllowed(b)});this.container==document.body&&(this.menubarContainer.onselectstart=n,this.menubarContainer.onmousedown=n,this.toolbarContainer.onselectstart=
2143n,this.toolbarContainer.onmousedown=n,this.diagramContainer.onselectstart=n,this.diagramContainer.onmousedown=n,this.sidebarContainer.onselectstart=n,this.sidebarContainer.onmousedown=n,this.formatContainer.onselectstart=n,this.formatContainer.onmousedown=n,this.footerContainer.onselectstart=n,this.footerContainer.onmousedown=n,null!=this.tabContainer&&(this.tabContainer.onselectstart=n));!this.editor.chromeless||this.editor.editable?(c=function(b){if(null!=b){var d=mxEvent.getSource(b);if("A"==d.nodeName)for(;null!=
2144d;){if("geHint"==d.className)return!0;d=d.parentNode}}return n(b)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",c):this.diagramContainer.oncontextmenu=c):k.panningHandler.usePopupTrigger=!1;k.init(this.diagramContainer);mxClient.IS_SVG&&null!=k.view.getDrawPane()&&(c=k.view.getDrawPane().ownerSVGElement,null!=c&&(c.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=k.graphHandler){var u=
2145k.graphHandler.start;k.graphHandler.start=function(){null!=C.hoverIcons&&C.hoverIcons.reset();u.apply(this,arguments)}}mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(b){var d=mxUtils.getOffset(this.diagramContainer);0<mxEvent.getClientX(b)-d.x-this.diagramContainer.clientWidth||0<mxEvent.getClientY(b)-d.y-this.diagramContainer.clientHeight?this.diagramContainer.setAttribute("title",mxResources.get("panTooltip")):this.diagramContainer.removeAttribute("title")}));var v=
2146!1,y=this.hoverIcons.isResetEvent;this.hoverIcons.isResetEvent=function(b,d){return v||y.apply(this,arguments)};this.keydownHandler=mxUtils.bind(this,function(b){32!=b.which||k.isEditing()?mxEvent.isConsumed(b)||27!=b.keyCode||this.hideDialog(null,!0):(v=!0,this.hoverIcons.reset(),k.container.style.cursor="move",k.isEditing()||mxEvent.getSource(b)!=k.container||mxEvent.consume(b))});mxEvent.addListener(document,"keydown",this.keydownHandler);this.keyupHandler=mxUtils.bind(this,function(b){k.container.style.cursor=
2147"";v=!1});mxEvent.addListener(document,"keyup",this.keyupHandler);var x=k.panningHandler.isForcePanningEvent;k.panningHandler.isForcePanningEvent=function(b){return x.apply(this,arguments)||v||mxEvent.isMouseEvent(b.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(b.getEvent()))&&(!mxEvent.isControlDown(b.getEvent())&&mxEvent.isRightMouseButton(b.getEvent())||mxEvent.isMiddleMouseButton(b.getEvent()))};var D=k.cellEditor.isStopEditingEvent;k.cellEditor.isStopEditingEvent=function(b){return D.apply(this,
2148arguments)||13==b.keyCode&&(!mxClient.IS_SF&&mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b)||mxClient.IS_SF&&mxEvent.isShiftDown(b))};var I=k.isZoomWheelEvent;k.isZoomWheelEvent=function(){return v||I.apply(this,arguments)};var B=!1,F=null,M=null,E=null,K=mxUtils.bind(this,function(){if(null!=this.toolbar&&B!=k.cellEditor.isContentEditing()){for(var b=this.toolbar.container.firstChild,d=[];null!=b;){var f=b.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,b)&&(b.parentNode.removeChild(b),
2149d.push(b));b=f}b=this.toolbar.fontMenu;f=this.toolbar.sizeMenu;if(null==E)this.toolbar.createTextToolbar();else{for(var c=0;c<E.length;c++)this.toolbar.container.appendChild(E[c]);this.toolbar.fontMenu=F;this.toolbar.sizeMenu=M}B=k.cellEditor.isContentEditing();F=b;M=f;E=d}}),C=this,L=k.cellEditor.startEditing;k.cellEditor.startEditing=function(){L.apply(this,arguments);K();if(k.cellEditor.isContentEditing()){var b=!1,d=function(){b||(b=!0,window.setTimeout(function(){var d=k.getSelectedEditingElement();
2150null!=d&&(d=mxUtils.getCurrentStyle(d),null!=d&&null!=C.toolbar&&(C.toolbar.setFontName(Graph.stripQuotes(d.fontFamily)),C.toolbar.setFontSize(parseInt(d.fontSize))));b=!1},0))};mxEvent.addListener(k.cellEditor.textarea,"input",d);mxEvent.addListener(k.cellEditor.textarea,"touchend",d);mxEvent.addListener(k.cellEditor.textarea,"mouseup",d);mxEvent.addListener(k.cellEditor.textarea,"keyup",d);d()}};var O=k.cellEditor.stopEditing;k.cellEditor.stopEditing=function(b,d){try{O.apply(this,arguments),K()}catch(T){C.handleError(T)}};
2151k.container.setAttribute("tabindex","0");k.container.style.cursor="default";if(window.self===window.top&&null!=k.container.parentNode)try{k.container.focus()}catch(N){}var ea=k.fireMouseEvent;k.fireMouseEvent=function(b,d,f){b==mxEvent.MOUSE_DOWN&&this.container.focus();ea.apply(this,arguments)};k.popupMenuHandler.autoExpand=!0;null!=this.menus&&(k.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(b,d,f){this.menus.createPopupMenu(b,d,f)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,
2152function(b){k.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(b);this.getKeyHandler=function(){return keyHandler};k.connectionHandler.addListener(mxEvent.CONNECT,function(b,d){var f=[d.getProperty("cell")];d.getProperty("terminalInserted")&&(f.push(d.getProperty("terminal")),window.setTimeout(function(){null!=C.hoverIcons&&C.hoverIcons.update(k.view.getState(f[f.length-1]))},0));m(f)});this.addListener("styleChanged",mxUtils.bind(this,function(b,d){var c=d.getProperty("cells"),
2153e=!1,g=!1;if(0<c.length)for(var q=0;q<c.length&&(e=k.getModel().isVertex(c[q])||e,!(g=k.getModel().isEdge(c[q])||g)||!e);q++);else g=e=!0;for(var c=d.getProperty("keys"),m=d.getProperty("values"),q=0;q<c.length;q++){var n=0<=mxUtils.indexOf(f,c[q]);if("strokeColor"!=c[q]||null!=m[q]&&"none"!=m[q])if(0<=mxUtils.indexOf(t,c[q]))g||0<=mxUtils.indexOf(l,c[q])?null==m[q]?delete k.currentEdgeStyle[c[q]]:k.currentEdgeStyle[c[q]]=m[q]:e&&0<=mxUtils.indexOf(p,c[q])&&(null==m[q]?delete k.currentVertexStyle[c[q]]:
2154k.currentVertexStyle[c[q]]=m[q]);else if(0<=mxUtils.indexOf(p,c[q])){if(e||n)null==m[q]?delete k.currentVertexStyle[c[q]]:k.currentVertexStyle[c[q]]=m[q];if(g||n||0<=mxUtils.indexOf(l,c[q]))null==m[q]?delete k.currentEdgeStyle[c[q]]:k.currentEdgeStyle[c[q]]=m[q]}}null!=this.toolbar&&(this.toolbar.setFontName(k.currentVertexStyle.fontFamily||Menus.prototype.defaultFont),this.toolbar.setFontSize(k.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className=
2155"orthogonalEdgeStyle"==k.currentEdgeStyle.edgeStyle&&"1"==k.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==k.currentEdgeStyle.edgeStyle||"none"==k.currentEdgeStyle.edgeStyle||null==k.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==k.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==k.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==k.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==
2156k.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==k.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==k.currentEdgeStyle.shape?"geSprite geSprite-linkedge":"flexArrow"==k.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==k.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&
2157(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",k.currentEdgeStyle.shape,k.currentEdgeStyle[mxConstants.STYLE_STARTARROW],mxUtils.getValue(k.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("end",k.currentEdgeStyle.shape,k.currentEdgeStyle[mxConstants.STYLE_ENDARROW],mxUtils.getValue(k.currentEdgeStyle,"endFill","1"))))}));null!=this.toolbar&&
2158(b=mxUtils.bind(this,function(){var b=k.currentVertexStyle.fontFamily||"Helvetica",d=String(k.currentVertexStyle.fontSize||"12"),f=k.getView().getState(k.getSelectionCell());null!=f&&(b=f.style[mxConstants.STYLE_FONTFAMILY]||b,d=f.style[mxConstants.STYLE_FONTSIZE]||d,10<b.length&&(b=b.substring(0,8)+"..."));this.toolbar.setFontName(b);this.toolbar.setFontSize(d)}),k.getSelectionModel().addListener(mxEvent.CHANGE,b),k.getModel().addListener(mxEvent.CHANGE,b));k.addListener(mxEvent.CELLS_ADDED,function(b,
2159d){var f=d.getProperty("cells"),c=d.getProperty("parent");null!=c&&k.getModel().isLayer(c)&&!k.isCellVisible(c)&&null!=f&&0<f.length&&k.getModel().setVisible(c,!0)});this.gestureHandler=mxUtils.bind(this,function(b){null!=this.currentMenu&&mxEvent.getSource(b)!=this.currentMenu.div&&this.hideCurrentMenu()});mxEvent.addGestureListeners(document,this.gestureHandler);this.resizeHandler=mxUtils.bind(this,function(){window.setTimeout(mxUtils.bind(this,function(){null!=this.editor.graph&&this.refresh()}),
21600)});mxEvent.addListener(window,"resize",this.resizeHandler);this.orientationChangeHandler=mxUtils.bind(this,function(){this.refresh()});mxEvent.addListener(window,"orientationchange",this.orientationChangeHandler);mxClient.IS_IOS&&!window.navigator.standalone&&(this.scrollHandler=mxUtils.bind(this,function(){window.scrollTo(0,0)}),mxEvent.addListener(window,"scroll",this.scrollHandler));this.editor.addListener("resetGraphView",mxUtils.bind(this,function(){this.resetScrollbars()}));this.addListener("gridEnabledChanged",
2161mxUtils.bind(this,function(){k.view.validateBackground()}));this.addListener("backgroundColorChanged",mxUtils.bind(this,function(){k.view.validateBackground()}));k.addListener("gridSizeChanged",mxUtils.bind(this,function(){k.isGridEnabled()&&k.view.validateBackground()}));this.editor.resetGraph()}this.init();k.standalone||this.open()};mxUtils.extend(EditorUi,mxEventSource);EditorUi.compactUi=!0;EditorUi.prototype.splitSize=mxClient.IS_TOUCH||mxClient.IS_POINTER?12:8;
2162EditorUi.prototype.menubarHeight=30;EditorUi.prototype.formatEnabled=!0;EditorUi.prototype.formatWidth=240;EditorUi.prototype.toolbarHeight=38;EditorUi.prototype.footerHeight=28;EditorUi.prototype.sidebarFooterHeight=34;EditorUi.prototype.hsplitPosition=640>=screen.width?118:"large"!=urlParams["sidebar-entries"]?212:240;EditorUi.prototype.allowAnimation=!0;EditorUi.prototype.lightboxMaxFitScale=2;EditorUi.prototype.lightboxVerticalDivider=4;EditorUi.prototype.hsplitClickEnabled=!1;
2163EditorUi.prototype.init=function(){var b=this.editor.graph;if(!b.standalone){"0"!=urlParams["shape-picker"]&&this.installShapePicker();mxEvent.addListener(b.container,"scroll",mxUtils.bind(this,function(){b.tooltipHandler.hide();null!=b.connectionHandler&&null!=b.connectionHandler.constraintHandler&&b.connectionHandler.constraintHandler.reset()}));b.addListener(mxEvent.ESCAPE,mxUtils.bind(this,function(){b.tooltipHandler.hide();var c=b.getRubberband();null!=c&&c.cancel()}));mxEvent.addListener(b.container,
2164"keydown",mxUtils.bind(this,function(b){this.onKeyDown(b)}));mxEvent.addListener(b.container,"keypress",mxUtils.bind(this,function(b){this.onKeyPress(b)}));this.addUndoListener();this.addBeforeUnloadListener();b.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.updateActionStates()}));b.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.updateActionStates()}));var c=b.setDefaultParent,e=this;this.editor.graph.setDefaultParent=function(){c.apply(this,
2165arguments);e.updateActionStates()};b.editLink=e.actions.get("editLink").funct;this.updateActionStates();this.initClipboard();this.initCanvas();null!=this.format&&this.format.init()}};
2166EditorUi.prototype.installShapePicker=function(){var b=this.editor.graph,c=this;b.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,d){"mouseDown"==d.getProperty("eventName")&&c.hideShapePicker()}));var e=mxUtils.bind(this,function(){c.hideShapePicker(!0)});b.addListener("wheel",e);b.addListener(mxEvent.ESCAPE,e);b.view.addListener(mxEvent.SCALE,e);b.view.addListener(mxEvent.SCALE_AND_TRANSLATE,e);b.getSelectionModel().addListener(mxEvent.CHANGE,e);b.getModel().addListener(mxEvent.CHANGE,
2167e);var k=b.popupMenuHandler.isMenuShowing;b.popupMenuHandler.isMenuShowing=function(){return k.apply(this,arguments)||null!=c.shapePicker};var g=b.dblClick;b.dblClick=function(d,e){if(this.isEnabled())if(null!=e||null==c.sidebar||mxEvent.isShiftDown(d)||b.isCellLocked(b.getDefaultParent()))g.apply(this,arguments);else{var f=mxUtils.convertPoint(this.container,mxEvent.getClientX(d),mxEvent.getClientY(d));mxEvent.consume(d);window.setTimeout(mxUtils.bind(this,function(){c.showShapePicker(f.x,f.y)}),
216830)}};if(null!=this.hoverIcons){this.hoverIcons.addListener("reset",e);var p=this.hoverIcons.drag;this.hoverIcons.drag=function(){c.hideShapePicker();p.apply(this,arguments)};var t=this.hoverIcons.execute;this.hoverIcons.execute=function(d,e,g){var f=g.getEvent();this.graph.isCloneEvent(f)||mxEvent.isShiftDown(f)?t.apply(this,arguments):this.graph.connectVertex(d.cell,e,this.graph.defaultEdgeLength,f,null,null,mxUtils.bind(this,function(f,l,q){var m=b.getCompositeParent(d.cell);f=b.getCellGeometry(m);
2169for(g.consume();null!=m&&b.model.isVertex(m)&&null!=f&&f.relative;)cell=m,m=b.model.getParent(cell),f=b.getCellGeometry(m);window.setTimeout(mxUtils.bind(this,function(){c.showShapePicker(g.getGraphX(),g.getGraphY(),m,mxUtils.bind(this,function(d){q(d);null!=c.hoverIcons&&c.hoverIcons.update(b.view.getState(d))}),e)}),30)}),mxUtils.bind(this,function(b){this.graph.selectCellsForConnectVertex(b,f,this)}))};var d=null;this.hoverIcons.addListener("focus",mxUtils.bind(this,function(f,e){null!=d&&window.clearTimeout(d);
2170d=window.setTimeout(mxUtils.bind(this,function(){var d=e.getProperty("arrow"),f=e.getProperty("direction"),l=e.getProperty("event"),d=d.getBoundingClientRect(),g=mxUtils.getOffset(b.container),k=b.container.scrollLeft+d.x-g.x,g=b.container.scrollTop+d.y-g.y,t=b.getCompositeParent(null!=this.hoverIcons.currentState?this.hoverIcons.currentState.cell:null),p=c.showShapePicker(k,g,t,mxUtils.bind(this,function(d){null!=d&&b.connectVertex(t,f,b.defaultEdgeLength,l,!0,!0,function(f,e,l){l(d);null!=c.hoverIcons&&
2171c.hoverIcons.update(b.view.getState(d))},function(d){b.selectCellsForConnectVertex(d)},l,this.hoverIcons)}),f,!0);this.centerShapePicker(p,d,k,g,f);mxUtils.setOpacity(p,30);mxEvent.addListener(p,"mouseenter",function(){mxUtils.setOpacity(p,100)});mxEvent.addListener(p,"mouseleave",function(){c.hideShapePicker()})}),Editor.shapePickerHoverDelay)}));this.hoverIcons.addListener("blur",mxUtils.bind(this,function(b,c){null!=d&&window.clearTimeout(d)}))}};
2172EditorUi.prototype.centerShapePicker=function(b,c,e,k,g){if(g==mxConstants.DIRECTION_EAST||g==mxConstants.DIRECTION_WEST)b.style.width="40px";var p=b.getBoundingClientRect();g==mxConstants.DIRECTION_NORTH?(e-=p.width/2-10,k-=p.height+6):g==mxConstants.DIRECTION_SOUTH?(e-=p.width/2-10,k+=c.height+6):g==mxConstants.DIRECTION_WEST?(e-=p.width+6,k-=p.height/2-10):g==mxConstants.DIRECTION_EAST&&(e+=c.width+6,k-=p.height/2-10);b.style.left=e+"px";b.style.top=k+"px"};
2173EditorUi.prototype.showShapePicker=function(b,c,e,k,g,p){b=this.createShapePicker(b,c,e,k,g,mxUtils.bind(this,function(){this.hideShapePicker()}),this.getCellsForShapePicker(e,p),p);null!=b&&(null==this.hoverIcons||p||this.hoverIcons.reset(),p=this.editor.graph,p.popupMenuHandler.hideMenu(),p.tooltipHandler.hideTooltip(),this.hideCurrentMenu(),this.hideShapePicker(),this.shapePickerCallback=k,this.shapePicker=b);return b};
2174EditorUi.prototype.createShapePicker=function(b,c,e,k,g,p,t,d){var f=null;if(null!=t&&0<t.length){var l=this,q=this.editor.graph,f=document.createElement("div");g=q.view.getState(e);var m=null==e||null!=g&&q.isTransparentState(g)?null:q.copyStyle(e);e=6>t.length?35*t.length:140;f.className="geToolbarContainer geSidebarContainer";f.style.cssText="position:absolute;left:"+b+"px;top:"+c+"px;width:"+e+"px;border-radius:10px;padding:4px;text-align:center;box-shadow:0px 0px 3px 1px #d1d1d1;padding: 6px 0 8px 0;z-index: "+
2175mxPopupMenu.prototype.zIndex+1+";";d||mxUtils.setPrefixedStyle(f.style,"transform","translate(-22px,-22px)");null!=q.background&&q.background!=mxConstants.NONE&&(f.style.backgroundColor=q.background);q.container.appendChild(f);e=mxUtils.bind(this,function(d){var e=document.createElement("a");e.className="geItem";e.style.cssText="position:relative;display:inline-block;position:relative;width:30px;height:30px;cursor:pointer;overflow:hidden;padding:3px 0 0 3px;";f.appendChild(e);null!=m&&"1"!=urlParams.sketch?
2176this.sidebar.graph.pasteStyle(m,[d]):l.insertHandler([d],""!=d.value&&"1"!=urlParams.sketch,this.sidebar.graph.model);this.sidebar.createThumb([d],25,25,e,null,!0,!1,d.geometry.width,d.geometry.height);mxEvent.addListener(e,"click",function(){var f=q.cloneCell(d);if(null!=k)k(f);else{f.geometry.x=q.snap(Math.round(b/q.view.scale)-q.view.translate.x-d.geometry.width/2);f.geometry.y=q.snap(Math.round(c/q.view.scale)-q.view.translate.y-d.geometry.height/2);q.model.beginUpdate();try{q.addCell(f)}finally{q.model.endUpdate()}q.setSelectionCell(f);
2177q.scrollCellToVisible(f);q.startEditingAtCell(f);null!=l.hoverIcons&&l.hoverIcons.update(q.view.getState(f))}null!=p&&p()})});for(g=0;g<(d?Math.min(t.length,4):t.length);g++)e(t[g]);t=f.offsetTop+f.clientHeight-(q.container.scrollTop+q.container.offsetHeight);0<t&&(f.style.top=Math.max(q.container.scrollTop+22,c-t)+"px");t=f.offsetLeft+f.clientWidth-(q.container.scrollLeft+q.container.offsetWidth);0<t&&(f.style.left=Math.max(q.container.scrollLeft+22,b-t)+"px")}return f};
2178EditorUi.prototype.getCellsForShapePicker=function(b,c){var e=mxUtils.bind(this,function(b,c,e,t){return this.editor.graph.createVertex(null,null,t||"",0,0,c||120,e||60,b,!1)});return[null!=b?this.editor.graph.cloneCell(b):e("text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;",40,20,"Text"),e("whiteSpace=wrap;html=1;"),e("ellipse;whiteSpace=wrap;html=1;"),e("rhombus;whiteSpace=wrap;html=1;",80,80),e("rounded=1;whiteSpace=wrap;html=1;"),
2179e("shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;"),e("shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;",120,60),e("shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;",120,80),e("shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;",120,80),e("shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;"),e("triangle;whiteSpace=wrap;html=1;",60,80),e("shape=document;whiteSpace=wrap;html=1;boundedLbl=1;",
2180120,80),e("shape=tape;whiteSpace=wrap;html=1;",120,100),e("ellipse;shape=cloud;whiteSpace=wrap;html=1;",120,80),e("shape=singleArrow;whiteSpace=wrap;html=1;arrowWidth=0.4;arrowSize=0.4;",80,60),e("shape=waypoint;sketch=0;size=6;pointerEvents=1;points=[];fillColor=none;resizable=0;rotatable=0;perimeter=centerPerimeter;snapToPoint=1;",40,40)]};
2181EditorUi.prototype.hideShapePicker=function(b){null!=this.shapePicker&&(this.shapePicker.parentNode.removeChild(this.shapePicker),this.shapePicker=null,b||null==this.shapePickerCallback||this.shapePickerCallback(),this.shapePickerCallback=null)};
2182EditorUi.prototype.onKeyDown=function(b){var c=this.editor.graph;if(9==b.which&&c.isEnabled()&&!mxEvent.isControlDown(b)){if(c.isEditing())if(mxEvent.isAltDown(b))c.stopEditing(!1);else try{c.cellEditor.isContentEditing()&&c.cellEditor.isTextSelected()?document.execCommand(mxEvent.isShiftDown(b)?"outdent":"indent",!1,null):mxEvent.isShiftDown(b)?c.stopEditing(!1):c.cellEditor.insertTab(c.cellEditor.isContentEditing()?null:4)}catch(e){}else mxEvent.isAltDown(b)?c.selectParentCell():c.selectCell(!mxEvent.isShiftDown(b));
2183mxEvent.consume(b)}};
2184EditorUi.prototype.onKeyPress=function(b){var c=this.editor.graph;!this.isImmediateEditingEvent(b)||c.isEditing()||c.isSelectionEmpty()||0===b.which||27===b.which||mxEvent.isAltDown(b)||mxEvent.isControlDown(b)||mxEvent.isMetaDown(b)||(c.escape(),c.startEditing(),mxClient.IS_FF&&(c=c.cellEditor,null!=c.textarea&&(c.textarea.innerHTML=String.fromCharCode(b.which),b=document.createRange(),b.selectNodeContents(c.textarea),b.collapse(!1),c=window.getSelection(),c.removeAllRanges(),c.addRange(b))))};
2185EditorUi.prototype.isImmediateEditingEvent=function(b){return!0};
2186EditorUi.prototype.getCssClassForMarker=function(b,c,e,k){return"flexArrow"==c?null!=e&&e!=mxConstants.NONE?"geSprite geSprite-"+b+"blocktrans":"geSprite geSprite-noarrow":"box"==e||"halfCircle"==e?"geSprite geSvgSprite geSprite-"+e+("end"==b?" geFlipSprite":""):e==mxConstants.ARROW_CLASSIC?"1"==k?"geSprite geSprite-"+b+"classic":"geSprite geSprite-"+b+"classictrans":e==mxConstants.ARROW_CLASSIC_THIN?"1"==k?"geSprite geSprite-"+b+"classicthin":"geSprite geSprite-"+b+"classicthintrans":e==mxConstants.ARROW_OPEN?
2187"geSprite geSprite-"+b+"open":e==mxConstants.ARROW_OPEN_THIN?"geSprite geSprite-"+b+"openthin":e==mxConstants.ARROW_BLOCK?"1"==k?"geSprite geSprite-"+b+"block":"geSprite geSprite-"+b+"blocktrans":e==mxConstants.ARROW_BLOCK_THIN?"1"==k?"geSprite geSprite-"+b+"blockthin":"geSprite geSprite-"+b+"blockthintrans":e==mxConstants.ARROW_OVAL?"1"==k?"geSprite geSprite-"+b+"oval":"geSprite geSprite-"+b+"ovaltrans":e==mxConstants.ARROW_DIAMOND?"1"==k?"geSprite geSprite-"+b+"diamond":"geSprite geSprite-"+b+"diamondtrans":
2188e==mxConstants.ARROW_DIAMOND_THIN?"1"==k?"geSprite geSprite-"+b+"thindiamond":"geSprite geSprite-"+b+"thindiamondtrans":"openAsync"==e?"geSprite geSprite-"+b+"openasync":"dash"==e?"geSprite geSprite-"+b+"dash":"cross"==e?"geSprite geSprite-"+b+"cross":"async"==e?"1"==k?"geSprite geSprite-"+b+"async":"geSprite geSprite-"+b+"asynctrans":"circle"==e||"circlePlus"==e?"1"==k||"circle"==e?"geSprite geSprite-"+b+"circle":"geSprite geSprite-"+b+"circleplus":"ERone"==e?"geSprite geSprite-"+b+"erone":"ERmandOne"==
2189e?"geSprite geSprite-"+b+"eronetoone":"ERmany"==e?"geSprite geSprite-"+b+"ermany":"ERoneToMany"==e?"geSprite geSprite-"+b+"eronetomany":"ERzeroToOne"==e?"geSprite geSprite-"+b+"eroneopt":"ERzeroToMany"==e?"geSprite geSprite-"+b+"ermanyopt":"geSprite geSprite-noarrow"};EditorUi.prototype.createMenus=function(){return null};
2190EditorUi.prototype.updatePasteActionStates=function(){var b=this.editor.graph,c=this.actions.get("paste"),e=this.actions.get("pasteHere");c.setEnabled(this.editor.graph.cellEditor.isContentEditing()||(!mxClient.IS_FF&&null!=navigator.clipboard||!mxClipboard.isEmpty())&&b.isEnabled()&&!b.isCellLocked(b.getDefaultParent()));e.setEnabled(c.isEnabled())};
2191EditorUi.prototype.initClipboard=function(){var b=this,c=mxClipboard.cut;mxClipboard.cut=function(e){e.cellEditor.isContentEditing()?document.execCommand("cut",!1,null):c.apply(this,arguments);b.updatePasteActionStates()};mxClipboard.copy=function(c){var e=null;if(c.cellEditor.isContentEditing())document.execCommand("copy",!1,null);else{for(var e=e||c.getSelectionCells(),e=c.getExportableCells(c.model.getTopmostCells(e)),d={},f=c.createCellLookup(e),l=c.cloneCells(e,null,d),g=new mxGraphModel,m=g.getChildAt(g.getRoot(),
21920),k=0;k<l.length;k++){g.add(m,l[k]);var u=c.view.getState(e[k]);if(null!=u){var v=c.getCellGeometry(l[k]);null!=v&&v.relative&&!g.isEdge(e[k])&&null==f[mxObjectIdentity.get(g.getParent(e[k]))]&&(v.offset=null,v.relative=!1,v.x=u.x/u.view.scale-u.view.translate.x,v.y=u.y/u.view.scale-u.view.translate.y)}}c.updateCustomLinks(c.createCellMapping(d,f),l);mxClipboard.insertCount=1;mxClipboard.setCells(l)}b.updatePasteActionStates();return e};var e=mxClipboard.paste;mxClipboard.paste=function(c){var g=
2193null;c.cellEditor.isContentEditing()?document.execCommand("paste",!1,null):g=e.apply(this,arguments);b.updatePasteActionStates();return g};var k=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){k.apply(this,arguments);b.updatePasteActionStates()};var g=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(c,e){g.apply(this,arguments);b.updatePasteActionStates()};this.updatePasteActionStates()};
2194EditorUi.prototype.lazyZoomDelay=20;EditorUi.prototype.wheelZoomDelay=400;EditorUi.prototype.buttonZoomDelay=600;
2195EditorUi.prototype.initCanvas=function(){var b=this.editor.graph;b.timerAutoScroll=!0;b.getPagePadding=function(){return new mxPoint(Math.max(0,Math.round((b.container.offsetWidth-34)/b.view.scale)),Math.max(0,Math.round((b.container.offsetHeight-34)/b.view.scale)))};b.view.getBackgroundPageBounds=function(){var b=this.graph.getPageLayout(),d=this.graph.getPageSize();return new mxRectangle(this.scale*(this.translate.x+b.x*d.width),this.scale*(this.translate.y+b.y*d.height),this.scale*b.width*d.width,
2196this.scale*b.height*d.height)};b.getPreferredPageSize=function(b,d,f){b=this.getPageLayout();d=this.getPageSize();return new mxRectangle(0,0,b.width*d.width,b.height*d.height)};var c=null,e=this;if(this.editor.isChromelessView()){this.chromelessResize=c=mxUtils.bind(this,function(d,f,c,e){if(null!=b.container&&!b.isViewer()){c=null!=c?c:0;e=null!=e?e:0;var l=b.pageVisible?b.view.getBackgroundPageBounds():b.getGraphBounds(),g=mxUtils.hasScrollbars(b.container),H=b.view.translate,q=b.view.scale,m=mxRectangle.fromRectangle(l);
2197m.x=m.x/q-H.x;m.y=m.y/q-H.y;m.width/=q;m.height/=q;var H=b.container.scrollTop,k=b.container.scrollLeft,n=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)n+=3;var v=b.container.offsetWidth-n,n=b.container.offsetHeight-n;d=d?Math.max(.3,Math.min(f||1,v/m.width)):q;f=(v-d*m.width)/2/d;var A=0==this.lightboxVerticalDivider?0:(n-d*m.height)/this.lightboxVerticalDivider/d;g&&(f=Math.max(f,0),A=Math.max(A,0));if(g||l.width<v||l.height<n)b.view.scaleAndTranslate(d,Math.floor(f-
2198m.x),Math.floor(A-m.y)),b.container.scrollTop=H*d/q,b.container.scrollLeft=k*d/q;else if(0!=c||0!=e)l=b.view.translate,b.view.setTranslate(Math.floor(l.x+c/q),Math.floor(l.y+e/q))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var k=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",k);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",k)});this.editor.addListener("resetGraphView",mxUtils.bind(this,
2199function(){this.chromelessResize(!0)}));this.actions.get("zoomIn").funct=mxUtils.bind(this,function(d){b.zoomIn();this.chromelessResize(!1)});this.actions.get("zoomOut").funct=mxUtils.bind(this,function(d){b.zoomOut();this.chromelessResize(!1)});if("0"!=urlParams.toolbar){var g=JSON.parse(decodeURIComponent(urlParams["toolbar-config"]||"{}"));this.chromelessToolbar=document.createElement("div");this.chromelessToolbar.style.position="fixed";this.chromelessToolbar.style.overflow="hidden";this.chromelessToolbar.style.boxSizing=
2200"border-box";this.chromelessToolbar.style.whiteSpace="nowrap";this.chromelessToolbar.style.padding="10px 10px 8px 10px";this.chromelessToolbar.style.left=b.isViewer()?"0":"50%";mxClient.IS_IE||mxClient.IS_IE11?(this.chromelessToolbar.style.backgroundColor="#ffffff",this.chromelessToolbar.style.border="3px solid black"):this.chromelessToolbar.style.backgroundColor="#000000";mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"borderRadius","16px");mxUtils.setPrefixedStyle(this.chromelessToolbar.style,
2201"transition","opacity 600ms ease-in-out");var p=mxUtils.bind(this,function(){var d=mxUtils.getCurrentStyle(b.container);b.isViewer()?this.chromelessToolbar.style.top="0":this.chromelessToolbar.style.bottom=(null!=d?parseInt(d["margin-bottom"]||0):0)+(null!=this.tabContainer?20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",p);p();var t=0,p=mxUtils.bind(this,function(b,d,f){t++;var c=document.createElement("span");c.style.paddingLeft="8px";c.style.paddingRight=
2202"8px";c.style.cursor="pointer";mxEvent.addListener(c,"click",b);null!=f&&c.setAttribute("title",f);b=document.createElement("img");b.setAttribute("border","0");b.setAttribute("src",d);b.style.width="36px";b.style.filter="invert(100%)";c.appendChild(b);this.chromelessToolbar.appendChild(c);return c});null!=g.backBtn&&p(mxUtils.bind(this,function(b){window.location.href=g.backBtn.url;mxEvent.consume(b)}),Editor.backImage,mxResources.get("back",null,"Back"));if(this.isPagesEnabled()){var d=p(mxUtils.bind(this,
2203function(b){this.actions.get("previousPage").funct();mxEvent.consume(b)}),Editor.previousImage,mxResources.get("previousPage")),f=document.createElement("div");f.style.fontFamily=Editor.defaultHtmlFont;f.style.display="inline-block";f.style.verticalAlign="top";f.style.fontWeight="bold";f.style.marginTop="8px";f.style.fontSize="14px";f.style.color=mxClient.IS_IE||mxClient.IS_IE11?"#000000":"#ffffff";this.chromelessToolbar.appendChild(f);var l=p(mxUtils.bind(this,function(b){this.actions.get("nextPage").funct();
2204mxEvent.consume(b)}),Editor.nextImage,mxResources.get("nextPage")),q=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&(f.innerHTML="",mxUtils.write(f,mxUtils.indexOf(this.pages,this.currentPage)+1+" / "+this.pages.length))});d.style.paddingLeft="0px";d.style.paddingRight="4px";l.style.paddingLeft="4px";l.style.paddingRight="0px";var m=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(l.style.display="",d.style.display=
2205"",f.style.display="inline-block"):(l.style.display="none",d.style.display="none",f.style.display="none");q()});this.editor.addListener("resetGraphView",m);this.editor.addListener("pageSelected",q)}p(mxUtils.bind(this,function(b){this.actions.get("zoomOut").funct();mxEvent.consume(b)}),Editor.zoomOutImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");p(mxUtils.bind(this,function(b){this.actions.get("zoomIn").funct();mxEvent.consume(b)}),Editor.zoomInImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");
2206p(mxUtils.bind(this,function(d){b.isLightboxView()?(1==b.view.scale?this.lightboxFit():b.zoomTo(1),this.chromelessResize(!1)):this.chromelessResize(!0);mxEvent.consume(d)}),Editor.zoomFitImage,mxResources.get("fit"));var n=null,u=null,v=mxUtils.bind(this,function(b){null!=n&&(window.clearTimeout(n),n=null);null!=u&&(window.clearTimeout(u),u=null);n=window.setTimeout(mxUtils.bind(this,function(){mxUtils.setOpacity(this.chromelessToolbar,0);n=null;u=window.setTimeout(mxUtils.bind(this,function(){this.chromelessToolbar.style.display=
2207"none";u=null}),600)}),b||200)}),y=mxUtils.bind(this,function(b){null!=n&&(window.clearTimeout(n),n=null);null!=u&&(window.clearTimeout(u),u=null);this.chromelessToolbar.style.display="";mxUtils.setOpacity(this.chromelessToolbar,b||30)});if("1"==urlParams.layers){this.layersDialog=null;var x=p(mxUtils.bind(this,function(d){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=b.createLayersDialog(null,!0);mxEvent.addListener(this.layersDialog,
2208"mouseleave",mxUtils.bind(this,function(){this.layersDialog.parentNode.removeChild(this.layersDialog);this.layersDialog=null}));var f=x.getBoundingClientRect();mxUtils.setPrefixedStyle(this.layersDialog.style,"borderRadius","5px");this.layersDialog.style.position="fixed";this.layersDialog.style.fontFamily=Editor.defaultHtmlFont;this.layersDialog.style.width="160px";this.layersDialog.style.padding="4px 2px 4px 2px";this.layersDialog.style.left=f.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+
2209this.chromelessToolbar.offsetHeight+4+"px";mxClient.IS_IE||mxClient.IS_IE11?(this.layersDialog.style.backgroundColor="#ffffff",this.layersDialog.style.border="2px solid black",this.layersDialog.style.color="#000000"):(this.layersDialog.style.backgroundColor="#000000",this.layersDialog.style.color="#ffffff",mxUtils.setOpacity(this.layersDialog,80));f=mxUtils.getCurrentStyle(this.editor.graph.container);this.layersDialog.style.zIndex=f.zIndex;document.body.appendChild(this.layersDialog);this.editor.fireEvent(new mxEventObject("layersDialogShown"))}mxEvent.consume(d)}),
2210Editor.layersImage,mxResources.get("layers")),D=b.getModel();D.addListener(mxEvent.CHANGE,function(){x.style.display=1<D.getChildCount(D.root)?"":"none"})}("1"!=urlParams.openInSameWin||navigator.standalone)&&this.addChromelessToolbarItems(p);null==this.editor.editButtonLink&&null==this.editor.editButtonFunc||p(mxUtils.bind(this,function(d){null!=this.editor.editButtonFunc?this.editor.editButtonFunc():"_blank"==this.editor.editButtonLink?this.editor.editAsNew(this.getEditBlankXml()):b.openLink(this.editor.editButtonLink,
2211"editWindow");mxEvent.consume(d)}),Editor.editImage,mxResources.get("edit"));if(null!=this.lightboxToolbarActions)for(m=0;m<this.lightboxToolbarActions.length;m++){var I=this.lightboxToolbarActions[m];I.elem=p(I.fn,I.icon,I.tooltip)}null!=g.refreshBtn&&p(mxUtils.bind(this,function(b){g.refreshBtn.url?window.location.href=g.refreshBtn.url:window.location.reload();mxEvent.consume(b)}),Editor.refreshImage,mxResources.get("refresh",null,"Refresh"));null!=g.fullscreenBtn&&window.self!==window.top&&p(mxUtils.bind(this,
2212function(d){g.fullscreenBtn.url?b.openLink(g.fullscreenBtn.url):b.openLink(window.location.href);mxEvent.consume(d)}),Editor.fullscreenImage,mxResources.get("openInNewWindow",null,"Open in New Window"));(g.closeBtn&&window.self===window.top||b.lightbox&&("1"==urlParams.close||this.container!=document.body))&&p(mxUtils.bind(this,function(b){"1"==urlParams.close||g.closeBtn?window.close():(this.destroy(),mxEvent.consume(b))}),Editor.closeImage,mxResources.get("close")+" (Escape)");this.chromelessToolbar.style.display=
2213"none";b.isViewer()||mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"transform","translate(-50%,0)");b.container.appendChild(this.chromelessToolbar);mxEvent.addListener(b.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||(mxEvent.isShiftDown(b)||y(30),v())}));mxEvent.addListener(this.chromelessToolbar,mxClient.IS_POINTER?"pointermove":"mousemove",function(b){mxEvent.consume(b)});mxEvent.addListener(this.chromelessToolbar,"mouseenter",
2214mxUtils.bind(this,function(d){b.tooltipHandler.resetTimer();b.tooltipHandler.hideTooltip();mxEvent.isShiftDown(d)?v():y(100)}));mxEvent.addListener(this.chromelessToolbar,"mousemove",mxUtils.bind(this,function(b){mxEvent.isShiftDown(b)?v():y(100);mxEvent.consume(b)}));mxEvent.addListener(this.chromelessToolbar,"mouseleave",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||y(30)}));var B=b.getTolerance();b.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(d,f){this.startX=
2215f.getGraphX();this.startY=f.getGraphY();this.scrollLeft=b.container.scrollLeft;this.scrollTop=b.container.scrollTop},mouseMove:function(b,d){},mouseUp:function(d,f){mxEvent.isTouchEvent(f.getEvent())&&Math.abs(this.scrollLeft-b.container.scrollLeft)<B&&Math.abs(this.scrollTop-b.container.scrollTop)<B&&Math.abs(this.startX-f.getGraphX())<B&&Math.abs(this.startY-f.getGraphY())<B&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?v():y(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var F=
2216b.view.validate;b.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var b=this.graph.getPagePadding(),d=this.graph.getPageSize();this.translate.x=b.x-(this.x0||0)*d.width;this.translate.y=b.y-(this.y0||0)*d.height}F.apply(this,arguments)};if(!b.isViewer()){var M=b.sizeDidChange;b.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var d=this.getPageLayout(),f=this.getPagePadding(),c=this.getPageSize(),e=Math.ceil(2*
2217f.x+d.width*c.width),l=Math.ceil(2*f.y+d.height*c.height),g=b.minimumGraphSize;if(null==g||g.width!=e||g.height!=l)b.minimumGraphSize=new mxRectangle(0,0,e,l);e=f.x-d.x*c.width;f=f.y-d.y*c.height;this.autoTranslate||this.view.translate.x==e&&this.view.translate.y==f?M.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=d.x,this.view.y0=d.y,d=b.view.translate.x,c=b.view.translate.y,b.view.setTranslate(e,f),b.container.scrollLeft+=Math.round((e-d)*b.view.scale),b.container.scrollTop+=Math.round((f-
2218c)*b.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var E=b.view.getBackgroundPane(),K=b.view.getDrawPane();b.cumulativeZoomFactor=1;var C=null,L=null,O=null,ea=null,N=null,Q=function(d){null!=C&&window.clearTimeout(C);window.setTimeout(function(){if(!b.isMouseDown||ea)C=window.setTimeout(mxUtils.bind(this,function(){b.isFastZoomEnabled()&&(null!=b.view.backgroundPageShape&&null!=b.view.backgroundPageShape.node&&(mxUtils.setPrefixedStyle(b.view.backgroundPageShape.node.style,
2219"transform-origin",null),mxUtils.setPrefixedStyle(b.view.backgroundPageShape.node.style,"transform",null)),K.style.transformOrigin="",E.style.transformOrigin="",mxClient.IS_SF?(K.style.transform="scale(1)",E.style.transform="scale(1)",window.setTimeout(function(){K.style.transform="";E.style.transform=""},0)):(K.style.transform="",E.style.transform=""),b.view.getDecoratorPane().style.opacity="",b.view.getOverlayPane().style.opacity="");var d=new mxPoint(b.container.scrollLeft,b.container.scrollTop),
2220f=mxUtils.getOffset(b.container),l=b.view.scale,g=0,q=0;null!=L&&(g=b.container.offsetWidth/2-L.x+f.x,q=b.container.offsetHeight/2-L.y+f.y);b.zoom(b.cumulativeZoomFactor);b.view.scale!=l&&(null!=O&&(g+=d.x-O.x,q+=d.y-O.y),null!=c&&e.chromelessResize(!1,null,g*(b.cumulativeZoomFactor-1),q*(b.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(b.container)||0==g&&0==q||(b.container.scrollLeft-=g*(b.cumulativeZoomFactor-1),b.container.scrollTop-=q*(b.cumulativeZoomFactor-1)));null!=N&&K.setAttribute("filter",
2221N);b.cumulativeZoomFactor=1;N=ea=L=O=C=null}),null!=d?d:b.isFastZoomEnabled()?e.wheelZoomDelay:e.lazyZoomDelay)},0)},T=Date.now();b.lazyZoom=function(d,f,c){(f=f||!b.scrollbars)&&(L=new mxPoint(b.container.offsetLeft+b.container.clientWidth/2,b.container.offsetTop+b.container.clientHeight/2));if(mxClient.IS_IOS||!(15>Date.now()-T)){T=Date.now();d?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+.05)/this.view.scale:(this.cumulativeZoomFactor*=this.zoomFactor,
2222this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale-.05)/this.view.scale:(this.cumulativeZoomFactor/=this.zoomFactor,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*20)/20/this.view.scale);this.cumulativeZoomFactor=Math.max(.05,Math.min(this.view.scale*this.cumulativeZoomFactor,160))/this.view.scale;if(b.isFastZoomEnabled()){null==
2223N&&""!=K.getAttribute("filter")&&(N=K.getAttribute("filter"),K.removeAttribute("filter"));O=new mxPoint(b.container.scrollLeft,b.container.scrollTop);d=f?b.container.scrollLeft+b.container.clientWidth/2:L.x+b.container.scrollLeft-b.container.offsetLeft;var l=f?b.container.scrollTop+b.container.clientHeight/2:L.y+b.container.scrollTop-b.container.offsetTop;K.style.transformOrigin=d+"px "+l+"px";K.style.transform="scale("+this.cumulativeZoomFactor+")";E.style.transformOrigin=d+"px "+l+"px";E.style.transform=
2224"scale("+this.cumulativeZoomFactor+")";null!=b.view.backgroundPageShape&&null!=b.view.backgroundPageShape.node&&(d=b.view.backgroundPageShape.node,mxUtils.setPrefixedStyle(d.style,"transform-origin",(f?b.container.clientWidth/2+b.container.scrollLeft-d.offsetLeft+"px":L.x+b.container.scrollLeft-d.offsetLeft-b.container.offsetLeft+"px")+" "+(f?b.container.clientHeight/2+b.container.scrollTop-d.offsetTop+"px":L.y+b.container.scrollTop-d.offsetTop-b.container.offsetTop+"px")),mxUtils.setPrefixedStyle(d.style,
2225"transform","scale("+this.cumulativeZoomFactor+")"));b.view.getDecoratorPane().style.opacity="0";b.view.getOverlayPane().style.opacity="0";null!=e.hoverIcons&&e.hoverIcons.reset()}Q(c)}};mxEvent.addGestureListeners(b.container,function(b){null!=C&&window.clearTimeout(C)},null,function(d){1!=b.cumulativeZoomFactor&&Q(0)});mxEvent.addListener(b.container,"scroll",function(d){null==C||b.isMouseDown||1==b.cumulativeZoomFactor||Q(0)});mxEvent.addMouseWheelListener(mxUtils.bind(this,function(d,f,c,e,l){b.fireEvent(new mxEventObject("wheel"));
2226if(null==this.dialogs||0==this.dialogs.length)if(!b.scrollbars&&!c&&b.isScrollWheelEvent(d))c=b.view.getTranslate(),e=40/b.view.scale,mxEvent.isShiftDown(d)?b.view.setTranslate(c.x+(f?-e:e),c.y):b.view.setTranslate(c.x,c.y+(f?e:-e));else if(c||b.isZoomWheelEvent(d))for(var g=mxEvent.getSource(d);null!=g;){if(g==b.container)return b.tooltipHandler.hideTooltip(),L=null!=e&&null!=l?new mxPoint(e,l):new mxPoint(mxEvent.getClientX(d),mxEvent.getClientY(d)),ea=c,b.lazyZoom(f),mxEvent.consume(d),!1;g=g.parentNode}}),
2227b.container);b.panningHandler.zoomGraph=function(d){b.cumulativeZoomFactor=d.scale;b.lazyZoom(0<d.scale,!0);mxEvent.consume(d)}};EditorUi.prototype.addChromelessToolbarItems=function(b){b(mxUtils.bind(this,function(b){this.actions.get("print").funct();mxEvent.consume(b)}),Editor.printImage,mxResources.get("print"))};EditorUi.prototype.isPagesEnabled=function(){return this.editor.editable||"1"!=urlParams["hide-pages"]};EditorUi.prototype.createTemporaryGraph=function(b){return Graph.createOffscreenGraph(b)};
2228EditorUi.prototype.addChromelessClickHandler=function(){var b=urlParams.highlight;null!=b&&0<b.length&&(b="#"+b);this.editor.graph.addClickHandler(b)};EditorUi.prototype.toggleFormatPanel=function(b){b=null!=b?b:0==this.formatWidth;null!=this.format&&(this.formatWidth=b?240:0,this.formatContainer.style.display=b?"":"none",this.refresh(),this.format.refresh(),this.fireEvent(new mxEventObject("formatWidthChanged")))};
2229EditorUi.prototype.lightboxFit=function(b){if(this.isDiagramEmpty())this.editor.graph.view.setScale(1);else{var c=urlParams.border,e=60;null!=c&&(e=parseInt(c));this.editor.graph.maxFitScale=this.lightboxMaxFitScale;this.editor.graph.fit(e,null,null,null,null,null,b);this.editor.graph.maxFitScale=null}};EditorUi.prototype.isDiagramEmpty=function(){var b=this.editor.graph.getModel();return 1==b.getChildCount(b.root)&&0==b.getChildCount(b.getChildAt(b.root,0))};
2230EditorUi.prototype.isSelectionAllowed=function(b){return"SELECT"==mxEvent.getSource(b).nodeName||"INPUT"==mxEvent.getSource(b).nodeName&&mxUtils.isAncestorNode(this.formatContainer,mxEvent.getSource(b))};EditorUi.prototype.addBeforeUnloadListener=function(){window.onbeforeunload=mxUtils.bind(this,function(){if(!this.editor.isChromelessView())return this.onBeforeUnload()})};EditorUi.prototype.onBeforeUnload=function(){if(this.editor.modified)return mxResources.get("allChangesLost")};
2231EditorUi.prototype.open=function(){try{null!=window.opener&&null!=window.opener.openFile&&window.opener.openFile.setConsumer(mxUtils.bind(this,function(b,c){try{var e=mxUtils.parseXml(b);this.editor.setGraphXml(e.documentElement);this.editor.setModified(!1);this.editor.undoManager.clear();null!=c&&(this.editor.setFilename(c),this.updateDocumentTitle())}catch(k){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+k.message)}}))}catch(b){}this.editor.graph.view.validate();this.editor.graph.sizeDidChange();
2232this.editor.fireEvent(new mxEventObject("resetGraphView"))};EditorUi.prototype.showPopupMenu=function(b,c,e,k){this.editor.graph.popupMenuHandler.hideMenu();var g=new mxPopupMenu(b);g.div.className+=" geMenubarMenu";g.smartSeparators=!0;g.showDisabled=!0;g.autoExpand=!0;g.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(g,arguments);g.destroy()});g.popup(c,e,null,k);this.setCurrentMenu(g)};
2233EditorUi.prototype.setCurrentMenu=function(b,c){this.currentMenuElt=c;this.currentMenu=b};EditorUi.prototype.resetCurrentMenu=function(){this.currentMenu=this.currentMenuElt=null};EditorUi.prototype.hideCurrentMenu=function(){null!=this.currentMenu&&(this.currentMenu.hideMenu(),this.resetCurrentMenu())};EditorUi.prototype.updateDocumentTitle=function(){var b=this.editor.getOrCreateFilename();null!=this.editor.appName&&(b+=" - "+this.editor.appName);document.title=b};
2234EditorUi.prototype.createHoverIcons=function(){return new HoverIcons(this.editor.graph)};EditorUi.prototype.redo=function(){try{this.editor.graph.isEditing()?document.execCommand("redo",!1,null):this.editor.undoManager.redo()}catch(b){}};EditorUi.prototype.undo=function(){try{var b=this.editor.graph;if(b.isEditing()){var c=b.cellEditor.textarea.innerHTML;document.execCommand("undo",!1,null);c==b.cellEditor.textarea.innerHTML&&(b.stopEditing(!0),this.editor.undoManager.undo())}else this.editor.undoManager.undo()}catch(e){}};
2235EditorUi.prototype.canRedo=function(){return this.editor.graph.isEditing()||this.editor.undoManager.canRedo()};EditorUi.prototype.canUndo=function(){return this.editor.graph.isEditing()||this.editor.undoManager.canUndo()};EditorUi.prototype.getEditBlankXml=function(){return mxUtils.getXml(this.editor.getGraphXml())};EditorUi.prototype.getUrl=function(b){b=null!=b?b:window.location.pathname;var c=0<b.indexOf("?")?1:0,e;for(e in urlParams)b=0==c?b+"?":b+"&",b+=e+"="+urlParams[e],c++;return b};
2236EditorUi.prototype.setScrollbars=function(b){var c=this.editor.graph,e=c.container.style.overflow;c.scrollbars=b;this.editor.updateGraphComponents();e!=c.container.style.overflow&&(c.container.scrollTop=0,c.container.scrollLeft=0,c.view.scaleAndTranslate(1,0,0),this.resetScrollbars());this.fireEvent(new mxEventObject("scrollbarsChanged"))};EditorUi.prototype.hasScrollbars=function(){return this.editor.graph.scrollbars};
2237EditorUi.prototype.resetScrollbars=function(){var b=this.editor.graph;if(!this.editor.extendCanvas)b.container.scrollTop=0,b.container.scrollLeft=0,mxUtils.hasScrollbars(b.container)||b.view.setTranslate(0,0);else if(!this.editor.isChromelessView())if(mxUtils.hasScrollbars(b.container))if(b.pageVisible){var c=b.getPagePadding();b.container.scrollTop=Math.floor(c.y-this.editor.initialTopSpacing)-1;b.container.scrollLeft=Math.floor(Math.min(c.x,(b.container.scrollWidth-b.container.clientWidth)/2))-
22381;c=b.getGraphBounds();0<c.width&&0<c.height&&(c.x>b.container.scrollLeft+.9*b.container.clientWidth&&(b.container.scrollLeft=Math.min(c.x+c.width-b.container.clientWidth,c.x-10)),c.y>b.container.scrollTop+.9*b.container.clientHeight&&(b.container.scrollTop=Math.min(c.y+c.height-b.container.clientHeight,c.y-10)))}else{var c=b.getGraphBounds(),e=Math.max(c.width,b.scrollTileSize.width*b.view.scale);b.container.scrollTop=Math.floor(Math.max(0,c.y-Math.max(20,(b.container.clientHeight-Math.max(c.height,
2239b.scrollTileSize.height*b.view.scale))/4)));b.container.scrollLeft=Math.floor(Math.max(0,c.x-Math.max(0,(b.container.clientWidth-e)/2)))}else{var c=mxRectangle.fromRectangle(b.pageVisible?b.view.getBackgroundPageBounds():b.getGraphBounds()),e=b.view.translate,k=b.view.scale;c.x=c.x/k-e.x;c.y=c.y/k-e.y;c.width/=k;c.height/=k;b.view.setTranslate(Math.floor(Math.max(0,(b.container.clientWidth-c.width)/2)-c.x+2),Math.floor((b.pageVisible?0:Math.max(0,(b.container.clientHeight-c.height)/4))-c.y+1))}};
2240EditorUi.prototype.setPageVisible=function(b){var c=this.editor.graph,e=mxUtils.hasScrollbars(c.container),k=0,g=0;e&&(k=c.view.translate.x*c.view.scale-c.container.scrollLeft,g=c.view.translate.y*c.view.scale-c.container.scrollTop);c.pageVisible=b;c.pageBreaksVisible=b;c.preferPageSize=b;c.view.validateBackground();if(e){var p=c.getSelectionCells();c.clearSelection();c.setSelectionCells(p)}c.sizeDidChange();e&&(c.container.scrollLeft=c.view.translate.x*c.view.scale-k,c.container.scrollTop=c.view.translate.y*
2241c.view.scale-g);c.defaultPageVisible=b;this.fireEvent(new mxEventObject("pageViewChanged"))};function ChangeGridColor(b,c){this.ui=b;this.color=c}ChangeGridColor.prototype.execute=function(){var b=this.ui.editor.graph.view.gridColor;this.ui.setGridColor(this.color);this.color=b};(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);mxCodecRegistry.register(b)})();
2242function ChangePageSetup(b,c,e,k,g){this.ui=b;this.previousColor=this.color=c;this.previousImage=this.image=e;this.previousFormat=this.format=k;this.previousPageScale=this.pageScale=g;this.ignoreImage=this.ignoreColor=!1}
2243ChangePageSetup.prototype.execute=function(){var b=this.ui.editor.graph;if(!this.ignoreColor){this.color=this.previousColor;var c=b.background;this.ui.setBackgroundColor(this.previousColor);this.previousColor=c}if(!this.ignoreImage){this.image=this.previousImage;var c=b.backgroundImage,e=this.previousImage;null!=e&&null!=e.src&&"data:page/id,"==e.src.substring(0,13)&&(e=this.ui.createImageForPageLink(e.src,this.ui.currentPage));this.ui.setBackgroundImage(e);this.previousImage=c}null!=this.previousFormat&&
2244(this.format=this.previousFormat,c=b.pageFormat,this.previousFormat.width!=c.width||this.previousFormat.height!=c.height)&&(this.ui.setPageFormat(this.previousFormat),this.previousFormat=c);null!=this.foldingEnabled&&this.foldingEnabled!=this.ui.editor.graph.foldingEnabled&&(this.ui.setFoldingEnabled(this.foldingEnabled),this.foldingEnabled=!this.foldingEnabled);null!=this.previousPageScale&&(b=this.ui.editor.graph.pageScale,this.previousPageScale!=b&&(this.ui.setPageScale(this.previousPageScale),
2245this.previousPageScale=b))};(function(){var b=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat","previousPageScale"]);b.afterDecode=function(b,e,k){k.previousColor=k.color;k.previousImage=k.image;k.previousFormat=k.format;k.previousPageScale=k.pageScale;null!=k.foldingEnabled&&(k.foldingEnabled=!k.foldingEnabled);return k};mxCodecRegistry.register(b)})();
2246EditorUi.prototype.setBackgroundColor=function(b){this.editor.graph.background=b;this.editor.graph.view.validateBackground();this.fireEvent(new mxEventObject("backgroundColorChanged"))};EditorUi.prototype.setFoldingEnabled=function(b){this.editor.graph.foldingEnabled=b;this.editor.graph.view.revalidate();this.fireEvent(new mxEventObject("foldingEnabledChanged"))};
2247EditorUi.prototype.setPageFormat=function(b,c){c=null!=c?c:"1"==urlParams.sketch;this.editor.graph.pageFormat=b;c||(this.editor.graph.pageVisible?(this.editor.graph.view.validateBackground(),this.editor.graph.sizeDidChange()):this.actions.get("pageView").funct());this.fireEvent(new mxEventObject("pageFormatChanged"))};
2248EditorUi.prototype.setPageScale=function(b){this.editor.graph.pageScale=b;this.editor.graph.pageVisible?(this.editor.graph.view.validateBackground(),this.editor.graph.sizeDidChange()):this.actions.get("pageView").funct();this.fireEvent(new mxEventObject("pageScaleChanged"))};EditorUi.prototype.setGridColor=function(b){this.editor.graph.view.gridColor=b;this.editor.graph.view.validateBackground();this.fireEvent(new mxEventObject("gridColorChanged"))};
2249EditorUi.prototype.addUndoListener=function(){var b=this.actions.get("undo"),c=this.actions.get("redo"),e=this.editor.undoManager,k=mxUtils.bind(this,function(){b.setEnabled(this.canUndo());c.setEnabled(this.canRedo())});e.addListener(mxEvent.ADD,k);e.addListener(mxEvent.UNDO,k);e.addListener(mxEvent.REDO,k);e.addListener(mxEvent.CLEAR,k);var g=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){g.apply(this,arguments);k()};var p=this.editor.graph.cellEditor.stopEditing;
2250this.editor.graph.cellEditor.stopEditing=function(b,d){p.apply(this,arguments);k()};k()};
2251EditorUi.prototype.updateActionStates=function(){var b=this.editor.graph,c=!1,e=!1,k=!1,g=!1,p=[],t=b.getSelectionCells();if(null!=t)for(var d=0;d<t.length;d++){var f=t[d];b.isCellEditable(f)&&(p.push(f),g=!0,b.getModel().isEdge(f)&&(k=!0),b.getModel().isVertex(f)&&(c=!0,0<b.getModel().getChildCount(f)||b.isContainer(f)))&&(e=!0)}t="cut copy bold italic underline delete duplicate editStyle editTooltip editLink backgroundColor borderColor edit toFront toBack solid dashed pasteSize dotted fillColor gradientColor shadow fontColor formattedText rounded toggleRounded sharp strokeColor".split(" ");for(d=
22520;d<t.length;d++)this.actions.get(t[d]).setEnabled(g);this.actions.get("lockUnlock").setEnabled(!b.isSelectionEmpty());this.actions.get("setAsDefaultStyle").setEnabled(1==b.getSelectionCount());this.actions.get("clearWaypoints").setEnabled(g);this.actions.get("copySize").setEnabled(1==b.getSelectionCount());this.actions.get("bringForward").setEnabled(1==p.length);this.actions.get("sendBackward").setEnabled(1==p.length);this.actions.get("turn").setEnabled(0<b.getResizableCells(b.getSelectionCells()).length);
2253this.actions.get("curved").setEnabled(k);this.actions.get("rotation").setEnabled(c);this.actions.get("wordWrap").setEnabled(c);this.actions.get("autosize").setEnabled(c);k=c&&1==b.getSelectionCount();this.actions.get("group").setEnabled(1<b.getSelectionCount()||k&&!b.isContainer(b.getSelectionCell()));this.actions.get("ungroup").setEnabled(e);this.actions.get("removeFromGroup").setEnabled(k&&b.getModel().isVertex(b.getModel().getParent(p[0])));b.view.getState(b.getSelectionCell());this.menus.get("navigation").setEnabled(g||
2254null!=b.view.currentRoot);this.actions.get("collapsible").setEnabled(c&&(b.isContainer(b.getSelectionCell())||0<b.model.getChildCount(b.getSelectionCell())));this.actions.get("home").setEnabled(null!=b.view.currentRoot);this.actions.get("exitGroup").setEnabled(null!=b.view.currentRoot);this.actions.get("enterGroup").setEnabled(1==b.getSelectionCount()&&b.isValidRoot(b.getSelectionCell()));e=1==b.getSelectionCount()&&b.isCellFoldable(b.getSelectionCell());this.actions.get("expand").setEnabled(e);this.actions.get("collapse").setEnabled(e);
2255this.actions.get("editLink").setEnabled(1==p.length);this.actions.get("openLink").setEnabled(1==b.getSelectionCount()&&null!=b.getLinkForCell(b.getSelectionCell()));this.actions.get("guides").setEnabled(b.isEnabled());this.actions.get("grid").setEnabled(!this.editor.chromeless||this.editor.editable);p=b.isEnabled()&&!b.isCellLocked(b.getDefaultParent());this.menus.get("layout").setEnabled(p);this.menus.get("insert").setEnabled(p);this.menus.get("direction").setEnabled(p&&c);this.menus.get("align").setEnabled(p&&
2256c&&1<b.getSelectionCount());this.menus.get("distribute").setEnabled(p&&c&&1<b.getSelectionCount());this.actions.get("selectVertices").setEnabled(p);this.actions.get("selectEdges").setEnabled(p);this.actions.get("selectAll").setEnabled(p);this.actions.get("selectNone").setEnabled(p);this.updatePasteActionStates()};EditorUi.prototype.zeroOffset=new mxPoint(0,0);EditorUi.prototype.getDiagramContainerOffset=function(){return this.zeroOffset};
2257EditorUi.prototype.refresh=function(b){b=null!=b?b:!0;var c=this.container.clientWidth,e=this.container.clientHeight;this.container==document.body&&(c=document.body.clientWidth||document.documentElement.clientWidth,e=document.documentElement.clientHeight);var k=0;mxClient.IS_IOS&&!window.navigator.standalone&&window.innerHeight!=document.documentElement.clientHeight&&(k=document.documentElement.clientHeight-window.innerHeight,window.scrollTo(0,0));var g=Math.max(0,Math.min(this.hsplitPosition,c-this.splitSize-
225820)),c=0;null!=this.menubar&&(this.menubarContainer.style.height=this.menubarHeight+"px",c+=this.menubarHeight);null!=this.toolbar&&(this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px",c+=this.toolbarHeight);0<c&&(c+=1);var p=0;if(null!=this.sidebarFooterContainer){var t=this.footerHeight+k,p=Math.max(0,Math.min(e-c-t,this.sidebarFooterHeight));this.sidebarFooterContainer.style.width=g+"px";this.sidebarFooterContainer.style.height=p+"px";
2259this.sidebarFooterContainer.style.bottom=t+"px"}e=null!=this.format?this.formatWidth:0;this.sidebarContainer.style.top=c+"px";this.sidebarContainer.style.width=g+"px";this.formatContainer.style.top=c+"px";this.formatContainer.style.width=e+"px";this.formatContainer.style.display=null!=this.format?"":"none";var t=this.getDiagramContainerOffset(),d=null!=this.hsplit.parentNode?g+this.splitSize:0;this.footerContainer.style.height=this.footerHeight+"px";this.hsplit.style.top=this.sidebarContainer.style.top;
2260this.hsplit.style.bottom=this.footerHeight+k+"px";this.hsplit.style.left=g+"px";this.footerContainer.style.display=0==this.footerHeight?"none":"";null!=this.tabContainer&&(this.tabContainer.style.left=d+"px");0<this.footerHeight&&(this.footerContainer.style.bottom=k+"px");g=0;null!=this.tabContainer&&(this.tabContainer.style.bottom=this.footerHeight+k+"px",this.tabContainer.style.right=this.diagramContainer.style.right,g=this.tabContainer.clientHeight);this.sidebarContainer.style.bottom=this.footerHeight+
2261p+k+"px";this.formatContainer.style.bottom=this.footerHeight+k+"px";"1"!=urlParams.embedInline&&(this.diagramContainer.style.left=d+t.x+"px",this.diagramContainer.style.top=c+t.y+"px",this.diagramContainer.style.right=e+"px",this.diagramContainer.style.bottom=this.footerHeight+k+g+"px");b&&this.editor.graph.sizeDidChange()};EditorUi.prototype.createTabContainer=function(){return null};
2262EditorUi.prototype.createDivs=function(){this.menubarContainer=this.createDiv("geMenubarContainer");this.toolbarContainer=this.createDiv("geToolbarContainer");this.sidebarContainer=this.createDiv("geSidebarContainer");this.formatContainer=this.createDiv("geSidebarContainer geFormatContainer");this.diagramContainer=this.createDiv("geDiagramContainer");this.footerContainer=this.createDiv("geFooterContainer");this.hsplit=this.createDiv("geHsplit");this.hsplit.setAttribute("title",mxResources.get("collapseExpand"));
2263this.menubarContainer.style.top="0px";this.menubarContainer.style.left="0px";this.menubarContainer.style.right="0px";this.toolbarContainer.style.left="0px";this.toolbarContainer.style.right="0px";this.sidebarContainer.style.left="0px";this.formatContainer.style.right="0px";this.formatContainer.style.zIndex="1";this.diagramContainer.style.right=(null!=this.format?this.formatWidth:0)+"px";this.footerContainer.style.left="0px";this.footerContainer.style.right="0px";this.footerContainer.style.bottom=
2264"0px";this.footerContainer.style.zIndex=mxPopupMenu.prototype.zIndex-3;this.hsplit.style.width=this.splitSize+"px";if(this.sidebarFooterContainer=this.createSidebarFooterContainer())this.sidebarFooterContainer.style.left="0px";this.editor.chromeless?this.diagramContainer.style.border="none":this.tabContainer=this.createTabContainer()};EditorUi.prototype.createSidebarFooterContainer=function(){return null};
2265EditorUi.prototype.createUi=function(){this.menubar=this.editor.chromeless?null:this.menus.createMenubar(this.createDiv("geMenubar"));null!=this.menubar&&this.menubarContainer.appendChild(this.menubar.container);null!=this.menubar&&(this.statusContainer=this.createStatusContainer(),this.editor.addListener("statusChanged",mxUtils.bind(this,function(){this.setStatusText(this.editor.getStatus())})),this.setStatusText(this.editor.getStatus()),this.menubar.container.appendChild(this.statusContainer),this.container.appendChild(this.menubarContainer));
2266this.sidebar=this.editor.chromeless?null:this.createSidebar(this.sidebarContainer);null!=this.sidebar&&this.container.appendChild(this.sidebarContainer);this.format=this.editor.chromeless||!this.formatEnabled?null:this.createFormat(this.formatContainer);null!=this.format&&this.container.appendChild(this.formatContainer);var b=this.editor.chromeless?null:this.createFooter();null!=b&&(this.footerContainer.appendChild(b),this.container.appendChild(this.footerContainer));null!=this.sidebar&&this.sidebarFooterContainer&&
2267this.container.appendChild(this.sidebarFooterContainer);this.container.appendChild(this.diagramContainer);null!=this.container&&null!=this.tabContainer&&this.container.appendChild(this.tabContainer);this.toolbar=this.editor.chromeless?null:this.createToolbar(this.createDiv("geToolbar"));null!=this.toolbar&&(this.toolbarContainer.appendChild(this.toolbar.container),this.container.appendChild(this.toolbarContainer));null!=this.sidebar&&(this.container.appendChild(this.hsplit),this.addSplitHandler(this.hsplit,
2268!0,0,mxUtils.bind(this,function(b){this.hsplitPosition=b;this.refresh()})))};EditorUi.prototype.createStatusContainer=function(){var b=document.createElement("a");b.className="geItem geStatus";return b};EditorUi.prototype.setStatusText=function(b){this.statusContainer.innerHTML=b};EditorUi.prototype.createToolbar=function(b){return new Toolbar(this,b)};EditorUi.prototype.createSidebar=function(b){return new Sidebar(this,b)};EditorUi.prototype.createFormat=function(b){return new Format(this,b)};
2269EditorUi.prototype.createFooter=function(){return this.createDiv("geFooter")};EditorUi.prototype.createDiv=function(b){var c=document.createElement("div");c.className=b;return c};
2270EditorUi.prototype.addSplitHandler=function(b,c,e,k){function g(b){if(null!=t){var g=new mxPoint(mxEvent.getClientX(b),mxEvent.getClientY(b));k(Math.max(0,d+(c?g.x-t.x:t.y-g.y)-e));mxEvent.consume(b);d!=q()&&(f=!0,l=null)}}function p(b){g(b);t=d=null}var t=null,d=null,f=!0,l=null;mxClient.IS_POINTER&&(b.style.touchAction="none");var q=mxUtils.bind(this,function(){var d=parseInt(c?b.style.left:b.style.bottom);c||(d=d+e-this.footerHeight);return d});mxEvent.addGestureListeners(b,function(b){t=new mxPoint(mxEvent.getClientX(b),
2271mxEvent.getClientY(b));d=q();f=!1;mxEvent.consume(b)});mxEvent.addListener(b,"click",mxUtils.bind(this,function(b){if(!f&&this.hsplitClickEnabled){var d=null!=l?l-e:0;l=q();k(d);mxEvent.consume(b)}}));mxEvent.addGestureListeners(document,null,g,p);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,g,p)})};
2272EditorUi.prototype.handleError=function(b,c,e,k,g){b=null!=b&&null!=b.error?b.error:b;if(null!=b||null!=c){g=mxUtils.htmlEntities(mxResources.get("unknownError"));var p=mxResources.get("ok");c=null!=c?c:mxResources.get("error");null!=b&&null!=b.message&&(g=mxUtils.htmlEntities(b.message));this.showError(c,g,p,e,null,null,null,null,null,null,null,null,k?e:null)}else null!=e&&e()};
2273EditorUi.prototype.showError=function(b,c,e,k,g,p,t,d,f,l,q,m,n){b=new ErrorDialog(this,b,c,e||mxResources.get("ok"),k,g,p,t,m,d,f);c=Math.ceil(null!=c?c.length/50:1);this.showDialog(b.container,l||340,q||100+20*c,!0,!1,n);b.init()};EditorUi.prototype.showDialog=function(b,c,e,k,g,p,t,d,f,l){this.editor.graph.tooltipHandler.resetTimer();this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,b,c,e,k,g,p,t,d,f,l);this.dialogs.push(this.dialog)};
2274EditorUi.prototype.hideDialog=function(b,c,e){null!=this.dialogs&&0<this.dialogs.length&&(null==e||e==this.dialog.container.firstChild)&&(e=this.dialogs.pop(),0==e.close(b,c)?this.dialogs.push(e):(this.dialog=0<this.dialogs.length?this.dialogs[this.dialogs.length-1]:null,this.editor.fireEvent(new mxEventObject("hideDialog")),null==this.dialog&&"hidden"!=this.editor.graph.container.style.visibility&&window.setTimeout(mxUtils.bind(this,function(){this.editor.graph.isEditing()&&null!=this.editor.graph.cellEditor.textarea?
2275this.editor.graph.cellEditor.textarea.focus():(mxUtils.clearSelection(),this.editor.graph.container.focus())}),0)))};EditorUi.prototype.ctrlEnter=function(){var b=this.editor.graph;if(b.isEnabled())try{for(var c=b.getSelectionCells(),e=new mxDictionary,k=[],g=0;g<c.length;g++){var p=b.isTableCell(c[g])?b.model.getParent(c[g]):c[g];null==p||e.get(p)||(e.put(p,!0),k.push(p))}b.setSelectionCells(b.duplicateCells(k,!1))}catch(t){this.handleError(t)}};
2276EditorUi.prototype.pickColor=function(b,c){var e=this.editor.graph,k=e.cellEditor.saveSelection(),g=230+17*(Math.ceil(ColorDialog.prototype.presetColors.length/12)+Math.ceil(ColorDialog.prototype.defaultColors.length/12)),p=new ColorDialog(this,b||"none",function(b){e.cellEditor.restoreSelection(k);c(b)},function(){e.cellEditor.restoreSelection(k)});this.showDialog(p.container,230,g,!0,!1);p.init()};
2277EditorUi.prototype.openFile=function(){window.openFile=new OpenFile(mxUtils.bind(this,function(b){this.hideDialog(b)}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:320,Editor.useLocalStorage?480:220,!0,!0,function(){window.openFile=null})};
2278EditorUi.prototype.extractGraphModelFromHtml=function(b){var c=null;try{var e=b.indexOf("&lt;mxGraphModel ");if(0<=e){var k=b.lastIndexOf("&lt;/mxGraphModel&gt;");k>e&&(c=b.substring(e,k+21).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}}catch(g){}return c};
2279EditorUi.prototype.readGraphModelFromClipboard=function(b){this.readGraphModelFromClipboardWithType(mxUtils.bind(this,function(c){null!=c?b(c):this.readGraphModelFromClipboardWithType(mxUtils.bind(this,function(c){if(null!=c){var e=decodeURIComponent(c);this.isCompatibleString(e)&&(c=e)}b(c)}),"text")}),"html")};
2280EditorUi.prototype.readGraphModelFromClipboardWithType=function(b,c){navigator.clipboard.read().then(mxUtils.bind(this,function(e){if(null!=e&&0<e.length&&"html"==c&&0<=mxUtils.indexOf(e[0].types,"text/html"))e[0].getType("text/html").then(mxUtils.bind(this,function(c){c.text().then(mxUtils.bind(this,function(c){try{var e=this.parseHtmlData(c),g="text/plain"!=e.getAttribute("data-type")?e.innerHTML:mxUtils.trim(null==e.innerText?mxUtils.getTextContent(e):e.innerText);try{var d=g.lastIndexOf("%3E");
22810<=d&&d<g.length-3&&(g=g.substring(0,d+3))}catch(q){}try{var f=e.getElementsByTagName("span"),l=null!=f&&0<f.length?mxUtils.trim(decodeURIComponent(f[0].textContent)):decodeURIComponent(g);this.isCompatibleString(l)&&(g=l)}catch(q){}}catch(q){}b(this.isCompatibleString(g)?g:null)}))["catch"](function(c){b(null)})}))["catch"](function(c){b(null)});else if(null!=e&&0<e.length&&"text"==c&&0<=mxUtils.indexOf(e[0].types,"text/plain"))e[0].getType("text/plain").then(function(c){c.text().then(function(c){b(c)})["catch"](function(){b(null)})})["catch"](function(){b(null)});
2282else b(null)}))["catch"](function(c){b(null)})};
2283EditorUi.prototype.parseHtmlData=function(b){var c=null;if(null!=b&&0<b.length){var e="<meta "==b.substring(0,6),c=document.createElement("div");c.innerHTML=(e?'<meta charset="utf-8">':"")+this.editor.graph.sanitizeHtml(b);asHtml=!0;b=c.getElementsByTagName("style");if(null!=b)for(;0<b.length;)b[0].parentNode.removeChild(b[0]);null!=c.firstChild&&c.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT&&null!=c.firstChild.nextSibling&&c.firstChild.nextSibling.nodeType==mxConstants.NODETYPE_ELEMENT&&"META"==
2284c.firstChild.nodeName&&"A"==c.firstChild.nextSibling.nodeName&&null==c.firstChild.nextSibling.nextSibling&&(b=null==c.firstChild.nextSibling.innerText?mxUtils.getTextContent(c.firstChild.nextSibling):c.firstChild.nextSibling.innerText,b==c.firstChild.nextSibling.getAttribute("href")&&(mxUtils.setTextContent(c,b),asHtml=!1));e=e&&null!=c.firstChild?c.firstChild.nextSibling:c.firstChild;null!=e&&null==e.nextSibling&&e.nodeType==mxConstants.NODETYPE_ELEMENT&&"IMG"==e.nodeName?(b=e.getAttribute("src"),
2285null!=b&&("data:image/png;base64,"==b.substring(0,22)&&(e=this.extractGraphModelFromPng(b),null!=e&&0<e.length&&(b=e)),mxUtils.setTextContent(c,b),asHtml=!1)):(e=c.getElementsByTagName("img"),1==e.length&&(e=e[0],b=e.getAttribute("src"),null!=b&&e.parentNode==c&&1==c.children.length&&("data:image/png;base64,"==b.substring(0,22)&&(e=this.extractGraphModelFromPng(b),null!=e&&0<e.length&&(b=e)),mxUtils.setTextContent(c,b),asHtml=!1)));asHtml&&Graph.removePasteFormatting(c)}asHtml||c.setAttribute("data-type",
2286"text/plain");return c};
2287EditorUi.prototype.extractGraphModelFromEvent=function(b){var c=null,e=null;null!=b&&(b=null!=b.dataTransfer?b.dataTransfer:b.clipboardData,null!=b&&(10==document.documentMode||11==document.documentMode?e=b.getData("Text"):(e=0<=mxUtils.indexOf(b.types,"text/html")?b.getData("text/html"):null,mxUtils.indexOf(b.types,null==e||0==e.length)&&(e=b.getData("text/plain"))),null!=e&&(e=Graph.zapGremlins(mxUtils.trim(e)),b=this.extractGraphModelFromHtml(e),null!=b&&(e=b))));null!=e&&this.isCompatibleString(e)&&
2288(c=e);return c};EditorUi.prototype.isCompatibleString=function(b){return!1};EditorUi.prototype.saveFile=function(b){b||null==this.editor.filename?(b=new FilenameDialog(this,this.editor.getOrCreateFilename(),mxResources.get("save"),mxUtils.bind(this,function(b){this.save(b)}),null,mxUtils.bind(this,function(b){if(null!=b&&0<b.length)return!0;mxUtils.confirm(mxResources.get("invalidName"));return!1})),this.showDialog(b.container,300,100,!0,!0),b.init()):this.save(this.editor.getOrCreateFilename())};
2289EditorUi.prototype.save=function(b){if(null!=b){this.editor.graph.isEditing()&&this.editor.graph.stopEditing();var c=mxUtils.getXml(this.editor.getGraphXml());try{if(Editor.useLocalStorage){if(null!=localStorage.getItem(b)&&!mxUtils.confirm(mxResources.get("replaceIt",[b])))return;localStorage.setItem(b,c);this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("saved"))+" "+new Date)}else if(c.length<MAX_REQUEST_SIZE)(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(b)+"&xml="+encodeURIComponent(c))).simulate(document,
2290"_blank");else{mxUtils.alert(mxResources.get("drawingTooLarge"));mxUtils.popup(c);return}this.editor.setModified(!1);this.editor.setFilename(b);this.updateDocumentTitle()}catch(e){this.editor.setStatus(mxUtils.htmlEntities(mxResources.get("errorSavingFile")))}}};
2291EditorUi.prototype.executeLayout=function(b,c,e){var k=this.editor.graph;if(k.isEnabled()){k.getModel().beginUpdate();try{b()}catch(g){throw g;}finally{this.allowAnimation&&c&&(null==navigator.userAgent||0>navigator.userAgent.indexOf("Camino"))?(b=new mxMorphing(k),b.addListener(mxEvent.DONE,mxUtils.bind(this,function(){k.getModel().endUpdate();null!=e&&e()})),b.startAnimation()):(k.getModel().endUpdate(),null!=e&&e())}}};
2292EditorUi.prototype.showImageDialog=function(b,c,e,k){k=this.editor.graph.cellEditor;var g=k.saveSelection(),p=mxUtils.prompt(b,c);k.restoreSelection(g);if(null!=p&&0<p.length){var t=new Image;t.onload=function(){e(p,t.width,t.height)};t.onerror=function(){e(null);mxUtils.alert(mxResources.get("fileNotFound"))};t.src=p}else e(null)};EditorUi.prototype.showLinkDialog=function(b,c,e){b=new LinkDialog(this,b,c,e);this.showDialog(b.container,420,90,!0,!0);b.init()};
2293EditorUi.prototype.showDataDialog=function(b){null!=b&&(b=new EditDataDialog(this,b),this.showDialog(b.container,480,420,!0,!1,null,!1),b.init())};
2294EditorUi.prototype.showBackgroundImageDialog=function(b,c){b=null!=b?b:mxUtils.bind(this,function(b){b=new ChangePageSetup(this,null,b);b.ignoreColor=!0;this.editor.graph.model.execute(b)});var e=mxUtils.prompt(mxResources.get("backgroundImage"),null!=c?c.src:"");null!=e&&0<e.length?(c=new Image,c.onload=function(){b(new mxImage(e,c.width,c.height),!1)},c.onerror=function(){b(null,!0);mxUtils.alert(mxResources.get("fileNotFound"))},c.src=e):b(null)};
2295EditorUi.prototype.setBackgroundImage=function(b){this.editor.graph.setBackgroundImage(b);this.editor.graph.view.validateBackgroundImage();this.fireEvent(new mxEventObject("backgroundImageChanged"))};EditorUi.prototype.confirm=function(b,c,e){mxUtils.confirm(b)?null!=c&&c():null!=e&&e()};EditorUi.prototype.createOutline=function(b){var c=new mxOutline(this.editor.graph);mxEvent.addListener(window,"resize",function(){c.update(!1)});return c};
2296EditorUi.prototype.altShiftActions={67:"clearWaypoints",65:"connectionArrows",76:"editLink",80:"connectionPoints",84:"editTooltip",86:"pasteSize",88:"copySize",66:"copyData",69:"pasteData"};
2297EditorUi.prototype.createKeyHandler=function(b){function c(b,d,f){if(!k.isSelectionEmpty()&&k.isEnabled())if(d=null!=d?d:1,f){k.getModel().beginUpdate();try{var c=k.getSelectionCells();for(f=0;f<c.length;f++)if(k.getModel().isVertex(c[f])&&k.isCellResizable(c[f])){var e=k.getCellGeometry(c[f]);null!=e&&(e=e.clone(),37==b?e.width=Math.max(0,e.width-d):38==b?e.height=Math.max(0,e.height-d):39==b?e.width+=d:40==b&&(e.height+=d),k.getModel().setGeometry(c[f],e))}}finally{k.getModel().endUpdate()}}else{var c=
2298k.getSelectionCell(),e=k.model.getParent(c),l=k.getView().scale;f=null;1==k.getSelectionCount()&&k.model.isVertex(c)&&null!=k.layoutManager&&!k.isCellLocked(c)&&(f=k.layoutManager.getLayout(e));if(null!=f&&f.constructor==mxStackLayout)d=e.getIndex(c),37==b||38==b?k.model.add(e,c,Math.max(0,d-1)):39!=b&&40!=b||k.model.add(e,c,Math.min(k.model.getChildCount(e),d+1));else{var g=k.graphHandler;null!=g&&(null==g.first&&g.start(k.getSelectionCell(),0,0,k.getSelectionCells()),null!=g.first&&(e=c=0,37==b?
2299c=-d:38==b?e=-d:39==b?c=d:40==b&&(e=d),g.currentDx+=c*l,g.currentDy+=e*l,g.checkPreview(),g.updatePreview()),null!=t&&window.clearTimeout(t),t=window.setTimeout(function(){if(null!=g.first){var b=g.roundLength(g.currentDx/l),d=g.roundLength(g.currentDy/l);g.moveCells(g.cells,b,d);g.reset()}},400))}}}var e=this,k=this.editor.graph,g=new mxKeyHandler(k),p=g.isEventIgnored;g.isEventIgnored=function(b){return!(mxEvent.isShiftDown(b)&&9==b.keyCode)&&(!this.isControlDown(b)||mxEvent.isShiftDown(b)||90!=
2300b.keyCode&&89!=b.keyCode&&188!=b.keyCode&&190!=b.keyCode&&85!=b.keyCode)&&(66!=b.keyCode&&73!=b.keyCode||!this.isControlDown(b)||this.graph.cellEditor.isContentEditing()&&!mxClient.IS_FF&&!mxClient.IS_SF)&&p.apply(this,arguments)};g.isEnabledForEvent=function(b){return!mxEvent.isConsumed(b)&&this.isGraphEvent(b)&&this.isEnabled()&&(null==e.dialogs||0==e.dialogs.length)};g.isControlDown=function(b){return mxEvent.isControlDown(b)||mxClient.IS_MAC&&b.metaKey};var t=null,d={37:mxConstants.DIRECTION_WEST,
230138:mxConstants.DIRECTION_NORTH,39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},f=g.getFunction;mxKeyHandler.prototype.getFunction=function(b){if(k.isEnabled()){if(mxEvent.isShiftDown(b)&&mxEvent.isAltDown(b)){var l=e.actions.get(e.altShiftActions[b.keyCode]);if(null!=l)return l.funct}if(null!=d[b.keyCode]&&!k.isSelectionEmpty())if(!this.isControlDown(b)&&mxEvent.isShiftDown(b)&&mxEvent.isAltDown(b)){if(k.model.isVertex(k.getSelectionCell()))return function(){var f=k.connectVertex(k.getSelectionCell(),
2302d[b.keyCode],k.defaultEdgeLength,b,!0);null!=f&&0<f.length&&(1==f.length&&k.model.isEdge(f[0])?k.setSelectionCell(k.model.getTerminal(f[0],!1)):k.setSelectionCell(f[f.length-1]),k.scrollCellToVisible(k.getSelectionCell()),null!=e.hoverIcons&&e.hoverIcons.update(k.view.getState(k.getSelectionCell())))}}else return this.isControlDown(b)?function(){c(b.keyCode,mxEvent.isShiftDown(b)?k.gridSize:null,!0)}:function(){c(b.keyCode,mxEvent.isShiftDown(b)?k.gridSize:null)}}return f.apply(this,arguments)};g.bindAction=
2303mxUtils.bind(this,function(b,d,f,c){var e=this.actions.get(f);null!=e&&(f=function(){e.isEnabled()&&e.funct()},d?c?g.bindControlShiftKey(b,f):g.bindControlKey(b,f):c?g.bindShiftKey(b,f):g.bindKey(b,f))});var l=this,q=g.escape;g.escape=function(b){q.apply(this,arguments)};g.enter=function(){};g.bindControlShiftKey(36,function(){k.exitGroup()});g.bindControlShiftKey(35,function(){k.enterGroup()});g.bindShiftKey(36,function(){k.home()});g.bindKey(35,function(){k.refresh()});g.bindAction(107,!0,"zoomIn");
2304g.bindAction(109,!0,"zoomOut");g.bindAction(80,!0,"print");g.bindAction(79,!0,"outline",!0);if(!this.editor.chromeless||this.editor.editable)g.bindControlKey(36,function(){k.isEnabled()&&k.foldCells(!0)}),g.bindControlKey(35,function(){k.isEnabled()&&k.foldCells(!1)}),g.bindControlKey(13,function(){l.ctrlEnter()}),g.bindAction(8,!1,"delete"),g.bindAction(8,!0,"deleteAll"),g.bindAction(8,!1,"deleteLabels",!0),g.bindAction(46,!1,"delete"),g.bindAction(46,!0,"deleteAll"),g.bindAction(46,!1,"deleteLabels",
2305!0),g.bindAction(36,!1,"resetView"),g.bindAction(72,!0,"fitWindow",!0),g.bindAction(74,!0,"fitPage"),g.bindAction(74,!0,"fitTwoPages",!0),g.bindAction(48,!0,"customZoom"),g.bindAction(82,!0,"turn"),g.bindAction(82,!0,"clearDefaultStyle",!0),g.bindAction(83,!0,"save"),g.bindAction(83,!0,"saveAs",!0),g.bindAction(65,!0,"selectAll"),g.bindAction(65,!0,"selectNone",!0),g.bindAction(73,!0,"selectVertices",!0),g.bindAction(69,!0,"selectEdges",!0),g.bindAction(69,!0,"editStyle"),g.bindAction(66,!0,"bold"),
2306g.bindAction(66,!0,"toBack",!0),g.bindAction(70,!0,"toFront",!0),g.bindAction(68,!0,"duplicate"),g.bindAction(68,!0,"setAsDefaultStyle",!0),g.bindAction(90,!0,"undo"),g.bindAction(89,!0,"autosize",!0),g.bindAction(88,!0,"cut"),g.bindAction(67,!0,"copy"),g.bindAction(86,!0,"paste"),g.bindAction(71,!0,"group"),g.bindAction(77,!0,"editData"),g.bindAction(71,!0,"grid",!0),g.bindAction(73,!0,"italic"),g.bindAction(76,!0,"lockUnlock"),g.bindAction(76,!0,"layers",!0),g.bindAction(80,!0,"formatPanel",!0),
2307g.bindAction(85,!0,"underline"),g.bindAction(85,!0,"ungroup",!0),g.bindAction(190,!0,"superscript"),g.bindAction(188,!0,"subscript"),g.bindAction(13,!1,"keyPressEnter"),g.bindKey(113,function(){k.isEnabled()&&k.startEditingAtCell()});mxClient.IS_WIN?g.bindAction(89,!0,"redo"):g.bindAction(90,!0,"redo",!0);return g};
2308EditorUi.prototype.destroy=function(){null!=this.editor&&(this.editor.destroy(),this.editor=null);null!=this.menubar&&(this.menubar.destroy(),this.menubar=null);null!=this.toolbar&&(this.toolbar.destroy(),this.toolbar=null);null!=this.sidebar&&(this.sidebar.destroy(),this.sidebar=null);null!=this.keyHandler&&(this.keyHandler.destroy(),this.keyHandler=null);null!=this.keydownHandler&&(mxEvent.removeListener(document,"keydown",this.keydownHandler),this.keydownHandler=null);null!=this.keyupHandler&&
2309(mxEvent.removeListener(document,"keyup",this.keyupHandler),this.keyupHandler=null);null!=this.resizeHandler&&(mxEvent.removeListener(window,"resize",this.resizeHandler),this.resizeHandler=null);null!=this.gestureHandler&&(mxEvent.removeGestureListeners(document,this.gestureHandler),this.gestureHandler=null);null!=this.orientationChangeHandler&&(mxEvent.removeListener(window,"orientationchange",this.orientationChangeHandler),this.orientationChangeHandler=null);null!=this.scrollHandler&&(mxEvent.removeListener(window,
2310"scroll",this.scrollHandler),this.scrollHandler=null);if(null!=this.destroyFunctions){for(var b=0;b<this.destroyFunctions.length;b++)this.destroyFunctions[b]();this.destroyFunctions=null}for(var c=[this.menubarContainer,this.toolbarContainer,this.sidebarContainer,this.formatContainer,this.diagramContainer,this.footerContainer,this.chromelessToolbar,this.hsplit,this.sidebarFooterContainer,this.layersDialog],b=0;b<c.length;b++)null!=c[b]&&null!=c[b].parentNode&&c[b].parentNode.removeChild(c[b])};"undefined"!==typeof html4&&(html4.ATTRIBS["a::target"]=0,html4.ATTRIBS["source::src"]=0,html4.ATTRIBS["video::src"]=0);(function(){var b=[["nbsp","160"],["shy","173"]],c=mxUtils.parseXml;mxUtils.parseXml=function(e){for(var k=0;k<b.length;k++)e=e.replace(new RegExp("&"+b[k][0]+";","g"),"&#"+b[k][1]+";");return c(e)}})();
2311Date.prototype.toISOString||function(){function b(b){b=String(b);1===b.length&&(b="0"+b);return b}Date.prototype.toISOString=function(){return this.getUTCFullYear()+"-"+b(this.getUTCMonth()+1)+"-"+b(this.getUTCDate())+"T"+b(this.getUTCHours())+":"+b(this.getUTCMinutes())+":"+b(this.getUTCSeconds())+"."+String((this.getUTCMilliseconds()/1E3).toFixed(3)).slice(2,5)+"Z"}}();Date.now||(Date.now=function(){return(new Date).getTime()});
2312Uint8Array.from||(Uint8Array.from=function(){var b=Object.prototype.toString,c=function(c){return"function"===typeof c||"[object Function]"===b.call(c)},e=Math.pow(2,53)-1;return function(b){var g=Object(b);if(null==b)throw new TypeError("Array.from requires an array-like object - not null or undefined");var k=1<arguments.length?arguments[1]:void 0,t;if("undefined"!==typeof k){if(!c(k))throw new TypeError("Array.from: when provided, the second argument must be a function");2<arguments.length&&(t=
2313arguments[2])}var d;d=Number(g.length);d=isNaN(d)?0:0!==d&&isFinite(d)?(0<d?1:-1)*Math.floor(Math.abs(d)):d;d=Math.min(Math.max(d,0),e);for(var f=c(this)?Object(new this(d)):Array(d),l=0,q;l<d;)q=g[l],f[l]=k?"undefined"===typeof t?k(q,l):k.call(t,q,l):q,l+=1;f.length=d;return f}}());mxConstants.POINTS=1;mxConstants.MILLIMETERS=2;mxConstants.INCHES=3;mxConstants.METERS=4;mxConstants.PIXELS_PER_MM=3.937;mxConstants.PIXELS_PER_INCH=100;mxConstants.SHADOW_OPACITY=.25;mxConstants.SHADOWCOLOR="#000000";
2314mxConstants.VML_SHADOWCOLOR="#d0d0d0";mxGraph.prototype.pageBreakColor="#c0c0c0";mxGraph.prototype.pageScale=1;(function(){try{if(null!=navigator&&null!=navigator.language){var b=navigator.language.toLowerCase();mxGraph.prototype.pageFormat="en-us"===b||"en-ca"===b||"es-mx"===b?mxConstants.PAGE_FORMAT_LETTER_PORTRAIT:mxConstants.PAGE_FORMAT_A4_PORTRAIT}}catch(c){}})();mxText.prototype.baseSpacingTop=5;mxText.prototype.baseSpacingBottom=1;mxGraphModel.prototype.ignoreRelativeEdgeParent=!1;
2315mxGraphView.prototype.gridImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhCgAKAJEAAAAAAP///8zMzP///yH5BAEAAAMALAAAAAAKAAoAAAIJ1I6py+0Po2wFADs=":IMAGE_PATH+"/grid.gif";mxGraphView.prototype.gridSteps=4;mxGraphView.prototype.minGridSize=4;mxGraphView.prototype.defaultGridColor="#d0d0d0";mxGraphView.prototype.defaultDarkGridColor="#6e6e6e";mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultGridColor;mxGraphView.prototype.unit=mxConstants.POINTS;
2316mxGraphView.prototype.setUnit=function(b){this.unit!=b&&(this.unit=b,this.fireEvent(new mxEventObject("unitChanged","unit",b)))};mxSvgCanvas2D.prototype.foAltText="[Not supported by viewer]";mxShape.prototype.getConstraints=function(b,c,e){return null};
2317mxImageShape.prototype.getImageDataUri=function(){var b=this.image;if("data:image/svg+xml;base64,"==b.substring(0,26)&&null!=this.style&&"1"==mxUtils.getValue(this.style,"clipSvg","0")){if(null==this.clippedSvg||this.clippedImage!=b)this.clippedSvg=Graph.clipSvgDataUri(b),this.clippedImage=b;b=this.clippedSvg}return b};
2318Graph=function(b,c,e,k,g,p){mxGraph.call(this,b,c,e,k);this.themes=g||this.defaultThemes;this.currentEdgeStyle=mxUtils.clone(this.defaultEdgeStyle);this.currentVertexStyle=mxUtils.clone(this.defaultVertexStyle);this.standalone=null!=p?p:!1;b=this.baseUrl;c=b.indexOf("//");this.domainPathUrl=this.domainUrl="";0<c&&(c=b.indexOf("/",c+2),0<c&&(this.domainUrl=b.substring(0,c)),c=b.lastIndexOf("/"),0<c&&(this.domainPathUrl=b.substring(0,c+1)));this.isHtmlLabel=function(b){b=this.getCurrentCellStyle(b);
2319return null!=b?"1"==b.html||"wrap"==b[mxConstants.STYLE_WHITE_SPACE]:!1};if(this.edgeMode){var t=null,d=null,f=null,l=null,q=!1;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,c){if("mouseDown"==c.getProperty("eventName")&&this.isEnabled()){var e=c.getProperty("event"),g=e.getState(),k=this.view.scale;if(!mxEvent.isAltDown(e.getEvent())&&null!=g)if(this.model.isEdge(g.cell))if(t=new mxPoint(e.getGraphX(),e.getGraphY()),q=this.isCellSelected(g.cell),f=g,d=e,null!=g.text&&null!=
2320g.text.boundingBox&&mxUtils.contains(g.text.boundingBox,e.getGraphX(),e.getGraphY()))l=mxEvent.LABEL_HANDLE;else{var m=this.selectionCellsHandler.getHandler(g.cell);null!=m&&null!=m.bends&&0<m.bends.length&&(l=m.getHandleForEvent(e))}else if(!this.panningHandler.isActive()&&!mxEvent.isControlDown(e.getEvent())&&(m=this.selectionCellsHandler.getHandler(g.cell),null==m||null==m.getHandleForEvent(e))){var n=new mxRectangle(e.getGraphX()-1,e.getGraphY()-1);n.grow(mxEvent.isTouchEvent(e.getEvent())?mxShape.prototype.svgStrokeTolerance-
23211:(mxShape.prototype.svgStrokeTolerance+1)/2);if(this.isTableCell(g.cell)&&!this.isCellSelected(g.cell)){var v=this.model.getParent(g.cell),m=this.model.getParent(v);if(!this.isCellSelected(m)){var u=this.getCellGeometry(g.cell),u=null!=u.alternateBounds?u.alternateBounds:u;if(mxUtils.intersects(n,new mxRectangle(g.x,g.y-2,u.width*k,3))&&this.model.getChildAt(m,0)!=v||mxUtils.intersects(n,new mxRectangle(g.x,g.y+u.height-2,u.width,3))||mxUtils.intersects(n,new mxRectangle(g.x-2,g.y,2,u.height*k))&&
2322this.model.getChildAt(v,0)!=g.cell||mxUtils.intersects(n,new mxRectangle(g.x+u.width*k-2,g.y,2,u.height*k)))v=this.selectionCellsHandler.isHandled(m),this.selectCellForEvent(m,e.getEvent()),m=this.selectionCellsHandler.getHandler(m),null!=m&&(u=m.getHandleForEvent(e),null!=u&&(m.start(e.getGraphX(),e.getGraphY(),u),m.blockDelayedSelection=!v,e.consume()))}}for(;!e.isConsumed()&&null!=g&&(this.isTableCell(g.cell)||this.isTableRow(g.cell)||this.isTable(g.cell));)this.isSwimlane(g.cell)&&(m=this.getActualStartSize(g.cell),
2323(0<m.x||0<m.width)&&mxUtils.intersects(n,new mxRectangle(g.x+(m.x-m.width-1)*k+(0==m.x?g.width:0),g.y,1,g.height))||(0<m.y||0<m.height)&&mxUtils.intersects(n,new mxRectangle(g.x,g.y+(m.y-m.height-1)*k+(0==m.y?g.height:0),g.width,1)))&&(this.selectCellForEvent(g.cell,e.getEvent()),m=this.selectionCellsHandler.getHandler(g.cell),null!=m&&(u=mxEvent.CUSTOM_HANDLE-m.customHandles.length+1,m.start(e.getGraphX(),e.getGraphY(),u),e.consume())),g=this.view.getState(this.model.getParent(g.cell))}}}));this.addMouseListener({mouseDown:function(b,
2324d){},mouseMove:mxUtils.bind(this,function(b,c){var e=this.selectionCellsHandler.handlers.map,g;for(g in e)if(null!=e[g].index)return;if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isAltDown(c.getEvent()))if(g=this.tolerance,null!=t&&null!=f&&null!=d){if(e=f,Math.abs(t.x-c.getGraphX())>g||Math.abs(t.y-c.getGraphY())>g){var k=this.selectionCellsHandler.getHandler(e.cell);null==k&&this.model.isEdge(e.cell)&&(k=this.createHandler(e));if(null!=k&&null!=k.bends&&0<k.bends.length){g=k.getHandleForEvent(d);
2325var m=this.view.getEdgeStyle(e),n=m==mxEdgeStyle.EntityRelation;q||l!=mxEvent.LABEL_HANDLE||(g=l);if(n&&0!=g&&g!=k.bends.length-1&&g!=mxEvent.LABEL_HANDLE)!n||null==e.visibleSourceState&&null==e.visibleTargetState||(this.graphHandler.reset(),c.consume());else if(g==mxEvent.LABEL_HANDLE||0==g||null!=e.visibleSourceState||g==k.bends.length-1||null!=e.visibleTargetState)n||g==mxEvent.LABEL_HANDLE||(n=e.absolutePoints,null!=n&&(null==m&&null==g||m==mxEdgeStyle.OrthConnector)&&(g=l,null==g&&(g=new mxRectangle(t.x,
2326t.y),g.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(g,n[0].x,n[0].y)?g=0:mxUtils.contains(g,n[n.length-1].x,n[n.length-1].y)?g=k.bends.length-1:null!=m&&(2==n.length||3==n.length&&(0==Math.round(n[0].x-n[1].x)&&0==Math.round(n[1].x-n[2].x)||0==Math.round(n[0].y-n[1].y)&&0==Math.round(n[1].y-n[2].y)))?g=2:(g=mxUtils.findNearestSegment(e,t.x,t.y),g=null==m?mxEvent.VIRTUAL_HANDLE-g:g+1))),null==g&&(g=mxEvent.VIRTUAL_HANDLE)),k.start(c.getGraphX(),c.getGraphX(),g),c.consume(),this.graphHandler.reset()}null!=
2327k&&(this.selectionCellsHandler.isHandlerActive(k)?this.isCellSelected(e.cell)||(this.selectionCellsHandler.handlers.put(e.cell,k),this.selectCellForEvent(e.cell,c.getEvent())):this.isCellSelected(e.cell)||k.destroy());q=!1;t=d=f=l=null}}else if(e=c.getState(),null!=e&&this.isCellEditable(e.cell)){k=null;if(this.model.isEdge(e.cell)){if(g=new mxRectangle(c.getGraphX(),c.getGraphY()),g.grow(mxEdgeHandler.prototype.handleImage.width/2),n=e.absolutePoints,null!=n)if(null!=e.text&&null!=e.text.boundingBox&&
2328mxUtils.contains(e.text.boundingBox,c.getGraphX(),c.getGraphY()))k="move";else if(mxUtils.contains(g,n[0].x,n[0].y)||mxUtils.contains(g,n[n.length-1].x,n[n.length-1].y))k="pointer";else if(null!=e.visibleSourceState||null!=e.visibleTargetState)g=this.view.getEdgeStyle(e),k="crosshair",g!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(e)&&(g=mxUtils.findNearestSegment(e,c.getGraphX(),c.getGraphY()),g<n.length-1&&0<=g&&(k=0==Math.round(n[g].x-n[g+1].x)?"col-resize":"row-resize"))}else if(!mxEvent.isControlDown(c.getEvent())){g=
2329new mxRectangle(c.getGraphX()-1,c.getGraphY()-1);g.grow(mxShape.prototype.svgStrokeTolerance/2);if(this.isTableCell(e.cell)&&(n=this.model.getParent(e.cell),m=this.model.getParent(n),!this.isCellSelected(m)))if(mxUtils.intersects(g,new mxRectangle(e.x-2,e.y,2,e.height))&&this.model.getChildAt(n,0)!=e.cell||mxUtils.intersects(g,new mxRectangle(e.x+e.width-2,e.y,2,e.height)))k="col-resize";else if(mxUtils.intersects(g,new mxRectangle(e.x,e.y-2,e.width,3))&&this.model.getChildAt(m,0)!=n||mxUtils.intersects(g,
2330new mxRectangle(e.x,e.y+e.height-2,e.width,3)))k="row-resize";for(n=e;null==k&&null!=n&&(this.isTableCell(n.cell)||this.isTableRow(n.cell)||this.isTable(n.cell));){if(this.isSwimlane(n.cell)){var m=this.getActualStartSize(n.cell),v=this.view.scale;(0<m.x||0<m.width)&&mxUtils.intersects(g,new mxRectangle(n.x+(m.x-m.width-1)*v+(0==m.x?n.width*v:0),n.y,1,n.height))?k="col-resize":(0<m.y||0<m.height)&&mxUtils.intersects(g,new mxRectangle(n.x,n.y+(m.y-m.height-1)*v+(0==m.y?n.height:0),n.width,1))&&(k=
2331"row-resize")}n=this.view.getState(this.model.getParent(n.cell))}}null!=k&&e.setCursor(k)}}),mouseUp:mxUtils.bind(this,function(b,c){l=t=d=f=null})})}this.cellRenderer.minSvgStrokeWidth=.1;this.cellRenderer.getLabelValue=function(b){var d=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);b.view.graph.isHtmlLabel(b.cell)&&(d=1!=b.style.html?mxUtils.htmlEntities(d,!1):b.view.graph.sanitizeHtml(d));return d};if("undefined"!==typeof mxVertexHandler){this.setConnectable(!0);this.setDropEnabled(!0);
2332this.setPanning(!0);this.setTooltips(!0);this.setAllowLoops(!0);this.allowAutoPanning=!0;this.constrainChildren=this.resetEdgesOnConnect=!1;this.constrainRelativeChildren=!0;this.graphHandler.scrollOnMove=!1;this.graphHandler.scaleGrid=!0;this.connectionHandler.setCreateTarget(!1);this.connectionHandler.insertBeforeSource=!0;this.connectionHandler.isValidSource=function(b,d){return!1};this.alternateEdgeStyle="vertical";null==k&&this.loadStylesheet();var m=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=
2333function(){var b=m.apply(this,arguments);if(this.graph.pageVisible){for(var d=[],f=this.graph.pageFormat,c=this.graph.pageScale,e=f.width*c,f=f.height*c,c=this.graph.view.translate,l=this.graph.view.scale,g=this.graph.getPageLayout(),q=0;q<g.width;q++)d.push(new mxRectangle(((g.x+q)*e+c.x)*l,(g.y*f+c.y)*l,e*l,f*l));for(q=1;q<g.height;q++)d.push(new mxRectangle((g.x*e+c.x)*l,((g.y+q)*f+c.y)*l,e*l,f*l));b=d.concat(b)}return b};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=
2334function(b,d){return null==b.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(b){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};var n=this.graphHandler.getCells;this.graphHandler.getCells=function(b){for(var d=n.apply(this,arguments),f=new mxDictionary,c=[],e=0;e<d.length;e++){var l=this.graph.isTableCell(b)&&this.graph.isTableCell(d[e])&&
2335this.graph.isCellSelected(d[e])?this.graph.model.getParent(d[e]):this.graph.isTableRow(b)&&this.graph.isTableRow(d[e])&&this.graph.isCellSelected(d[e])?d[e]:this.graph.getCompositeParent(d[e]);null==l||f.get(l)||(f.put(l,!0),c.push(l))}return c};var u=this.graphHandler.start;this.graphHandler.start=function(b,d,f,c){var e=!1;this.graph.isTableCell(b)&&(this.graph.isCellSelected(b)?e=!0:b=this.graph.model.getParent(b));e||this.graph.isTableRow(b)&&this.graph.isCellSelected(b)||(b=this.graph.getCompositeParent(b));
2336u.apply(this,arguments)};this.connectionHandler.createTargetVertex=function(b,d){d=this.graph.getCompositeParent(d);return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var v=new mxRubberband(this);this.getRubberband=function(){return v};var y=(new Date).getTime(),x=0,D=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var b=this.currentState;D.apply(this,arguments);b!=this.currentState?(y=(new Date).getTime(),x=0):x=(new Date).getTime()-y};var I=
2337this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(b){return null!=this.currentState&&b.getState()==this.currentState&&2E3<x||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&I.apply(this,arguments)};var B=this.isToggleEvent;this.isToggleEvent=function(b){return B.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(b)};var F=v.isForceRubberbandEvent;v.isForceRubberbandEvent=function(b){return F.apply(this,
2338arguments)&&!mxEvent.isShiftDown(b.getEvent())&&!mxEvent.isControlDown(b.getEvent())||mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(b.getEvent())||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==b.getState()&&mxEvent.isTouchEvent(b.getEvent())};var M=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(M=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,
2339mxUtils.bind(this,function(){this.isEnabled()&&(this.container.style.cursor=M)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(b){return mxEvent.isMouseEvent(b.getEvent())};var E=this.click;this.click=function(b){var d=null==b.state&&null!=b.sourceState&&this.isCellLocked(b.sourceState.cell);if(this.isEnabled()&&!d||b.isConsumed())return E.apply(this,arguments);var f=d?b.sourceState.cell:b.getCell();null!=f&&(f=this.getClickableLinkForCell(f),null!=f&&(this.isCustomLink(f)?
2340this.customLinkClicked(f):this.openLink(f)));this.isEnabled()&&d&&this.clearSelection()};this.tooltipHandler.getStateForEvent=function(b){return b.sourceState};var K=this.tooltipHandler.show;this.tooltipHandler.show=function(){K.apply(this,arguments);if(null!=this.div)for(var b=this.div.getElementsByTagName("a"),d=0;d<b.length;d++)null!=b[d].getAttribute("href")&&null==b[d].getAttribute("target")&&b[d].setAttribute("target","_blank")};this.tooltipHandler.getStateForEvent=function(b){return b.sourceState};
2341this.getCursorForMouseEvent=function(b){var d=null==b.state&&null!=b.sourceState&&this.isCellLocked(b.sourceState.cell);return this.getCursorForCell(d?b.sourceState.cell:b.getCell())};var C=this.getCursorForCell;this.getCursorForCell=function(b){if(!this.isEnabled()||this.isCellLocked(b)){if(null!=this.getClickableLinkForCell(b))return"pointer";if(this.isCellLocked(b))return"default"}return C.apply(this,arguments)};this.selectRegion=function(b,d){var f=mxEvent.isAltDown(d)?b:null,f=this.getCells(b.x,
2342b.y,b.width,b.height,null,null,f,function(b){return"1"==mxUtils.getValue(b.style,"locked","0")},!0);if(this.isToggleEvent(d))for(var c=0;c<f.length;c++)this.selectCellForEvent(f[c],d);else this.selectCellsForEvent(f,d);return f};var L=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(b,d,f){return this.graph.isCellSelected(b)?!1:L.apply(this,arguments)};this.isCellLocked=function(b){for(;null!=b;){if("1"==mxUtils.getValue(this.getCurrentCellStyle(b),
2343"locked","0"))return!0;b=this.model.getParent(b)}return!1};var O=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,d){if("mouseDown"==d.getProperty("eventName")){var f=d.getProperty("event").getState();O=null==f||this.isSelectionEmpty()||this.isCellSelected(f.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(b,d){if(!mxEvent.isMultiTouchEvent(d)){var f=d.getProperty("event"),c=d.getProperty("cell");null==c?(f=mxUtils.convertPoint(this.container,
2344mxEvent.getClientX(f),mxEvent.getClientY(f)),v.start(f.x,f.y)):null!=O?this.addSelectionCells(O):1<this.getSelectionCount()&&this.isCellSelected(c)&&this.removeSelectionCell(c);O=null;d.consume()}}));this.connectionHandler.selectCells=function(b,d){this.graph.setSelectionCell(d||b)};this.connectionHandler.constraintHandler.isStateIgnored=function(b,d){var f=b.view.graph;return d&&(f.isCellSelected(b.cell)||f.isTableRow(b.cell)&&f.selectionCellsHandler.isHandled(f.model.getParent(b.cell)))};this.selectionModel.addListener(mxEvent.CHANGE,
2345mxUtils.bind(this,function(){var b=this.connectionHandler.constraintHandler;null!=b.currentFocus&&b.isStateIgnored(b.currentFocus,!0)&&(b.currentFocus=null,b.constraints=null,b.destroyIcons());b.destroyFocusHighlight()}));Graph.touchStyle&&this.initTouch();var ea=this.updateMouseEvent;this.updateMouseEvent=function(b){b=ea.apply(this,arguments);null!=b.state&&this.isCellLocked(b.getCell())&&(b.state=null);return b}}this.currentTranslate=new mxPoint(0,0)};
2346Graph.touchStyle=mxClient.IS_TOUCH||mxClient.IS_FF&&mxClient.IS_WIN||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints||null==window.urlParams||"1"==urlParams.touch;Graph.fileSupport=null!=window.File&&null!=window.FileReader&&null!=window.FileList&&(null==window.urlParams||"0"!=urlParams.filesupport);Graph.translateDiagram="1"==urlParams["translate-diagram"];Graph.diagramLanguage=null!=urlParams["diagram-language"]?urlParams["diagram-language"]:mxClient.language;Graph.lineJumpsEnabled=!0;
2347Graph.defaultJumpSize=6;Graph.zoomWheel=!1;Graph.minTableColumnWidth=20;Graph.minTableRowHeight=20;Graph.foreignObjectWarningText="Viewer does not support full SVG 1.1";Graph.foreignObjectWarningLink="https://www.diagrams.net/doc/faq/svg-export-text-problems";Graph.xmlDeclaration='<?xml version="1.0" encoding="UTF-8"?>';Graph.svgDoctype='<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">';Graph.svgFileComment="\x3c!-- Do not edit this file with editors other than diagrams.net --\x3e";
2348Graph.pasteStyles="rounded shadow dashed dashPattern fontFamily fontSource fontSize fontColor fontStyle align verticalAlign strokeColor strokeWidth fillColor gradientColor swimlaneFillColor textOpacity gradientDirection glass labelBackgroundColor labelBorderColor opacity spacing spacingTop spacingLeft spacingBottom spacingRight endFill endArrow endSize targetPerimeterSpacing startFill startArrow startSize sourcePerimeterSpacing arcSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification comicStyle".split(" ");
2349Graph.createOffscreenGraph=function(b){var c=new Graph(document.createElement("div"));c.stylesheet.styles=mxUtils.clone(b.styles);c.resetViewOnRootChange=!1;c.setConnectable(!1);c.gridEnabled=!1;c.autoScroll=!1;c.setTooltips(!1);c.setEnabled(!1);c.container.style.visibility="hidden";c.container.style.position="absolute";c.container.style.overflow="hidden";c.container.style.height="1px";c.container.style.width="1px";return c};
2350Graph.createSvgImage=function(b,c,e,k,g){e=unescape(encodeURIComponent(Graph.svgDoctype+'<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="'+b+'px" height="'+c+'px" '+(null!=k&&null!=g?'viewBox="0 0 '+k+" "+g+'" ':"")+'version="1.1">'+e+"</svg>"));return new mxImage("data:image/svg+xml;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0)),b,c)};
2351Graph.zapGremlins=function(b){for(var c=0,e=[],k=0;k<b.length;k++){var g=b.charCodeAt(k);(32<=g||9==g||10==g||13==g)&&65535!=g&&65534!=g||(e.push(b.substring(c,k)),c=k+1)}0<c&&c<b.length&&e.push(b.substring(c));return 0==e.length?b:e.join("")};Graph.stringToBytes=function(b){for(var c=Array(b.length),e=0;e<b.length;e++)c[e]=b.charCodeAt(e);return c};Graph.bytesToString=function(b){for(var c=Array(b.length),e=0;e<b.length;e++)c[e]=String.fromCharCode(b[e]);return c.join("")};
2352Graph.base64EncodeUnicode=function(b){return btoa(encodeURIComponent(b).replace(/%([0-9A-F]{2})/g,function(b,e){return String.fromCharCode(parseInt(e,16))}))};Graph.base64DecodeUnicode=function(b){return decodeURIComponent(Array.prototype.map.call(atob(b),function(b){return"%"+("00"+b.charCodeAt(0).toString(16)).slice(-2)}).join(""))};Graph.compressNode=function(b,c){var e=mxUtils.getXml(b);return Graph.compress(c?e:Graph.zapGremlins(e))};
2353Graph.arrayBufferToString=function(b){var c="";b=new Uint8Array(b);for(var e=b.byteLength,k=0;k<e;k++)c+=String.fromCharCode(b[k]);return c};Graph.stringToArrayBuffer=function(b){return Uint8Array.from(b,function(b){return b.charCodeAt(0)})};
2354Graph.arrayBufferIndexOfString=function(b,c,e){var k=c.charCodeAt(0),g=1,p=-1;for(e=e||0;e<b.byteLength;e++)if(b[e]==k){p=e;break}for(e=p+1;-1<p&&e<b.byteLength&&e<p+c.length-1;e++){if(b[e]!=c.charCodeAt(g))return Graph.arrayBufferIndexOfString(b,c,p+1);g++}return g==c.length-1?p:-1};Graph.compress=function(b,c){if(null==b||0==b.length||"undefined"===typeof pako)return b;var e=c?pako.deflate(encodeURIComponent(b)):pako.deflateRaw(encodeURIComponent(b));return btoa(Graph.arrayBufferToString(new Uint8Array(e)))};
2355Graph.decompress=function(b,c,e){if(null==b||0==b.length||"undefined"===typeof pako)return b;b=Graph.stringToArrayBuffer(atob(b));c=decodeURIComponent(c?pako.inflate(b,{to:"string"}):pako.inflateRaw(b,{to:"string"}));return e?c:Graph.zapGremlins(c)};
2356Graph.fadeNodes=function(b,c,e,k,g){g=null!=g?g:1E3;Graph.setTransitionForNodes(b,null);Graph.setOpacityForNodes(b,c);window.setTimeout(function(){Graph.setTransitionForNodes(b,"all "+g+"ms ease-in-out");Graph.setOpacityForNodes(b,e);window.setTimeout(function(){Graph.setTransitionForNodes(b,null);null!=k&&k()},g)},0)};Graph.setTransitionForNodes=function(b,c){for(var e=0;e<b.length;e++)mxUtils.setPrefixedStyle(b[e].style,"transition",c)};
2357Graph.setOpacityForNodes=function(b,c){for(var e=0;e<b.length;e++)b[e].style.opacity=c};Graph.removePasteFormatting=function(b){for(;null!=b;)null!=b.firstChild&&Graph.removePasteFormatting(b.firstChild),b.nodeType==mxConstants.NODETYPE_ELEMENT&&null!=b.style&&(b.style.whiteSpace="","#000000"==b.style.color&&(b.style.color="")),b=b.nextSibling};Graph.sanitizeHtml=function(b,c){return html_sanitize(b,function(b){return null!=b&&"javascript:"!==b.toString().toLowerCase().substring(0,11)?b:null},function(b){return b})};
2358Graph.sanitizeSvg=function(b){function c(c){for(c=b.getElementsByTagName(c);0<c.length;)c[0].parentNode.removeChild(c[0])}for(var e=b.getElementsByTagName("*"),k=0;k<e.length;k++)for(var g=0;g<e[k].attributes.length;g++){var p=e[k].attributes[g];2<p.name.length&&"on"==p.name.toLowerCase().substring(0,2)&&e[k].removeAttribute(p.name)}c("meta");c("script");c("metadata")};
2359Graph.clipSvgDataUri=function(b){if(!mxClient.IS_IE&&!mxClient.IS_IE11&&null!=b&&"data:image/svg+xml;base64,"==b.substring(0,26))try{var c=document.createElement("div");c.style.position="absolute";c.style.visibility="hidden";var e=decodeURIComponent(escape(atob(b.substring(26)))),k=e.indexOf("<svg");if(0<=k){c.innerHTML=e.substring(k);Graph.sanitizeSvg(c);var g=c.getElementsByTagName("svg");if(0<g.length){document.body.appendChild(c);try{var k=e=1,p=g[0].getAttribute("width"),t=g[0].getAttribute("height"),
2360p=null!=p&&"%"!=p.charAt(p.length-1)?parseFloat(p):NaN,t=null!=t&&"%"!=t.charAt(t.length-1)?parseFloat(t):NaN,d=g[0].getAttribute("viewBox");if(null!=d&&!isNaN(p)&&!isNaN(t)){var f=d.split(" ");4<=d.length&&(e=parseFloat(f[2])/p,k=parseFloat(f[3])/t)}var l=g[0].getBBox();0<l.width&&0<l.height&&(c.getElementsByTagName("svg")[0].setAttribute("viewBox",l.x+" "+l.y+" "+l.width+" "+l.height),c.getElementsByTagName("svg")[0].setAttribute("width",l.width/e),c.getElementsByTagName("svg")[0].setAttribute("height",
2361l.height/k))}catch(q){}finally{document.body.removeChild(c)}b=Editor.createSvgDataUri(mxUtils.getXml(g[0]))}}}catch(q){}return b};Graph.stripQuotes=function(b){null!=b&&("'"==b.charAt(0)&&(b=b.substring(1)),"'"==b.charAt(b.length-1)&&(b=b.substring(0,b.length-1)),'"'==b.charAt(0)&&(b=b.substring(1)),'"'==b.charAt(b.length-1)&&(b=b.substring(0,b.length-1)));return b};
2362Graph.createRemoveIcon=function(b,c){var e=document.createElement("img");e.setAttribute("src",Dialog.prototype.clearImage);e.setAttribute("title",b);e.setAttribute("width","13");e.setAttribute("height","10");e.style.marginLeft="4px";e.style.marginBottom="-1px";e.style.cursor="pointer";mxEvent.addListener(e,"click",c);return e};Graph.isPageLink=function(b){return null!=b&&"data:page/id,"==b.substring(0,13)};Graph.isLink=function(b){return null!=b&&Graph.linkPattern.test(b)};Graph.linkPattern=/^(https?:\/\/)?((([a-z\d]([a-z\d-]*[a-z\d])*)\.)+[a-z]{2,}|((\d{1,3}\.){3}\d{1,3}))(\:\d+)?(\/[-a-z\d%_.~+]*)*(\?[;&a-z\d%_.~+=-]*)?(\#[-a-z\d_]*)?$/i;
2363mxUtils.extend(Graph,mxGraph);Graph.prototype.minFitScale=null;Graph.prototype.maxFitScale=null;Graph.prototype.linkPolicy="frame"==urlParams.target?"blank":urlParams.target||"auto";Graph.prototype.linkTarget="frame"==urlParams.target?"_self":"_blank";Graph.prototype.linkRelation="nofollow noopener noreferrer";Graph.prototype.defaultScrollbars=!mxClient.IS_IOS;Graph.prototype.defaultPageVisible=!0;Graph.prototype.defaultGridEnabled="0"!=urlParams.grid;Graph.prototype.lightbox=!1;
2364Graph.prototype.defaultPageBackgroundColor="#ffffff";Graph.prototype.defaultPageBorderColor="#ffffff";Graph.prototype.shapeForegroundColor="#000000";Graph.prototype.shapeBackgroundColor="#ffffff";Graph.prototype.scrollTileSize=new mxRectangle(0,0,400,400);Graph.prototype.transparentBackground=!0;Graph.prototype.selectParentAfterDelete=!1;Graph.prototype.defaultEdgeLength=80;Graph.prototype.edgeMode=!1;Graph.prototype.connectionArrowsEnabled=!0;
2365Graph.prototype.placeholderPattern=RegExp("%(date{.*}|[^%^{^}^ ^\"^ '^=^;]+)%","g");Graph.prototype.absoluteUrlPattern=/^(?:[a-z]+:)?\/\//i;Graph.prototype.defaultThemeName="default";Graph.prototype.defaultThemes={};Graph.prototype.baseUrl=null!=urlParams.base?decodeURIComponent(urlParams.base):(window!=window.top?document.referrer:document.location.toString()).split("#")[0];Graph.prototype.editAfterInsert=!1;Graph.prototype.builtInProperties=["label","tooltip","placeholders","placeholder"];
2366Graph.prototype.standalone=!1;Graph.prototype.enableFlowAnimation=!1;
2367Graph.prototype.init=function(b){mxGraph.prototype.init.apply(this,arguments);this.cellRenderer.initializeLabel=function(b,c){mxCellRenderer.prototype.initializeLabel.apply(this,arguments);var e=b.view.graph.tolerance,k=!0,t=null,d=mxUtils.bind(this,function(b){k=!0;t=new mxPoint(mxEvent.getClientX(b),mxEvent.getClientY(b))}),f=mxUtils.bind(this,function(b){k=k&&null!=t&&Math.abs(t.x-mxEvent.getClientX(b))<e&&Math.abs(t.y-mxEvent.getClientY(b))<e}),l=mxUtils.bind(this,function(d){if(k)for(var f=mxEvent.getSource(d);null!=
2368f&&f!=c.node;){if("a"==f.nodeName.toLowerCase()){b.view.graph.labelLinkClicked(b,f,d);break}f=f.parentNode}});mxEvent.addGestureListeners(c.node,d,f,l);mxEvent.addListener(c.node,"click",function(b){mxEvent.consume(b)})};if(null!=this.tooltipHandler){var c=this.tooltipHandler.init;this.tooltipHandler.init=function(){c.apply(this,arguments);null!=this.div&&mxEvent.addListener(this.div,"click",mxUtils.bind(this,function(b){var c=mxEvent.getSource(b);"A"==c.nodeName&&(c=c.getAttribute("href"),null!=
2369c&&this.graph.isCustomLink(c)&&(mxEvent.isTouchEvent(b)||!mxEvent.isPopupTrigger(b))&&this.graph.customLinkClicked(c)&&mxEvent.consume(b))}))}}this.addListener(mxEvent.SIZE,mxUtils.bind(this,function(b,c){if(null!=this.container&&this.flowAnimationStyle){var e=this.flowAnimationStyle.getAttribute("id");this.flowAnimationStyle.innerHTML=this.getFlowAnimationStyleCss(e)}}));this.initLayoutManager()};
2370(function(){Graph.prototype.useCssTransforms=!1;Graph.prototype.currentScale=1;Graph.prototype.currentTranslate=new mxPoint(0,0);Graph.prototype.getVerticesAndEdges=function(b,d){b=null!=b?b:!0;d=null!=d?d:!0;var f=this.model;return f.filterDescendants(function(c){return b&&f.isVertex(c)||d&&f.isEdge(c)},f.getRoot())};Graph.prototype.getCommonStyle=function(b){for(var d={},f=0;f<b.length;f++){var c=this.view.getState(b[f]);this.mergeStyle(c.style,d,0==f)}return d};Graph.prototype.mergeStyle=function(b,
2371d,f){if(null!=b){var c={},e;for(e in b){var g=b[e];null!=g&&(c[e]=!0,null==d[e]&&f?d[e]=g:d[e]!=g&&delete d[e])}for(e in d)c[e]||delete d[e]}};Graph.prototype.getStartEditingCell=function(b,d){var f=this.getCellStyle(b),f=parseInt(mxUtils.getValue(f,mxConstants.STYLE_STARTSIZE,0));this.isTable(b)&&(!this.isSwimlane(b)||0==f)&&""==this.getLabel(b)&&0<this.model.getChildCount(b)&&(b=this.model.getChildAt(b,0),f=this.getCellStyle(b),f=parseInt(mxUtils.getValue(f,mxConstants.STYLE_STARTSIZE,0)));if(this.isTableRow(b)&&
2372(!this.isSwimlane(b)||0==f)&&""==this.getLabel(b)&&0<this.model.getChildCount(b))for(f=0;f<this.model.getChildCount(b);f++){var c=this.model.getChildAt(b,f);if(this.isCellEditable(c)){b=c;break}}return b};Graph.prototype.copyStyle=function(b){var d=null;if(null!=b){d=mxUtils.clone(this.getCurrentCellStyle(b));b=this.model.getStyle(b);b=null!=b?b.split(";"):[];for(var f=0;f<b.length;f++){var c=b[f],e=c.indexOf("=");if(0<=e){var g=c.substring(0,e),c=c.substring(e+1);null==d[g]&&c==mxConstants.NONE&&
2373(d[g]=mxConstants.NONE)}}}return d};Graph.prototype.pasteStyle=function(b,d,f){f=null!=f?f:Graph.pasteStyles;this.model.beginUpdate();try{for(var c=0;c<d.length;c++)for(var e=this.getCurrentCellStyle(d[c]),g=0;g<f.length;g++){var k=e[f[g]],u=b[f[g]];k==u||null==k&&u==mxConstants.NONE||this.setCellStyles(f[g],u,[d[c]])}}finally{this.model.endUpdate()}};Graph.prototype.isFastZoomEnabled=function(){return"nocss"!=urlParams.zoom&&!mxClient.NO_FO&&!mxClient.IS_EDGE&&!this.useCssTransforms&&(this.isCssTransformsSupported()||
2374mxClient.IS_IOS)};Graph.prototype.isCssTransformsSupported=function(){return this.dialect==mxConstants.DIALECT_SVG&&!mxClient.NO_FO&&(!this.lightbox||!mxClient.IS_SF)};Graph.prototype.getCellAt=function(b,d,f,c,e,g){this.useCssTransforms&&(b=b/this.currentScale-this.currentTranslate.x,d=d/this.currentScale-this.currentTranslate.y);return this.getScaledCellAt.apply(this,arguments)};Graph.prototype.getScaledCellAt=function(b,d,f,c,e,g){c=null!=c?c:!0;e=null!=e?e:!0;null==f&&(f=this.getCurrentRoot(),
2375null==f&&(f=this.getModel().getRoot()));if(null!=f)for(var l=this.model.getChildCount(f)-1;0<=l;l--){var k=this.model.getChildAt(f,l),q=this.getScaledCellAt(b,d,k,c,e,g);if(null!=q)return q;if(this.isCellVisible(k)&&(e&&this.model.isEdge(k)||c&&this.model.isVertex(k))&&(q=this.view.getState(k),null!=q&&(null==g||!g(q,b,d))&&this.intersects(q,b,d)))return k}return null};Graph.prototype.isRecursiveVertexResize=function(b){return!this.isSwimlane(b.cell)&&0<this.model.getChildCount(b.cell)&&!this.isCellCollapsed(b.cell)&&
2376"1"==mxUtils.getValue(b.style,"recursiveResize","1")&&null==mxUtils.getValue(b.style,"childLayout",null)};Graph.prototype.getAbsoluteParent=function(b){for(var d=this.getCellGeometry(b);null!=d&&d.relative;)b=this.getModel().getParent(b),d=this.getCellGeometry(b);return b};Graph.prototype.isPart=function(b){return"1"==mxUtils.getValue(this.getCurrentCellStyle(b),"part","0")||this.isTableCell(b)||this.isTableRow(b)};Graph.prototype.getCompositeParent=function(b){for(;this.isPart(b);){var d=this.model.getParent(b);
2377if(!this.model.isVertex(d))break;b=d}return b};Graph.prototype.filterSelectionCells=function(b){var d=this.getSelectionCells();if(null!=b){for(var f=[],c=0;c<d.length;c++)b(d[c])||f.push(d[c]);d=f}return d};var b=mxGraph.prototype.scrollRectToVisible;Graph.prototype.scrollRectToVisible=function(c){if(this.useCssTransforms){var d=this.currentScale,f=this.currentTranslate;c=new mxRectangle((c.x+2*f.x)*d-f.x,(c.y+2*f.y)*d-f.y,c.width*d,c.height*d)}b.apply(this,arguments)};mxCellHighlight.prototype.getStrokeWidth=
2378function(b){b=this.strokeWidth;this.graph.useCssTransforms&&(b/=this.graph.currentScale);return b};mxGraphView.prototype.getGraphBounds=function(){var b=this.graphBounds;if(this.graph.useCssTransforms)var d=this.graph.currentTranslate,f=this.graph.currentScale,b=new mxRectangle((b.x+d.x)*f,(b.y+d.y)*f,b.width*f,b.height*f);return b};mxGraphView.prototype.viewStateChanged=function(){this.graph.useCssTransforms?this.validate():this.revalidate();this.graph.sizeDidChange()};var c=mxGraphView.prototype.validate;
2379mxGraphView.prototype.validate=function(b){this.graph.useCssTransforms&&(this.graph.currentScale=this.scale,this.graph.currentTranslate.x=this.translate.x,this.graph.currentTranslate.y=this.translate.y,this.scale=1,this.translate.x=0,this.translate.y=0);c.apply(this,arguments);this.graph.useCssTransforms&&(this.graph.updateCssTransform(),this.scale=this.graph.currentScale,this.translate.x=this.graph.currentTranslate.x,this.translate.y=this.graph.currentTranslate.y)};var e=mxGraph.prototype.getCellsForGroup;
2380Graph.prototype.getCellsForGroup=function(b){b=e.apply(this,arguments);for(var d=[],f=0;f<b.length;f++)this.isTableRow(b[f])||this.isTableCell(b[f])||d.push(b[f]);return d};var k=mxGraph.prototype.getCellsForUngroup;Graph.prototype.getCellsForUngroup=function(b){b=k.apply(this,arguments);for(var d=[],f=0;f<b.length;f++)this.isTable(b[f])||this.isTableRow(b[f])||this.isTableCell(b[f])||d.push(b[f]);return d};Graph.prototype.updateCssTransform=function(){var b=this.view.getDrawPane();if(null!=b)if(b=
2381b.parentNode,this.useCssTransforms){var d=b.getAttribute("transform");b.setAttribute("transformOrigin","0 0");var f=Math.round(100*this.currentScale)/100;b.setAttribute("transform","scale("+f+","+f+")translate("+Math.round(100*this.currentTranslate.x)/100+","+Math.round(100*this.currentTranslate.y)/100+")");d!=b.getAttribute("transform")&&this.fireEvent(new mxEventObject("cssTransformChanged"),"transform",b.getAttribute("transform"))}else b.removeAttribute("transformOrigin"),b.removeAttribute("transform")};
2382var g=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){var b=this.graph.useCssTransforms,d=this.scale,f=this.translate;b&&(this.scale=this.graph.currentScale,this.translate=this.graph.currentTranslate);g.apply(this,arguments);b&&(this.scale=d,this.translate=f)};var p=mxGraph.prototype.updatePageBreaks;mxGraph.prototype.updatePageBreaks=function(b,d,f){var c=this.useCssTransforms,e=this.view.scale,g=this.view.translate;c&&(this.view.scale=1,this.view.translate=
2383new mxPoint(0,0),this.useCssTransforms=!1);p.apply(this,arguments);c&&(this.view.scale=e,this.view.translate=g,this.useCssTransforms=!0)}})();Graph.prototype.isLightboxView=function(){return this.lightbox};Graph.prototype.isViewer=function(){return!1};
2384Graph.prototype.labelLinkClicked=function(b,c,e){c=c.getAttribute("href");if(null!=c&&!this.isCustomLink(c)&&(mxEvent.isLeftMouseButton(e)&&!mxEvent.isPopupTrigger(e)||mxEvent.isTouchEvent(e))){if(!this.isEnabled()||this.isCellLocked(b.cell))b=this.isBlankLink(c)?this.linkTarget:"_top",this.openLink(this.getAbsoluteUrl(c),b);mxEvent.consume(e)}};
2385Graph.prototype.openLink=function(b,c,e){var k=window;try{if("_self"==c&&window!=window.top)window.location.href=b;else if(b.substring(0,this.baseUrl.length)==this.baseUrl&&"#"==b.charAt(this.baseUrl.length)&&"_top"==c&&window==window.top){var g=b.split("#")[1];window.location.hash=="#"+g&&(window.location.hash="");window.location.hash=g}else k=window.open(b,null!=c?c:"_blank"),null==k||e||(k.opener=null)}catch(p){}return k};
2386Graph.prototype.getLinkTitle=function(b){return b.substring(b.lastIndexOf("/")+1)};Graph.prototype.isCustomLink=function(b){return"data:"==b.substring(0,5)};Graph.prototype.customLinkClicked=function(b){return!1};Graph.prototype.isExternalProtocol=function(b){return"mailto:"===b.substring(0,7)};Graph.prototype.isBlankLink=function(b){return!this.isExternalProtocol(b)&&("blank"===this.linkPolicy||"self"!==this.linkPolicy&&!this.isRelativeUrl(b)&&b.substring(0,this.domainUrl.length)!==this.domainUrl)};
2387Graph.prototype.isRelativeUrl=function(b){return null!=b&&!this.absoluteUrlPattern.test(b)&&"data:"!==b.substring(0,5)&&!this.isExternalProtocol(b)};Graph.prototype.getAbsoluteUrl=function(b){null!=b&&this.isRelativeUrl(b)&&(b="#"==b.charAt(0)?this.baseUrl+b:"/"==b.charAt(0)?this.domainUrl+b:this.domainPathUrl+b);return b};
2388Graph.prototype.initLayoutManager=function(){this.layoutManager=new mxLayoutManager(this);this.layoutManager.hasLayout=function(b,c){return null!=this.graph.getCellStyle(b).childLayout};this.layoutManager.getLayout=function(b,c){var e=this.graph.model.getParent(b);if(c!=mxEvent.BEGIN_UPDATE||this.hasLayout(e,c)){e=this.graph.getCellStyle(b);if("stackLayout"==e.childLayout){var k=new mxStackLayout(this.graph,!0);k.resizeParentMax="1"==mxUtils.getValue(e,"resizeParentMax","1");k.horizontal="1"==mxUtils.getValue(e,
2389"horizontalStack","1");k.resizeParent="1"==mxUtils.getValue(e,"resizeParent","1");k.resizeLast="1"==mxUtils.getValue(e,"resizeLast","0");k.spacing=e.stackSpacing||k.spacing;k.border=e.stackBorder||k.border;k.marginLeft=e.marginLeft||0;k.marginRight=e.marginRight||0;k.marginTop=e.marginTop||0;k.marginBottom=e.marginBottom||0;k.allowGaps=e.allowGaps||0;k.fill=!0;k.allowGaps&&(k.gridSize=parseFloat(mxUtils.getValue(e,"stackUnitSize",20)));return k}if("treeLayout"==e.childLayout)return k=new mxCompactTreeLayout(this.graph),
2390k.horizontal="1"==mxUtils.getValue(e,"horizontalTree","1"),k.resizeParent="1"==mxUtils.getValue(e,"resizeParent","1"),k.groupPadding=mxUtils.getValue(e,"parentPadding",20),k.levelDistance=mxUtils.getValue(e,"treeLevelDistance",30),k.maintainParentLocation=!0,k.edgeRouting=!1,k.resetEdges=!1,k;if("flowLayout"==e.childLayout)return k=new mxHierarchicalLayout(this.graph,mxUtils.getValue(e,"flowOrientation",mxConstants.DIRECTION_EAST)),k.resizeParent="1"==mxUtils.getValue(e,"resizeParent","1"),k.parentBorder=
2391mxUtils.getValue(e,"parentPadding",20),k.maintainParentLocation=!0,k.intraCellSpacing=mxUtils.getValue(e,"intraCellSpacing",mxHierarchicalLayout.prototype.intraCellSpacing),k.interRankCellSpacing=mxUtils.getValue(e,"interRankCellSpacing",mxHierarchicalLayout.prototype.interRankCellSpacing),k.interHierarchySpacing=mxUtils.getValue(e,"interHierarchySpacing",mxHierarchicalLayout.prototype.interHierarchySpacing),k.parallelEdgeSpacing=mxUtils.getValue(e,"parallelEdgeSpacing",mxHierarchicalLayout.prototype.parallelEdgeSpacing),
2392k;if("circleLayout"==e.childLayout)return new mxCircleLayout(this.graph);if("organicLayout"==e.childLayout)return new mxFastOrganicLayout(this.graph);if("tableLayout"==e.childLayout)return new TableLayout(this.graph)}return null}};Graph.prototype.getDataForCells=function(b){for(var c=[],e=0;e<b.length;e++){var k=null!=b[e].value?b[e].value.attributes:null,g={};g.id=b[e].id;if(null!=k)for(var p=0;p<k.length;p++)g[k[p].nodeName]=k[p].nodeValue;else g.label=this.convertValueToString(b[e]);c.push(g)}return c};
2393Graph.prototype.getNodesForCells=function(b){for(var c=[],e=0;e<b.length;e++){var k=this.view.getState(b[e]);if(null!=k){for(var g=this.cellRenderer.getShapesForState(k),p=0;p<g.length;p++)null!=g[p]&&null!=g[p].node&&c.push(g[p].node);null!=k.control&&null!=k.control.node&&c.push(k.control.node)}}return c};
2394Graph.prototype.createWipeAnimations=function(b,c){for(var e=[],k=0;k<b.length;k++){var g=this.view.getState(b[k]);null!=g&&null!=g.shape&&(this.model.isEdge(g.cell)&&null!=g.absolutePoints&&1<g.absolutePoints.length?e.push(this.createEdgeWipeAnimation(g,c)):this.model.isVertex(g.cell)&&null!=g.shape.bounds&&e.push(this.createVertexWipeAnimation(g,c)))}return e};
2395Graph.prototype.createEdgeWipeAnimation=function(b,c){var e=b.absolutePoints.slice(),k=b.segments,g=b.length,p=e.length;return{execute:mxUtils.bind(this,function(t,d){if(null!=b.shape){var f=[e[0]],l=t/d;c||(l=1-l);for(var q=g*l,m=1;m<p;m++)if(q<=k[m-1]){f.push(new mxPoint(e[m-1].x+(e[m].x-e[m-1].x)*q/k[m-1],e[m-1].y+(e[m].y-e[m-1].y)*q/k[m-1]));break}else q-=k[m-1],f.push(e[m]);b.shape.points=f;b.shape.redraw();0==t&&Graph.setOpacityForNodes(this.getNodesForCells([b.cell]),1);null!=b.text&&null!=
2396b.text.node&&(b.text.node.style.opacity=l)}}),stop:mxUtils.bind(this,function(){null!=b.shape&&(b.shape.points=e,b.shape.redraw(),null!=b.text&&null!=b.text.node&&(b.text.node.style.opacity=""),Graph.setOpacityForNodes(this.getNodesForCells([b.cell]),c?1:0))})}};
2397Graph.prototype.createVertexWipeAnimation=function(b,c){var e=new mxRectangle.fromRectangle(b.shape.bounds);return{execute:mxUtils.bind(this,function(k,g){if(null!=b.shape){var p=k/g;c||(p=1-p);b.shape.bounds=new mxRectangle(e.x,e.y,e.width*p,e.height);b.shape.redraw();0==k&&Graph.setOpacityForNodes(this.getNodesForCells([b.cell]),1);null!=b.text&&null!=b.text.node&&(b.text.node.style.opacity=p)}}),stop:mxUtils.bind(this,function(){null!=b.shape&&(b.shape.bounds=e,b.shape.redraw(),null!=b.text&&null!=
2398b.text.node&&(b.text.node.style.opacity=""),Graph.setOpacityForNodes(this.getNodesForCells([b.cell]),c?1:0))})}};Graph.prototype.executeAnimations=function(b,c,e,k){e=null!=e?e:30;k=null!=k?k:30;var g=null,p=0,t=mxUtils.bind(this,function(){if(p==e||this.stoppingCustomActions){window.clearInterval(g);for(var d=0;d<b.length;d++)b[d].stop();null!=c&&c()}else for(d=0;d<b.length;d++)b[d].execute(p,e);p++}),g=window.setInterval(t,k);t()};
2399Graph.prototype.getPageSize=function(){return this.pageVisible?new mxRectangle(0,0,this.pageFormat.width*this.pageScale,this.pageFormat.height*this.pageScale):this.scrollTileSize};
2400Graph.prototype.getPageLayout=function(){var b=this.getPageSize(),c=this.getGraphBounds();if(0==c.width||0==c.height)return new mxRectangle(0,0,1,1);var e=Math.floor(Math.ceil(c.x/this.view.scale-this.view.translate.x)/b.width),k=Math.floor(Math.ceil(c.y/this.view.scale-this.view.translate.y)/b.height);return new mxRectangle(e,k,Math.ceil((Math.floor((c.x+c.width)/this.view.scale)-this.view.translate.x)/b.width)-e,Math.ceil((Math.floor((c.y+c.height)/this.view.scale)-this.view.translate.y)/b.height)-
2401k)};Graph.prototype.sanitizeHtml=function(b,c){return Graph.sanitizeHtml(b,c)};Graph.prototype.updatePlaceholders=function(){var b=!1,c;for(c in this.model.cells){var e=this.model.cells[c];this.isReplacePlaceholders(e)&&(this.view.invalidate(e,!1,!1),b=!0)}b&&this.view.validate()};Graph.prototype.isReplacePlaceholders=function(b){return null!=b.value&&"object"==typeof b.value&&"1"==b.value.getAttribute("placeholders")};
2402Graph.prototype.isZoomWheelEvent=function(b){return Graph.zoomWheel&&!mxEvent.isShiftDown(b)&&!mxEvent.isMetaDown(b)&&!mxEvent.isAltDown(b)&&(!mxEvent.isControlDown(b)||mxClient.IS_MAC)||!Graph.zoomWheel&&(mxEvent.isAltDown(b)||mxEvent.isControlDown(b))};Graph.prototype.isScrollWheelEvent=function(b){return!this.isZoomWheelEvent(b)};Graph.prototype.isTransparentClickEvent=function(b){return mxEvent.isAltDown(b)||mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(b)};
2403Graph.prototype.isIgnoreTerminalEvent=function(b){return mxEvent.isAltDown(b)&&!mxEvent.isShiftDown(b)&&!mxEvent.isControlDown(b)&&!mxEvent.isMetaDown(b)};Graph.prototype.isEdgeIgnored=function(b){var c=!1;null!=b&&(b=this.getCurrentCellStyle(b),c="1"==mxUtils.getValue(b,"ignoreEdge","0"));return c};Graph.prototype.isSplitTarget=function(b,c,e){return!this.model.isEdge(c[0])&&!mxEvent.isAltDown(e)&&!mxEvent.isShiftDown(e)&&mxGraph.prototype.isSplitTarget.apply(this,arguments)};
2404Graph.prototype.getLabel=function(b){var c=mxGraph.prototype.getLabel.apply(this,arguments);null!=c&&this.isReplacePlaceholders(b)&&null==b.getAttribute("placeholder")&&(c=this.replacePlaceholders(b,c));return c};Graph.prototype.isLabelMovable=function(b){var c=this.getCurrentCellStyle(b);return!this.isCellLocked(b)&&(this.model.isEdge(b)&&this.edgeLabelsMovable||this.model.isVertex(b)&&(this.vertexLabelsMovable||"1"==mxUtils.getValue(c,"labelMovable","0")))};
2405Graph.prototype.setGridSize=function(b){this.gridSize=b;this.fireEvent(new mxEventObject("gridSizeChanged"))};Graph.prototype.setDefaultParent=function(b){this.defaultParent=b;this.fireEvent(new mxEventObject("defaultParentChanged"))};Graph.prototype.getClickableLinkForCell=function(b){do{var c=this.getLinkForCell(b);if(null!=c)return c;b=this.model.getParent(b)}while(null!=b);return null};
2406Graph.prototype.getGlobalVariable=function(b){var c=null;"date"==b?c=(new Date).toLocaleDateString():"time"==b?c=(new Date).toLocaleTimeString():"timestamp"==b?c=(new Date).toLocaleString():"date{"==b.substring(0,5)&&(b=b.substring(5,b.length-1),c=this.formatDate(new Date,b));return c};
2407Graph.prototype.formatDate=function(b,c,e){null==this.dateFormatCache&&(this.dateFormatCache={i18n:{dayNames:"Sun Mon Tue Wed Thu Fri Sat Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),monthNames:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec January February March April May June July August September October November December".split(" ")},masks:{"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",
2408shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"}});var k=this.dateFormatCache,g=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,p=/[^-+\dA-Z]/g,t=function(b,d){b=String(b);for(d=d||2;b.length<d;)b="0"+b;return b};1!=arguments.length||"[object String]"!=Object.prototype.toString.call(b)||
2409/\d/.test(b)||(c=b,b=void 0);b=b?new Date(b):new Date;if(isNaN(b))throw SyntaxError("invalid date");c=String(k.masks[c]||c||k.masks["default"]);"UTC:"==c.slice(0,4)&&(c=c.slice(4),e=!0);var d=e?"getUTC":"get",f=b[d+"Date"](),l=b[d+"Day"](),q=b[d+"Month"](),m=b[d+"FullYear"](),n=b[d+"Hours"](),u=b[d+"Minutes"](),v=b[d+"Seconds"](),d=b[d+"Milliseconds"](),y=e?0:b.getTimezoneOffset(),x={d:f,dd:t(f),ddd:k.i18n.dayNames[l],dddd:k.i18n.dayNames[l+7],m:q+1,mm:t(q+1),mmm:k.i18n.monthNames[q],mmmm:k.i18n.monthNames[q+
241012],yy:String(m).slice(2),yyyy:m,h:n%12||12,hh:t(n%12||12),H:n,HH:t(n),M:u,MM:t(u),s:v,ss:t(v),l:t(d,3),L:t(99<d?Math.round(d/10):d),t:12>n?"a":"p",tt:12>n?"am":"pm",T:12>n?"A":"P",TT:12>n?"AM":"PM",Z:e?"UTC":(String(b).match(g)||[""]).pop().replace(p,""),o:(0<y?"-":"+")+t(100*Math.floor(Math.abs(y)/60)+Math.abs(y)%60,4),S:["th","st","nd","rd"][3<f%10?0:(10!=f%100-f%10)*f%10]};return c.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(b){return b in x?x[b]:b.slice(1,
2411b.length-1)})};Graph.prototype.getLayerForCells=function(b){var c=null;if(0<b.length){for(c=b[0];!this.model.isLayer(c);)c=this.model.getParent(c);for(var e=1;e<b.length;e++)if(!this.model.isAncestor(c,b[e])){c=null;break}}return c};
2412Graph.prototype.createLayersDialog=function(b,c){var e=document.createElement("div");e.style.position="absolute";for(var k=this.getModel(),g=k.getChildCount(k.root),p=0;p<g;p++)mxUtils.bind(this,function(g){function d(){k.isVisible(g)?(q.setAttribute("src",Editor.visibleImage),mxUtils.setOpacity(l,75)):(q.setAttribute("src",Editor.hiddenImage),mxUtils.setOpacity(l,25))}var f=this.convertValueToString(g)||mxResources.get("background")||"Background",l=document.createElement("div");l.style.overflow=
2413"hidden";l.style.textOverflow="ellipsis";l.style.padding="2px";l.style.whiteSpace="nowrap";l.style.cursor="pointer";l.setAttribute("title",mxResources.get(k.isVisible(g)?"hideIt":"show",[f]));var q=document.createElement("img");q.setAttribute("draggable","false");q.setAttribute("align","absmiddle");q.setAttribute("border","0");q.style.position="relative";q.style.width="16px";q.style.padding="0px 6px 0 4px";c&&(q.style.filter="invert(100%)",q.style.top="-2px");l.appendChild(q);mxUtils.write(l,f);e.appendChild(l);
2414mxEvent.addListener(l,"click",function(){k.setVisible(g,!k.isVisible(g));d();null!=b&&b(g)});d()})(k.getChildAt(k.root,p));return e};
2415Graph.prototype.replacePlaceholders=function(b,c,e,k){k=[];if(null!=c){for(var g=0;match=this.placeholderPattern.exec(c);){var p=match[0];if(2<p.length&&"%label%"!=p&&"%tooltip%"!=p){var t=null;if(match.index>g&&"%"==c.charAt(match.index-1))t=p.substring(1);else{var d=p.substring(1,p.length-1);if("id"==d)t=b.id;else if(0>d.indexOf("{"))for(var f=b;null==t&&null!=f;)null!=f.value&&"object"==typeof f.value&&(Graph.translateDiagram&&null!=Graph.diagramLanguage&&(t=f.getAttribute(d+"_"+Graph.diagramLanguage)),
2416null==t&&(t=f.hasAttribute(d)?null!=f.getAttribute(d)?f.getAttribute(d):"":null)),f=this.model.getParent(f);null==t&&(t=this.getGlobalVariable(d));null==t&&null!=e&&(t=e[d])}k.push(c.substring(g,match.index)+(null!=t?t:p));g=match.index+p.length}}k.push(c.substring(g))}return k.join("")};Graph.prototype.restoreSelection=function(b){if(null!=b&&0<b.length){for(var c=[],e=0;e<b.length;e++){var k=this.model.getCell(b[e].id);null!=k&&c.push(k)}this.setSelectionCells(c)}else this.clearSelection()};
2417Graph.prototype.selectCellsForConnectVertex=function(b,c,e){2==b.length&&this.model.isVertex(b[1])?(this.setSelectionCell(b[1]),this.scrollCellToVisible(b[1]),null!=e&&(mxEvent.isTouchEvent(c)?e.update(e.getState(this.view.getState(b[1]))):e.reset())):this.setSelectionCells(b)};Graph.prototype.isCloneConnectSource=function(b){var c=null;null!=this.layoutManager&&(c=this.layoutManager.getLayout(this.model.getParent(b)));return this.isTableRow(b)||this.isTableCell(b)||null!=c&&c.constructor==mxStackLayout};
2418Graph.prototype.connectVertex=function(b,c,e,k,g,p,t,d){p=p?p:!1;if(b.geometry.relative&&this.model.isEdge(b.parent))return[];for(;b.geometry.relative&&this.model.isVertex(b.parent);)b=b.parent;var f=this.isCloneConnectSource(b),l=f?b:this.getCompositeParent(b),q=b.geometry.relative&&null!=b.parent.geometry?new mxPoint(b.parent.geometry.width*b.geometry.x,b.parent.geometry.height*b.geometry.y):new mxPoint(l.geometry.x,l.geometry.y);c==mxConstants.DIRECTION_NORTH?(q.x+=l.geometry.width/2,q.y-=e):c==
2419mxConstants.DIRECTION_SOUTH?(q.x+=l.geometry.width/2,q.y+=l.geometry.height+e):(q.x=c==mxConstants.DIRECTION_WEST?q.x-e:q.x+(l.geometry.width+e),q.y+=l.geometry.height/2);var m=this.view.getState(this.model.getParent(b));e=this.view.scale;var n=this.view.translate,l=n.x*e,n=n.y*e;null!=m&&this.model.isVertex(m.cell)&&(l=m.x,n=m.y);this.model.isVertex(b.parent)&&b.geometry.relative&&(q.x+=b.parent.geometry.x,q.y+=b.parent.geometry.y);p=p?null:(new mxRectangle(l+q.x*e,n+q.y*e)).grow(40*e);p=null!=p?
2420this.getCells(0,0,0,0,null,null,p,null,!0):null;var m=this.view.getState(b),u=null,v=null;if(null!=p){p=p.reverse();for(var y=0;y<p.length;y++)if(!this.isCellLocked(p[y])&&!this.model.isEdge(p[y])&&p[y]!=b)if(!this.model.isAncestor(b,p[y])&&this.isContainer(p[y])&&(null==u||p[y]==this.model.getParent(b)))u=p[y];else if(null==v&&this.isCellConnectable(p[y])&&!this.model.isAncestor(p[y],b)&&!this.isSwimlane(p[y])){var x=this.view.getState(p[y]);null==m||null==x||mxUtils.intersects(m,x)||(v=p[y])}}var D=
2421!mxEvent.isShiftDown(k)||mxEvent.isControlDown(k)||g;D&&("1"!=urlParams.sketch||g)&&(c==mxConstants.DIRECTION_NORTH?q.y-=b.geometry.height/2:c==mxConstants.DIRECTION_SOUTH?q.y+=b.geometry.height/2:q.x=c==mxConstants.DIRECTION_WEST?q.x-b.geometry.width/2:q.x+b.geometry.width/2);var I=[],B=v,v=u;g=mxUtils.bind(this,function(e){if(null==t||null!=e||null==v&&f){this.model.beginUpdate();try{if(null==B&&D){var g=this.getAbsoluteParent(null!=e?e:b),g=f?b:this.getCompositeParent(g);B=null!=e?e:this.duplicateCells([g],
2422!1)[0];null!=e&&this.addCells([B],this.model.getParent(b),null,null,null,!0);var l=this.getCellGeometry(B);null!=l&&(null!=e&&"1"==urlParams.sketch&&(c==mxConstants.DIRECTION_NORTH?q.y-=l.height/2:c==mxConstants.DIRECTION_SOUTH?q.y+=l.height/2:q.x=c==mxConstants.DIRECTION_WEST?q.x-l.width/2:q.x+l.width/2),l.x=q.x-l.width/2,l.y=q.y-l.height/2);null!=u?(this.addCells([B],u,null,null,null,!0),v=null):D&&!f&&this.addCells([B],this.getDefaultParent(),null,null,null,!0)}var m=mxEvent.isControlDown(k)&&
2423mxEvent.isShiftDown(k)&&D||null==v&&f?null:this.insertEdge(this.model.getParent(b),null,"",b,B,this.createCurrentEdgeStyle());if(null!=m&&this.connectionHandler.insertBeforeSource){var n=null;for(e=b;null!=e.parent&&null!=e.geometry&&e.geometry.relative&&e.parent!=m.parent;)e=this.model.getParent(e);null!=e&&null!=e.parent&&e.parent==m.parent&&(n=e.parent.getIndex(e),this.model.add(e.parent,m,n))}null==v&&null!=B&&null!=b.parent&&f&&c==mxConstants.DIRECTION_WEST&&(n=b.parent.getIndex(b),this.model.add(b.parent,
2424B,n));null!=m&&I.push(m);null==v&&null!=B&&I.push(B);null==B&&null!=m&&m.geometry.setTerminalPoint(q,!1);null!=m&&this.fireEvent(new mxEventObject("cellsInserted","cells",[m]))}finally{this.model.endUpdate()}}if(null!=d)d(I);else return I});if(null==t||null!=B||!D||null==v&&f)return g(B);t(l+q.x*e,n+q.y*e,g)};
2425Graph.prototype.getIndexableText=function(){var b=document.createElement("div"),c=[],e,k;for(k in this.model.cells)if(e=this.model.cells[k],this.model.isVertex(e)||this.model.isEdge(e))this.isHtmlLabel(e)?(b.innerHTML=this.sanitizeHtml(this.getLabel(e)),e=mxUtils.extractTextWithWhitespace([b])):e=this.getLabel(e),e=mxUtils.trim(e.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")),0<e.length&&c.push(e);return c.join(" ")};
2426Graph.prototype.convertValueToString=function(b){var c=this.model.getValue(b);if(null!=c&&"object"==typeof c){var e=null;if(this.isReplacePlaceholders(b)&&null!=b.getAttribute("placeholder"))for(var c=b.getAttribute("placeholder"),k=b;null==e&&null!=k;)null!=k.value&&"object"==typeof k.value&&(e=k.hasAttribute(c)?null!=k.getAttribute(c)?k.getAttribute(c):"":null),k=this.model.getParent(k);else e=null,Graph.translateDiagram&&null!=Graph.diagramLanguage&&(e=c.getAttribute("label_"+Graph.diagramLanguage)),
2427null==e&&(e=c.getAttribute("label")||"");return e||""}return mxGraph.prototype.convertValueToString.apply(this,arguments)};Graph.prototype.getLinksForState=function(b){return null!=b&&null!=b.text&&null!=b.text.node?b.text.node.getElementsByTagName("a"):null};Graph.prototype.getLinkForCell=function(b){return null!=b.value&&"object"==typeof b.value?(b=b.value.getAttribute("link"),null!=b&&"javascript:"===b.toLowerCase().substring(0,11)&&(b=b.substring(11)),b):null};
2428Graph.prototype.getLinkTargetForCell=function(b){return null!=b.value&&"object"==typeof b.value?b.value.getAttribute("linkTarget"):null};Graph.prototype.getCellStyle=function(b){var c=mxGraph.prototype.getCellStyle.apply(this,arguments);if(null!=b&&null!=this.layoutManager){var e=this.model.getParent(b);this.model.isVertex(e)&&this.isCellCollapsed(b)&&(e=this.layoutManager.getLayout(e),null!=e&&e.constructor==mxStackLayout&&(c[mxConstants.STYLE_HORIZONTAL]=!e.horizontal))}return c};
2429Graph.prototype.updateAlternateBounds=function(b,c,e){if(null!=b&&null!=c&&null!=this.layoutManager&&null!=c.alternateBounds){var k=this.layoutManager.getLayout(this.model.getParent(b));null!=k&&k.constructor==mxStackLayout&&(k.horizontal?c.alternateBounds.height=0:c.alternateBounds.width=0)}mxGraph.prototype.updateAlternateBounds.apply(this,arguments)};Graph.prototype.isMoveCellsEvent=function(b,c){return mxEvent.isShiftDown(b)||"1"==mxUtils.getValue(c.style,"moveCells","0")};
2430Graph.prototype.foldCells=function(b,c,e,k,g){c=null!=c?c:!1;null==e&&(e=this.getFoldableCells(this.getSelectionCells(),b));if(null!=e){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var p=0;p<e.length;p++){var t=this.view.getState(e[p]),d=this.getCellGeometry(e[p]);if(null!=t&&null!=d){var f=Math.round(d.width-t.width/this.view.scale),l=Math.round(d.height-t.height/this.view.scale);if(0!=l||0!=f){var q=this.model.getParent(e[p]),m=this.layoutManager.getLayout(q);
2431null==m?null!=g&&this.isMoveCellsEvent(g,t)&&this.moveSiblings(t,q,f,l):null!=g&&mxEvent.isAltDown(g)||m.constructor!=mxStackLayout||m.resizeLast||this.resizeParentStacks(q,m,f,l)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(e)}};
2432Graph.prototype.moveSiblings=function(b,c,e,k){this.model.beginUpdate();try{var g=this.getCellsBeyond(b.x,b.y,c,!0,!0);for(c=0;c<g.length;c++)if(g[c]!=b.cell){var p=this.view.getState(g[c]),t=this.getCellGeometry(g[c]);null!=p&&null!=t&&(t=t.clone(),t.translate(Math.round(e*Math.max(0,Math.min(1,(p.x-b.x)/b.width))),Math.round(k*Math.max(0,Math.min(1,(p.y-b.y)/b.height)))),this.model.setGeometry(g[c],t))}}finally{this.model.endUpdate()}};
2433Graph.prototype.resizeParentStacks=function(b,c,e,k){if(null!=this.layoutManager&&null!=c&&c.constructor==mxStackLayout&&!c.resizeLast){this.model.beginUpdate();try{for(var g=c.horizontal;null!=b&&null!=c&&c.constructor==mxStackLayout&&c.horizontal==g&&!c.resizeLast;){var p=this.getCellGeometry(b),t=this.view.getState(b);null!=t&&null!=p&&(p=p.clone(),c.horizontal?p.width+=e+Math.min(0,t.width/this.view.scale-p.width):p.height+=k+Math.min(0,t.height/this.view.scale-p.height),this.model.setGeometry(b,
2434p));b=this.model.getParent(b);c=this.layoutManager.getLayout(b)}}finally{this.model.endUpdate()}}};Graph.prototype.isContainer=function(b){var c=this.getCurrentCellStyle(b);return this.isSwimlane(b)?"0"!=c.container:"1"==c.container};Graph.prototype.isCellConnectable=function(b){var c=this.getCurrentCellStyle(b);return null!=c.connectable?"0"!=c.connectable:mxGraph.prototype.isCellConnectable.apply(this,arguments)};
2435Graph.prototype.isLabelMovable=function(b){var c=this.getCurrentCellStyle(b);return null!=c.movableLabel?"0"!=c.movableLabel:mxGraph.prototype.isLabelMovable.apply(this,arguments)};Graph.prototype.selectAll=function(b){b=b||this.getDefaultParent();this.isCellLocked(b)||mxGraph.prototype.selectAll.apply(this,arguments)};Graph.prototype.selectCells=function(b,c,e){e=e||this.getDefaultParent();this.isCellLocked(e)||mxGraph.prototype.selectCells.apply(this,arguments)};
2436Graph.prototype.getSwimlaneAt=function(b,c,e){var k=mxGraph.prototype.getSwimlaneAt.apply(this,arguments);this.isCellLocked(k)&&(k=null);return k};Graph.prototype.isCellFoldable=function(b){var c=this.getCurrentCellStyle(b);return this.foldingEnabled&&"0"!=mxUtils.getValue(c,mxConstants.STYLE_RESIZABLE,"1")&&("1"==c.treeFolding||!this.isCellLocked(b)&&(this.isContainer(b)&&"0"!=c.collapsible||!this.isContainer(b)&&"1"==c.collapsible))};
2437Graph.prototype.reset=function(){this.isEditing()&&this.stopEditing(!0);this.escape();this.isSelectionEmpty()||this.clearSelection()};Graph.prototype.zoom=function(b,c){b=Math.max(.01,Math.min(this.view.scale*b,160))/this.view.scale;mxGraph.prototype.zoom.apply(this,arguments)};Graph.prototype.zoomIn=function(){.15>this.view.scale?this.zoom((this.view.scale+.01)/this.view.scale):this.zoom(Math.round(this.view.scale*this.zoomFactor*20)/20/this.view.scale)};
2438Graph.prototype.zoomOut=function(){.15>=this.view.scale?this.zoom((this.view.scale-.01)/this.view.scale):this.zoom(Math.round(1/this.zoomFactor*this.view.scale*20)/20/this.view.scale)};
2439Graph.prototype.fitWindow=function(b,c){c=null!=c?c:10;var e=this.container.clientWidth-c,k=this.container.clientHeight-c,g=Math.floor(20*Math.min(e/b.width,k/b.height))/20;this.zoomTo(g);if(mxUtils.hasScrollbars(this.container)){var p=this.view.translate;this.container.scrollTop=(b.y+p.y)*g-Math.max((k-b.height*g)/2+c/2,0);this.container.scrollLeft=(b.x+p.x)*g-Math.max((e-b.width*g)/2+c/2,0)}};
2440Graph.prototype.getTooltipForCell=function(b){var c="";if(mxUtils.isNode(b.value)){var e=null;Graph.translateDiagram&&null!=Graph.diagramLanguage&&(e=b.value.getAttribute("tooltip_"+Graph.diagramLanguage));null==e&&(e=b.value.getAttribute("tooltip"));if(null!=e)null!=e&&this.isReplacePlaceholders(b)&&(e=this.replacePlaceholders(b,e)),c=this.sanitizeHtml(e);else{e=this.builtInProperties;b=b.value.attributes;var k=[];this.isEnabled()&&(e.push("linkTarget"),e.push("link"));for(var g=0;g<b.length;g++)0>
2441mxUtils.indexOf(e,b[g].nodeName)&&0<b[g].nodeValue.length&&k.push({name:b[g].nodeName,value:b[g].nodeValue});k.sort(function(b,c){return b.name<c.name?-1:b.name>c.name?1:0});for(g=0;g<k.length;g++)"link"==k[g].name&&this.isCustomLink(k[g].value)||(c+=("link"!=k[g].name?"<b>"+k[g].name+":</b> ":"")+mxUtils.htmlEntities(k[g].value)+"\n");0<c.length&&(c=c.substring(0,c.length-1),mxClient.IS_SVG&&(c='<div style="max-width:360px;text-overflow:ellipsis;overflow:hidden;">'+c+"</div>"))}}return c};
2442Graph.prototype.getFlowAnimationStyle=function(){var b=document.getElementsByTagName("head")[0];if(null!=b&&null==this.flowAnimationStyle){this.flowAnimationStyle=document.createElement("style");this.flowAnimationStyle.setAttribute("id","geEditorFlowAnimation-"+Editor.guid());this.flowAnimationStyle.type="text/css";var c=this.flowAnimationStyle.getAttribute("id");this.flowAnimationStyle.innerHTML=this.getFlowAnimationStyleCss(c);b.appendChild(this.flowAnimationStyle)}return this.flowAnimationStyle};
2443Graph.prototype.getFlowAnimationStyleCss=function(b){return"."+b+" {\nanimation: "+b+" 0.5s linear;\nanimation-iteration-count: infinite;\n}\n@keyframes "+b+" {\nto {\nstroke-dashoffset: "+-16*this.view.scale+";\n}\n}"};Graph.prototype.stringToBytes=function(b){return Graph.stringToBytes(b)};Graph.prototype.bytesToString=function(b){return Graph.bytesToString(b)};Graph.prototype.compressNode=function(b){return Graph.compressNode(b)};Graph.prototype.compress=function(b,c){return Graph.compress(b,c)};
2444Graph.prototype.decompress=function(b,c){return Graph.decompress(b,c)};Graph.prototype.zapGremlins=function(b){return Graph.zapGremlins(b)};HoverIcons=function(b){mxEventSource.call(this);this.graph=b;this.init()};mxUtils.extend(HoverIcons,mxEventSource);HoverIcons.prototype.arrowSpacing=2;HoverIcons.prototype.updateDelay=500;HoverIcons.prototype.activationDelay=140;HoverIcons.prototype.currentState=null;HoverIcons.prototype.activeArrow=null;HoverIcons.prototype.inactiveOpacity=15;
2445HoverIcons.prototype.cssCursor="copy";HoverIcons.prototype.checkCollisions=!0;HoverIcons.prototype.arrowFill="#29b6f2";HoverIcons.prototype.triangleUp=mxClient.IS_SVG?Graph.createSvgImage(18,28,'<path d="m 6 26 L 12 26 L 12 12 L 18 12 L 9 1 L 1 12 L 6 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-up.png",26,14);
2446HoverIcons.prototype.triangleRight=mxClient.IS_SVG?Graph.createSvgImage(26,18,'<path d="m 1 6 L 14 6 L 14 1 L 26 9 L 14 18 L 14 12 L 1 12 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-right.png",14,26);HoverIcons.prototype.triangleDown=mxClient.IS_SVG?Graph.createSvgImage(18,26,'<path d="m 6 1 L 6 14 L 1 14 L 9 26 L 18 14 L 12 14 L 12 1 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-down.png",26,14);
2447HoverIcons.prototype.triangleLeft=mxClient.IS_SVG?Graph.createSvgImage(28,18,'<path d="m 1 9 L 12 1 L 12 6 L 26 6 L 26 12 L 12 12 L 12 18 z" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/triangle-left.png",14,26);HoverIcons.prototype.roundDrop=mxClient.IS_SVG?Graph.createSvgImage(26,26,'<circle cx="13" cy="13" r="12" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'"/>'):new mxImage(IMAGE_PATH+"/round-drop.png",26,26);
2448HoverIcons.prototype.refreshTarget=new mxImage(mxClient.IS_SVG?"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjM2cHgiIGhlaWdodD0iMzZweCI+PGVsbGlwc2UgZmlsbD0iIzI5YjZmMiIgY3g9IjEyIiBjeT0iMTIiIHJ4PSIxMiIgcnk9IjEyIi8+PHBhdGggdHJhbnNmb3JtPSJzY2FsZSgwLjgpIHRyYW5zbGF0ZSgyLjQsIDIuNCkiIHN0cm9rZT0iI2ZmZiIgZmlsbD0iI2ZmZiIgZD0iTTEyIDZ2M2w0LTQtNC00djNjLTQuNDIgMC04IDMuNTgtOCA4IDAgMS41Ny40NiAzLjAzIDEuMjQgNC4yNkw2LjcgMTQuOGMtLjQ1LS44My0uNy0xLjc5LS43LTIuOCAwLTMuMzEgMi42OS02IDYtNnptNi43NiAxLjc0TDE3LjMgOS4yYy40NC44NC43IDEuNzkuNyAyLjggMCAzLjMxLTIuNjkgNi02IDZ2LTNsLTQgNCA0IDR2LTNjNC40MiAwIDgtMy41OCA4LTggMC0xLjU3LS40Ni0zLjAzLTEuMjQtNC4yNnoiLz48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PC9zdmc+Cg==":
2449IMAGE_PATH+"/refresh.png",38,38);HoverIcons.prototype.tolerance=mxClient.IS_TOUCH?6:0;
2450HoverIcons.prototype.init=function(){this.arrowUp=this.createArrow(this.triangleUp,mxResources.get("plusTooltip"),mxConstants.DIRECTION_NORTH);this.arrowRight=this.createArrow(this.triangleRight,mxResources.get("plusTooltip"),mxConstants.DIRECTION_EAST);this.arrowDown=this.createArrow(this.triangleDown,mxResources.get("plusTooltip"),mxConstants.DIRECTION_SOUTH);this.arrowLeft=this.createArrow(this.triangleLeft,mxResources.get("plusTooltip"),mxConstants.DIRECTION_WEST);this.elts=[this.arrowUp,this.arrowRight,
2451this.arrowDown,this.arrowLeft];this.resetHandler=mxUtils.bind(this,function(){this.reset()});this.repaintHandler=mxUtils.bind(this,function(){this.repaint()});this.graph.selectionModel.addListener(mxEvent.CHANGE,this.resetHandler);this.graph.model.addListener(mxEvent.CHANGE,this.repaintHandler);this.graph.view.addListener(mxEvent.SCALE_AND_TRANSLATE,this.repaintHandler);this.graph.view.addListener(mxEvent.TRANSLATE,this.repaintHandler);this.graph.view.addListener(mxEvent.SCALE,this.repaintHandler);
2452this.graph.view.addListener(mxEvent.DOWN,this.repaintHandler);this.graph.view.addListener(mxEvent.UP,this.repaintHandler);this.graph.addListener(mxEvent.ROOT,this.repaintHandler);this.graph.addListener(mxEvent.ESCAPE,this.resetHandler);mxEvent.addListener(this.graph.container,"scroll",this.resetHandler);this.graph.addListener(mxEvent.ESCAPE,mxUtils.bind(this,function(){this.mouseDownPoint=null}));mxEvent.addListener(this.graph.container,"mouseleave",mxUtils.bind(this,function(b){null!=b.relatedTarget&&
2453mxEvent.getSource(b)==this.graph.container&&this.setDisplay("none")}));this.graph.addListener(mxEvent.START_EDITING,mxUtils.bind(this,function(b){this.reset()}));var b=this.graph.click;this.graph.click=mxUtils.bind(this,function(c){b.apply(this.graph,arguments);null==this.currentState||this.graph.isCellSelected(this.currentState.cell)||!mxEvent.isTouchEvent(c.getEvent())||this.graph.model.isVertex(c.getCell())||this.reset()});var c=!1;this.graph.addMouseListener({mouseDown:mxUtils.bind(this,function(b,
2454k){c=!1;var e=k.getEvent();if(this.isResetEvent(e))this.reset();else if(!this.isActive()){var p=this.getState(k.getState());null==p&&mxEvent.isTouchEvent(e)||this.update(p)}this.setDisplay("none")}),mouseMove:mxUtils.bind(this,function(b,k){var e=k.getEvent();this.isResetEvent(e)?this.reset():this.graph.isMouseDown||mxEvent.isTouchEvent(e)||this.update(this.getState(k.getState()),k.getGraphX(),k.getGraphY());null!=this.graph.connectionHandler&&null!=this.graph.connectionHandler.shape&&(c=!0)}),mouseUp:mxUtils.bind(this,
2455function(b,k){var e=k.getEvent();mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));this.isResetEvent(e)?this.reset():this.isActive()&&!c&&null!=this.mouseDownPoint?this.click(this.currentState,this.getDirection(),k):this.isActive()?1==this.graph.getSelectionCount()&&this.graph.model.isEdge(this.graph.getSelectionCell())?this.reset():this.update(this.getState(this.graph.view.getState(this.graph.getCellAt(k.getGraphX(),k.getGraphY())))):mxEvent.isTouchEvent(e)||
2456null!=this.bbox&&mxUtils.contains(this.bbox,k.getGraphX(),k.getGraphY())?(this.setDisplay(""),this.repaint()):mxEvent.isTouchEvent(e)||this.reset();c=!1;this.resetActiveArrow()})})};HoverIcons.prototype.isResetEvent=function(b,c){return mxEvent.isAltDown(b)||null==this.activeArrow&&mxEvent.isShiftDown(b)||mxEvent.isPopupTrigger(b)&&!this.graph.isCloneEvent(b)};
2457HoverIcons.prototype.createArrow=function(b,c,e){var k=null,k=mxUtils.createImage(b.src);k.style.width=b.width+"px";k.style.height=b.height+"px";k.style.padding=this.tolerance+"px";null!=c&&k.setAttribute("title",c);k.style.position="absolute";k.style.cursor=this.cssCursor;mxEvent.addGestureListeners(k,mxUtils.bind(this,function(b){null==this.currentState||this.isResetEvent(b)||(this.mouseDownPoint=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),this.drag(b,
2458this.mouseDownPoint.x,this.mouseDownPoint.y),this.activeArrow=k,this.setDisplay("none"),mxEvent.consume(b))}));mxEvent.redirectMouseEvents(k,this.graph,this.currentState);mxEvent.addListener(k,"mouseenter",mxUtils.bind(this,function(b){mxEvent.isMouseEvent(b)&&(null!=this.activeArrow&&this.activeArrow!=k&&mxUtils.setOpacity(this.activeArrow,this.inactiveOpacity),this.graph.connectionHandler.constraintHandler.reset(),mxUtils.setOpacity(k,100),this.activeArrow=k,this.fireEvent(new mxEventObject("focus",
2459"arrow",k,"direction",e,"event",b)))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(b){mxEvent.isMouseEvent(b)&&this.fireEvent(new mxEventObject("blur","arrow",k,"direction",e,"event",b));this.graph.isMouseDown||this.resetActiveArrow()}));return k};HoverIcons.prototype.resetActiveArrow=function(){null!=this.activeArrow&&(mxUtils.setOpacity(this.activeArrow,this.inactiveOpacity),this.activeArrow=null)};
2460HoverIcons.prototype.getDirection=function(){var b=mxConstants.DIRECTION_EAST;this.activeArrow==this.arrowUp?b=mxConstants.DIRECTION_NORTH:this.activeArrow==this.arrowDown?b=mxConstants.DIRECTION_SOUTH:this.activeArrow==this.arrowLeft&&(b=mxConstants.DIRECTION_WEST);return b};HoverIcons.prototype.visitNodes=function(b){for(var c=0;c<this.elts.length;c++)null!=this.elts[c]&&b(this.elts[c])};HoverIcons.prototype.removeNodes=function(){this.visitNodes(function(b){null!=b.parentNode&&b.parentNode.removeChild(b)})};
2461HoverIcons.prototype.setDisplay=function(b){this.visitNodes(function(c){c.style.display=b})};HoverIcons.prototype.isActive=function(){return null!=this.activeArrow&&null!=this.currentState};
2462HoverIcons.prototype.drag=function(b,c,e){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);null!=this.currentState&&(this.graph.connectionHandler.start(this.currentState,c,e),this.graph.isMouseTrigger=mxEvent.isMouseEvent(b),this.graph.isMouseDown=!0,c=this.graph.selectionCellsHandler.getHandler(this.currentState.cell),null!=c&&c.setHandlesVisible(!1),c=this.graph.connectionHandler.edgeState,null!=b&&mxEvent.isShiftDown(b)&&mxEvent.isControlDown(b)&&null!=c&&"orthogonalEdgeStyle"===
2463mxUtils.getValue(c.style,mxConstants.STYLE_EDGE,null)&&(b=this.getDirection(),c.cell.style=mxUtils.setStyle(c.cell.style,"sourcePortConstraint",b),c.style.sourcePortConstraint=b))};HoverIcons.prototype.getStateAt=function(b,c,e){return this.graph.view.getState(this.graph.getCellAt(c,e))};
2464HoverIcons.prototype.click=function(b,c,e){var k=e.getEvent(),g=e.getGraphX(),p=e.getGraphY(),g=this.getStateAt(b,g,p);null==g||!this.graph.model.isEdge(g.cell)||this.graph.isCloneEvent(k)||g.getVisibleTerminalState(!0)!=b&&g.getVisibleTerminalState(!1)!=b?null!=b&&this.execute(b,c,e):(this.graph.setSelectionCell(g.cell),this.reset());e.consume()};
2465HoverIcons.prototype.execute=function(b,c,e){e=e.getEvent();this.graph.selectCellsForConnectVertex(this.graph.connectVertex(b.cell,c,this.graph.defaultEdgeLength,e,this.graph.isCloneEvent(e),this.graph.isCloneEvent(e)),e,this)};HoverIcons.prototype.reset=function(b){null!=b&&!b||null==this.updateThread||window.clearTimeout(this.updateThread);this.activeArrow=this.currentState=this.mouseDownPoint=null;this.removeNodes();this.bbox=null;this.fireEvent(new mxEventObject("reset"))};
2466HoverIcons.prototype.repaint=function(){this.bbox=null;if(null!=this.currentState){this.currentState=this.getState(this.currentState);if(null!=this.currentState&&this.graph.model.isVertex(this.currentState.cell)&&this.graph.isCellConnectable(this.currentState.cell)){var b=mxRectangle.fromRectangle(this.currentState);null!=this.currentState.shape&&null!=this.currentState.shape.boundingBox&&(b=mxRectangle.fromRectangle(this.currentState.shape.boundingBox));b.grow(this.graph.tolerance);b.grow(this.arrowSpacing);
2467var c=this.graph.selectionCellsHandler.getHandler(this.currentState.cell);this.graph.isTableRow(this.currentState.cell)&&(c=this.graph.selectionCellsHandler.getHandler(this.graph.model.getParent(this.currentState.cell)));var e=null;null!=c&&(b.x-=c.horizontalOffset/2,b.y-=c.verticalOffset/2,b.width+=c.horizontalOffset,b.height+=c.verticalOffset,null!=c.rotationShape&&null!=c.rotationShape.node&&"hidden"!=c.rotationShape.node.style.visibility&&"none"!=c.rotationShape.node.style.display&&null!=c.rotationShape.boundingBox&&
2468(e=c.rotationShape.boundingBox));c=mxUtils.bind(this,function(b,f,c){if(null!=e){var d=new mxRectangle(f,c,b.clientWidth,b.clientHeight);mxUtils.intersects(d,e)&&(b==this.arrowUp?c-=d.y+d.height-e.y:b==this.arrowRight?f+=e.x+e.width-d.x:b==this.arrowDown?c+=e.y+e.height-d.y:b==this.arrowLeft&&(f-=d.x+d.width-e.x))}b.style.left=f+"px";b.style.top=c+"px";mxUtils.setOpacity(b,this.inactiveOpacity)});c(this.arrowUp,Math.round(this.currentState.getCenterX()-this.triangleUp.width/2-this.tolerance),Math.round(b.y-
2469this.triangleUp.height-this.tolerance));c(this.arrowRight,Math.round(b.x+b.width-this.tolerance),Math.round(this.currentState.getCenterY()-this.triangleRight.height/2-this.tolerance));c(this.arrowDown,parseInt(this.arrowUp.style.left),Math.round(b.y+b.height-this.tolerance));c(this.arrowLeft,Math.round(b.x-this.triangleLeft.width-this.tolerance),parseInt(this.arrowRight.style.top));if(this.checkCollisions){var c=this.graph.getCellAt(b.x+b.width+this.triangleRight.width/2,this.currentState.getCenterY()),
2470k=this.graph.getCellAt(b.x-this.triangleLeft.width/2,this.currentState.getCenterY()),g=this.graph.getCellAt(this.currentState.getCenterX(),b.y-this.triangleUp.height/2),b=this.graph.getCellAt(this.currentState.getCenterX(),b.y+b.height+this.triangleDown.height/2);null!=c&&c==k&&k==g&&g==b&&(b=g=k=c=null);var p=this.graph.getCellGeometry(this.currentState.cell),t=mxUtils.bind(this,function(b,f){var d=this.graph.model.isVertex(b)&&this.graph.getCellGeometry(b);null==b||this.graph.model.isAncestor(b,
2471this.currentState.cell)||this.graph.isSwimlane(b)||!(null==d||null==p||d.height<3*p.height&&d.width<3*p.width)?f.style.visibility="visible":f.style.visibility="hidden"});t(c,this.arrowRight);t(k,this.arrowLeft);t(g,this.arrowUp);t(b,this.arrowDown)}else this.arrowLeft.style.visibility="visible",this.arrowRight.style.visibility="visible",this.arrowUp.style.visibility="visible",this.arrowDown.style.visibility="visible";this.graph.tooltipHandler.isEnabled()?(this.arrowLeft.setAttribute("title",mxResources.get("plusTooltip")),
2472this.arrowRight.setAttribute("title",mxResources.get("plusTooltip")),this.arrowUp.setAttribute("title",mxResources.get("plusTooltip")),this.arrowDown.setAttribute("title",mxResources.get("plusTooltip"))):(this.arrowLeft.removeAttribute("title"),this.arrowRight.removeAttribute("title"),this.arrowUp.removeAttribute("title"),this.arrowDown.removeAttribute("title"))}else this.reset();null!=this.currentState&&(this.bbox=this.computeBoundingBox(),null!=this.bbox&&this.bbox.grow(10))}};
2473HoverIcons.prototype.computeBoundingBox=function(){var b=this.graph.model.isEdge(this.currentState.cell)?null:mxRectangle.fromRectangle(this.currentState);this.visitNodes(function(c){null!=c.parentNode&&(c=new mxRectangle(c.offsetLeft,c.offsetTop,c.offsetWidth,c.offsetHeight),null==b?b=c:b.add(c))});return b};
2474HoverIcons.prototype.getState=function(b){if(null!=b)if(b=b.cell,this.graph.getModel().contains(b)){if(this.graph.getModel().isVertex(b)&&!this.graph.isCellConnectable(b)){var c=this.graph.getModel().getParent(b);this.graph.getModel().isVertex(c)&&this.graph.isCellConnectable(c)&&(b=c)}if(this.graph.isCellLocked(b)||this.graph.model.isEdge(b))b=null;b=this.graph.view.getState(b);null!=b&&null==b.style&&(b=null)}else b=null;return b};
2475HoverIcons.prototype.update=function(b,c,e){if(!this.graph.connectionArrowsEnabled||null!=b&&"0"==mxUtils.getValue(b.style,"allowArrows","1"))this.reset();else{null!=b&&null!=b.cell.geometry&&b.cell.geometry.relative&&this.graph.model.isEdge(b.cell.parent)&&(b=null);var k=null;this.prev!=b||this.isActive()?(this.startTime=(new Date).getTime(),this.prev=b,k=0,null!=this.updateThread&&window.clearTimeout(this.updateThread),null!=b&&(this.updateThread=window.setTimeout(mxUtils.bind(this,function(){this.isActive()||
2476this.graph.isMouseDown||this.graph.panningHandler.isActive()||(this.prev=b,this.update(b,c,e))}),this.updateDelay+10))):null!=this.startTime&&(k=(new Date).getTime()-this.startTime);this.setDisplay("");null!=this.currentState&&this.currentState!=b&&k<this.activationDelay&&null!=this.bbox&&!mxUtils.contains(this.bbox,c,e)?this.reset(!1):(null!=this.currentState||k>this.activationDelay)&&this.currentState!=b&&(k>this.updateDelay&&null!=b||null==this.bbox||null==c||null==e||!mxUtils.contains(this.bbox,
2477c,e))&&(null!=b&&this.graph.isEnabled()?(this.removeNodes(),this.setCurrentState(b),this.repaint(),this.graph.connectionHandler.constraintHandler.currentFocus!=b&&this.graph.connectionHandler.constraintHandler.reset()):this.reset())}};
2478HoverIcons.prototype.setCurrentState=function(b){"eastwest"!=b.style.portConstraint&&(this.graph.container.appendChild(this.arrowUp),this.graph.container.appendChild(this.arrowDown));this.graph.container.appendChild(this.arrowRight);this.graph.container.appendChild(this.arrowLeft);this.currentState=b};Graph.prototype.createParent=function(b,c,e,k,g){b=this.cloneCell(b);for(var p=0;p<e;p++){var t=this.cloneCell(c),d=this.getCellGeometry(t);null!=d&&(d.x+=p*k,d.y+=p*g);b.insert(t)}return b};
2479Graph.prototype.createTable=function(b,c,e,k,g,p,t,d,f){e=null!=e?e:60;k=null!=k?k:40;p=null!=p?p:30;d=null!=d?d:"shape=partialRectangle;collapsible=0;dropTarget=0;pointerEvents=0;fillColor=none;top=0;left=0;bottom=0;right=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;";f=null!=f?f:"shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;";return this.createParent(this.createVertex(null,null,null!=g?g:"",0,0,c*e,
2480b*k+(null!=g?p:0),null!=t?t:"shape=table;startSize="+(null!=g?p:"0")+";container=1;collapsible=0;childLayout=tableLayout;"),this.createParent(this.createVertex(null,null,"",0,0,c*e,k,d),this.createVertex(null,null,"",0,0,e,k,f),c,e,0),b,0,k)};Graph.prototype.setTableValues=function(b,c,e){for(var k=this.model.getChildCells(b,!0),g=0;g<k.length;g++)if(null!=e&&(k[g].value=e[g]),null!=c)for(var p=this.model.getChildCells(k[g],!0),t=0;t<p.length;t++)null!=c[g][t]&&(p[t].value=c[g][t]);return b};
2481Graph.prototype.createCrossFunctionalSwimlane=function(b,c,e,k,g,p,t,d,f){e=null!=e?e:120;k=null!=k?k:120;var l=null==g?0:40;t=null!=t?t:"swimlane;horizontal=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;startSize="+l+";collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";d=null!=d?d:"swimlane;connectable=0;startSize=40;collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";f=null!=f?f:"swimlane;connectable=0;startSize="+(null==g?"40":"0")+";collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";
2482g=this.createVertex(null,null,null!=g?g:"",0,0,c*e,b*k,null!=p?p:"shape=table;childLayout=tableLayout;rowLines=0;columnLines=0;startSize="+l+";"+(null==g?"fillColor=none;":"")+"collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;");p=mxUtils.getValue(this.getCellStyle(g),mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);g.geometry.width+=p;g.geometry.height+=p;t=this.createVertex(null,null,"",0,p,c*e+p,k,t);g.insert(this.createParent(t,this.createVertex(null,null,"",p,0,e,k,d),c,e,0));
2483return 1<b?(t.geometry.y=k+p,this.createParent(g,this.createParent(t,this.createVertex(null,null,"",p,0,e,k,f),c,e,0),b-1,0,k)):g};Graph.prototype.isTableCell=function(b){return this.model.isVertex(b)&&this.isTableRow(this.model.getParent(b))};Graph.prototype.isTableRow=function(b){return this.model.isVertex(b)&&this.isTable(this.model.getParent(b))};Graph.prototype.isTable=function(b){b=this.getCellStyle(b);return null!=b&&"tableLayout"==b.childLayout};
2484Graph.prototype.isStack=function(b){b=this.getCellStyle(b);return null!=b&&"stackLayout"==b.childLayout};Graph.prototype.isStackChild=function(b){return this.model.isVertex(b)&&this.isStack(this.model.getParent(b))};
2485Graph.prototype.setTableRowHeight=function(b,c,e){e=null!=e?e:!0;var k=this.getModel();k.beginUpdate();try{var g=this.getCellGeometry(b);if(null!=g){g=g.clone();g.height+=c;k.setGeometry(b,g);var p=k.getParent(b),t=k.getChildCells(p,!0);if(!e){var d=mxUtils.indexOf(t,b);if(d<t.length-1){var f=t[d+1],l=this.getCellGeometry(f);null!=l&&(l=l.clone(),l.y+=c,l.height-=c,k.setGeometry(f,l))}}var q=this.getCellGeometry(p);null!=q&&(e||(e=b==t[t.length-1]),e&&(q=q.clone(),q.height+=c,k.setGeometry(p,q)));
2486null!=this.layoutManager&&this.layoutManager.executeLayout(p,!0)}}finally{k.endUpdate()}};
2487Graph.prototype.setTableColumnWidth=function(b,c,e){e=null!=e?e:!1;var k=this.getModel(),g=k.getParent(b),p=k.getParent(g),t=k.getChildCells(g,!0);b=mxUtils.indexOf(t,b);var d=b==t.length-1;k.beginUpdate();try{for(var f=k.getChildCells(p,!0),l=0;l<f.length;l++){var g=f[l],t=k.getChildCells(g,!0),q=t[b],m=this.getCellGeometry(q);null!=m&&(m=m.clone(),m.width+=c,null!=m.alternateBounds&&(m.alternateBounds.width+=c),k.setGeometry(q,m));b<t.length-1&&(q=t[b+1],m=this.getCellGeometry(q),null!=m&&(m=m.clone(),
2488m.x+=c,e||(m.width-=c,null!=m.alternateBounds&&(m.alternateBounds.width-=c)),k.setGeometry(q,m)))}if(d||e){var n=this.getCellGeometry(p);null!=n&&(n=n.clone(),n.width+=c,k.setGeometry(p,n))}null!=this.layoutManager&&this.layoutManager.executeLayout(p,!0)}finally{k.endUpdate()}};function TableLayout(b){mxGraphLayout.call(this,b)}TableLayout.prototype=new mxStackLayout;TableLayout.prototype.constructor=TableLayout;TableLayout.prototype.isHorizontal=function(){return!1};
2489TableLayout.prototype.isVertexIgnored=function(b){return!this.graph.getModel().isVertex(b)||!this.graph.isCellVisible(b)};TableLayout.prototype.getSize=function(b,c){for(var e=0,k=0;k<b.length;k++)if(!this.isVertexIgnored(b[k])){var g=this.graph.getCellGeometry(b[k]);null!=g&&(e+=c?g.width:g.height)}return e};
2490TableLayout.prototype.getRowLayout=function(b,c){for(var e=this.graph.model.getChildCells(b,!0),k=this.graph.getActualStartSize(b,!0),g=this.getSize(e,!0),p=c-k.x-k.width,t=[],k=k.x,d=0;d<e.length;d++){var f=this.graph.getCellGeometry(e[d]);null!=f&&(k+=(null!=f.alternateBounds?f.alternateBounds.width:f.width)*p/g,t.push(Math.round(k)))}return t};
2491TableLayout.prototype.layoutRow=function(b,c,e,k,g){var p=this.graph.getModel(),t=p.getChildCells(b,!0);b=this.graph.getActualStartSize(b,!0);var d=null,f=b.x,l=0;null!=c&&(c=c.slice(),c.splice(0,0,b.x));for(var q=0;q<t.length;q++){var m=this.graph.getCellGeometry(t[q]);null!=m&&(m=m.clone(),m.y=b.y,m.height=e-b.y-b.height,null!=c?(m.x=c[q],m.width=c[q+1]-m.x,q==t.length-1&&q<c.length-2&&(m.width=k-m.x-b.x-b.width)):(m.x=f,f+=m.width,q==t.length-1?m.width=k-b.x-b.width-l:l+=m.width),m.alternateBounds=
2492new mxRectangle(0,0,m.width,m.height),p.setGeometry(t[q],m));var n=!0,u=g[q];null!=u&&null!=u.geo&&null!=u.rowspan&&1<u.rowspan&&(u.geo.height+=null!=m.alternateBounds?m.alternateBounds.height:m.height,n=!1,u.rowspan--);null!=d&&null!=d.geo&&null!=d.colspan&&1<d.colspan&&(d.geo.width+=null!=m.alternateBounds?m.alternateBounds.width:m.width,n=!1,d.colspan--);p.setVisible(t[q],n);n=this.graph.getCurrentCellStyle(t[q],!0);m={style:n,cell:t[q],geo:m};if(null!=n){if(null==d||1>d.colspan)m.colspan=parseInt(n.colspan||
24930),d=m;null==u||1>u.rowspan?(m.rowspan=parseInt(n.rowspan||0),g[q]=m):null!=u&&(m.colspan=parseInt(u.style.colspan||0))}}return l};
2494TableLayout.prototype.execute=function(b){if(null!=b){var c=this.graph.getActualStartSize(b,!0),e=this.graph.getCellGeometry(b),k=this.graph.getCellStyle(b),g="1"==mxUtils.getValue(k,"resizeLastRow","0"),p="1"==mxUtils.getValue(k,"resizeLast","0"),k="1"==mxUtils.getValue(k,"fixedRows","0"),t=this.graph.getModel(),d=0;t.beginUpdate();try{var f=e.height-c.y-c.height,l=e.width-c.x-c.width,q=t.getChildCells(b,!0),m=this.getSize(q,!1);if(0<f&&0<l&&0<q.length&&0<m){if(g){var n=this.graph.getCellGeometry(q[q.length-
24951]);null!=n&&(n=n.clone(),n.height=f-m+n.height,t.setGeometry(q[q.length-1],n))}for(var u=p?null:this.getRowLayout(q[0],l),v=[],y=c.y,x=0;x<q.length;x++)n=this.graph.getCellGeometry(q[x]),null!=n&&(n=n.clone(),n.x=c.x,n.width=l,n.y=Math.round(y),y=g||k?y+n.height:y+n.height/m*f,n.height=Math.round(y)-n.y,t.setGeometry(q[x],n)),d=Math.max(d,this.layoutRow(q[x],u,n.height,l,v));k&&f<m&&(e=e.clone(),e.height=y+c.height,t.setGeometry(b,e));p&&l<d+Graph.minTableColumnWidth&&(e=e.clone(),e.width=d+c.width+
2496c.x+Graph.minTableColumnWidth,t.setGeometry(b,e))}}finally{t.endUpdate()}}};
2497(function(){var b=mxGraphView.prototype.resetValidationState;mxGraphView.prototype.resetValidationState=function(){b.apply(this,arguments);this.validEdges=[]};var c=mxGraphView.prototype.validateCellState;mxGraphView.prototype.validateCellState=function(b,d){d=null!=d?d:!0;var f=this.getState(b);null!=f&&d&&this.graph.model.isEdge(f.cell)&&null!=f.style&&1!=f.style[mxConstants.STYLE_CURVED]&&!f.invalid&&this.updateLineJumps(f)&&this.graph.cellRenderer.redraw(f,!1,this.isRendering());f=c.apply(this,
2498arguments);null!=f&&d&&this.graph.model.isEdge(f.cell)&&null!=f.style&&1!=f.style[mxConstants.STYLE_CURVED]&&this.validEdges.push(f);return f};var e=mxShape.prototype.paint;mxShape.prototype.paint=function(){e.apply(this,arguments);if(null!=this.state&&null!=this.node&&this.state.view.graph.enableFlowAnimation&&this.state.view.graph.model.isEdge(this.state.cell)&&"1"==mxUtils.getValue(this.state.style,"flowAnimation","0")){var b=this.node.getElementsByTagName("path");if(1<b.length){"1"!=mxUtils.getValue(this.state.style,
2499mxConstants.STYLE_DASHED,"0")&&b[1].setAttribute("stroke-dasharray",8*this.state.view.scale);var d=this.state.view.graph.getFlowAnimationStyle();null!=d&&b[1].setAttribute("class",d.getAttribute("id"))}}};var k=mxCellRenderer.prototype.isShapeInvalid;mxCellRenderer.prototype.isShapeInvalid=function(b,d){return k.apply(this,arguments)||null!=b.routedPoints&&null!=d.routedPoints&&!mxUtils.equalPoints(d.routedPoints,b.routedPoints)};var g=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=
2500function(b){g.apply(this,arguments);this.graph.model.isEdge(b.cell)&&1!=b.style[mxConstants.STYLE_CURVED]&&this.updateLineJumps(b)};mxGraphView.prototype.updateLineJumps=function(b){var d=b.absolutePoints;if(Graph.lineJumpsEnabled){var f=null!=b.routedPoints,c=null;if(null!=d&&null!=this.validEdges&&"none"!==mxUtils.getValue(b.style,"jumpStyle","none")){for(var e=function(d,f,e){var g=new mxPoint(f,e);g.type=d;c.push(g);g=null!=b.routedPoints?b.routedPoints[c.length-1]:null;return null==g||g.type!=
2501d||g.x!=f||g.y!=e},g=.5*this.scale,f=!1,c=[],l=0;l<d.length-1;l++){for(var k=d[l+1],q=d[l],p=[],t=d[l+2];l<d.length-2&&mxUtils.ptSegDistSq(q.x,q.y,t.x,t.y,k.x,k.y)<1*this.scale*this.scale;)k=t,l++,t=d[l+2];for(var f=e(0,q.x,q.y)||f,M=0;M<this.validEdges.length;M++){var E=this.validEdges[M],K=E.absolutePoints;if(null!=K&&mxUtils.intersects(b,E)&&"1"!=E.style.noJump)for(E=0;E<K.length-1;E++){for(var C=K[E+1],L=K[E],t=K[E+2];E<K.length-2&&mxUtils.ptSegDistSq(L.x,L.y,t.x,t.y,C.x,C.y)<1*this.scale*this.scale;)C=
2502t,E++,t=K[E+2];t=mxUtils.intersection(q.x,q.y,k.x,k.y,L.x,L.y,C.x,C.y);if(null!=t&&(Math.abs(t.x-q.x)>g||Math.abs(t.y-q.y)>g)&&(Math.abs(t.x-k.x)>g||Math.abs(t.y-k.y)>g)&&(Math.abs(t.x-L.x)>g||Math.abs(t.y-L.y)>g)&&(Math.abs(t.x-C.x)>g||Math.abs(t.y-C.y)>g)){C=t.x-q.x;L=t.y-q.y;t={distSq:C*C+L*L,x:t.x,y:t.y};for(C=0;C<p.length;C++)if(p[C].distSq>t.distSq){p.splice(C,0,t);t=null;break}null==t||0!=p.length&&p[p.length-1].x===t.x&&p[p.length-1].y===t.y||p.push(t)}}}for(E=0;E<p.length;E++)f=e(1,p[E].x,
2503p[E].y)||f}t=d[d.length-1];f=e(0,t.x,t.y)||f}b.routedPoints=c;return f}return!1};var p=mxConnector.prototype.paintLine;mxConnector.prototype.paintLine=function(b,d,f){this.routedPoints=null!=this.state?this.state.routedPoints:null;if(this.outline||null==this.state||null==this.style||null==this.state.routedPoints||0==this.state.routedPoints.length)p.apply(this,arguments);else{var c=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,e=(parseInt(mxUtils.getValue(this.style,
2504"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,g=mxUtils.getValue(this.style,"jumpStyle","none"),l=!0,k=null,q=null,m=[],n=null;b.begin();for(var t=0;t<this.state.routedPoints.length;t++){var E=this.state.routedPoints[t],K=new mxPoint(E.x/this.scale,E.y/this.scale);0==t?K=d[0]:t==this.state.routedPoints.length-1&&(K=d[d.length-1]);var C=!1;if(null!=k&&1==E.type){var L=this.state.routedPoints[t+1],E=L.x/this.scale-K.x,L=L.y/this.scale-K.y,E=E*E+L*L;null==n&&(n=new mxPoint(K.x-k.x,K.y-k.y),
2505q=Math.sqrt(n.x*n.x+n.y*n.y),0<q?(n.x=n.x*e/q,n.y=n.y*e/q):n=null);E>e*e&&0<q&&(E=k.x-K.x,L=k.y-K.y,E=E*E+L*L,E>e*e&&(C=new mxPoint(K.x-n.x,K.y-n.y),E=new mxPoint(K.x+n.x,K.y+n.y),m.push(C),this.addPoints(b,m,f,c,!1,null,l),m=0>Math.round(n.x)||0==Math.round(n.x)&&0>=Math.round(n.y)?1:-1,l=!1,"sharp"==g?(b.lineTo(C.x-n.y*m,C.y+n.x*m),b.lineTo(E.x-n.y*m,E.y+n.x*m),b.lineTo(E.x,E.y)):"line"==g?(b.moveTo(C.x+n.y*m,C.y-n.x*m),b.lineTo(C.x-n.y*m,C.y+n.x*m),b.moveTo(E.x-n.y*m,E.y+n.x*m),b.lineTo(E.x+n.y*
2506m,E.y-n.x*m),b.moveTo(E.x,E.y)):"arc"==g?(m*=1.3,b.curveTo(C.x-n.y*m,C.y+n.x*m,E.x-n.y*m,E.y+n.x*m,E.x,E.y)):(b.moveTo(E.x,E.y),l=!0),m=[E],C=!0))}else n=null;C||(m.push(K),k=K)}this.addPoints(b,m,f,c,!1,null,l);b.stroke()}};var t=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(b,d,f,c){return null!=d&&"centerPerimeter"==d.style[mxConstants.STYLE_PERIMETER]?new mxPoint(d.getCenterX(),d.getCenterY()):t.apply(this,arguments)};var d=mxGraphView.prototype.updateFloatingTerminalPoint;
2507mxGraphView.prototype.updateFloatingTerminalPoint=function(b,f,c,e){if(null==f||null==b||"1"!=f.style.snapToPoint&&"1"!=b.style.snapToPoint)d.apply(this,arguments);else{f=this.getTerminalPort(b,f,e);var g=this.getNextPoint(b,c,e),l=this.graph.isOrthogonal(b),k=mxUtils.toRadians(Number(f.style[mxConstants.STYLE_ROTATION]||"0")),q=new mxPoint(f.getCenterX(),f.getCenterY());if(0!=k)var m=Math.cos(-k),n=Math.sin(-k),g=mxUtils.getRotatedPoint(g,m,n,q);m=parseFloat(b.style[mxConstants.STYLE_PERIMETER_SPACING]||
25080);m+=parseFloat(b.style[e?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);g=this.getPerimeterPoint(f,g,0==k&&l,m);0!=k&&(m=Math.cos(k),n=Math.sin(k),g=mxUtils.getRotatedPoint(g,m,n,q));b.setAbsoluteTerminalPoint(this.snapToAnchorPoint(b,f,c,e,g),e)}};mxGraphView.prototype.snapToAnchorPoint=function(b,d,f,c,e){if(null!=d&&null!=b){b=this.graph.getAllConnectionConstraints(d);c=f=null;if(null!=b)for(var g=0;g<b.length;g++){var l=this.graph.getConnectionPoint(d,
2509b[g]);if(null!=l){var k=(l.x-e.x)*(l.x-e.x)+(l.y-e.y)*(l.y-e.y);if(null==c||k<c)f=l,c=k}}null!=f&&(e=f)}return e};var f=mxStencil.prototype.evaluateTextAttribute;mxStencil.prototype.evaluateTextAttribute=function(b,d,c){var e=f.apply(this,arguments);"1"==b.getAttribute("placeholders")&&null!=c.state&&(e=c.state.view.graph.replacePlaceholders(c.state.cell,e));return e};var l=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(b){if(null!=b.style&&"undefined"!==typeof pako){var d=
2510mxUtils.getValue(b.style,mxConstants.STYLE_SHAPE,null);if(null!=d&&"string"===typeof d&&"stencil("==d.substring(0,8))try{var f=d.substring(8,d.length-1),c=mxUtils.parseXml(Graph.decompress(f));return new mxShape(new mxStencil(c.documentElement))}catch(v){null!=window.console&&console.log("Error in shape: "+v)}}return l.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.allowEval=!0;mxStencilRegistry.packages=[];
2511mxStencilRegistry.filesLoaded={};
2512mxStencilRegistry.getStencil=function(b){var c=mxStencilRegistry.stencils[b];if(null==c&&null==mxCellRenderer.defaultShapes[b]&&mxStencilRegistry.dynamicLoading){var e=mxStencilRegistry.getBasenameForStencil(b);if(null!=e){c=mxStencilRegistry.libraries[e];if(null!=c){if(null==mxStencilRegistry.packages[e]){for(var k=0;k<c.length;k++){var g=c[k];if(!mxStencilRegistry.filesLoaded[g])if(mxStencilRegistry.filesLoaded[g]=!0,".xml"==g.toLowerCase().substring(g.length-4,g.length))mxStencilRegistry.loadStencilSet(g,
2513null);else if(".js"==g.toLowerCase().substring(g.length-3,g.length))try{if(mxStencilRegistry.allowEval){var p=mxUtils.load(g);null!=p&&200<=p.getStatus()&&299>=p.getStatus()&&eval.call(window,p.getText())}}catch(t){null!=window.console&&console.log("error in getStencil:",b,e,c,g,t)}}mxStencilRegistry.packages[e]=1}}else e=e.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+e+".xml",null);c=mxStencilRegistry.stencils[b]}}return c};
2514mxStencilRegistry.getBasenameForStencil=function(b){var c=null;if(null!=b&&"string"===typeof b&&(b=b.split("."),0<b.length&&"mxgraph"==b[0]))for(var c=b[1],e=2;e<b.length-1;e++)c+="/"+b[e];return c};
2515mxStencilRegistry.loadStencilSet=function(b,c,e,k){var g=mxStencilRegistry.packages[b];if(null!=e&&e||null==g){var p=!1;if(null==g)try{if(k){mxStencilRegistry.loadStencil(b,mxUtils.bind(this,function(e){null!=e&&null!=e.documentElement&&(mxStencilRegistry.packages[b]=e,p=!0,mxStencilRegistry.parseStencilSet(e.documentElement,c,p))}));return}g=mxStencilRegistry.loadStencil(b);mxStencilRegistry.packages[b]=g;p=!0}catch(t){null!=window.console&&console.log("error in loadStencilSet:",b,t)}null!=g&&null!=
2516g.documentElement&&mxStencilRegistry.parseStencilSet(g.documentElement,c,p)}};mxStencilRegistry.loadStencil=function(b,c){if(null!=c)mxUtils.get(b,mxUtils.bind(this,function(b){c(200<=b.getStatus()&&299>=b.getStatus()?b.getXml():null)}));else return mxUtils.load(b).getXml()};mxStencilRegistry.parseStencilSets=function(b){for(var c=0;c<b.length;c++)mxStencilRegistry.parseStencilSet(mxUtils.parseXml(b[c]).documentElement)};
2517mxStencilRegistry.parseStencilSet=function(b,c,e){if("stencils"==b.nodeName)for(var k=b.firstChild;null!=k;)"shapes"==k.nodeName&&mxStencilRegistry.parseStencilSet(k,c,e),k=k.nextSibling;else{e=null!=e?e:!0;var k=b.firstChild,g="";b=b.getAttribute("name");for(null!=b&&(g=b+".");null!=k;){if(k.nodeType==mxConstants.NODETYPE_ELEMENT&&(b=k.getAttribute("name"),null!=b)){var g=g.toLowerCase(),p=b.replace(/ /g,"_");e&&mxStencilRegistry.addStencil(g+p.toLowerCase(),new mxStencil(k));if(null!=c){var t=k.getAttribute("w"),
2518d=k.getAttribute("h"),t=null==t?80:parseInt(t,10),d=null==d?80:parseInt(d,10);c(g,p,b,t,d)}}k=k.nextSibling}}};
2519"undefined"!=typeof mxVertexHandler&&function(){function b(){var b=document.createElement("div");b.className="geHint";b.style.whiteSpace="nowrap";b.style.position="absolute";return b}function c(b,d){switch(d){case mxConstants.POINTS:return b;case mxConstants.MILLIMETERS:return(b/mxConstants.PIXELS_PER_MM).toFixed(1);case mxConstants.METERS:return(b/(1E3*mxConstants.PIXELS_PER_MM)).toFixed(4);case mxConstants.INCHES:return(b/mxConstants.PIXELS_PER_INCH).toFixed(2)}}mxConstants.HANDLE_FILLCOLOR="#29b6f2";
2520mxConstants.HANDLE_STROKECOLOR="#0088cf";mxConstants.VERTEX_SELECTION_COLOR="#00a8ff";mxConstants.OUTLINE_COLOR="#00a8ff";mxConstants.OUTLINE_HANDLE_FILLCOLOR="#99ccff";mxConstants.OUTLINE_HANDLE_STROKECOLOR="#00a8ff";mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff";mxConstants.EDGE_SELECTION_COLOR="#00a8ff";mxConstants.DEFAULT_VALID_COLOR="#00a8ff";mxConstants.LABEL_HANDLE_FILLCOLOR="#cee7ff";mxConstants.GUIDE_COLOR="#0088cf";mxConstants.HIGHLIGHT_OPACITY=30;mxConstants.HIGHLIGHT_SIZE=5;mxEdgeHandler.prototype.snapToTerminals=
2521!0;mxGraphHandler.prototype.guidesEnabled=!0;mxGraphHandler.prototype.removeEmptyParents=!0;mxRubberband.prototype.fadeOut=!0;mxGuide.prototype.isEnabledForEvent=function(b){return!mxEvent.isAltDown(b)};var e=mxGraphLayout.prototype.isVertexIgnored;mxGraphLayout.prototype.isVertexIgnored=function(b){return e.apply(this,arguments)||this.graph.isTableRow(b)||this.graph.isTableCell(b)};var k=mxGraphLayout.prototype.isEdgeIgnored;mxGraphLayout.prototype.isEdgeIgnored=function(b){return k.apply(this,arguments)||
2522this.graph.isEdgeIgnored(b)};var g=mxConnectionHandler.prototype.isCreateTarget;mxConnectionHandler.prototype.isCreateTarget=function(b){return this.graph.isCloneEvent(b)||g.apply(this,arguments)};mxConstraintHandler.prototype.createHighlightShape=function(){var b=new mxEllipse(null,this.highlightColor,this.highlightColor,0);b.opacity=mxConstants.HIGHLIGHT_OPACITY;return b};mxConnectionHandler.prototype.livePreview=!0;mxConnectionHandler.prototype.cursor="crosshair";mxConnectionHandler.prototype.createEdgeState=
2523function(b){b=this.graph.createCurrentEdgeStyle();b=this.graph.createEdge(null,null,null,null,null,b);b=new mxCellState(this.graph.view,b,this.graph.getCellStyle(b));for(var d in this.graph.currentEdgeStyle)b.style[d]=this.graph.currentEdgeStyle[d];b.style=this.graph.postProcessCellStyle(b.style);return b};var p=mxConnectionHandler.prototype.createShape;mxConnectionHandler.prototype.createShape=function(){var b=p.apply(this,arguments);b.isDashed="1"==this.graph.currentEdgeStyle[mxConstants.STYLE_DASHED];
2524return b};mxConnectionHandler.prototype.updatePreview=function(b){};var t=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var b=t.apply(this,arguments),d=b.getCell;b.getCell=mxUtils.bind(this,function(b){var f=d.apply(this,arguments);this.error=null;return f});return b};Graph.prototype.defaultVertexStyle={};Graph.prototype.defaultEdgeStyle={edgeStyle:"orthogonalEdgeStyle",rounded:"0",jettySize:"auto",orthogonalLoop:"1"};Graph.prototype.createCurrentEdgeStyle=
2525function(){for(var b="edgeStyle="+(this.currentEdgeStyle.edgeStyle||"none")+";",d="shape curved rounded comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification comicStyle jumpStyle jumpSize".split(" "),f=0;f<d.length;f++)null!=this.currentEdgeStyle[d[f]]&&(b+=d[f]+"="+this.currentEdgeStyle[d[f]]+";");null!=this.currentEdgeStyle.orthogonalLoop?b+="orthogonalLoop="+this.currentEdgeStyle.orthogonalLoop+";":null!=Graph.prototype.defaultEdgeStyle.orthogonalLoop&&
2526(b+="orthogonalLoop="+Graph.prototype.defaultEdgeStyle.orthogonalLoop+";");null!=this.currentEdgeStyle.jettySize?b+="jettySize="+this.currentEdgeStyle.jettySize+";":null!=Graph.prototype.defaultEdgeStyle.jettySize&&(b+="jettySize="+Graph.prototype.defaultEdgeStyle.jettySize+";");"elbowEdgeStyle"==this.currentEdgeStyle.edgeStyle&&null!=this.currentEdgeStyle.elbow&&(b+="elbow="+this.currentEdgeStyle.elbow+";");return b=null!=this.currentEdgeStyle.html?b+("html="+this.currentEdgeStyle.html+";"):b+"html=1;"};
2527Graph.prototype.updateCellStyles=function(b,d,f){this.model.beginUpdate();try{for(var c=0;c<f.length;c++)if(this.model.isVertex(f[c])||this.model.isEdge(f[c])){this.setCellStyles(b,null,[f[c]]);var e=this.getCellStyle(f[c])[b];d!=(null==e?mxConstants.NONE:e)&&this.setCellStyles(b,d,[f[c]])}}finally{this.model.endUpdate()}};Graph.prototype.getPagePadding=function(){return new mxPoint(0,0)};Graph.prototype.loadStylesheet=function(){var b=null!=this.themes?this.themes[this.defaultThemeName]:mxStyleRegistry.dynamicLoading?
2528mxUtils.load(STYLE_PATH+"/default.xml").getDocumentElement():null;null!=b&&(new mxCodec(b.ownerDocument)).decode(b,this.getStylesheet())};Graph.prototype.createCellLookup=function(b,d){d=null!=d?d:{};for(var f=0;f<b.length;f++){var c=b[f];d[mxObjectIdentity.get(c)]=c.getId();for(var e=this.model.getChildCount(c),g=0;g<e;g++)this.createCellLookup([this.model.getChildAt(c,g)],d)}return d};Graph.prototype.createCellMapping=function(b,d,f){f=null!=f?f:{};for(var c in b){var e=d[c];null==f[e]&&(f[e]=b[c].getId()||
2529"")}return f};Graph.prototype.importGraphModel=function(b,d,f,c){d=null!=d?d:0;f=null!=f?f:0;var e=new mxCodec(b.ownerDocument),g=new mxGraphModel;e.decode(b,g);b=[];var e={},l={},k=g.getChildren(this.cloneCell(g.root,this.isCloneInvalidEdges(),e));if(null!=k){var q=this.createCellLookup([g.root]),k=k.slice();this.model.beginUpdate();try{if(1!=k.length||this.isCellLocked(this.getDefaultParent()))for(g=0;g<k.length;g++)m=this.model.getChildren(this.moveCells([k[g]],d,f,!1,this.model.getRoot())[0]),
2530null!=m&&(b=b.concat(m));else{var m=g.getChildren(k[0]);null!=m&&(b=this.moveCells(m,d,f,!1,this.getDefaultParent()),l[g.getChildAt(g.root,0).getId()]=this.getDefaultParent().getId())}if(null!=b&&(this.createCellMapping(e,q,l),this.updateCustomLinks(l,b),c)){this.isGridEnabled()&&(d=this.snap(d),f=this.snap(f));var n=this.getBoundingBoxFromGeometry(b,!0);null!=n&&this.moveCells(b,d-n.x,f-n.y)}}finally{this.model.endUpdate()}}return b};Graph.prototype.encodeCells=function(b){for(var d={},f=this.cloneCells(b,
2531null,d),c=new mxDictionary,e=0;e<b.length;e++)c.put(b[e],!0);for(var g=new mxCodec,l=new mxGraphModel,k=l.getChildAt(l.getRoot(),0),e=0;e<f.length;e++){l.add(k,f[e]);var q=this.view.getState(b[e]);if(null!=q){var m=this.getCellGeometry(f[e]);null!=m&&m.relative&&!this.model.isEdge(b[e])&&null==c.get(this.model.getParent(b[e]))&&(m.offset=null,m.relative=!1,m.x=q.x/q.view.scale-q.view.translate.x,m.y=q.y/q.view.scale-q.view.translate.y)}}this.updateCustomLinks(this.createCellMapping(d,this.createCellLookup(b)),
2532f);return g.encode(l)};Graph.prototype.isSwimlane=function(b,d){if(null!=b&&this.model.getParent(b)!=this.model.getRoot()&&!this.model.isEdge(b)){var f=this.getCurrentCellStyle(b,d)[mxConstants.STYLE_SHAPE];return f==mxConstants.SHAPE_SWIMLANE||"table"==f}return!1};var d=Graph.prototype.isExtendParent;Graph.prototype.isExtendParent=function(b){var f=this.model.getParent(b);if(null!=f){var c=this.getCurrentCellStyle(f);if(null!=c.expand)return"0"!=c.expand}return d.apply(this,arguments)&&(null==f||
2533!this.isTable(f))};var f=Graph.prototype.splitEdge;Graph.prototype.splitEdge=function(b,d,c,e,g,l,k,q){null==q&&(q=this.model.getParent(b),this.isTable(q)||this.isTableRow(q))&&(q=this.getCellAt(l,k,null,!0,!1));c=null;this.model.beginUpdate();try{c=f.apply(this,[b,d,c,e,g,l,k,q]);this.model.setValue(c,"");var m=this.getChildCells(c,!0);for(d=0;d<m.length;d++){var n=this.getCellGeometry(m[d]);null!=n&&n.relative&&0<n.x&&this.model.remove(m[d])}var H=this.getChildCells(b,!0);for(d=0;d<H.length;d++)n=
2534this.getCellGeometry(H[d]),null!=n&&n.relative&&0>=n.x&&this.model.remove(H[d]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,null,[c]);this.setCellStyles(mxConstants.STYLE_ENDARROW,mxConstants.NONE,[c]);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,null,[b]);this.setCellStyles(mxConstants.STYLE_STARTARROW,mxConstants.NONE,[b]);var ca=this.model.getTerminal(c,!1);if(null!=ca){var v=this.getCurrentCellStyle(ca);null!=v&&"1"==v.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,
2535null,[b]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[b]),this.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[c]),this.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[c]))}}finally{this.model.endUpdate()}return c};var l=Graph.prototype.selectCell;Graph.prototype.selectCell=function(b,d,f){if(d||f)l.apply(this,arguments);else{var c=this.getSelectionCell(),e=null,g=[],k=mxUtils.bind(this,function(d){if(null!=this.view.getState(d)&&(this.model.isVertex(d)||this.model.isEdge(d)))if(g.push(d),d==c)e=
2536g.length-1;else if(b&&null==c&&0<g.length||null!=e&&b&&g.length>e||!b&&0<e)return;for(var f=0;f<this.model.getChildCount(d);f++)k(this.model.getChildAt(d,f))});k(this.model.root);0<g.length&&(e=null!=e?mxUtils.mod(e+(b?1:-1),g.length):0,this.setSelectionCell(g[e]))}};Graph.prototype.swapUmlLifelines=function(b,d){var f=!1;if(null!=d&&1==b.length){var c=this.view.getState(d),e=this.view.getState(b[0]);if(null!=c&&null!=e&&"umlLifeline"==c.style.shape&&"umlLifeline"==e.style.shape&&(e=this.getCellGeometry(d),
2537c=this.getCellGeometry(b[0]),null!=e&&null!=c)){f=e.clone();e=c.clone();e.x=f.x;e.y=f.y;f.x=c.x;f.y=c.y;this.model.beginUpdate();try{this.model.setGeometry(d,f),this.model.setGeometry(b[0],e)}finally{this.model.endUpdate()}f=!0}}return f};var q=Graph.prototype.moveCells;Graph.prototype.moveCells=function(b,d,f,c,e,g,l){if(!c&&this.swapUmlLifelines(b,e))return b;l=null!=l?l:{};if(this.isTable(e)){for(var k=[],m=0;m<b.length;m++)this.isTable(b[m])?k=k.concat(this.model.getChildCells(b[m],!0).reverse()):
2538k.push(b[m]);b=k}this.model.beginUpdate();try{k=[];for(m=0;m<b.length;m++)if(null!=e&&this.isTableRow(b[m])){var n=this.model.getParent(b[m]),H=this.getCellGeometry(b[m]);this.isTable(n)&&k.push(n);if(null!=n&&null!=H&&this.isTable(n)&&this.isTable(e)&&(c||n!=e)){if(!c){var v=this.getCellGeometry(n);null!=v&&(v=v.clone(),v.height-=H.height,this.model.setGeometry(n,v))}v=this.getCellGeometry(e);null!=v&&(v=v.clone(),v.height+=H.height,this.model.setGeometry(e,v));var ca=this.model.getChildCells(e,
2539!0);if(0<ca.length){b[m]=c?this.cloneCell(b[m]):b[m];var u=this.model.getChildCells(b[m],!0),A=this.model.getChildCells(ca[0],!0),p=A.length-u.length;if(0<p)for(var x=0;x<p;x++){var J=this.cloneCell(u[u.length-1]);null!=J&&(J.value="",this.model.add(b[m],J))}else if(0>p)for(x=0;x>p;x--)this.model.remove(u[u.length+x-1]);u=this.model.getChildCells(b[m],!0);for(x=0;x<A.length;x++){var t=this.getCellGeometry(A[x]),G=this.getCellGeometry(u[x]);null!=t&&null!=G&&(G=G.clone(),G.width=t.width,this.model.setGeometry(u[x],
2540G))}}}}for(var y=q.apply(this,arguments),m=0;m<k.length;m++)!c&&this.model.contains(k[m])&&0==this.model.getChildCount(k[m])&&this.model.remove(k[m]);c&&this.updateCustomLinks(this.createCellMapping(l,this.createCellLookup(b)),y)}finally{this.model.endUpdate()}return y};var m=Graph.prototype.removeCells;Graph.prototype.removeCells=function(b,d){var f=[];this.model.beginUpdate();try{for(var c=0;c<b.length;c++)if(this.isTableCell(b[c])){var e=this.model.getParent(b[c]),g=this.model.getParent(e);1==
2541this.model.getChildCount(e)&&1==this.model.getChildCount(g)?0>mxUtils.indexOf(b,g)&&0>mxUtils.indexOf(f,g)&&f.push(g):this.labelChanged(b[c],"")}else{if(this.isTableRow(b[c])&&(g=this.model.getParent(b[c]),0>mxUtils.indexOf(b,g)&&0>mxUtils.indexOf(f,g))){for(var l=this.model.getChildCells(g,!0),k=0,q=0;q<l.length;q++)0<=mxUtils.indexOf(b,l[q])&&k++;k==l.length&&f.push(g)}f.push(b[c])}f=m.apply(this,[f,d])}finally{this.model.endUpdate()}return f};Graph.prototype.updateCustomLinks=function(b,d,f){f=
2542null!=f?f:new Graph;for(var c=0;c<d.length;c++)null!=d[c]&&f.updateCustomLinksForCell(b,d[c],f)};Graph.prototype.updateCustomLinksForCell=function(b,d){this.doUpdateCustomLinksForCell(b,d);for(var f=this.model.getChildCount(d),c=0;c<f;c++)this.updateCustomLinksForCell(b,this.model.getChildAt(d,c))};Graph.prototype.doUpdateCustomLinksForCell=function(b,d){};Graph.prototype.getAllConnectionConstraints=function(b,d){if(null!=b){var f=mxUtils.getValue(b.style,"points",null);if(null!=f){var c=[];try{for(var e=
2543JSON.parse(f),f=0;f<e.length;f++){var g=e[f];c.push(new mxConnectionConstraint(new mxPoint(g[0],g[1]),2<g.length?"0"!=g[2]:!0,null,3<g.length?g[3]:0,4<g.length?g[4]:0))}}catch(xa){}return c}if(null!=b.shape&&null!=b.shape.bounds){g=b.shape.direction;e=b.shape.bounds;f=b.shape.scale;c=e.width/f;e=e.height/f;if(g==mxConstants.DIRECTION_NORTH||g==mxConstants.DIRECTION_SOUTH)g=c,c=e,e=g;f=b.shape.getConstraints(b.style,c,e);if(null!=f)return f;if(null!=b.shape.stencil&&null!=b.shape.stencil.constraints)return b.shape.stencil.constraints;
2544if(null!=b.shape.constraints)return b.shape.constraints}}return null};Graph.prototype.flipEdge=function(b){if(null!=b){var d=this.getCurrentCellStyle(b),d=mxUtils.getValue(d,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL;this.setCellStyles(mxConstants.STYLE_ELBOW,d,[b])}};Graph.prototype.isValidRoot=function(b){for(var d=this.model.getChildCount(b),f=0,c=0;c<d;c++){var e=this.model.getChildAt(b,c);this.model.isVertex(e)&&
2545(e=this.getCellGeometry(e),null==e||e.relative||f++)}return 0<f||this.isContainer(b)};Graph.prototype.isValidDropTarget=function(b,d,f){for(var c=this.getCurrentCellStyle(b),e=!0,g=!0,l=0;l<d.length&&g;l++)e=e&&this.isTable(d[l]),g=g&&this.isTableRow(d[l]);return("1"!=mxUtils.getValue(c,"part","0")||this.isContainer(b))&&"0"!=mxUtils.getValue(c,"dropTarget","1")&&(mxGraph.prototype.isValidDropTarget.apply(this,arguments)||this.isContainer(b))&&!this.isTableRow(b)&&(!this.isTable(b)||g||e)&&!this.isCellLocked(b)};
2546Graph.prototype.createGroupCell=function(){var b=mxGraph.prototype.createGroupCell.apply(this,arguments);b.setStyle("group");return b};Graph.prototype.isExtendParentsOnAdd=function(b){var d=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(d&&null!=b&&null!=this.layoutManager){var f=this.model.getParent(b);null!=f&&(f=this.layoutManager.getLayout(f),null!=f&&f.constructor==mxStackLayout&&(d=!1))}return d};Graph.prototype.getPreferredSizeForCell=function(b){var d=mxGraph.prototype.getPreferredSizeForCell.apply(this,
2547arguments);null!=d&&(d.width+=10,d.height+=4,this.gridEnabled&&(d.width=this.snap(d.width),d.height=this.snap(d.height)));return d};Graph.prototype.turnShapes=function(b,d){var f=this.getModel(),c=[];f.beginUpdate();try{for(var e=0;e<b.length;e++){var g=b[e];if(f.isEdge(g)){var l=f.getTerminal(g,!0),k=f.getTerminal(g,!1);f.setTerminal(g,k,!0);f.setTerminal(g,l,!1);var m=f.getGeometry(g);if(null!=m){m=m.clone();null!=m.points&&m.points.reverse();var q=m.getTerminalPoint(!0),n=m.getTerminalPoint(!1);
2548m.setTerminalPoint(q,!1);m.setTerminalPoint(n,!0);f.setGeometry(g,m);var H=this.view.getState(g),v=this.view.getState(l),u=this.view.getState(k);if(null!=H){var A=null!=v?this.getConnectionConstraint(H,v,!0):null,ca=null!=u?this.getConnectionConstraint(H,u,!1):null;this.setConnectionConstraint(g,l,!0,ca);this.setConnectionConstraint(g,k,!1,A);var p=mxUtils.getValue(H.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(H.style,
2549mxConstants.STYLE_TARGET_PERIMETER_SPACING),[g]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,p,[g])}c.push(g)}}else if(f.isVertex(g)&&(m=this.getCellGeometry(g),null!=m)){if(!(this.isTable(g)||this.isTableRow(g)||this.isTableCell(g)||this.isSwimlane(g))){m=m.clone();m.x+=m.width/2-m.height/2;m.y+=m.height/2-m.width/2;var x=m.width;m.width=m.height;m.height=x;f.setGeometry(g,m)}var J=this.view.getState(g);if(null!=J){var t=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,
2550mxConstants.DIRECTION_NORTH],G=mxUtils.getValue(J.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);this.setCellStyles(mxConstants.STYLE_DIRECTION,t[mxUtils.mod(mxUtils.indexOf(t,G)+(d?-1:1),t.length)],[g])}c.push(g)}}}finally{f.endUpdate()}return c};Graph.prototype.stencilHasPlaceholders=function(b){if(null!=b&&null!=b.fgNode)for(b=b.fgNode.firstChild;null!=b;){if("text"==b.nodeName&&"1"==b.getAttribute("placeholders"))return!0;b=b.nextSibling}return!1};var n=Graph.prototype.processChange;
2551Graph.prototype.processChange=function(b){if(b instanceof mxGeometryChange&&(this.isTableCell(b.cell)||this.isTableRow(b.cell))&&(null==b.previous&&null!=b.geometry||null!=b.previous&&!b.previous.equals(b.geometry))){var d=b.cell;this.isTableCell(d)&&(d=this.model.getParent(d));this.isTableRow(d)&&(d=this.model.getParent(d));var f=this.view.getState(d);null!=f&&null!=f.shape&&(this.view.invalidate(d),f.shape.bounds=null)}n.apply(this,arguments);b instanceof mxValueChange&&null!=b.cell&&null!=b.cell.value&&
2552"object"==typeof b.cell.value&&this.invalidateDescendantsWithPlaceholders(b.cell)};Graph.prototype.invalidateDescendantsWithPlaceholders=function(b){b=this.model.getDescendants(b);if(0<b.length)for(var d=0;d<b.length;d++){var f=this.view.getState(b[d]);null!=f&&null!=f.shape&&null!=f.shape.stencil&&this.stencilHasPlaceholders(f.shape.stencil)?this.removeStateForCell(b[d]):this.isReplacePlaceholders(b[d])&&this.view.invalidate(b[d],!1,!1)}};Graph.prototype.replaceElement=function(b,d){for(var f=b.ownerDocument.createElement(null!=
2553d?d:"span"),c=Array.prototype.slice.call(b.attributes);attr=c.pop();)f.setAttribute(attr.nodeName,attr.nodeValue);f.innerHTML=b.innerHTML;b.parentNode.replaceChild(f,b)};Graph.prototype.processElements=function(b,d){if(null!=b)for(var f=b.getElementsByTagName("*"),c=0;c<f.length;c++)d(f[c])};Graph.prototype.updateLabelElements=function(b,d,f){b=null!=b?b:this.getSelectionCells();for(var c=document.createElement("div"),e=0;e<b.length;e++)if(this.isHtmlLabel(b[e])){var g=this.convertValueToString(b[e]);
2554if(null!=g&&0<g.length){c.innerHTML=g;for(var l=c.getElementsByTagName(null!=f?f:"*"),k=0;k<l.length;k++)d(l[k]);c.innerHTML!=g&&this.cellLabelChanged(b[e],c.innerHTML)}}};Graph.prototype.cellLabelChanged=function(b,d,f){d=Graph.zapGremlins(d);this.model.beginUpdate();try{if(null!=b.value&&"object"==typeof b.value){if(this.isReplacePlaceholders(b)&&null!=b.getAttribute("placeholder"))for(var c=b.getAttribute("placeholder"),e=b;null!=e;){if(e==this.model.getRoot()||null!=e.value&&"object"==typeof e.value&&
2555e.hasAttribute(c)){this.setAttributeForCell(e,c,d);break}e=this.model.getParent(e)}var g=b.value.cloneNode(!0);Graph.translateDiagram&&null!=Graph.diagramLanguage&&g.hasAttribute("label_"+Graph.diagramLanguage)?g.setAttribute("label_"+Graph.diagramLanguage,d):g.setAttribute("label",d);d=g}mxGraph.prototype.cellLabelChanged.apply(this,arguments)}finally{this.model.endUpdate()}};Graph.prototype.cellsRemoved=function(b){if(null!=b){for(var d=new mxDictionary,f=0;f<b.length;f++)d.put(b[f],!0);for(var c=
2556[],f=0;f<b.length;f++){var e=this.model.getParent(b[f]);null==e||d.get(e)||(d.put(e,!0),c.push(e))}for(f=0;f<c.length;f++)if(e=this.view.getState(c[f]),null!=e&&(this.model.isEdge(e.cell)||this.model.isVertex(e.cell))&&this.isCellDeletable(e.cell)&&this.isTransparentState(e)){for(var g=!0,l=0;l<this.model.getChildCount(e.cell)&&g;l++)d.get(this.model.getChildAt(e.cell,l))||(g=!1);g&&b.push(e.cell)}}mxGraph.prototype.cellsRemoved.apply(this,arguments)};Graph.prototype.removeCellsAfterUngroup=function(b){for(var d=
2557[],f=0;f<b.length;f++)this.isCellDeletable(b[f])&&this.isTransparentState(this.view.getState(b[f]))&&d.push(b[f]);b=d;mxGraph.prototype.removeCellsAfterUngroup.apply(this,arguments)};Graph.prototype.setLinkForCell=function(b,d){this.setAttributeForCell(b,"link",d)};Graph.prototype.setTooltipForCell=function(b,d){var f="tooltip";Graph.translateDiagram&&null!=Graph.diagramLanguage&&mxUtils.isNode(b.value)&&b.value.hasAttribute("tooltip_"+Graph.diagramLanguage)&&(f="tooltip_"+Graph.diagramLanguage);
2558this.setAttributeForCell(b,f,d)};Graph.prototype.getAttributeForCell=function(b,d,f){b=null!=b.value&&"object"===typeof b.value?b.value.getAttribute(d):null;return null!=b?b:f};Graph.prototype.setAttributeForCell=function(b,d,f){var c;null!=b.value&&"object"==typeof b.value?c=b.value.cloneNode(!0):(c=mxUtils.createXmlDocument().createElement("UserObject"),c.setAttribute("label",b.value||""));null!=f?c.setAttribute(d,f):c.removeAttribute(d);this.model.setValue(b,c)};var u=Graph.prototype.getDropTarget;
2559Graph.prototype.getDropTarget=function(b,d,f,c){this.getModel();if(mxEvent.isAltDown(d))return null;for(var e=0;e<b.length;e++){var g=this.model.getParent(b[e]);if(this.model.isEdge(g)&&0>mxUtils.indexOf(b,g))return null}for(var g=u.apply(this,arguments),l=!0,e=0;e<b.length&&l;e++)l=l&&this.isTableRow(b[e]);l&&(this.isTableCell(g)&&(g=this.model.getParent(g)),this.isTableRow(g)&&(g=this.model.getParent(g)),this.isTable(g)||(g=null));return g};Graph.prototype.click=function(b){mxGraph.prototype.click.call(this,
2560b);this.firstClickState=b.getState();this.firstClickSource=b.getSource()};Graph.prototype.dblClick=function(b,d){this.isEnabled()&&(d=this.insertTextForEvent(b,d),mxGraph.prototype.dblClick.call(this,b,d))};Graph.prototype.insertTextForEvent=function(b,d){var f=mxUtils.convertPoint(this.container,mxEvent.getClientX(b),mxEvent.getClientY(b));if(null!=b&&!this.model.isVertex(d)){var c=this.model.isEdge(d)?this.view.getState(d):null,e=mxEvent.getSource(b);this.firstClickState!=c||this.firstClickSource!=
2561e||null!=c&&null!=c.text&&null!=c.text.node&&null!=c.text.boundingBox&&(mxUtils.contains(c.text.boundingBox,f.x,f.y)||mxUtils.isAncestorNode(c.text.node,mxEvent.getSource(b)))||(null!=c||this.isCellLocked(this.getDefaultParent()))&&(null==c||this.isCellLocked(c.cell))||!(null!=c||mxClient.IS_SVG&&e==this.view.getCanvas().ownerSVGElement)||(null==c&&(c=this.view.getState(this.getCellAt(f.x,f.y))),d=this.addText(f.x,f.y,c))}return d};Graph.prototype.getInsertPoint=function(){var b=this.getGridSize(),
2562d=this.container.scrollLeft/this.view.scale-this.view.translate.x,f=this.container.scrollTop/this.view.scale-this.view.translate.y;if(this.pageVisible)var c=this.getPageLayout(),e=this.getPageSize(),d=Math.max(d,c.x*e.width),f=Math.max(f,c.y*e.height);return new mxPoint(this.snap(d+b),this.snap(f+b))};Graph.prototype.getFreeInsertPoint=function(){var b=this.view,d=this.getGraphBounds(),f=this.getInsertPoint(),c=this.snap(Math.round(Math.max(f.x,d.x/b.scale-b.translate.x+(0==d.width?2*this.gridSize:
25630)))),b=this.snap(Math.round(Math.max(f.y,(d.y+d.height)/b.scale-b.translate.y+2*this.gridSize)));return new mxPoint(c,b)};Graph.prototype.getCenterInsertPoint=function(b){b=null!=b?b:new mxRectangle;return mxUtils.hasScrollbars(this.container)?new mxPoint(this.snap(Math.round((this.container.scrollLeft+this.container.clientWidth/2)/this.view.scale-this.view.translate.x-b.width/2)),this.snap(Math.round((this.container.scrollTop+this.container.clientHeight/2)/this.view.scale-this.view.translate.y-
2564b.height/2))):new mxPoint(this.snap(Math.round(this.container.clientWidth/2/this.view.scale-this.view.translate.x-b.width/2)),this.snap(Math.round(this.container.clientHeight/2/this.view.scale-this.view.translate.y-b.height/2)))};Graph.prototype.isMouseInsertPoint=function(){return!1};Graph.prototype.addText=function(b,d,f){var c=new mxCell;c.value="Text";c.geometry=new mxGeometry(0,0,0,0);c.vertex=!0;if(null!=f&&this.model.isEdge(f.cell)){c.style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];";
2565c.geometry.relative=!0;c.connectable=!1;var e=this.view.getRelativePoint(f,b,d);c.geometry.x=Math.round(1E4*e.x)/1E4;c.geometry.y=Math.round(e.y);c.geometry.offset=new mxPoint(0,0);var e=this.view.getPoint(f,c.geometry),g=this.view.scale;c.geometry.offset=new mxPoint(Math.round((b-e.x)/g),Math.round((d-e.y)/g))}else e=this.view.translate,c.style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];",c.geometry.width=40,c.geometry.height=20,c.geometry.x=Math.round(b/this.view.scale)-
2566e.x-(null!=f?f.origin.x:0),c.geometry.y=Math.round(d/this.view.scale)-e.y-(null!=f?f.origin.y:0),c.style+="autosize=1;";this.getModel().beginUpdate();try{this.addCells([c],null!=f?f.cell:null),this.fireEvent(new mxEventObject("textInserted","cells",[c])),this.autoSizeCell(c)}finally{this.getModel().endUpdate()}return c};Graph.prototype.addClickHandler=function(b,d,f){var c=mxUtils.bind(this,function(){var b=this.container.getElementsByTagName("a");if(null!=b)for(var f=0;f<b.length;f++){var c=this.getAbsoluteUrl(b[f].getAttribute("href"));
2567null!=c&&(b[f].setAttribute("rel",this.linkRelation),b[f].setAttribute("href",c),null!=d&&mxEvent.addGestureListeners(b[f],null,null,d))}});this.model.addListener(mxEvent.CHANGE,c);c();var e=this.container.style.cursor,g=this.getTolerance(),l=this,k={currentState:null,currentLink:null,currentTarget:null,highlight:null!=b&&""!=b&&b!=mxConstants.NONE?new mxCellHighlight(l,b,4):null,startX:0,startY:0,scrollLeft:0,scrollTop:0,updateCurrentState:function(b){var d=b.sourceState;if(null==d||null==l.getLinkForCell(d.cell))b=
2568l.getCellAt(b.getGraphX(),b.getGraphY(),null,null,null,function(b,d,f){return null==l.getLinkForCell(b.cell)}),d=null==d||l.model.isAncestor(b,d.cell)?l.view.getState(b):null;d!=this.currentState&&(null!=this.currentState&&this.clear(),this.currentState=d,null!=this.currentState&&this.activate(this.currentState))},mouseDown:function(b,d){this.startX=d.getGraphX();this.startY=d.getGraphY();this.scrollLeft=l.container.scrollLeft;this.scrollTop=l.container.scrollTop;null==this.currentLink&&"auto"==l.container.style.overflow&&
2569(l.container.style.cursor="move");this.updateCurrentState(d)},mouseMove:function(b,d){if(l.isMouseDown){if(null!=this.currentLink){var f=Math.abs(this.startX-d.getGraphX()),c=Math.abs(this.startY-d.getGraphY());(f>g||c>g)&&this.clear()}}else{for(f=d.getSource();null!=f&&"a"!=f.nodeName.toLowerCase();)f=f.parentNode;null!=f?this.clear():(null!=l.tooltipHandler&&null!=this.currentLink&&null!=this.currentState&&l.tooltipHandler.reset(d,!0,this.currentState),(null==this.currentState||d.getState()!=this.currentState&&
2570null!=d.sourceState||!l.intersects(this.currentState,d.getGraphX(),d.getGraphY()))&&this.updateCurrentState(d))}},mouseUp:function(b,c){for(var e=c.getSource(),k=c.getEvent();null!=e&&"a"!=e.nodeName.toLowerCase();)e=e.parentNode;null==e&&Math.abs(this.scrollLeft-l.container.scrollLeft)<g&&Math.abs(this.scrollTop-l.container.scrollTop)<g&&(null==c.sourceState||!c.isSource(c.sourceState.control))&&((mxEvent.isLeftMouseButton(k)||mxEvent.isMiddleMouseButton(k))&&!mxEvent.isPopupTrigger(k)||mxEvent.isTouchEvent(k))&&
2571(null!=this.currentLink?(e=l.isBlankLink(this.currentLink),"data:"!==this.currentLink.substring(0,5)&&e||null==d||d(k,this.currentLink),mxEvent.isConsumed(k)||(k=null!=this.currentTarget?this.currentTarget:mxEvent.isMiddleMouseButton(k)?"_blank":e?l.linkTarget:"_top",l.openLink(this.currentLink,k),c.consume())):null!=f&&!c.isConsumed()&&Math.abs(this.scrollLeft-l.container.scrollLeft)<g&&Math.abs(this.scrollTop-l.container.scrollTop)<g&&Math.abs(this.startX-c.getGraphX())<g&&Math.abs(this.startY-
2572c.getGraphY())<g&&f(c.getEvent()));this.clear()},activate:function(b){this.currentLink=l.getAbsoluteUrl(l.getLinkForCell(b.cell));null!=this.currentLink&&(this.currentTarget=l.getLinkTargetForCell(b.cell),l.container.style.cursor="pointer",null!=this.highlight&&this.highlight.highlight(b))},clear:function(){null!=l.container&&(l.container.style.cursor=e);this.currentLink=this.currentState=this.currentTarget=null;null!=this.highlight&&this.highlight.hide();null!=l.tooltipHandler&&l.tooltipHandler.hide()}};
2573l.click=function(b){};l.addMouseListener(k);mxEvent.addListener(document,"mouseleave",function(b){k.clear()})};Graph.prototype.duplicateCells=function(b,d){b=null!=b?b:this.getSelectionCells();d=null!=d?d:!0;for(var f=0;f<b.length;f++)this.isTableCell(b[f])&&(b[f]=this.model.getParent(b[f]));b=this.model.getTopmostCells(b);var c=this.getModel(),e=this.gridSize,g=[];c.beginUpdate();try{for(var l={},k=this.createCellLookup(b),m=this.cloneCells(b,!1,l,!0),f=0;f<b.length;f++){var q=c.getParent(b[f]);
2574if(null!=q){var n=this.moveCells([m[f]],e,e,!1)[0];g.push(n);if(d)c.add(q,m[f]);else{var H=q.getIndex(b[f]);c.add(q,m[f],H+1)}if(this.isTable(q)){var v=this.getCellGeometry(m[f]),u=this.getCellGeometry(q);null!=v&&null!=u&&(u=u.clone(),u.height+=v.height,c.setGeometry(q,u))}}else g.push(m[f])}this.updateCustomLinks(this.createCellMapping(l,k),m,this);this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",m))}finally{c.endUpdate()}return g};Graph.prototype.insertImage=function(b,d,f){if(null!=
2575b&&null!=this.cellEditor.textarea){for(var c=this.cellEditor.textarea.getElementsByTagName("img"),e=[],g=0;g<c.length;g++)e.push(c[g]);document.execCommand("insertimage",!1,b);b=this.cellEditor.textarea.getElementsByTagName("img");if(b.length==e.length+1)for(g=b.length-1;0<=g;g--)if(0==g||b[g]!=e[g-1]){b[g].setAttribute("width",d);b[g].setAttribute("height",f);break}}};Graph.prototype.insertLink=function(b){if(null!=this.cellEditor.textarea)if(0==b.length)document.execCommand("unlink",!1);else if(mxClient.IS_FF){for(var d=
2576this.cellEditor.textarea.getElementsByTagName("a"),f=[],c=0;c<d.length;c++)f.push(d[c]);document.execCommand("createlink",!1,mxUtils.trim(b));d=this.cellEditor.textarea.getElementsByTagName("a");if(d.length==f.length+1)for(c=d.length-1;0<=c;c--)if(d[c]!=f[c-1]){for(d=d[c].getElementsByTagName("a");0<d.length;){for(f=d[0].parentNode;null!=d[0].firstChild;)f.insertBefore(d[0].firstChild,d[0]);f.removeChild(d[0])}break}}else document.execCommand("createlink",!1,mxUtils.trim(b))};Graph.prototype.isCellResizable=
2577function(b){var d=mxGraph.prototype.isCellResizable.apply(this,arguments),f=this.getCurrentCellStyle(b);return!this.isTableCell(b)&&!this.isTableRow(b)&&(d||"0"!=mxUtils.getValue(f,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==f[mxConstants.STYLE_WHITE_SPACE])};Graph.prototype.distributeCells=function(b,d){null==d&&(d=this.getSelectionCells());if(null!=d&&1<d.length){for(var f=[],c=null,e=null,g=0;g<d.length;g++)if(this.getModel().isVertex(d[g])){var l=this.view.getState(d[g]);if(null!=l){var k=b?l.getCenterX():
2578l.getCenterY(),c=null!=c?Math.max(c,k):k,e=null!=e?Math.min(e,k):k;f.push(l)}}if(2<f.length){f.sort(function(d,f){return b?d.x-f.x:d.y-f.y});l=this.view.translate;k=this.view.scale;e=e/k-(b?l.x:l.y);c=c/k-(b?l.x:l.y);this.getModel().beginUpdate();try{for(var m=(c-e)/(f.length-1),c=e,g=1;g<f.length-1;g++){var q=this.view.getState(this.model.getParent(f[g].cell)),n=this.getCellGeometry(f[g].cell),c=c+m;null!=n&&null!=q&&(n=n.clone(),b?n.x=Math.round(c-n.width/2)-q.origin.x:n.y=Math.round(c-n.height/
25792)-q.origin.y,this.getModel().setGeometry(f[g].cell,n))}}finally{this.getModel().endUpdate()}}}return d};Graph.prototype.isCloneEvent=function(b){return mxClient.IS_MAC&&mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)};Graph.prototype.createSvgImageExport=function(){var b=new mxImageExport;b.getLinkForCellState=mxUtils.bind(this,function(b,d){return this.getLinkForCell(b.cell)});return b};Graph.prototype.parseBackgroundImage=function(b){var d=null;null!=b&&0<b.length&&(b=JSON.parse(b),d=new mxImage(b.src,
2580b.width,b.height));return d};Graph.prototype.getBackgroundImageObject=function(b){return b};Graph.prototype.getSvg=function(b,d,f,c,e,g,l,k,m,q,n,H,v,u){var A=null;if(null!=u)for(A=new mxDictionary,n=0;n<u.length;n++)A.put(u[n],!0);if(u=this.useCssTransforms)this.useCssTransforms=!1,this.view.revalidate(),this.sizeDidChange();try{d=null!=d?d:1;f=null!=f?f:0;e=null!=e?e:!0;g=null!=g?g:!0;l=null!=l?l:!0;q=null!=q?q:!1;var p="page"==v?this.view.getBackgroundPageBounds():g&&null==A||c||"diagram"==v?this.getGraphBounds():
2581this.getBoundingBox(this.getSelectionCells()),x=this.view.scale;"diagram"==v&&null!=this.backgroundImage&&(p=mxRectangle.fromRectangle(p),p.add(new mxRectangle((this.view.translate.x+this.backgroundImage.x)*x,(this.view.translate.y+this.backgroundImage.y)*x,this.backgroundImage.width*x,this.backgroundImage.height*x)));if(null==p)throw Error(mxResources.get("drawingEmpty"));var J=mxUtils.createXmlDocument(),t=null!=J.createElementNS?J.createElementNS(mxConstants.NS_SVG,"svg"):J.createElement("svg");
2582null!=b&&(null!=t.style?t.style.backgroundColor=b:t.setAttribute("style","background-color:"+b));null==J.createElementNS?(t.setAttribute("xmlns",mxConstants.NS_SVG),t.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):t.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);b=d/x;var G=Math.max(1,Math.ceil(p.width*b)+2*f)+(q&&0==f?5:0),y=Math.max(1,Math.ceil(p.height*b)+2*f)+(q&&0==f?5:0);t.setAttribute("version","1.1");t.setAttribute("width",G+"px");t.setAttribute("height",
2583y+"px");t.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+G+" "+y);J.appendChild(t);var B=null!=J.createElementNS?J.createElementNS(mxConstants.NS_SVG,"g"):J.createElement("g");t.appendChild(B);var C=this.createSvgCanvas(B);C.foOffset=e?-.5:0;C.textOffset=e?-.5:0;C.imageOffset=e?-.5:0;C.translate(Math.floor(f/d-p.x/x),Math.floor(f/d-p.y/x));var ca=document.createElement("div"),Z=C.getAlternateText;C.getAlternateText=function(b,d,f,c,e,g,l,k,m,q,n,H,z){if(null!=g&&0<this.state.fontSize)try{mxUtils.isNode(g)?
2584g=g.innerText:(ca.innerHTML=g,g=mxUtils.extractTextWithWhitespace(ca.childNodes));for(var da=Math.ceil(2*c/this.state.fontSize),Ta=[],sa=0,ya=0;(0==da||sa<da)&&ya<g.length;){var Va=g.charCodeAt(ya);if(10==Va||13==Va){if(0<sa)break}else Ta.push(g.charAt(ya)),255>Va&&sa++;ya++}Ta.length<g.length&&1<g.length-Ta.length&&(g=mxUtils.trim(Ta.join(""))+"...");return g}catch(gb){return Z.apply(this,arguments)}else return Z.apply(this,arguments)};var N=this.backgroundImage;if(null!=N){d=x/d;var aa=this.view.translate,
2585F=new mxRectangle((N.x+aa.x)*d,(N.y+aa.y)*d,N.width*d,N.height*d);mxUtils.intersects(p,F)&&C.image(N.x+aa.x,N.y+aa.y,N.width,N.height,N.src,!0)}C.scale(b);C.textEnabled=l;k=null!=k?k:this.createSvgImageExport();var ua=k.drawCellState,W=k.getLinkForCellState;k.getLinkForCellState=function(b,d){var f=W.apply(this,arguments);return null==f||b.view.graph.isCustomLink(f)?null:f};k.getLinkTargetForCellState=function(b,d){return b.view.graph.getLinkTargetForCell(b.cell)};k.drawCellState=function(b,d){for(var f=
2586b.view.graph,c=null!=A?A.get(b.cell):f.isCellSelected(b.cell),e=f.model.getParent(b.cell);!(g&&null==A||c)&&null!=e;)c=null!=A?A.get(e):f.isCellSelected(e),e=f.model.getParent(e);(g&&null==A||c)&&ua.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),C);this.updateSvgLinks(t,m,!0);this.addForeignObjectWarning(C,t);return t}finally{u&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};Graph.prototype.addForeignObjectWarning=function(b,d){if("0"!=urlParams["svg-warning"]&&
25870<d.getElementsByTagName("foreignObject").length){var f=b.createElement("switch"),c=b.createElement("g");c.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility");var e=b.createElement("a");e.setAttribute("transform","translate(0,-5)");null==e.setAttributeNS||d.ownerDocument!=document&&null==document.documentMode?(e.setAttribute("xlink:href",Graph.foreignObjectWarningLink),e.setAttribute("target","_blank")):(e.setAttributeNS(mxConstants.NS_XLINK,"xlink:href",Graph.foreignObjectWarningLink),
2588e.setAttributeNS(mxConstants.NS_XLINK,"target","_blank"));var g=b.createElement("text");g.setAttribute("text-anchor","middle");g.setAttribute("font-size","10px");g.setAttribute("x","50%");g.setAttribute("y","100%");mxUtils.write(g,Graph.foreignObjectWarningText);f.appendChild(c);e.appendChild(g);f.appendChild(e);d.appendChild(f)}};Graph.prototype.updateSvgLinks=function(b,d,f){b=b.getElementsByTagName("a");for(var c=0;c<b.length;c++)if(null==b[c].getAttribute("target")){var e=b[c].getAttribute("href");
2589null==e&&(e=b[c].getAttribute("xlink:href"));null!=e&&(null!=d&&/^https?:\/\//.test(e)?b[c].setAttribute("target",d):f&&this.isCustomLink(e)&&b[c].setAttribute("href","javascript:void(0);"))}};Graph.prototype.createSvgCanvas=function(b){b=new mxSvgCanvas2D(b);b.pointerEvents=!0;return b};Graph.prototype.getSelectedElement=function(){var b=null;if(window.getSelection){var d=window.getSelection();d.getRangeAt&&d.rangeCount&&(b=d.getRangeAt(0).commonAncestorContainer)}else document.selection&&(b=document.selection.createRange().parentElement());
2590return b};Graph.prototype.getSelectedEditingElement=function(){for(var b=this.getSelectedElement();null!=b&&b.nodeType!=mxConstants.NODETYPE_ELEMENT;)b=b.parentNode;null!=b&&b==this.cellEditor.textarea&&1==this.cellEditor.textarea.children.length&&this.cellEditor.textarea.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT&&(b=this.cellEditor.textarea.firstChild);return b};Graph.prototype.getParentByName=function(b,d,f){for(;null!=b&&b.nodeName!=d;){if(b==f)return null;b=b.parentNode}return b};Graph.prototype.getParentByNames=
2591function(b,d,f){for(;null!=b&&!(0<=mxUtils.indexOf(d,b.nodeName));){if(b==f)return null;b=b.parentNode}return b};Graph.prototype.selectNode=function(b){var d=null;if(window.getSelection){if(d=window.getSelection(),d.getRangeAt&&d.rangeCount){var f=document.createRange();f.selectNode(b);d.removeAllRanges();d.addRange(f)}}else(d=document.selection)&&"Control"!=d.type&&(b=d.createRange(),b.collapse(!0),f=d.createRange(),f.setEndPoint("StartToStart",b),f.select())};Graph.prototype.deleteCells=function(b,
2592d){var f=null;if(null!=b&&0<b.length){this.model.beginUpdate();try{for(var c=0;c<b.length;c++){var e=this.model.getParent(b[c]);if(this.isTable(e)){var g=this.getCellGeometry(b[c]),l=this.getCellGeometry(e);null!=g&&null!=l&&(l=l.clone(),l.height-=g.height,this.model.setGeometry(e,l))}}var k=this.selectParentAfterDelete?this.model.getParents(b):null;this.removeCells(b,d)}finally{this.model.endUpdate()}if(null!=k)for(f=[],c=0;c<k.length;c++)this.model.contains(k[c])&&(this.model.isVertex(k[c])||this.model.isEdge(k[c]))&&
2593f.push(k[c])}return f};Graph.prototype.insertTableColumn=function(b,d){var f=this.getModel();f.beginUpdate();try{var c=b,e=0;if(this.isTableCell(b))var g=f.getParent(b),c=f.getParent(g),e=mxUtils.indexOf(f.getChildCells(g,!0),b);else this.isTableRow(b)?c=f.getParent(b):b=f.getChildCells(c,!0)[0],d||(e=f.getChildCells(b,!0).length-1);for(var l=f.getChildCells(c,!0),k=Graph.minTableColumnWidth,g=0;g<l.length;g++){var m=f.getChildCells(l[g],!0)[e],q=f.cloneCell(m,!1),n=this.getCellGeometry(q);q.value=
2594null;if(null!=n){var k=n.width,H=this.getCellGeometry(l[g]);null!=H&&(n.height=H.height)}f.add(l[g],q,e+(d?0:1))}var v=this.getCellGeometry(c);null!=v&&(v=v.clone(),v.width+=k,f.setGeometry(c,v))}finally{f.endUpdate()}};Graph.prototype.deleteLane=function(b){var d=this.getModel();d.beginUpdate();try{var f=null,f="stackLayout"==this.getCurrentCellStyle(b).childLayout?b:d.getParent(b),c=d.getChildCells(f,!0);0==c.length?d.remove(f):(f==b&&(b=c[c.length-1]),d.remove(b))}finally{d.endUpdate()}};Graph.prototype.insertLane=
2595function(b,d){var f=this.getModel();f.beginUpdate();try{var c=null,e=b;if("stackLayout"==this.getCurrentCellStyle(e).childLayout)var c=e,g=f.getChildCells(c,!0),e=g[d?0:g.length-1];else c=f.getParent(e);var l=c.getIndex(e),e=f.cloneCell(e,!1);e.value=null;f.add(c,e,l+(d?0:1))}finally{f.endUpdate()}};Graph.prototype.insertTableRow=function(b,d){var f=this.getModel();f.beginUpdate();try{var c=b,e=b;if(this.isTableCell(b))e=f.getParent(b),c=f.getParent(e);else if(this.isTableRow(b))c=f.getParent(b);
2596else var g=f.getChildCells(c,!0),e=g[d?0:g.length-1];var l=f.getChildCells(e,!0),k=c.getIndex(e),e=f.cloneCell(e,!1);e.value=null;var m=this.getCellGeometry(e);if(null!=m){for(g=0;g<l.length;g++){b=f.cloneCell(l[g],!1);e.insert(b);b.value=null;var q=this.getCellGeometry(b);null!=q&&(q.height=m.height)}f.add(c,e,k+(d?0:1));var n=this.getCellGeometry(c);null!=n&&(n=n.clone(),n.height+=m.height,f.setGeometry(c,n))}}finally{f.endUpdate()}};Graph.prototype.deleteTableColumn=function(b){var d=this.getModel();
2597d.beginUpdate();try{var f=b,c=b;this.isTableCell(b)&&(c=d.getParent(b));this.isTableRow(c)&&(f=d.getParent(c));var e=d.getChildCells(f,!0);if(0==e.length)d.remove(f);else{this.isTableRow(c)||(c=e[0]);var g=d.getChildCells(c,!0);if(1>=g.length)d.remove(f);else{var l=g.length-1;this.isTableCell(b)&&(l=mxUtils.indexOf(g,b));for(c=b=0;c<e.length;c++){var k=d.getChildCells(e[c],!0)[l];d.remove(k);var m=this.getCellGeometry(k);null!=m&&(b=Math.max(b,m.width))}var q=this.getCellGeometry(f);null!=q&&(q=q.clone(),
2598q.width-=b,d.setGeometry(f,q))}}}finally{d.endUpdate()}};Graph.prototype.deleteTableRow=function(b){var d=this.getModel();d.beginUpdate();try{var f=b,c=b;this.isTableCell(b)&&(b=c=d.getParent(b));this.isTableRow(b)&&(f=d.getParent(c));var e=d.getChildCells(f,!0);if(1>=e.length)d.remove(f);else{this.isTableRow(c)||(c=e[e.length-1]);d.remove(c);b=0;var g=this.getCellGeometry(c);null!=g&&(b=g.height);var l=this.getCellGeometry(f);null!=l&&(l=l.clone(),l.height-=b,d.setGeometry(f,l))}}finally{d.endUpdate()}};
2599Graph.prototype.insertRow=function(b,d){for(var f=b.tBodies[0],c=f.rows[0].cells,e=0,g=0;g<c.length;g++)var l=c[g].getAttribute("colspan"),e=e+(null!=l?parseInt(l):1);f=f.insertRow(d);for(g=0;g<e;g++)mxUtils.br(f.insertCell(-1));return f.cells[0]};Graph.prototype.deleteRow=function(b,d){b.tBodies[0].deleteRow(d)};Graph.prototype.insertColumn=function(b,d){var f=b.tHead;if(null!=f)for(var c=0;c<f.rows.length;c++){var e=document.createElement("th");f.rows[c].appendChild(e);mxUtils.br(e)}f=b.tBodies[0];
2600for(c=0;c<f.rows.length;c++)e=f.rows[c].insertCell(d),mxUtils.br(e);return f.rows[0].cells[0<=d?d:f.rows[0].cells.length-1]};Graph.prototype.deleteColumn=function(b,d){if(0<=d)for(var f=b.tBodies[0].rows,c=0;c<f.length;c++)f[c].cells.length>d&&f[c].deleteCell(d)};Graph.prototype.pasteHtmlAtCaret=function(b){var d;if(window.getSelection){if(d=window.getSelection(),d.getRangeAt&&d.rangeCount){d=d.getRangeAt(0);d.deleteContents();var f=document.createElement("div");f.innerHTML=b;b=document.createDocumentFragment();
2601for(var c;c=f.firstChild;)lastNode=b.appendChild(c);d.insertNode(b)}}else(d=document.selection)&&"Control"!=d.type&&d.createRange().pasteHTML(b)};Graph.prototype.createLinkForHint=function(b,d){function f(b,d){b.length>d&&(b=b.substring(0,Math.round(d/2))+"..."+b.substring(b.length-Math.round(d/4)));return b}b=null!=b?b:"javascript:void(0);";if(null==d||0==d.length)d=this.isCustomLink(b)?this.getLinkTitle(b):b;var c=document.createElement("a");c.setAttribute("rel",this.linkRelation);c.setAttribute("href",
2602this.getAbsoluteUrl(b));c.setAttribute("title",f(this.isCustomLink(b)?this.getLinkTitle(b):b,80));null!=this.linkTarget&&c.setAttribute("target",this.linkTarget);mxUtils.write(c,f(d,40));this.isCustomLink(b)&&mxEvent.addListener(c,"click",mxUtils.bind(this,function(d){this.customLinkClicked(b);mxEvent.consume(d)}));return c};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first};this.addListener(mxEvent.START_EDITING,
2603function(b,d){this.popupMenuHandler.hideMenu()});var b=this.updateMouseEvent;this.updateMouseEvent=function(d){d=b.apply(this,arguments);if(mxEvent.isTouchEvent(d.getEvent())&&null==d.getState()){var f=this.getCellAt(d.graphX,d.graphY);null!=f&&this.isSwimlane(f)&&this.hitsSwimlaneContent(f,d.graphX,d.graphY)||(d.state=this.view.getState(f),null!=d.state&&null!=d.state.shape&&(this.container.style.cursor=d.state.shape.node.style.cursor))}null==d.getState()&&this.isEnabled()&&(this.container.style.cursor=
2604"default");return d};var d=!1,f=!1,c=!1,e=this.fireMouseEvent;this.fireMouseEvent=function(b,g,l){b==mxEvent.MOUSE_DOWN&&(g=this.updateMouseEvent(g),d=this.isCellSelected(g.getCell()),f=this.isSelectionEmpty(),c=this.popupMenuHandler.isMenuShowing());e.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(b,e){var g=mxEvent.isMouseEvent(e.getEvent());this.popupMenuHandler.popupTrigger=!this.isEditing()&&this.isEnabled()&&(null==e.getState()||!e.isSource(e.getState().control))&&
2605(this.popupMenuHandler.popupTrigger||!c&&!g&&(f&&null==e.getCell()&&this.isSelectionEmpty()||d&&this.isCellSelected(e.getCell())));g=!d||g?null:mxUtils.bind(this,function(b){window.setTimeout(mxUtils.bind(this,function(){if(!this.isEditing()){var d=mxUtils.getScrollOrigin();this.popupMenuHandler.popup(e.getX()+d.x+1,e.getY()+d.y+1,b,e.getEvent())}}),500)});mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler,[b,e,g])})};mxCellEditor.prototype.isContentEditing=function(){var b=this.graph.view.getState(this.editingCell);
2606return null!=b&&1==b.style.html};mxCellEditor.prototype.isTableSelected=function(){return null!=this.graph.getParentByName(this.graph.getSelectedElement(),"TABLE",this.textarea)};mxCellEditor.prototype.isTextSelected=function(){var b="";window.getSelection?b=window.getSelection():document.getSelection?b=document.getSelection():document.selection&&(b=document.selection.createRange().text);return""!=b};mxCellEditor.prototype.insertTab=function(b){var d=this.textarea.ownerDocument.defaultView.getSelection(),
2607f=d.getRangeAt(0),c="\t";if(null!=b)for(c="";0<b;)c+=" ",b--;b=document.createElement("span");b.style.whiteSpace="pre";b.appendChild(document.createTextNode(c));f.insertNode(b);f.setStartAfter(b);f.setEndAfter(b);d.removeAllRanges();d.addRange(f)};mxCellEditor.prototype.alignText=function(b,d){var f=null!=d&&mxEvent.isShiftDown(d);if(f||null!=window.getSelection&&null!=window.getSelection().containsNode){var c=!0;this.graph.processElements(this.textarea,function(b){f||window.getSelection().containsNode(b,
2608!0)?(b.removeAttribute("align"),b.style.textAlign=null):c=!1});c&&this.graph.cellEditor.setAlign(b)}document.execCommand("justify"+b.toLowerCase(),!1,null)};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var b=window.getSelection();if(b.getRangeAt&&b.rangeCount){for(var d=[],f=0,c=b.rangeCount;f<c;++f)d.push(b.getRangeAt(f));return d}}else if(document.selection&&document.selection.createRange)return document.selection.createRange();return null};mxCellEditor.prototype.restoreSelection=
2609function(b){try{if(b)if(window.getSelection){sel=window.getSelection();sel.removeAllRanges();for(var d=0,f=b.length;d<f;++d)sel.addRange(b[d])}else document.selection&&b.select&&b.select()}catch(P){}};var v=mxCellRenderer.prototype.initializeLabel;mxCellRenderer.prototype.initializeLabel=function(b){null!=b.text&&(b.text.replaceLinefeeds="0"!=mxUtils.getValue(b.style,"nl2Br","1"));v.apply(this,arguments)};var y=mxConstraintHandler.prototype.update;mxConstraintHandler.prototype.update=function(b,d){this.isKeepFocusEvent(b)||
2610!mxEvent.isAltDown(b.getEvent())?y.apply(this,arguments):this.reset()};mxGuide.prototype.createGuideShape=function(b){return new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)};mxCellEditor.prototype.escapeCancelsEditing=!1;var x=mxCellEditor.prototype.startEditing;mxCellEditor.prototype.startEditing=function(b,d){b=this.graph.getStartEditingCell(b,d);x.apply(this,arguments);var f=this.graph.view.getState(b);this.textarea.className=null!=f&&1==f.style.html?"mxCellEditor geContentEditable":
2611"mxCellEditor mxPlainTextEditor";this.codeViewMode=!1;this.switchSelectionState=null;this.graph.setSelectionCell(b);var f=this.graph.getModel().getParent(b),c=this.graph.getCellGeometry(b);if(this.graph.getModel().isEdge(f)&&null!=c&&c.relative||this.graph.getModel().isEdge(b))this.textarea.style.outline=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_FF&&mxClient.IS_WIN?"gray dotted 1px":""};var D=mxCellEditor.prototype.installListeners;mxCellEditor.prototype.installListeners=function(b){function d(b,
2612f){f.originalNode=b;b=b.firstChild;for(var c=f.firstChild;null!=b&&null!=c;)d(b,c),b=b.nextSibling,c=c.nextSibling;return f}function f(b,d){if(null!=b)if(d.originalNode!=b)c(b);else for(b=b.firstChild,d=d.firstChild;null!=b;){var e=b.nextSibling;null==d?c(b):(f(b,d),d=d.nextSibling);b=e}}function c(b){for(var d=b.firstChild;null!=d;){var f=d.nextSibling;c(d);d=f}1==b.nodeType&&("BR"===b.nodeName||null!=b.firstChild)||3==b.nodeType&&0!=mxUtils.trim(mxUtils.getTextContent(b)).length?(3==b.nodeType&&
2613mxUtils.setTextContent(b,mxUtils.getTextContent(b).replace(/\n|\r/g,"")),1==b.nodeType&&(b.removeAttribute("style"),b.removeAttribute("class"),b.removeAttribute("width"),b.removeAttribute("cellpadding"),b.removeAttribute("cellspacing"),b.removeAttribute("border"))):b.parentNode.removeChild(b)}D.apply(this,arguments);7!==document.documentMode&&8!==document.documentMode&&mxEvent.addListener(this.textarea,"paste",mxUtils.bind(this,function(b){var c=d(this.textarea,this.textarea.cloneNode(!0));window.setTimeout(mxUtils.bind(this,
2614function(){null!=this.textarea&&(0<=this.textarea.innerHTML.indexOf("<o:OfficeDocumentSettings>")||0<=this.textarea.innerHTML.indexOf("\x3c!--[if !mso]>")?f(this.textarea,c):Graph.removePasteFormatting(this.textarea))}),0)}))};mxCellEditor.prototype.toggleViewMode=function(){var b=this.graph.view.getState(this.editingCell);if(null!=b){var d=null!=b&&"0"!=mxUtils.getValue(b.style,"nl2Br","1"),f=this.saveSelection();if(this.codeViewMode){m=mxUtils.extractTextWithWhitespace(this.textarea.childNodes);
26150<m.length&&"\n"==m.charAt(m.length-1)&&(m=m.substring(0,m.length-1));m=this.graph.sanitizeHtml(d?m.replace(/\n/g,"<br/>"):m,!0);this.textarea.className="mxCellEditor geContentEditable";var c=mxUtils.getValue(b.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),d=mxUtils.getValue(b.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),e=mxUtils.getValue(b.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),g=(mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==
2616mxConstants.FONT_BOLD,l=(mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,k=[];(mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&k.push("underline");(mxUtils.getValue(b.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&k.push("line-through");this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(c*mxConstants.LINE_HEIGHT)+
2617"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(c)+"px";this.textarea.style.textDecoration=k.join(" ");this.textarea.style.fontWeight=g?"bold":"normal";this.textarea.style.fontStyle=l?"italic":"";this.textarea.style.fontFamily=d;this.textarea.style.textAlign=e;this.textarea.style.padding="0px";this.textarea.innerHTML!=m&&(this.textarea.innerHTML=m,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0<this.textarea.innerHTML.length));
2618this.codeViewMode=!1}else{this.clearOnChange&&this.textarea.innerHTML==this.getEmptyLabelText()&&(this.clearOnChange=!1,this.textarea.innerHTML="");var m=mxUtils.htmlEntities(this.textarea.innerHTML);8!=document.documentMode&&(m=mxUtils.replaceTrailingNewlines(m,"<div><br></div>"));m=this.graph.sanitizeHtml(d?m.replace(/\n/g,"").replace(/&lt;br\s*.?&gt;/g,"<br>"):m,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var c=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?
2619Math.round(c*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(c)+"px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=mxConstants.DEFAULT_FONTFAMILY;this.textarea.style.textAlign="left";this.textarea.style.width="";this.textarea.style.padding="2px";this.textarea.innerHTML!=m&&(this.textarea.innerHTML=m);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&
2620this.restoreSelection(this.switchSelectionState);this.switchSelectionState=f;this.resize()}};var I=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(b,d){if(null!=this.textarea)if(b=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=b){var f=b.view.scale;this.bounds=mxRectangle.fromRectangle(b);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*f;this.bounds.height=60*f;var c=null!=b.text?b.text.margin:null;null==c&&(c=mxUtils.getAlignmentAsPoint(mxUtils.getValue(b.style,
2621mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),mxUtils.getValue(b.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)));this.bounds.x+=c.x*this.bounds.width;this.bounds.y+=c.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-4)/f)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/f)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/f)+(this.textarea.offsetHeight-
2622this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*f);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/f)+(this.textarea.offsetWidth-this.textarea.clientWidth)+"px",this.bounds.width=parseInt(this.textarea.style.width)*f);this.textarea.style.left=Math.round(this.bounds.x)+"px";this.textarea.style.top=Math.round(this.bounds.y)+"px";mxUtils.setPrefixedStyle(this.textarea.style,"transform","scale("+f+","+
2623f+")")}else this.textarea.style.height="",this.textarea.style.overflow="",I.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(b,d){if("0"==mxUtils.getValue(b.style,"html","0"))return mxCellEditorGetInitialValue.apply(this,arguments);var f=this.graph.getEditingValue(b.cell,d);"1"==mxUtils.getValue(b.style,"nl2Br","1")&&(f=f.replace(/\n/g,"<br/>"));return f=this.graph.sanitizeHtml(f,!0)};mxCellEditorGetCurrentValue=
2624mxCellEditor.prototype.getCurrentValue;mxCellEditor.prototype.getCurrentValue=function(b){if("0"==mxUtils.getValue(b.style,"html","0"))return mxCellEditorGetCurrentValue.apply(this,arguments);var d=this.graph.sanitizeHtml(this.textarea.innerHTML,!0);return d="1"==mxUtils.getValue(b.style,"nl2Br","1")?d.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):d.replace(/\r\n/g,"").replace(/\n/g,"")};var B=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(b){this.codeViewMode&&this.toggleViewMode();
2625B.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(ca){}};var F=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(b,d){this.graph.getModel().beginUpdate();try{F.apply(this,arguments),""==d&&this.graph.isCellDeletable(b.cell)&&0==this.graph.model.getChildCount(b.cell)&&this.graph.isTransparentState(b)&&this.graph.removeCells([b.cell],!1)}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=
2626function(b){var d=mxUtils.getValue(b.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null);null!=d&&d!=mxConstants.NONE||!(null!=b.cell.geometry&&0<b.cell.geometry.width)||0==mxUtils.getValue(b.style,mxConstants.STYLE_ROTATION,0)&&0!=mxUtils.getValue(b.style,mxConstants.STYLE_HORIZONTAL,1)||(d=mxUtils.getValue(b.style,mxConstants.STYLE_FILLCOLOR,null));d==mxConstants.NONE&&(d=null);return d};mxCellEditor.prototype.getMinimumSize=function(b){var d=this.graph.getView().scale;return new mxRectangle(0,
26270,null==b.text?30:b.text.size*d+20,30)};mxGraphHandlerIsValidDropTarget=mxGraphHandler.prototype.isValidDropTarget;mxGraphHandler.prototype.isValidDropTarget=function(b,d){return mxGraphHandlerIsValidDropTarget.apply(this,arguments)&&!mxEvent.isAltDown(d.getEvent)};mxGraphView.prototype.formatUnitText=function(b){return b?c(b,this.unit):b};mxGraphHandler.prototype.updateHint=function(d){if(null!=this.pBounds&&(null!=this.shape||this.livePreviewActive)){null==this.hint&&(this.hint=b(),this.graph.container.appendChild(this.hint));
2628var f=this.graph.view.translate,e=this.graph.view.scale;d=this.roundLength((this.bounds.x+this.currentDx)/e-f.x);f=this.roundLength((this.bounds.y+this.currentDy)/e-f.y);e=this.graph.view.unit;this.hint.innerHTML=c(d,e)+", "+c(f,e);this.hint.style.left=this.pBounds.x+this.currentDx+Math.round((this.pBounds.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=this.pBounds.y+this.currentDy+this.pBounds.height+Editor.hintOffset+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&
2629(this.hint.parentNode.removeChild(this.hint),this.hint=null)};var M=mxStackLayout.prototype.resizeCell;mxStackLayout.prototype.resizeCell=function(b,d){M.apply(this,arguments);var f=this.graph.getCellStyle(b);if(null==f.childLayout){var c=this.graph.model.getParent(b),e=null!=c?this.graph.getCellGeometry(c):null;if(null!=e&&(f=this.graph.getCellStyle(c),"stackLayout"==f.childLayout)){var g=parseFloat(mxUtils.getValue(f,"stackBorder",mxStackLayout.prototype.border)),f="1"==mxUtils.getValue(f,"horizontalStack",
2630"1"),l=this.graph.getActualStartSize(c),e=e.clone();f?e.height=d.height+l.y+l.height+2*g:e.width=d.width+l.x+l.width+2*g;this.graph.model.setGeometry(c,e)}}};var E=mxSelectionCellsHandler.prototype.getHandledSelectionCells;mxSelectionCellsHandler.prototype.getHandledSelectionCells=function(){function b(b){f.get(b)||(f.put(b,!0),e.push(b))}for(var d=E.apply(this,arguments),f=new mxDictionary,c=this.graph.model,e=[],g=0;g<d.length;g++){var l=d[g];this.graph.isTableCell(l)?b(c.getParent(c.getParent(l))):
2631this.graph.isTableRow(l)&&b(c.getParent(l));b(l)}return e};var K=mxVertexHandler.prototype.createParentHighlightShape;mxVertexHandler.prototype.createParentHighlightShape=function(b){var d=K.apply(this,arguments);d.stroke="#C0C0C0";d.strokewidth=1;return d};var C=mxEdgeHandler.prototype.createParentHighlightShape;mxEdgeHandler.prototype.createParentHighlightShape=function(b){var d=C.apply(this,arguments);d.stroke="#C0C0C0";d.strokewidth=1;return d};mxVertexHandler.prototype.rotationHandleVSpacing=
2632-12;mxVertexHandler.prototype.getRotationHandlePosition=function(){var b=this.getHandlePadding();return new mxPoint(this.bounds.x+this.bounds.width-this.rotationHandleVSpacing+b.x/2,this.bounds.y+this.rotationHandleVSpacing-b.y/2)};mxVertexHandler.prototype.isRecursiveResize=function(b,d){return this.graph.isRecursiveVertexResize(b)&&!mxEvent.isControlDown(d.getEvent())};mxVertexHandler.prototype.isCenteredEvent=function(b,d){return!(!this.graph.isSwimlane(b.cell)&&0<this.graph.model.getChildCount(b.cell)&&
2633!this.graph.isCellCollapsed(b.cell)&&"1"==mxUtils.getValue(b.style,"recursiveResize","1")&&null==mxUtils.getValue(b.style,"childLayout",null))&&mxEvent.isControlDown(d.getEvent())||mxEvent.isMetaDown(d.getEvent())};var L=mxVertexHandler.prototype.isRotationHandleVisible;mxVertexHandler.prototype.isRotationHandleVisible=function(){return L.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)&&!this.graph.isTable(this.state.cell)};mxVertexHandler.prototype.getSizerBounds=
2634function(){return this.graph.isTableCell(this.state.cell)?this.graph.view.getState(this.graph.model.getParent(this.graph.model.getParent(this.state.cell))):this.bounds};var O=mxVertexHandler.prototype.isParentHighlightVisible;mxVertexHandler.prototype.isParentHighlightVisible=function(){return O.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)};var ea=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=
2635function(b){return b.tableHandle||ea.apply(this,arguments)&&(!this.graph.isTable(this.state.cell)||this.graph.isCellSelected(this.state.cell))};mxVertexHandler.prototype.getSelectionBorderInset=function(){var b=0;this.graph.isTableRow(this.state.cell)?b=1:this.graph.isTableCell(this.state.cell)&&(b=2);return b};var N=mxVertexHandler.prototype.getSelectionBorderBounds;mxVertexHandler.prototype.getSelectionBorderBounds=function(){return N.apply(this,arguments).grow(-this.getSelectionBorderInset())};
2636var Q=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var b=Q.apply(this,arguments);if(this.graph.isTable(this.state.cell)){var d=this.graph,f=d.model,c=this.state,e=this.selectionBorder,g=this;null==b&&(b=[]);var l=d.view.getCellStates(f.getChildCells(this.state.cell,!0));if(0<l.length){for(var k=f.getChildCells(l[0].cell,!0),f=0;f<k.length;f++)mxUtils.bind(this,function(f){var l=d.view.getState(k[f]),m=d.getCellGeometry(k[f]),q=null!=m.alternateBounds?
2637m.alternateBounds:m;null==l&&(l=new mxCellState(d.view,k[f],d.getCellStyle(k[f])),l.x=c.x+m.x*d.view.scale,l.y=c.y+m.y*d.view.scale,l.width=q.width*d.view.scale,l.height=q.height*d.view.scale,l.updateCachedBounds());var m=f<k.length-1?k[f+1]:null,m=null!=m?d.getCellGeometry(m):null,n=null!=m&&null!=m.alternateBounds?m.alternateBounds:m,m=new mxLine(new mxRectangle,mxConstants.NONE,1,!0);m.isDashed=e.isDashed;m.svgStrokeTolerance++;l=new mxHandle(l,"col-resize",null,m);l.tableHandle=!0;var H=0;l.shape.node.parentNode.insertBefore(l.shape.node,
2638l.shape.node.parentNode.firstChild);l.redraw=function(){if(null!=this.shape){var b=d.getActualStartSize(c.cell);this.shape.stroke=0==H?mxConstants.NONE:e.stroke;this.shape.bounds.x=this.state.x+(q.width+H)*this.graph.view.scale;this.shape.bounds.width=1;this.shape.bounds.y=c.y+(f==k.length-1?0:b.y*this.graph.view.scale);this.shape.bounds.height=c.height-(f==k.length-1?0:(b.height+b.y)*this.graph.view.scale);this.shape.redraw()}};var v=!1;l.setPosition=function(b,d,f){H=Math.max(Graph.minTableColumnWidth-
2639q.width,d.x-b.x-q.width);v=mxEvent.isShiftDown(f.getEvent());null==n||v||(H=Math.min(H,n.width-Graph.minTableColumnWidth))};l.execute=function(b){if(0!=H)d.setTableColumnWidth(this.state.cell,H,v);else if(!g.blockDelayedSelection){var f=d.getCellAt(b.getGraphX(),b.getGraphY())||c.cell;d.graphHandler.selectCellForEvent(f,b)}H=0};l.positionChanged=function(){};l.reset=function(){H=0};b.push(l)})(f);for(f=0;f<l.length;f++)mxUtils.bind(this,function(f){f=l[f];var k=new mxLine(new mxRectangle,mxConstants.NONE,
26401);k.isDashed=e.isDashed;k.svgStrokeTolerance++;f=new mxHandle(f,"row-resize",null,k);f.tableHandle=!0;var m=0;f.shape.node.parentNode.insertBefore(f.shape.node,f.shape.node.parentNode.firstChild);f.redraw=function(){null!=this.shape&&null!=this.state.shape&&(this.shape.stroke=0==m?mxConstants.NONE:e.stroke,this.shape.bounds.x=this.state.x,this.shape.bounds.width=this.state.width,this.shape.bounds.y=this.state.y+this.state.height+m*this.graph.view.scale,this.shape.bounds.height=1,this.shape.redraw())};
2641f.setPosition=function(b,d,f){m=Math.max(Graph.minTableRowHeight-b.height,d.y-b.y-b.height)};f.execute=function(b){if(0!=m)d.setTableRowHeight(this.state.cell,m,!mxEvent.isShiftDown(b.getEvent()));else if(!g.blockDelayedSelection){var f=d.getCellAt(b.getGraphX(),b.getGraphY())||c.cell;d.graphHandler.selectCellForEvent(f,b)}m=0};f.reset=function(){m=0};b.push(f)})(f)}}return null!=b?b.reverse():null};var T=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){T.apply(this,
2642arguments);if(null!=this.moveHandles)for(var d=0;d<this.moveHandles.length;d++)this.moveHandles[d].style.visibility=b?"":"hidden";if(null!=this.cornerHandles)for(d=0;d<this.cornerHandles.length;d++)this.cornerHandles[d].node.style.visibility=b?"":"hidden"};mxVertexHandler.prototype.refreshMoveHandles=function(){var b=this.graph.model;if(null!=this.moveHandles){for(var d=0;d<this.moveHandles.length;d++)this.moveHandles[d].parentNode.removeChild(this.moveHandles[d]);this.moveHandles=null}this.moveHandles=
2643[];for(d=0;d<b.getChildCount(this.state.cell);d++)mxUtils.bind(this,function(d){if(null!=d&&b.isVertex(d.cell)){var f=mxUtils.createImage(Editor.rowMoveImage);f.style.position="absolute";f.style.cursor="pointer";f.style.width="7px";f.style.height="4px";f.style.padding="4px 2px 4px 2px";f.rowState=d;mxEvent.addGestureListeners(f,mxUtils.bind(this,function(b){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);!this.graph.isToggleEvent(b)&&this.graph.isCellSelected(d.cell)||this.graph.selectCellForEvent(d.cell,
2644b);mxEvent.isPopupTrigger(b)||(this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(b),mxEvent.getClientY(b),this.graph.getSelectionCells()),this.graph.graphHandler.cellWasClicked=!0,this.graph.isMouseTrigger=mxEvent.isMouseEvent(b),this.graph.isMouseDown=!0);mxEvent.consume(b)}),null,mxUtils.bind(this,function(b){mxEvent.isPopupTrigger(b)&&(this.graph.popupMenuHandler.popup(mxEvent.getClientX(b),mxEvent.getClientY(b),d.cell,b),mxEvent.consume(b))}));this.moveHandles.push(f);this.graph.container.appendChild(f)}})(this.graph.view.getState(b.getChildAt(this.state.cell,
2645d)))};mxVertexHandler.prototype.refresh=function(){if(null!=this.customHandles){for(var b=0;b<this.customHandles.length;b++)this.customHandles[b].destroy();this.customHandles=this.createCustomHandles()}this.graph.isTable(this.state.cell)&&this.refreshMoveHandles()};var H=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var b=new mxPoint(0,0),d=this.tolerance,f=this.state.style.shape;null==mxCellRenderer.defaultShapes[f]&&mxStencilRegistry.getStencil(f);
2646f=this.graph.isTable(this.state.cell)||this.graph.cellEditor.getEditingCell()==this.state.cell;if(!f&&null!=this.customHandles)for(var c=0;c<this.customHandles.length;c++)if(null!=this.customHandles[c].shape&&null!=this.customHandles[c].shape.bounds){var e=this.customHandles[c].shape.bounds,g=e.getCenterX(),l=e.getCenterY();if(Math.abs(this.state.x-g)<e.width/2||Math.abs(this.state.y-l)<e.height/2||Math.abs(this.state.x+this.state.width-g)<e.width/2||Math.abs(this.state.y+this.state.height-l)<e.height/
26472){f=!0;break}}f&&null!=this.sizers&&0<this.sizers.length&&null!=this.sizers[0]?(d/=2,this.graph.isTable(this.state.cell)&&(d+=7),b.x=this.sizers[0].bounds.width+d,b.y=this.sizers[0].bounds.height+d):b=H.apply(this,arguments);return b};mxVertexHandler.prototype.updateHint=function(d){if(this.index!=mxEvent.LABEL_HANDLE){null==this.hint&&(this.hint=b(),this.state.view.graph.container.appendChild(this.hint));if(this.index==mxEvent.ROTATION_HANDLE)this.hint.innerHTML=this.currentAlpha+"&deg;";else{d=
2648this.state.view.scale;var f=this.state.view.unit;this.hint.innerHTML=c(this.roundLength(this.bounds.width/d),f)+" x "+c(this.roundLength(this.bounds.height/d),f)}d=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0");null==d&&(d=this.bounds);this.hint.style.left=d.x+Math.round((d.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=d.y+d.height+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")}};
2649mxVertexHandler.prototype.removeHint=function(){mxGraphHandler.prototype.removeHint.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.display="")};var J=mxEdgeHandler.prototype.mouseMove;mxEdgeHandler.prototype.mouseMove=function(b,d){J.apply(this,arguments);null!=this.linkHint&&"none"!=this.linkHint.style.display&&null!=this.graph.graphHandler&&null!=this.graph.graphHandler.first&&(this.linkHint.style.display="none")};var A=mxEdgeHandler.prototype.mouseUp;mxEdgeHandler.prototype.mouseUp=
2650function(b,d){A.apply(this,arguments);null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=function(d,f){null==this.hint&&(this.hint=b(),this.state.view.graph.container.appendChild(this.hint));var e=this.graph.view.translate,g=this.graph.view.scale,l=this.roundLength(f.x/g-e.x),e=this.roundLength(f.y/g-e.y),g=this.graph.view.unit;this.hint.innerHTML=c(l,g)+", "+c(e,g);this.hint.style.visibility="visible";if(this.isSource||this.isTarget)null!=
2651this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus?(l=this.constraintHandler.currentConstraint.point,this.hint.innerHTML="["+Math.round(100*l.x)+"%, "+Math.round(100*l.y)+"%]"):this.marker.hasValidState()&&(this.hint.style.visibility="hidden");this.hint.style.left=Math.round(d.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(d.getGraphY(),f.y)+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")};mxEdgeHandler.prototype.removeHint=
2652mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,'<circle cx="9" cy="9" r="5" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/>'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path d="m 8 3 L 13 8 L 8 13 L 3 8 z" stroke="#fff" fill="#fca000"/>'):new mxImage(IMAGE_PATH+"/handle-secondary.png",17,17);HoverIcons.prototype.fixedHandle=
2653mxClient.IS_SVG?Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="6" stroke="#fff" fill="#01bd22" stroke-width="1"/><path d="m 8 8 L 14 14M 8 14 L 14 8" stroke="#fff"/>'):new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=mxClient.IS_SVG?Graph.createSvgImage(22,22,'<circle cx="11" cy="11" r="6" stroke="#fff" fill="'+HoverIcons.prototype.arrowFill+'" stroke-width="1"/><circle cx="11" cy="11" r="3" stroke="#fff" fill="transparent"/>'):new mxImage(IMAGE_PATH+"/handle-terminal.png",
265417,17);HoverIcons.prototype.rotationHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'<path stroke="'+HoverIcons.prototype.arrowFill+'" fill="'+HoverIcons.prototype.arrowFill+'" d="M15.55 5.55L11 1v3.07C7.06 4.56 4 7.92 4 12s3.05 7.44 7 7.93v-2.02c-2.84-.48-5-2.94-5-5.91s2.16-5.43 5-5.91V10l4.55-4.45zM19.93 11c-.17-1.39-.72-2.73-1.62-3.89l-1.42 1.42c.54.75.88 1.6 1.02 2.47h2.02zM13 17.9v2.02c1.39-.17 2.74-.71 3.9-1.61l-1.44-1.44c-.75.54-1.59.89-2.46 1.03zm3.89-2.42l1.42 1.41c.9-1.16 1.45-2.5 1.62-3.89h-2.02c-.14.87-.48 1.72-1.02 2.48z"/>',
265524,24):new mxImage(IMAGE_PATH+"/handle-rotate.png",16,16);mxClient.IS_SVG&&(mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke-width="2" style="stroke-opacity:0.4" stroke="#ffffff"/><path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="'+HoverIcons.prototype.arrowFill+'"/>'));mxVertexHandler.TABLE_HANDLE_COLOR="#fca000";mxVertexHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxVertexHandler.prototype.secondaryHandleImage=HoverIcons.prototype.secondaryHandle;
2656mxEdgeHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxEdgeHandler.prototype.terminalHandleImage=HoverIcons.prototype.terminalHandle;mxEdgeHandler.prototype.fixedHandleImage=HoverIcons.prototype.fixedHandle;mxEdgeHandler.prototype.labelHandleImage=HoverIcons.prototype.secondaryHandle;mxOutline.prototype.sizerImage=HoverIcons.prototype.mainHandle;null!=window.Sidebar&&(Sidebar.prototype.triangleUp=HoverIcons.prototype.triangleUp,Sidebar.prototype.triangleRight=HoverIcons.prototype.triangleRight,
2657Sidebar.prototype.triangleDown=HoverIcons.prototype.triangleDown,Sidebar.prototype.triangleLeft=HoverIcons.prototype.triangleLeft,Sidebar.prototype.refreshTarget=HoverIcons.prototype.refreshTarget,Sidebar.prototype.roundDrop=HoverIcons.prototype.roundDrop);mxClient.IS_SVG||((new Image).src=HoverIcons.prototype.mainHandle.src,(new Image).src=HoverIcons.prototype.fixedHandle.src,(new Image).src=HoverIcons.prototype.terminalHandle.src,(new Image).src=HoverIcons.prototype.secondaryHandle.src,(new Image).src=
2658HoverIcons.prototype.rotationHandle.src,(new Image).src=HoverIcons.prototype.triangleUp.src,(new Image).src=HoverIcons.prototype.triangleRight.src,(new Image).src=HoverIcons.prototype.triangleDown.src,(new Image).src=HoverIcons.prototype.triangleLeft.src,(new Image).src=HoverIcons.prototype.refreshTarget.src,(new Image).src=HoverIcons.prototype.roundDrop.src);mxVertexHandler.prototype.rotationEnabled=!0;mxVertexHandler.prototype.manageSizers=!0;mxVertexHandler.prototype.livePreview=!0;mxGraphHandler.prototype.maxLivePreview=
265916;mxRubberband.prototype.defaultOpacity=30;mxConnectionHandler.prototype.outlineConnect=!0;mxCellHighlight.prototype.keepOnTop=!0;mxVertexHandler.prototype.parentHighlightEnabled=!0;mxEdgeHandler.prototype.parentHighlightEnabled=!0;mxEdgeHandler.prototype.dblClickRemoveEnabled=!0;mxEdgeHandler.prototype.straightRemoveEnabled=!0;mxEdgeHandler.prototype.virtualBendsEnabled=!0;mxEdgeHandler.prototype.mergeRemoveEnabled=!0;mxEdgeHandler.prototype.manageLabelHandle=!0;mxEdgeHandler.prototype.outlineConnect=
2660!0;mxEdgeHandler.prototype.isAddVirtualBendEvent=function(b){return!mxEvent.isShiftDown(b.getEvent())};mxEdgeHandler.prototype.isCustomHandleEvent=function(b){return!mxEvent.isShiftDown(b.getEvent())};if(Graph.touchStyle){if(mxClient.IS_TOUCH||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints)mxShape.prototype.svgStrokeTolerance=18,mxVertexHandler.prototype.tolerance=12,mxEdgeHandler.prototype.tolerance=12,Graph.prototype.tolerance=12,mxVertexHandler.prototype.rotationHandleVSpacing=-16,mxConstraintHandler.prototype.getTolerance=
2661function(b){return mxEvent.isMouseEvent(b.getEvent())?4:this.graph.getTolerance()};mxPanningHandler.prototype.isPanningTrigger=function(b){var d=b.getEvent();return null==b.getState()&&!mxEvent.isMouseEvent(d)||mxEvent.isPopupTrigger(d)&&(null==b.getState()||mxEvent.isControlDown(d)||mxEvent.isShiftDown(d))};var Z=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(b,d){Z.apply(this,arguments);mxEvent.isTouchEvent(d.getEvent())&&this.graph.isCellSelected(d.getCell())&&1<
2662this.graph.getSelectionCount()&&(this.delayedSelection=!1)}}else mxPanningHandler.prototype.isPanningTrigger=function(b){var d=b.getEvent();return mxEvent.isLeftMouseButton(d)&&(this.useLeftButtonForPanning&&null==b.getState()||mxEvent.isControlDown(d)&&!mxEvent.isShiftDown(d))||this.usePopupTrigger&&mxEvent.isPopupTrigger(d)};mxRubberband.prototype.isSpaceEvent=function(b){return this.graph.isEnabled()&&!this.graph.isCellLocked(this.graph.getDefaultParent())&&mxEvent.isControlDown(b.getEvent())&&
2663mxEvent.isShiftDown(b.getEvent())&&mxEvent.isAltDown(b.getEvent())};mxRubberband.prototype.cancelled=!1;mxRubberband.prototype.cancel=function(){this.isActive()&&(this.cancelled=!0,this.reset())};mxRubberband.prototype.mouseUp=function(b,d){if(this.cancelled)this.cancelled=!1,d.consume();else{var f=null!=this.div&&"none"!=this.div.style.display,c=null,e=null,g=null,l=null;null!=this.first&&null!=this.currentX&&null!=this.currentY&&(c=this.first.x,e=this.first.y,g=(this.currentX-c)/this.graph.view.scale,
2664l=(this.currentY-e)/this.graph.view.scale,mxEvent.isAltDown(d.getEvent())||(g=this.graph.snap(g),l=this.graph.snap(l),this.graph.isGridEnabled()||(Math.abs(g)<this.graph.tolerance&&(g=0),Math.abs(l)<this.graph.tolerance&&(l=0))));this.reset();if(f){if(this.isSpaceEvent(d)){this.graph.model.beginUpdate();try{for(var k=this.graph.getCellsBeyond(c,e,this.graph.getDefaultParent(),!0,!0),f=0;f<k.length;f++)if(this.graph.isCellMovable(k[f])){var m=this.graph.view.getState(k[f]),q=this.graph.getCellGeometry(k[f]);
2665null!=m&&null!=q&&(q=q.clone(),q.translate(g,l),this.graph.model.setGeometry(k[f],q))}}finally{this.graph.model.endUpdate()}}else g=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(g,d.getEvent());d.consume()}}};mxRubberband.prototype.mouseMove=function(b,d){if(!d.isConsumed()&&null!=this.first){var f=mxUtils.getScrollOrigin(this.graph.container),c=mxUtils.getOffset(this.graph.container);f.x-=c.x;f.y-=c.y;var c=d.getX()+f.x,f=d.getY()+f.y,e=this.first.x-c,g=this.first.y-
2666f,l=this.graph.tolerance;if(null!=this.div||Math.abs(e)>l||Math.abs(g)>l)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(c,f),this.isSpaceEvent(d)?(c=this.x+this.width,f=this.y+this.height,e=this.graph.view.scale,mxEvent.isAltDown(d.getEvent())||(this.width=this.graph.snap(this.width/e)*e,this.height=this.graph.snap(this.height/e)*e,this.graph.isGridEnabled()||(this.width<this.graph.tolerance&&(this.width=0),this.height<this.graph.tolerance&&(this.height=0)),this.x<
2667this.first.x&&(this.x=c-this.width),this.y<this.first.y&&(this.y=f-this.height)),this.div.style.borderStyle="dashed",this.div.style.backgroundColor="white",this.div.style.left=this.x+"px",this.div.style.top=this.y+"px",this.div.style.width=Math.max(0,this.width)+"px",this.div.style.height=this.graph.container.clientHeight+"px",this.div.style.borderWidth=0>=this.width?"0px 1px 0px 0px":"0px 1px 0px 1px",null==this.secondDiv&&(this.secondDiv=this.div.cloneNode(!0),this.div.parentNode.appendChild(this.secondDiv)),
2668this.secondDiv.style.left=this.x+"px",this.secondDiv.style.top=this.y+"px",this.secondDiv.style.width=this.graph.container.clientWidth+"px",this.secondDiv.style.height=Math.max(0,this.height)+"px",this.secondDiv.style.borderWidth=0>=this.height?"1px 0px 0px 0px":"1px 0px 1px 0px"):(this.div.style.backgroundColor="",this.div.style.borderWidth="",this.div.style.borderStyle="",null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null)),d.consume()}};var G=mxRubberband.prototype.reset;
2669mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);G.apply(this,arguments)};var W=(new Date).getTime(),aa=0,oa=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(b,d,f,c){oa.apply(this,arguments);f!=this.currentTerminalState?(W=(new Date).getTime(),aa=0):aa=(new Date).getTime()-W;this.currentTerminalState=f};var ha=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=
2670function(b){return null!=this.currentTerminalState&&b.getState()==this.currentTerminalState&&2E3<aa||(null==this.currentTerminalState||"0"!=mxUtils.getValue(this.currentTerminalState.style,"outlineConnect","1"))&&ha.apply(this,arguments)};mxEdgeHandler.prototype.createHandleShape=function(b,d){var f=null!=b&&0==b,c=this.state.getVisibleTerminalState(f),e=null!=b&&(0==b||b>=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==b)?this.graph.getConnectionConstraint(this.state,
2671c,f):null,f=null!=(null!=e?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(f),e):null)?this.fixedHandleImage:null!=e&&null!=c?this.terminalHandleImage:this.handleImage;if(null!=f)return f=new mxImageShape(new mxRectangle(0,0,f.width,f.height),f.src),f.preserveImageAspect=!1,f;f=mxConstants.HANDLE_SIZE;this.preferHtml&&--f;return new mxRectangleShape(new mxRectangle(0,0,f,f),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var ka=mxVertexHandler.prototype.createSizerShape;
2672mxVertexHandler.prototype.createSizerShape=function(b,d,f){this.handleImage=d==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:d==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:this.handleImage;return ka.apply(this,arguments)};var na=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(b){if(null!=b&&1==b.length){var d=this.graph.getModel(),f=d.getParent(b[0]),c=this.graph.getCellGeometry(b[0]);if(d.isEdge(f)&&null!=c&&c.relative&&(d=this.graph.view.getState(b[0]),
2673null!=d&&2>d.width&&2>d.height&&null!=d.text&&null!=d.text.boundingBox))return mxRectangle.fromRectangle(d.text.boundingBox)}return na.apply(this,arguments)};var pa=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates=function(){for(var b=pa.apply(this,arguments),d=[],f=0;f<b.length;f++)"1"!=mxUtils.getValue(b[f].style,"part","0")&&d.push(b[f]);return d};var la=mxVertexHandler.prototype.getSelectionBounds;mxVertexHandler.prototype.getSelectionBounds=function(b){var d=this.graph.getModel(),
2674f=d.getParent(b.cell),c=this.graph.getCellGeometry(b.cell);return d.isEdge(f)&&null!=c&&c.relative&&2>b.width&&2>b.height&&null!=b.text&&null!=b.text.boundingBox?(d=b.text.unrotatedBoundingBox||b.text.boundingBox,new mxRectangle(Math.round(d.x),Math.round(d.y),Math.round(d.width),Math.round(d.height))):la.apply(this,arguments)};var Y=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(b,d){var f=this.graph.getModel(),c=f.getParent(this.state.cell),e=this.graph.getCellGeometry(this.state.cell);
2675(this.getHandleForEvent(d)==mxEvent.ROTATION_HANDLE||!f.isEdge(c)||null==e||!e.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&Y.apply(this,arguments)};mxVertexHandler.prototype.rotateClick=function(){var b=mxUtils.getValue(this.state.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),d=mxUtils.getValue(this.state.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);this.state.view.graph.model.isVertex(this.state.cell)&&b==mxConstants.NONE&&d==mxConstants.NONE?(b=mxUtils.mod(mxUtils.getValue(this.state.style,
2676mxConstants.STYLE_ROTATION,0)+90,360),this.state.view.graph.setCellStyles(mxConstants.STYLE_ROTATION,b,[this.state.cell])):this.state.view.graph.turnShapes([this.state.cell])};var ba=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(b,d){ba.apply(this,arguments);null!=this.graph.graphHandler.first&&(null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none"),null!=this.linkHint&&"none"!=this.linkHint.style.display&&(this.linkHint.style.display=
2677"none"))};var R=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(b,d){R.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="");this.blockDelayedSelection=null};var ra=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){ra.apply(this,arguments);var b=!1;
2678null!=this.rotationShape&&this.rotationShape.node.setAttribute("title",mxResources.get("rotateTooltip"));if(this.graph.isTable(this.state.cell))this.refreshMoveHandles();else if(1==this.graph.getSelectionCount()&&(this.graph.isTableCell(this.state.cell)||this.graph.isTableRow(this.state.cell))){this.cornerHandles=[];for(var d=0;4>d;d++){var f=new mxRectangleShape(new mxRectangle(0,0,6,6),"#ffffff",mxConstants.HANDLE_STROKECOLOR);f.dialect=mxConstants.DIALECT_SVG;f.init(this.graph.view.getOverlayPane());
2679this.cornerHandles.push(f)}}var c=mxUtils.bind(this,function(){null!=this.specialHandle&&(this.specialHandle.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none");this.redrawHandles()});this.changeHandler=mxUtils.bind(this,function(b,d){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),this.graph.getLinksForState(this.state));c()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,
2680this.changeHandler);this.editingHandler=mxUtils.bind(this,function(b,d){this.redrawHandles()});this.graph.addListener(mxEvent.EDITING_STOPPED,this.editingHandler);d=this.graph.getLinkForCell(this.state.cell);f=this.graph.getLinksForState(this.state);this.updateLinkHint(d,f);if(null!=d||null!=f&&0<f.length)b=!0;b&&this.redrawHandles()};mxVertexHandler.prototype.updateLinkHint=function(d,f){try{if(null==d&&(null==f||0==f.length)||1<this.graph.getSelectionCount())null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),
2681this.linkHint=null);else if(null!=d||null!=f&&0<f.length){null==this.linkHint&&(this.linkHint=b(),this.linkHint.style.padding="6px 8px 6px 8px",this.linkHint.style.opacity="1",this.linkHint.style.filter="",this.graph.container.appendChild(this.linkHint),mxEvent.addListener(this.linkHint,"mouseenter",mxUtils.bind(this,function(){this.graph.tooltipHandler.hide()})));this.linkHint.innerHTML="";if(null!=d&&(this.linkHint.appendChild(this.graph.createLinkForHint(d)),this.graph.isEnabled()&&"function"===
2682typeof this.graph.editLink)){var c=document.createElement("img");c.setAttribute("src",Editor.editImage);c.setAttribute("title",mxResources.get("editLink"));c.setAttribute("width","11");c.setAttribute("height","11");c.style.marginLeft="10px";c.style.marginBottom="-1px";c.style.cursor="pointer";this.linkHint.appendChild(c);mxEvent.addListener(c,"click",mxUtils.bind(this,function(b){this.graph.setSelectionCell(this.state.cell);this.graph.editLink();mxEvent.consume(b)}));this.linkHint.appendChildGraph.createRemoveIcon(mxResources.get("removeIt",
2683[mxResources.get("link")]),mxUtils.bind(this,function(b){this.graph.setLinkForCell(this.state.cell,null);mxEvent.consume(b)}))}if(null!=f)for(c=0;c<f.length;c++){var e=document.createElement("div");e.style.marginTop=null!=d||0<c?"6px":"0px";e.appendChild(this.graph.createLinkForHint(f[c].getAttribute("href"),mxUtils.getTextContent(f[c])));this.linkHint.appendChild(e)}}}catch(fa){}};mxEdgeHandler.prototype.updateLinkHint=mxVertexHandler.prototype.updateLinkHint;var V=mxEdgeHandler.prototype.init;mxEdgeHandler.prototype.init=
2684function(){V.apply(this,arguments);this.constraintHandler.isEnabled=mxUtils.bind(this,function(){return this.state.view.graph.connectionHandler.isEnabled()});var b=mxUtils.bind(this,function(){null!=this.linkHint&&(this.linkHint.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.labelShape&&(this.labelShape.node.style.display=this.graph.isEnabled()&&this.graph.getSelectionCount()<this.graph.graphHandler.maxCells?"":"none")});this.changeHandler=mxUtils.bind(this,function(d,f){this.updateLinkHint(this.graph.getLinkForCell(this.state.cell),
2685this.graph.getLinksForState(this.state));b();this.redrawHandles()});this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.changeHandler);this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler);var d=this.graph.getLinkForCell(this.state.cell),f=this.graph.getLinksForState(this.state);if(null!=d||null!=f&&0<f.length)this.updateLinkHint(d,f),this.redrawHandles()};var U=mxConnectionHandler.prototype.init;mxConnectionHandler.prototype.init=function(){U.apply(this,arguments);this.constraintHandler.isEnabled=
2686mxUtils.bind(this,function(){return this.graph.connectionHandler.isEnabled()})};var ma=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){if(null!=this.moveHandles)for(var b=0;b<this.moveHandles.length;b++)this.moveHandles[b].style.left=this.moveHandles[b].rowState.x+this.moveHandles[b].rowState.width-5+"px",this.moveHandles[b].style.top=this.moveHandles[b].rowState.y+this.moveHandles[b].rowState.height/2-6+"px";if(null!=this.cornerHandles){var b=this.getSelectionBorderInset(),
2687d=this.cornerHandles,f=d[0].bounds.height/2;d[0].bounds.x=this.state.x-d[0].bounds.width/2+b;d[0].bounds.y=this.state.y-f+b;d[0].redraw();d[1].bounds.x=d[0].bounds.x+this.state.width-2*b;d[1].bounds.y=d[0].bounds.y;d[1].redraw();d[2].bounds.x=d[0].bounds.x;d[2].bounds.y=this.state.y+this.state.height-2*b;d[2].redraw();d[3].bounds.x=d[1].bounds.x;d[3].bounds.y=d[2].bounds.y;d[3].redraw();for(b=0;b<this.cornerHandles.length;b++)this.cornerHandles[b].node.style.display=1==this.graph.getSelectionCount()?
2688"":"none"}null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=null!=this.moveHandles||1!=this.graph.getSelectionCount()||null!=this.index&&this.index!=mxEvent.ROTATION_HANDLE?"none":"");ma.apply(this);null!=this.state&&null!=this.linkHint&&(b=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),d=new mxRectangle(this.state.x,this.state.y-22,this.state.width+24,this.state.height+22),f=mxUtils.getBoundingBox(d,this.state.style[mxConstants.STYLE_ROTATION]||
2689"0",b),b=null!=f?mxUtils.getBoundingBox(this.state,this.state.style[mxConstants.STYLE_ROTATION]||"0"):this.state,d=null!=this.state.text?this.state.text.boundingBox:null,null==f&&(f=this.state),f=f.y+f.height,null!=d&&(f=Math.max(f,d.y+d.height)),this.linkHint.style.left=Math.max(0,Math.round(b.x+(b.width-this.linkHint.clientWidth)/2))+"px",this.linkHint.style.top=Math.round(f+this.verticalOffset/2+Editor.hintOffset)+"px")};var ta=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=
2690function(){ta.apply(this,arguments);if(null!=this.moveHandles){for(var b=0;b<this.moveHandles.length;b++)null!=this.moveHandles[b]&&null!=this.moveHandles[b].parentNode&&this.moveHandles[b].parentNode.removeChild(this.moveHandles[b]);this.moveHandles=null}if(null!=this.cornerHandles){for(b=0;b<this.cornerHandles.length;b++)null!=this.cornerHandles[b]&&null!=this.cornerHandles[b].node&&null!=this.cornerHandles[b].node.parentNode&&this.cornerHandles[b].node.parentNode.removeChild(this.cornerHandles[b].node);
2691this.cornerHandles=null}null!=this.linkHint&&(null!=this.linkHint.parentNode&&this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.changeHandler&&(this.graph.getSelectionModel().removeListener(this.changeHandler),this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null);null!=this.editingHandler&&(this.graph.removeListener(this.editingHandler),this.editingHandler=null)};var S=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=
2692function(){if(null!=this.marker&&(S.apply(this),null!=this.state&&null!=this.linkHint)){var b=this.state;null!=this.state.text&&null!=this.state.text.bounds&&(b=new mxRectangle(b.x,b.y,b.width,b.height),b.add(this.state.text.bounds));this.linkHint.style.left=Math.max(0,Math.round(b.x+(b.width-this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(b.y+b.height+Editor.hintOffset)+"px"}};var ga=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){ga.apply(this,arguments);
2693null!=this.linkHint&&(this.linkHint.style.visibility="")};var ja=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){ja.apply(this,arguments);null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getSelectionModel().removeListener(this.changeHandler),this.changeHandler=null)}}();(function(){function b(){mxSwimlane.call(this)}function c(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function k(){mxActor.call(this)}function g(){mxCylinder.call(this)}function p(){mxCylinder.call(this)}function t(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function f(){mxShape.call(this)}function l(){mxShape.call(this)}function q(b,d,f,c){mxShape.call(this);this.bounds=b;this.fill=d;this.stroke=f;this.strokewidth=null!=c?c:1}function m(){mxActor.call(this)}function n(){mxCylinder.call(this)}
2694function u(){mxCylinder.call(this)}function v(){mxActor.call(this)}function y(){mxActor.call(this)}function x(){mxActor.call(this)}function D(){mxActor.call(this)}function I(){mxActor.call(this)}function B(){mxActor.call(this)}function F(){mxActor.call(this)}function M(b,d){this.canvas=b;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=d;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,M.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;
2695this.canvas.moveTo=mxUtils.bind(this,M.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,M.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,M.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,M.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,M.prototype.arcTo)}function E(){mxRectangleShape.call(this)}function K(){mxRectangleShape.call(this)}
2696function C(){mxActor.call(this)}function L(){mxActor.call(this)}function O(){mxActor.call(this)}function ea(){mxRectangleShape.call(this)}function N(){mxRectangleShape.call(this)}function Q(){mxCylinder.call(this)}function T(){mxShape.call(this)}function H(){mxShape.call(this)}function J(){mxEllipse.call(this)}function A(){mxShape.call(this)}function Z(){mxShape.call(this)}function G(){mxRectangleShape.call(this)}function W(){mxShape.call(this)}function aa(){mxShape.call(this)}function oa(){mxShape.call(this)}
2697function ha(){mxShape.call(this)}function ka(){mxShape.call(this)}function na(){mxCylinder.call(this)}function pa(){mxCylinder.call(this)}function la(){mxRectangleShape.call(this)}function Y(){mxDoubleEllipse.call(this)}function ba(){mxDoubleEllipse.call(this)}function R(){mxArrowConnector.call(this);this.spacing=0}function ra(){mxArrowConnector.call(this);this.spacing=0}function V(){mxActor.call(this)}function U(){mxRectangleShape.call(this)}function ma(){mxActor.call(this)}function ta(){mxActor.call(this)}
2698function S(){mxActor.call(this)}function ga(){mxActor.call(this)}function ja(){mxActor.call(this)}function ca(){mxActor.call(this)}function ua(){mxActor.call(this)}function Ca(){mxActor.call(this)}function P(){mxActor.call(this)}function fa(){mxActor.call(this)}function wa(){mxEllipse.call(this)}function xa(){mxEllipse.call(this)}function qa(){mxEllipse.call(this)}function za(){mxRhombus.call(this)}function Aa(){mxEllipse.call(this)}function Da(){mxEllipse.call(this)}function Ea(){mxEllipse.call(this)}
2699function Ka(){mxEllipse.call(this)}function Ba(){mxActor.call(this)}function Ha(){mxActor.call(this)}function Fa(){mxActor.call(this)}function X(b,d,f,c){mxShape.call(this);this.bounds=b;this.fill=d;this.stroke=f;this.strokewidth=null!=c?c:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function va(){mxConnector.call(this)}function Oa(b,d,f,c,e,g,l,k,m,q){l+=m;var z=c.clone();c.x-=e*(2*l+m);c.y-=g*(2*l+m);e*=l+m;g*=l+m;return function(){b.ellipse(z.x-
2700e-l,z.y-g-l,2*l,2*l);q?b.fillAndStroke():b.stroke()}}mxUtils.extend(b,mxSwimlane);b.prototype.getLabelBounds=function(b){return 0==this.getTitleSize()?mxShape.prototype.getLabelBounds.apply(this,arguments):mxSwimlane.prototype.getLabelBounds.apply(this,arguments)};b.prototype.paintVertexShape=function(b,d,f,c,e){0==this.getTitleSize()?mxRectangleShape.prototype.paintBackground.apply(this,arguments):(mxSwimlane.prototype.paintVertexShape.apply(this,arguments),b.translate(-d,-f));this.paintForeground(b,
2701d,f,c,e)};b.prototype.paintForeground=function(b,d,f,c,e){if(null!=this.state){var z=this.flipH,g=this.flipV;if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)var l=z,z=g,g=l;b.rotate(-this.getShapeRotation(),z,g,d+c/2,f+e/2);s=this.scale;d=this.bounds.x/s;f=this.bounds.y/s;c=this.bounds.width/s;e=this.bounds.height/s;this.paintTableForeground(b,d,f,c,e)}};b.prototype.paintTableForeground=function(b,d,f,c,e){var z=this.state.view.graph,g=z.getActualStartSize(this.state.cell),
2702l=z.model.getChildCells(this.state.cell,!0);if(0<l.length){var k="0"!=mxUtils.getValue(this.state.style,"rowLines","1"),m="0"!=mxUtils.getValue(this.state.style,"columnLines","1"),da=z.getCellGeometry(l[0]),sa=z.model.getChildCells(l[0],!0),sa=[{y:null!=da?da.y+da.height:0,x:0,cells:sa,colspans:[]}];if(k)for(k=1;k<l.length;k++){var da=z.getCellGeometry(l[k]),q={y:0,cells:z.model.getChildCells(l[k],!0),colspans:[]};sa.push(q);if(null!=da){q.y=da.y+da.height;b.begin();b.moveTo(d+g.x,f+da.y);for(var n=
27030,ya=0;ya<q.cells.length;ya++)z.model.isVisible(q.cells[ya])?n=q.x:(0<n&&b.lineTo(d+n-g.width,f+da.y),b.moveTo(d+da.x+da.width+g.x,f+da.y),n=0);b.lineTo(d+c-g.width,f+da.y);b.end();b.stroke()}}if(m)for(c=sa[0].cells,k=1;k<c.length;k++)if(da=z.getCellGeometry(c[k]),null!=da){b.begin();b.moveTo(d+da.x+g.x,f+g.y);for(var ya=l=0;ya<sa.length;ya++)q=sa[ya],m=1==k?parseInt(z.getCurrentCellStyle(q.cells[k-1],!0).colspan||1):sa[ya].colspans[k-1],q.colspans[k]=m-1,1>q.colspans[k]?(q.colspans[k]=parseInt(z.getCurrentCellStyle(q.cells[k],
2704!0).colspan||1),l=q.y):(0<l&&b.lineTo(d+da.x+g.x,f+l-g.height),b.moveTo(d+da.x+g.x,f+q.y),l=0);b.lineTo(d+da.x+g.x,f+e-g.height);b.end();b.stroke()}}};mxCellRenderer.registerShape("table",b);mxUtils.extend(c,mxCylinder);c.prototype.size=20;c.prototype.darkOpacity=0;c.prototype.darkOpacity2=0;c.prototype.paintVertexShape=function(b,d,f,c,e){var z=Math.max(0,Math.min(c,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),g=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,
2705"darkOpacity",this.darkOpacity)))),l=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity2",this.darkOpacity2))));b.translate(d,f);b.begin();b.moveTo(0,0);b.lineTo(c-z,0);b.lineTo(c,z);b.lineTo(c,e);b.lineTo(z,e);b.lineTo(0,e-z);b.lineTo(0,0);b.close();b.end();b.fillAndStroke();this.outline||(b.setShadow(!1),0!=g&&(b.setFillAlpha(Math.abs(g)),b.setFillColor(0>g?"#FFFFFF":"#000000"),b.begin(),b.moveTo(0,0),b.lineTo(c-z,0),b.lineTo(c,z),b.lineTo(z,z),b.close(),b.fill()),0!=l&&
2706(b.setFillAlpha(Math.abs(l)),b.setFillColor(0>l?"#FFFFFF":"#000000"),b.begin(),b.moveTo(0,0),b.lineTo(z,z),b.lineTo(z,e),b.lineTo(0,e-z),b.close(),b.fill()),b.begin(),b.moveTo(z,e),b.lineTo(z,z),b.lineTo(0,0),b.moveTo(z,z),b.lineTo(c,z),b.end(),b.stroke())};c.prototype.getLabelMargins=function(b){return mxUtils.getValue(this.style,"boundedLbl",!1)?(b=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(b,b,0,0)):null};mxCellRenderer.registerShape("cube",c);var La=Math.tan(mxUtils.toRadians(30)),
2707Ja=(.5-La)/2;mxCellRenderer.registerShape("isoRectangle",k);mxUtils.extend(e,mxCylinder);e.prototype.size=6;e.prototype.paintVertexShape=function(b,d,f,c,e){b.setFillColor(this.stroke);var z=Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size))-2)+2*this.strokewidth;b.ellipse(d+.5*(c-z),f+.5*(e-z),z,z);b.fill();b.setFillColor(mxConstants.NONE);b.rect(d,f,c,e);b.fill()};mxCellRenderer.registerShape("waypoint",e);mxUtils.extend(k,mxActor);k.prototype.size=20;k.prototype.redrawPath=function(b,
2708d,f,c,e){d=Math.min(c,e/La);b.translate((c-d)/2,(e-d)/2+d/4);b.moveTo(0,.25*d);b.lineTo(.5*d,d*Ja);b.lineTo(d,.25*d);b.lineTo(.5*d,(.5-Ja)*d);b.lineTo(0,.25*d);b.close();b.end()};mxCellRenderer.registerShape("isoRectangle",k);mxUtils.extend(g,mxCylinder);g.prototype.size=20;g.prototype.redrawPath=function(b,d,f,c,e,g){d=Math.min(c,e/(.5+La));g?(b.moveTo(0,.25*d),b.lineTo(.5*d,(.5-Ja)*d),b.lineTo(d,.25*d),b.moveTo(.5*d,(.5-Ja)*d),b.lineTo(.5*d,(1-Ja)*d)):(b.translate((c-d)/2,(e-d)/2),b.moveTo(0,.25*
2709d),b.lineTo(.5*d,d*Ja),b.lineTo(d,.25*d),b.lineTo(d,.75*d),b.lineTo(.5*d,(1-Ja)*d),b.lineTo(0,.75*d),b.close());b.end()};mxCellRenderer.registerShape("isoCube",g);mxUtils.extend(p,mxCylinder);p.prototype.redrawPath=function(b,d,f,c,e,g){d=Math.min(e/2,Math.round(e/8)+this.strokewidth-1);if(g&&null!=this.fill||!g&&null==this.fill)b.moveTo(0,d),b.curveTo(0,2*d,c,2*d,c,d),g||(b.stroke(),b.begin()),b.translate(0,d/2),b.moveTo(0,d),b.curveTo(0,2*d,c,2*d,c,d),g||(b.stroke(),b.begin()),b.translate(0,d/2),
2710b.moveTo(0,d),b.curveTo(0,2*d,c,2*d,c,d),g||(b.stroke(),b.begin()),b.translate(0,-d);g||(b.moveTo(0,d),b.curveTo(0,-d/3,c,-d/3,c,d),b.lineTo(c,e-d),b.curveTo(c,e+d/3,0,e+d/3,0,e-d),b.close())};p.prototype.getLabelMargins=function(b){return new mxRectangle(0,2.5*Math.min(b.height/2,Math.round(b.height/8)+this.strokewidth-1),0,0)};mxCellRenderer.registerShape("datastore",p);mxUtils.extend(t,mxCylinder);t.prototype.size=30;t.prototype.darkOpacity=0;t.prototype.paintVertexShape=function(b,d,f,c,e){var z=
2711Math.max(0,Math.min(c,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),g=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity))));b.translate(d,f);b.begin();b.moveTo(0,0);b.lineTo(c-z,0);b.lineTo(c,z);b.lineTo(c,e);b.lineTo(0,e);b.lineTo(0,0);b.close();b.end();b.fillAndStroke();this.outline||(b.setShadow(!1),0!=g&&(b.setFillAlpha(Math.abs(g)),b.setFillColor(0>g?"#FFFFFF":"#000000"),b.begin(),b.moveTo(c-z,0),b.lineTo(c-z,z),b.lineTo(c,
2712z),b.close(),b.fill()),b.begin(),b.moveTo(c-z,0),b.lineTo(c-z,z),b.lineTo(c,z),b.end(),b.stroke())};mxCellRenderer.registerShape("note",t);mxUtils.extend(d,t);mxCellRenderer.registerShape("note2",d);d.prototype.getLabelMargins=function(b){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(b.height*this.scale,d*this.scale),0,0)}return null};mxUtils.extend(f,mxShape);f.prototype.isoAngle=15;f.prototype.paintVertexShape=function(b,
2713d,f,c,e){var z=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,z=Math.min(c*Math.tan(z),.5*e);b.translate(d,f);b.begin();b.moveTo(.5*c,0);b.lineTo(c,z);b.lineTo(c,e-z);b.lineTo(.5*c,e);b.lineTo(0,e-z);b.lineTo(0,z);b.close();b.fillAndStroke();b.setShadow(!1);b.begin();b.moveTo(0,z);b.lineTo(.5*c,2*z);b.lineTo(c,z);b.moveTo(.5*c,2*z);b.lineTo(.5*c,e);b.stroke()};mxCellRenderer.registerShape("isoCube2",f);mxUtils.extend(l,mxShape);l.prototype.size=
271415;l.prototype.paintVertexShape=function(b,d,f,c,e){var z=Math.max(0,Math.min(.5*e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b.translate(d,f);0==z?(b.rect(0,0,c,e),b.fillAndStroke()):(b.begin(),b.moveTo(0,z),b.arcTo(.5*c,z,0,0,1,.5*c,0),b.arcTo(.5*c,z,0,0,1,c,z),b.lineTo(c,e-z),b.arcTo(.5*c,z,0,0,1,.5*c,e),b.arcTo(.5*c,z,0,0,1,0,e-z),b.close(),b.fillAndStroke(),b.setShadow(!1),b.begin(),b.moveTo(c,z),b.arcTo(.5*c,z,0,0,1,.5*c,2*z),b.arcTo(.5*c,z,0,0,1,0,z),b.stroke())};mxCellRenderer.registerShape("cylinder2",
2715l);mxUtils.extend(q,mxCylinder);q.prototype.size=15;q.prototype.paintVertexShape=function(b,d,f,c,e){var z=Math.max(0,Math.min(.5*e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),g=mxUtils.getValue(this.style,"lid",!0);b.translate(d,f);0==z?(b.rect(0,0,c,e),b.fillAndStroke()):(b.begin(),g?(b.moveTo(0,z),b.arcTo(.5*c,z,0,0,1,.5*c,0),b.arcTo(.5*c,z,0,0,1,c,z)):(b.moveTo(0,0),b.arcTo(.5*c,z,0,0,0,.5*c,z),b.arcTo(.5*c,z,0,0,0,c,0)),b.lineTo(c,e-z),b.arcTo(.5*c,z,0,0,1,.5*c,e),b.arcTo(.5*
2716c,z,0,0,1,0,e-z),b.close(),b.fillAndStroke(),b.setShadow(!1),g&&(b.begin(),b.moveTo(c,z),b.arcTo(.5*c,z,0,0,1,.5*c,2*z),b.arcTo(.5*c,z,0,0,1,0,z),b.stroke()))};mxCellRenderer.registerShape("cylinder3",q);mxUtils.extend(m,mxActor);m.prototype.redrawPath=function(b,d,f,c,e){b.moveTo(0,0);b.quadTo(c/2,.5*e,c,0);b.quadTo(.5*c,e/2,c,e);b.quadTo(c/2,.5*e,0,e);b.quadTo(.5*c,e/2,0,0);b.end()};mxCellRenderer.registerShape("switch",m);mxUtils.extend(n,mxCylinder);n.prototype.tabWidth=60;n.prototype.tabHeight=
271720;n.prototype.tabPosition="right";n.prototype.arcSize=.1;n.prototype.paintVertexShape=function(b,d,f,c,e){b.translate(d,f);d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));var z=mxUtils.getValue(this.style,"tabPosition",this.tabPosition),g=mxUtils.getValue(this.style,"rounded",!1),l=mxUtils.getValue(this.style,"absoluteArcSize",!1),k=parseFloat(mxUtils.getValue(this.style,
2718"arcSize",this.arcSize));l||(k*=Math.min(c,e));k=Math.min(k,.5*c,.5*(e-f));d=Math.max(d,k);d=Math.min(c-k,d);g||(k=0);b.begin();"left"==z?(b.moveTo(Math.max(k,0),f),b.lineTo(Math.max(k,0),0),b.lineTo(d,0),b.lineTo(d,f)):(b.moveTo(c-d,f),b.lineTo(c-d,0),b.lineTo(c-Math.max(k,0),0),b.lineTo(c-Math.max(k,0),f));g?(b.moveTo(0,k+f),b.arcTo(k,k,0,0,1,k,f),b.lineTo(c-k,f),b.arcTo(k,k,0,0,1,c,k+f),b.lineTo(c,e-k),b.arcTo(k,k,0,0,1,c-k,e),b.lineTo(k,e),b.arcTo(k,k,0,0,1,0,e-k)):(b.moveTo(0,f),b.lineTo(c,f),
2719b.lineTo(c,e),b.lineTo(0,e));b.close();b.fillAndStroke();b.setShadow(!1);"triangle"==mxUtils.getValue(this.style,"folderSymbol",null)&&(b.begin(),b.moveTo(c-30,f+20),b.lineTo(c-20,f+10),b.lineTo(c-10,f+20),b.close(),b.stroke())};mxCellRenderer.registerShape("folder",n);n.prototype.getLabelMargins=function(b){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,"labelInHeader",!1)){var f=mxUtils.getValue(this.style,
2720"tabWidth",15)*this.scale,d=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,c=mxUtils.getValue(this.style,"rounded",!1),e=mxUtils.getValue(this.style,"absoluteArcSize",!1),z=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));e||(z*=Math.min(b.width,b.height));z=Math.min(z,.5*b.width,.5*(b.height-d));c||(z=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(z,0,Math.min(b.width,b.width-f),Math.min(b.height,b.height-d)):new mxRectangle(Math.min(b.width,
2721b.width-f),0,z,Math.min(b.height,b.height-d))}return new mxRectangle(0,Math.min(b.height,d),0,0)}return null};mxUtils.extend(u,mxCylinder);u.prototype.arcSize=.1;u.prototype.paintVertexShape=function(b,d,f,c,e){b.translate(d,f);var z=mxUtils.getValue(this.style,"rounded",!1),g=mxUtils.getValue(this.style,"absoluteArcSize",!1);d=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));f=mxUtils.getValue(this.style,"umlStateConnection",null);g||(d*=Math.min(c,e));d=Math.min(d,.5*c,.5*e);z||(d=
27220);z=0;null!=f&&(z=10);b.begin();b.moveTo(z,d);b.arcTo(d,d,0,0,1,z+d,0);b.lineTo(c-d,0);b.arcTo(d,d,0,0,1,c,d);b.lineTo(c,e-d);b.arcTo(d,d,0,0,1,c-d,e);b.lineTo(z+d,e);b.arcTo(d,d,0,0,1,z,e-d);b.close();b.fillAndStroke();b.setShadow(!1);"collapseState"==mxUtils.getValue(this.style,"umlStateSymbol",null)&&(b.roundrect(c-40,e-20,10,10,3,3),b.stroke(),b.roundrect(c-20,e-20,10,10,3,3),b.stroke(),b.begin(),b.moveTo(c-30,e-15),b.lineTo(c-20,e-15),b.stroke());"connPointRefEntry"==f?(b.ellipse(0,.5*e-10,
272320,20),b.fillAndStroke()):"connPointRefExit"==f&&(b.ellipse(0,.5*e-10,20,20),b.fillAndStroke(),b.begin(),b.moveTo(5,.5*e-5),b.lineTo(15,.5*e+5),b.moveTo(15,.5*e-5),b.lineTo(5,.5*e+5),b.stroke())};u.prototype.getLabelMargins=function(b){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};mxCellRenderer.registerShape("umlState",u);mxUtils.extend(v,mxActor);v.prototype.size=30;v.prototype.isRoundable=
2724function(){return!0};v.prototype.redrawPath=function(b,d,f,c,e){d=Math.max(0,Math.min(c,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(d,0),new mxPoint(c,0),new mxPoint(c,e),new mxPoint(0,e),new mxPoint(0,d)],this.isRounded,f,!0);b.end()};mxCellRenderer.registerShape("card",v);mxUtils.extend(y,mxActor);y.prototype.size=.4;y.prototype.redrawPath=function(b,d,f,
2725c,e){d=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b.moveTo(0,d/2);b.quadTo(c/4,1.4*d,c/2,d/2);b.quadTo(3*c/4,d*(1-1.4),c,d/2);b.lineTo(c,e-d/2);b.quadTo(3*c/4,e-1.4*d,c/2,e-d/2);b.quadTo(c/4,e-d*(1-1.4),0,e-d/2);b.lineTo(0,d/2);b.close();b.end()};y.prototype.getLabelBounds=function(b){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"size",this.size),f=b.width,c=b.height;if(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||
2726this.direction==mxConstants.DIRECTION_WEST)return d*=c,new mxRectangle(b.x,b.y+d,f,c-2*d);d*=f;return new mxRectangle(b.x+d,b.y,f-2*d,c)}return b};mxCellRenderer.registerShape("tape",y);mxUtils.extend(x,mxActor);x.prototype.size=.3;x.prototype.getLabelMargins=function(b){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*b.height):null};x.prototype.redrawPath=function(b,d,f,c,e){d=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
2727"size",this.size))));b.moveTo(0,0);b.lineTo(c,0);b.lineTo(c,e-d/2);b.quadTo(3*c/4,e-1.4*d,c/2,e-d/2);b.quadTo(c/4,e-d*(1-1.4),0,e-d/2);b.lineTo(0,d/2);b.close();b.end()};mxCellRenderer.registerShape("document",x);var $a=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(b,d,f,c){var e=mxUtils.getValue(this.style,"size");return null!=e?c*Math.max(0,Math.min(1,e)):$a.apply(this,arguments)};mxCylinder.prototype.getLabelMargins=function(b){if(mxUtils.getValue(this.style,
2728"boundedLbl",!1)){var d=2*mxUtils.getValue(this.style,"size",.15);return new mxRectangle(0,Math.min(this.maxHeight*this.scale,b.height*d),0,0)}return null};q.prototype.getLabelMargins=function(b){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"size",15);mxUtils.getValue(this.style,"lid",!0)||(d/=2);return new mxRectangle(0,Math.min(b.height*this.scale,2*d*this.scale),0,Math.max(0,.3*d*this.scale))}return null};n.prototype.getLabelMargins=function(b){if(mxUtils.getValue(this.style,
2729"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,"labelInHeader",!1)){var f=mxUtils.getValue(this.style,"tabWidth",15)*this.scale,d=mxUtils.getValue(this.style,"tabHeight",15)*this.scale,c=mxUtils.getValue(this.style,"rounded",!1),e=mxUtils.getValue(this.style,"absoluteArcSize",!1),z=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));e||(z*=Math.min(b.width,b.height));z=Math.min(z,.5*b.width,.5*(b.height-d));c||(z=0);return"left"==
2730mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(z,0,Math.min(b.width,b.width-f),Math.min(b.height,b.height-d)):new mxRectangle(Math.min(b.width,b.width-f),0,z,Math.min(b.height,b.height-d))}return new mxRectangle(0,Math.min(b.height,d),0,0)}return null};u.prototype.getLabelMargins=function(b){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};d.prototype.getLabelMargins=
2731function(b){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(b.height*this.scale,d*this.scale),0,Math.max(0,d*this.scale))}return null};mxUtils.extend(D,mxActor);D.prototype.size=.2;D.prototype.fixedSize=20;D.prototype.isRoundable=function(){return!0};D.prototype.redrawPath=function(b,d,f,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):
2732c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e),new mxPoint(d,0),new mxPoint(c,0),new mxPoint(c-d,e)],this.isRounded,f,!0);b.end()};mxCellRenderer.registerShape("parallelogram",D);mxUtils.extend(I,mxActor);I.prototype.size=.2;I.prototype.fixedSize=20;I.prototype.isRoundable=function(){return!0};I.prototype.redrawPath=function(b,d,f,c,e){d="0"!=
2733mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e),new mxPoint(d,0),new mxPoint(c-d,0),new mxPoint(c,e)],this.isRounded,f,!0)};mxCellRenderer.registerShape("trapezoid",I);mxUtils.extend(B,mxActor);B.prototype.size=
2734.5;B.prototype.redrawPath=function(b,d,f,c,e){b.setFillColor(null);d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(c,0),new mxPoint(d,0),new mxPoint(d,e/2),new mxPoint(0,e/2),new mxPoint(d,e/2),new mxPoint(d,e),new mxPoint(c,e)],this.isRounded,f,!1);b.end()};mxCellRenderer.registerShape("curlyBracket",B);mxUtils.extend(F,mxActor);F.prototype.redrawPath=
2735function(b,d,f,c,e){b.setStrokeWidth(1);b.setFillColor(this.stroke);d=c/5;b.rect(0,0,d,e);b.fillAndStroke();b.rect(2*d,0,d,e);b.fillAndStroke();b.rect(4*d,0,d,e);b.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",F);M.prototype.moveTo=function(b,d){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;this.firstX=b;this.firstY=d};M.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas,
2736arguments));this.originalClose.apply(this.canvas,arguments)};M.prototype.quadTo=function(b,d,f,c){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=f;this.lastY=c};M.prototype.curveTo=function(b,d,f,c,e,g){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=e;this.lastY=g};M.prototype.arcTo=function(b,d,f,c,e,g,l){this.originalArcTo.apply(this.canvas,arguments);this.lastX=g;this.lastY=l};M.prototype.lineTo=function(b,d){if(null!=this.lastX&&null!=this.lastY){var f=function(b){return"number"===
2737typeof b?b?0>b?-1:1:b===b?0:NaN:NaN},c=Math.abs(b-this.lastX),e=Math.abs(d-this.lastY),z=Math.sqrt(c*c+e*e);if(2>z){this.originalLineTo.apply(this.canvas,arguments);this.lastX=b;this.lastY=d;return}var g=Math.round(z/10),l=this.defaultVariation;5>g&&(g=5,l/=3);for(var k=f(b-this.lastX)*c/g,f=f(d-this.lastY)*e/g,c=c/z,e=e/z,z=0;z<g;z++){var m=(Math.random()-.5)*l;this.originalLineTo.call(this.canvas,k*z+this.lastX-m*e,f*z+this.lastY-m*c)}this.originalLineTo.call(this.canvas,b,d)}else this.originalLineTo.apply(this.canvas,
2738arguments);this.lastX=b;this.lastY=d};M.prototype.destroy=function(){this.canvas.lineTo=this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo};mxShape.prototype.defaultJiggle=1.5;var ab=mxShape.prototype.beforePaint;mxShape.prototype.beforePaint=function(b){ab.apply(this,arguments);null==b.handJiggle&&(b.handJiggle=this.createHandJiggle(b))};
2739var bb=mxShape.prototype.afterPaint;mxShape.prototype.afterPaint=function(b){bb.apply(this,arguments);null!=b.handJiggle&&(b.handJiggle.destroy(),delete b.handJiggle)};mxShape.prototype.createComicCanvas=function(b){return new M(b,mxUtils.getValue(this.style,"jiggle",this.defaultJiggle))};mxShape.prototype.createHandJiggle=function(b){return this.outline||null==this.style||"0"==mxUtils.getValue(this.style,"comic","0")?null:this.createComicCanvas(b)};mxRhombus.prototype.defaultJiggle=2;var cb=mxRectangleShape.prototype.isHtmlAllowed;
2740mxRectangleShape.prototype.isHtmlAllowed=function(){return!this.outline&&(null==this.style||"0"==mxUtils.getValue(this.style,"comic","0")&&"0"==mxUtils.getValue(this.style,"sketch","1"==urlParams.rough?"1":"0"))&&cb.apply(this,arguments)};var fb=mxRectangleShape.prototype.paintBackground;mxRectangleShape.prototype.paintBackground=function(b,d,f,c,e){if(null==b.handJiggle||b.handJiggle.constructor!=M)fb.apply(this,arguments);else{var z=!0;null!=this.style&&(z="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,
2741"1"));if(z||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)z||null!=this.fill&&this.fill!=mxConstants.NONE||(b.pointerEvents=!1),b.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?z=Math.min(c/2,Math.min(e/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(z=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,z=Math.min(c*
2742z,e*z)),b.moveTo(d+z,f),b.lineTo(d+c-z,f),b.quadTo(d+c,f,d+c,f+z),b.lineTo(d+c,f+e-z),b.quadTo(d+c,f+e,d+c-z,f+e),b.lineTo(d+z,f+e),b.quadTo(d,f+e,d,f+e-z),b.lineTo(d,f+z),b.quadTo(d,f,d+z,f)):(b.moveTo(d,f),b.lineTo(d+c,f),b.lineTo(d+c,f+e),b.lineTo(d,f+e),b.lineTo(d,f)),b.close(),b.end(),b.fillAndStroke()}};mxUtils.extend(E,mxRectangleShape);E.prototype.size=.1;E.prototype.fixedSize=!1;E.prototype.isHtmlAllowed=function(){return!1};E.prototype.getLabelBounds=function(b){if(mxUtils.getValue(this.state.style,
2743mxConstants.STYLE_HORIZONTAL,!0)==(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)){var d=b.width,f=b.height;b=new mxRectangle(b.x,b.y,d,f);var c=d*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,c=Math.max(c,Math.min(d*e,f*e));b.x+=Math.round(c);b.width-=Math.round(2*c)}return b};
2744E.prototype.paintForeground=function(b,d,f,c,e){var z=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),g=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=z?Math.max(0,Math.min(c,g)):c*Math.max(0,Math.min(1,g));this.isRounded&&(z=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,g=Math.max(g,Math.min(c*z,e*z)));g=Math.round(g);b.begin();b.moveTo(d+g,f);b.lineTo(d+g,f+e);b.moveTo(d+c-g,f);b.lineTo(d+c-g,f+e);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,
2745arguments)};mxCellRenderer.registerShape("process",E);mxCellRenderer.registerShape("process2",E);mxUtils.extend(K,mxRectangleShape);K.prototype.paintBackground=function(b,d,f,c,e){b.setFillColor(mxConstants.NONE);b.rect(d,f,c,e);b.fill()};K.prototype.paintForeground=function(b,d,f,c,e){};mxCellRenderer.registerShape("transparent",K);mxUtils.extend(C,mxHexagon);C.prototype.size=30;C.prototype.position=.5;C.prototype.position2=.5;C.prototype.base=20;C.prototype.getLabelMargins=function(){return new mxRectangle(0,
27460,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};C.prototype.isRoundable=function(){return!0};C.prototype.redrawPath=function(b,d,f,c,e){d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var z=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),g=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",
2747this.position2)))),l=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"base",this.base))));this.addPoints(b,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,e-f),new mxPoint(Math.min(c,z+l),e-f),new mxPoint(g,e),new mxPoint(Math.max(0,z),e-f),new mxPoint(0,e-f)],this.isRounded,d,!0,[4])};mxCellRenderer.registerShape("callout",C);mxUtils.extend(L,mxActor);L.prototype.size=.2;L.prototype.fixedSize=20;L.prototype.isRoundable=function(){return!0};L.prototype.redrawPath=function(b,d,f,c,e){d=
2748"0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,0),new mxPoint(c-d,0),new mxPoint(c,e/2),new mxPoint(c-d,e),new mxPoint(0,e),new mxPoint(d,e/2)],this.isRounded,f,!0);b.end()};mxCellRenderer.registerShape("step",L);
2749mxUtils.extend(O,mxHexagon);O.prototype.size=.25;O.prototype.fixedSize=20;O.prototype.isRoundable=function(){return!0};O.prototype.redrawPath=function(b,d,f,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(d,
27500),new mxPoint(c-d,0),new mxPoint(c,.5*e),new mxPoint(c-d,e),new mxPoint(d,e),new mxPoint(0,.5*e)],this.isRounded,f,!0)};mxCellRenderer.registerShape("hexagon",O);mxUtils.extend(ea,mxRectangleShape);ea.prototype.isHtmlAllowed=function(){return!1};ea.prototype.paintForeground=function(b,d,f,c,e){var g=Math.min(c/5,e/5)+1;b.begin();b.moveTo(d+c/2,f+g);b.lineTo(d+c/2,f+e-g);b.moveTo(d+g,f+e/2);b.lineTo(d+c-g,f+e/2);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};
2751mxCellRenderer.registerShape("plus",ea);var Ya=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(b){if(1==this.style["double"]){var d=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(b.x+d,b.y+d,b.width-2*d,b.height-2*d)}return b};mxRhombus.prototype.paintVertexShape=function(b,d,f,c,e){Ya.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var g=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||
27520);d+=g;f+=g;c-=2*g;e-=2*g;0<c&&0<e&&(b.setShadow(!1),Ya.apply(this,[b,d,f,c,e]))}};mxUtils.extend(N,mxRectangleShape);N.prototype.isHtmlAllowed=function(){return!1};N.prototype.getLabelBounds=function(b){if(1==this.style["double"]){var d=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(b.x+d,b.y+d,b.width-2*d,b.height-2*d)}return b};N.prototype.paintForeground=function(b,d,f,c,e){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var g=
2753Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0);d+=g;f+=g;c-=2*g;e-=2*g;0<c&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}b.setDashed(!1);var g=0,z;do{z=mxCellRenderer.defaultShapes[this.style["symbol"+g]];if(null!=z){var l=this.style["symbol"+g+"Align"],k=this.style["symbol"+g+"VerticalAlign"],m=this.style["symbol"+g+"Width"],q=this.style["symbol"+g+"Height"],n=this.style["symbol"+g+"Spacing"]||0,H=this.style["symbol"+g+"VSpacing"]||n,da=
2754this.style["symbol"+g+"ArcSpacing"];null!=da&&(da*=this.getArcSize(c+this.strokewidth,e+this.strokewidth),n+=da,H+=da);var da=d,sa=f,da=l==mxConstants.ALIGN_CENTER?da+(c-m)/2:l==mxConstants.ALIGN_RIGHT?da+(c-m-n):da+n,sa=k==mxConstants.ALIGN_MIDDLE?sa+(e-q)/2:k==mxConstants.ALIGN_BOTTOM?sa+(e-q-H):sa+H;b.save();l=new z;l.style=this.style;z.prototype.paintVertexShape.call(l,b,da,sa,m,q);b.restore()}g++}while(null!=z)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",
2755N);mxUtils.extend(Q,mxCylinder);Q.prototype.redrawPath=function(b,d,f,c,e,g){g?(b.moveTo(0,0),b.lineTo(c/2,e/2),b.lineTo(c,0),b.end()):(b.moveTo(0,0),b.lineTo(c,0),b.lineTo(c,e),b.lineTo(0,e),b.close())};mxCellRenderer.registerShape("message",Q);mxUtils.extend(T,mxShape);T.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);b.ellipse(c/4,0,c/2,e/4);b.fillAndStroke();b.begin();b.moveTo(c/2,e/4);b.lineTo(c/2,2*e/3);b.moveTo(c/2,e/3);b.lineTo(0,e/3);b.moveTo(c/2,e/3);b.lineTo(c,e/3);b.moveTo(c/
27562,2*e/3);b.lineTo(0,e);b.moveTo(c/2,2*e/3);b.lineTo(c,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlActor",T);mxUtils.extend(H,mxShape);H.prototype.getLabelMargins=function(b){return new mxRectangle(b.width/6,0,0,0)};H.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);b.begin();b.moveTo(0,e/4);b.lineTo(0,3*e/4);b.end();b.stroke();b.begin();b.moveTo(0,e/2);b.lineTo(c/6,e/2);b.end();b.stroke();b.ellipse(c/6,0,5*c/6,e);b.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",
2757H);mxUtils.extend(J,mxEllipse);J.prototype.paintVertexShape=function(b,d,f,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+c/8,f+e);b.lineTo(d+7*c/8,f+e);b.end();b.stroke()};mxCellRenderer.registerShape("umlEntity",J);mxUtils.extend(A,mxShape);A.prototype.paintVertexShape=function(b,d,f,c,e){b.translate(d,f);b.begin();b.moveTo(c,0);b.lineTo(0,e);b.moveTo(0,0);b.lineTo(c,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlDestroy",A);mxUtils.extend(Z,mxShape);
2758Z.prototype.getLabelBounds=function(b){return new mxRectangle(b.x,b.y+b.height/8,b.width,7*b.height/8)};Z.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);b.begin();b.moveTo(3*c/8,e/8*1.1);b.lineTo(5*c/8,0);b.end();b.stroke();b.ellipse(0,e/8,c,7*e/8);b.fillAndStroke()};Z.prototype.paintForeground=function(b,d,f,c,e){b.begin();b.moveTo(3*c/8,e/8*1.1);b.lineTo(5*c/8,e/4);b.end();b.stroke()};mxCellRenderer.registerShape("umlControl",Z);mxUtils.extend(G,mxRectangleShape);G.prototype.size=
275940;G.prototype.isHtmlAllowed=function(){return!1};G.prototype.getLabelBounds=function(b){var d=Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale));return new mxRectangle(b.x,b.y,b.width,d)};G.prototype.paintBackground=function(b,d,f,c,e){var g=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),l=mxUtils.getValue(this.style,"participant");null==l||null==this.state?mxRectangleShape.prototype.paintBackground.call(this,b,d,
2760f,c,g):(l=this.state.view.graph.cellRenderer.getShape(l),null!=l&&l!=G&&(l=new l,l.apply(this.state),b.save(),l.paintVertexShape(b,d,f,c,g),b.restore()));g<e&&(b.setDashed("1"==mxUtils.getValue(this.style,"lifelineDashed","1")),b.begin(),b.moveTo(d+c/2,f+g),b.lineTo(d+c/2,f+e),b.end(),b.stroke())};G.prototype.paintForeground=function(b,d,f,c,e){var g=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));mxRectangleShape.prototype.paintForeground.call(this,b,d,f,c,Math.min(e,
2761g))};mxCellRenderer.registerShape("umlLifeline",G);mxUtils.extend(W,mxShape);W.prototype.width=60;W.prototype.height=30;W.prototype.corner=10;W.prototype.getLabelMargins=function(b){return new mxRectangle(0,0,b.width-parseFloat(mxUtils.getValue(this.style,"width",this.width)*this.scale),b.height-parseFloat(mxUtils.getValue(this.style,"height",this.height)*this.scale))};W.prototype.paintBackground=function(b,d,f,c,e){var g=this.corner,l=Math.min(c,Math.max(g,parseFloat(mxUtils.getValue(this.style,
2762"width",this.width)))),z=Math.min(e,Math.max(1.5*g,parseFloat(mxUtils.getValue(this.style,"height",this.height)))),k=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE);k!=mxConstants.NONE&&(b.setFillColor(k),b.rect(d,f,c,e),b.fill());null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE?(this.getGradientBounds(b,d,f,c,e),b.setGradient(this.fill,this.gradient,d,f,c,e,this.gradientDirection)):b.setFillColor(this.fill);b.begin();
2763b.moveTo(d,f);b.lineTo(d+l,f);b.lineTo(d+l,f+Math.max(0,z-1.5*g));b.lineTo(d+Math.max(0,l-g),f+z);b.lineTo(d,f+z);b.close();b.fillAndStroke();b.begin();b.moveTo(d+l,f);b.lineTo(d+c,f);b.lineTo(d+c,f+e);b.lineTo(d,f+e);b.lineTo(d,f+z);b.stroke()};mxCellRenderer.registerShape("umlFrame",W);mxPerimeter.CenterPerimeter=function(b,d,f,c){return new mxPoint(b.getCenterX(),b.getCenterY())};mxStyleRegistry.putValue("centerPerimeter",mxPerimeter.CenterPerimeter);mxPerimeter.LifelinePerimeter=function(b,d,
2764f,c){c=G.prototype.size;null!=d&&(c=mxUtils.getValue(d.style,"size",c)*d.view.scale);d=parseFloat(d.style[mxConstants.STYLE_STROKEWIDTH]||1)*d.view.scale/2-1;f.x<b.getCenterX()&&(d=-1*(d+1));return new mxPoint(b.getCenterX()+d,Math.min(b.y+b.height,Math.max(b.y+c,f.y)))};mxStyleRegistry.putValue("lifelinePerimeter",mxPerimeter.LifelinePerimeter);mxPerimeter.OrthogonalPerimeter=function(b,d,f,c){c=!0;return mxPerimeter.RectanglePerimeter.apply(this,arguments)};mxStyleRegistry.putValue("orthogonalPerimeter",
2765mxPerimeter.OrthogonalPerimeter);mxPerimeter.BackbonePerimeter=function(b,d,f,c){c=parseFloat(d.style[mxConstants.STYLE_STROKEWIDTH]||1)*d.view.scale/2-1;null!=d.style.backboneSize&&(c+=parseFloat(d.style.backboneSize)*d.view.scale/2-1);if("south"==d.style[mxConstants.STYLE_DIRECTION]||"north"==d.style[mxConstants.STYLE_DIRECTION])return f.x<b.getCenterX()&&(c=-1*(c+1)),new mxPoint(b.getCenterX()+c,Math.min(b.y+b.height,Math.max(b.y,f.y)));f.y<b.getCenterY()&&(c=-1*(c+1));return new mxPoint(Math.min(b.x+
2766b.width,Math.max(b.x,f.x)),b.getCenterY()+c)};mxStyleRegistry.putValue("backbonePerimeter",mxPerimeter.BackbonePerimeter);mxPerimeter.CalloutPerimeter=function(b,d,f,c){return mxPerimeter.RectanglePerimeter(mxUtils.getDirectedBounds(b,new mxRectangle(0,0,0,Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(d.style,"size",C.prototype.size))*d.view.scale))),d.style),d,f,c)};mxStyleRegistry.putValue("calloutPerimeter",mxPerimeter.CalloutPerimeter);mxPerimeter.ParallelogramPerimeter=function(b,
2767d,f,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),g=e?D.prototype.fixedSize:D.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,"size",g));e&&(g*=d.view.scale);var l=b.x,z=b.y,k=b.width,m=b.height;d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH?(e=e?Math.max(0,Math.min(m,g)):m*Math.max(0,Math.min(1,g)),z=[new mxPoint(l,z),new mxPoint(l+k,z+e),new mxPoint(l+
2768k,z+m),new mxPoint(l,z+m-e),new mxPoint(l,z)]):(e=e?Math.max(0,Math.min(.5*k,g)):k*Math.max(0,Math.min(1,g)),z=[new mxPoint(l+e,z),new mxPoint(l+k,z),new mxPoint(l+k-e,z+m),new mxPoint(l,z+m),new mxPoint(l+e,z)]);m=b.getCenterX();b=b.getCenterY();b=new mxPoint(m,b);c&&(f.x<l||f.x>l+k?b.y=f.y:b.x=f.x);return mxUtils.getPerimeterPoint(z,b,f)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(b,d,f,c){var e="0"!=mxUtils.getValue(d.style,
2769"fixedSize","0"),g=e?I.prototype.fixedSize:I.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,"size",g));e&&(g*=d.view.scale);var l=b.x,z=b.y,k=b.width,m=b.height;d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(.5*k,g)):k*Math.max(0,Math.min(1,g)),z=[new mxPoint(l+e,z),new mxPoint(l+k-e,z),new mxPoint(l+k,z+m),new mxPoint(l,z+m),new mxPoint(l+e,z)]):d==mxConstants.DIRECTION_WEST?
2770(e=e?Math.max(0,Math.min(k,g)):k*Math.max(0,Math.min(1,g)),z=[new mxPoint(l,z),new mxPoint(l+k,z),new mxPoint(l+k-e,z+m),new mxPoint(l+e,z+m),new mxPoint(l,z)]):d==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(m,g)):m*Math.max(0,Math.min(1,g)),z=[new mxPoint(l,z+e),new mxPoint(l+k,z),new mxPoint(l+k,z+m),new mxPoint(l,z+m-e),new mxPoint(l,z+e)]):(e=e?Math.max(0,Math.min(m,g)):m*Math.max(0,Math.min(1,g)),z=[new mxPoint(l,z),new mxPoint(l+k,z+e),new mxPoint(l+k,z+m-e),new mxPoint(l,z+m),new mxPoint(l,
2771z)]);m=b.getCenterX();b=b.getCenterY();b=new mxPoint(m,b);c&&(f.x<l||f.x>l+k?b.y=f.y:b.x=f.x);return mxUtils.getPerimeterPoint(z,b,f)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(b,d,f,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),g=e?L.prototype.fixedSize:L.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,"size",g));e&&(g*=d.view.scale);var l=b.x,z=b.y,k=b.width,m=b.height,q=b.getCenterX();b=b.getCenterY();d=null!=
2772d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(k,g)):k*Math.max(0,Math.min(1,g)),z=[new mxPoint(l,z),new mxPoint(l+k-e,z),new mxPoint(l+k,b),new mxPoint(l+k-e,z+m),new mxPoint(l,z+m),new mxPoint(l+e,b),new mxPoint(l,z)]):d==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(k,g)):k*Math.max(0,Math.min(1,g)),z=[new mxPoint(l+e,z),new mxPoint(l+k,z),new mxPoint(l+k-e,b),new mxPoint(l+
2773k,z+m),new mxPoint(l+e,z+m),new mxPoint(l,b),new mxPoint(l+e,z)]):d==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(m,g)):m*Math.max(0,Math.min(1,g)),z=[new mxPoint(l,z+e),new mxPoint(q,z),new mxPoint(l+k,z+e),new mxPoint(l+k,z+m),new mxPoint(q,z+m-e),new mxPoint(l,z+m),new mxPoint(l,z+e)]):(e=e?Math.max(0,Math.min(m,g)):m*Math.max(0,Math.min(1,g)),z=[new mxPoint(l,z),new mxPoint(q,z+e),new mxPoint(l+k,z),new mxPoint(l+k,z+m-e),new mxPoint(q,z+m),new mxPoint(l,z+m-e),new mxPoint(l,z)]);q=new mxPoint(q,
2774b);c&&(f.x<l||f.x>l+k?q.y=f.y:q.x=f.x);return mxUtils.getPerimeterPoint(z,q,f)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(b,d,f,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),g=e?O.prototype.fixedSize:O.prototype.size;null!=d&&(g=mxUtils.getValue(d.style,"size",g));e&&(g*=d.view.scale);var l=b.x,z=b.y,k=b.width,m=b.height,q=b.getCenterX();b=b.getCenterY();d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):
2775mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_NORTH||d==mxConstants.DIRECTION_SOUTH?(e=e?Math.max(0,Math.min(m,g)):m*Math.max(0,Math.min(1,g)),z=[new mxPoint(q,z),new mxPoint(l+k,z+e),new mxPoint(l+k,z+m-e),new mxPoint(q,z+m),new mxPoint(l,z+m-e),new mxPoint(l,z+e),new mxPoint(q,z)]):(e=e?Math.max(0,Math.min(k,g)):k*Math.max(0,Math.min(1,g)),z=[new mxPoint(l+e,z),new mxPoint(l+k-e,z),new mxPoint(l+k,b),new mxPoint(l+k-e,z+m),new mxPoint(l+e,z+m),new mxPoint(l,b),new mxPoint(l+e,z)]);q=new mxPoint(q,
2776b);c&&(f.x<l||f.x>l+k?q.y=f.y:q.x=f.x);return mxUtils.getPerimeterPoint(z,q,f)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(aa,mxShape);aa.prototype.size=10;aa.prototype.paintBackground=function(b,d,f,c,e){var g=parseFloat(mxUtils.getValue(this.style,"size",this.size));b.translate(d,f);b.ellipse((c-g)/2,0,g,g);b.fillAndStroke();b.begin();b.moveTo(c/2,g);b.lineTo(c/2,e);b.end();b.stroke()};mxCellRenderer.registerShape("lollipop",aa);mxUtils.extend(oa,
2777mxShape);oa.prototype.size=10;oa.prototype.inset=2;oa.prototype.paintBackground=function(b,d,f,c,e){var g=parseFloat(mxUtils.getValue(this.style,"size",this.size)),l=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;b.translate(d,f);b.begin();b.moveTo(c/2,g+l);b.lineTo(c/2,e);b.end();b.stroke();b.begin();b.moveTo((c-g)/2-l,g/2);b.quadTo((c-g)/2-l,g+l,c/2,g+l);b.quadTo((c+g)/2+l,g+l,(c+g)/2+l,g/2);b.end();b.stroke()};mxCellRenderer.registerShape("requires",oa);mxUtils.extend(ha,
2778mxShape);ha.prototype.paintBackground=function(b,d,f,c,e){b.translate(d,f);b.begin();b.moveTo(0,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,0,e);b.end();b.stroke()};mxCellRenderer.registerShape("requiredInterface",ha);mxUtils.extend(ka,mxShape);ka.prototype.inset=2;ka.prototype.paintBackground=function(b,d,f,c,e){var g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;b.translate(d,f);b.ellipse(0,g,c-2*g,e-2*g);b.fillAndStroke();b.begin();b.moveTo(c/2,0);b.quadTo(c,0,c,e/2);b.quadTo(c,
2779e,c/2,e);b.end();b.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",ka);mxUtils.extend(na,mxCylinder);na.prototype.jettyWidth=20;na.prototype.jettyHeight=10;na.prototype.redrawPath=function(b,d,f,c,e,g){var l=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));d=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));f=l/2;var l=f+l/2,z=Math.min(d,e-d),k=Math.min(z+2*d,e-d);g?(b.moveTo(f,z),b.lineTo(l,z),b.lineTo(l,z+d),b.lineTo(f,z+d),b.moveTo(f,
2780k),b.lineTo(l,k),b.lineTo(l,k+d),b.lineTo(f,k+d)):(b.moveTo(f,0),b.lineTo(c,0),b.lineTo(c,e),b.lineTo(f,e),b.lineTo(f,k+d),b.lineTo(0,k+d),b.lineTo(0,k),b.lineTo(f,k),b.lineTo(f,z+d),b.lineTo(0,z+d),b.lineTo(0,z),b.lineTo(f,z),b.close());b.end()};mxCellRenderer.registerShape("module",na);mxUtils.extend(pa,mxCylinder);pa.prototype.jettyWidth=32;pa.prototype.jettyHeight=12;pa.prototype.redrawPath=function(b,d,f,c,e,g){var l=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));d=parseFloat(mxUtils.getValue(this.style,
2781"jettyHeight",this.jettyHeight));f=l/2;var l=f+l/2,z=.3*e-d/2,k=.7*e-d/2;g?(b.moveTo(f,z),b.lineTo(l,z),b.lineTo(l,z+d),b.lineTo(f,z+d),b.moveTo(f,k),b.lineTo(l,k),b.lineTo(l,k+d),b.lineTo(f,k+d)):(b.moveTo(f,0),b.lineTo(c,0),b.lineTo(c,e),b.lineTo(f,e),b.lineTo(f,k+d),b.lineTo(0,k+d),b.lineTo(0,k),b.lineTo(f,k),b.lineTo(f,z+d),b.lineTo(0,z+d),b.lineTo(0,z),b.lineTo(f,z),b.close());b.end()};mxCellRenderer.registerShape("component",pa);mxUtils.extend(la,mxRectangleShape);la.prototype.paintForeground=
2782function(b,d,f,c,e){var g=c/2,l=e/2,z=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;b.begin();this.addPoints(b,[new mxPoint(d+g,f),new mxPoint(d+c,f+l),new mxPoint(d+g,f+e),new mxPoint(d,f+l)],this.isRounded,z,!0);b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",la);mxUtils.extend(Y,mxDoubleEllipse);Y.prototype.outerStroke=!0;Y.prototype.paintVertexShape=function(b,d,f,c,e){var g=Math.min(4,
2783Math.min(c/5,e/5));0<c&&0<e&&(b.ellipse(d+g,f+g,c-2*g,e-2*g),b.fillAndStroke());b.setShadow(!1);this.outerStroke&&(b.ellipse(d,f,c,e),b.stroke())};mxCellRenderer.registerShape("endState",Y);mxUtils.extend(ba,Y);ba.prototype.outerStroke=!1;mxCellRenderer.registerShape("startState",ba);mxUtils.extend(R,mxArrowConnector);R.prototype.defaultWidth=4;R.prototype.isOpenEnded=function(){return!0};R.prototype.getEdgeWidth=function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,
2784this.strokewidth-1)};R.prototype.isArrowRounded=function(){return this.isRounded};mxCellRenderer.registerShape("link",R);mxUtils.extend(ra,mxArrowConnector);ra.prototype.defaultWidth=10;ra.prototype.defaultArrowWidth=20;ra.prototype.getStartArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"startWidth",this.defaultArrowWidth)};ra.prototype.getEndArrowWidth=function(){return this.getEdgeWidth()+mxUtils.getNumber(this.style,"endWidth",this.defaultArrowWidth)};ra.prototype.getEdgeWidth=
2785function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.max(0,this.strokewidth-1)};mxCellRenderer.registerShape("flexArrow",ra);mxUtils.extend(V,mxActor);V.prototype.size=30;V.prototype.isRoundable=function(){return!0};V.prototype.redrawPath=function(b,d,f,c,e){d=Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e),new mxPoint(0,d),new mxPoint(c,
27860),new mxPoint(c,e)],this.isRounded,f,!0);b.end()};mxCellRenderer.registerShape("manualInput",V);mxUtils.extend(U,mxRectangleShape);U.prototype.dx=20;U.prototype.dy=20;U.prototype.isHtmlAllowed=function(){return!1};U.prototype.paintForeground=function(b,d,f,c,e){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var g=0;if(this.isRounded)var l=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,g=Math.max(g,Math.min(c*l,e*l));l=Math.max(g,
2787Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));g=Math.max(g,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));b.begin();b.moveTo(d,f+g);b.lineTo(d+c,f+g);b.end();b.stroke();b.begin();b.moveTo(d+l,f);b.lineTo(d+l,f+e);b.end();b.stroke()};mxCellRenderer.registerShape("internalStorage",U);mxUtils.extend(ma,mxActor);ma.prototype.dx=20;ma.prototype.dy=20;ma.prototype.redrawPath=function(b,d,f,c,e){d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",
2788this.dx))));f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,f),new mxPoint(d,f),new mxPoint(d,e),new mxPoint(0,e)],this.isRounded,g,!0);b.end()};mxCellRenderer.registerShape("corner",ma);mxUtils.extend(ta,mxActor);ta.prototype.redrawPath=function(b,d,f,c,e){b.moveTo(0,
27890);b.lineTo(0,e);b.end();b.moveTo(c,0);b.lineTo(c,e);b.end();b.moveTo(0,e/2);b.lineTo(c,e/2);b.end()};mxCellRenderer.registerShape("crossbar",ta);mxUtils.extend(S,mxActor);S.prototype.dx=20;S.prototype.dy=20;S.prototype.redrawPath=function(b,d,f,c,e){d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));parseFloat(mxUtils.getValue(this.style,"size",this.size));var g=mxUtils.getValue(this.style,
2790mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,f),new mxPoint((c+d)/2,f),new mxPoint((c+d)/2,e),new mxPoint((c-d)/2,e),new mxPoint((c-d)/2,f),new mxPoint(0,f)],this.isRounded,g,!0);b.end()};mxCellRenderer.registerShape("tee",S);mxUtils.extend(ga,mxActor);ga.prototype.arrowWidth=.3;ga.prototype.arrowSize=.2;ga.prototype.redrawPath=function(b,d,f,c,e){var g=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",
2791this.arrowWidth))));d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));f=(e-g)/2;var g=f+g,l=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,f),new mxPoint(c-d,f),new mxPoint(c-d,0),new mxPoint(c,e/2),new mxPoint(c-d,e),new mxPoint(c-d,g),new mxPoint(0,g)],this.isRounded,l,!0);b.end()};mxCellRenderer.registerShape("singleArrow",ga);mxUtils.extend(ja,mxActor);ja.prototype.redrawPath=function(b,
2792d,f,c,e){var g=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ga.prototype.arrowWidth))));d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ga.prototype.arrowSize))));f=(e-g)/2;var g=f+g,l=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e/2),new mxPoint(d,0),new mxPoint(d,f),new mxPoint(c-d,f),new mxPoint(c-d,0),new mxPoint(c,e/2),new mxPoint(c-d,e),new mxPoint(c-d,g),new mxPoint(d,
2793g),new mxPoint(d,e)],this.isRounded,l,!0);b.end()};mxCellRenderer.registerShape("doubleArrow",ja);mxUtils.extend(ca,mxActor);ca.prototype.size=.1;ca.prototype.fixedSize=20;ca.prototype.redrawPath=function(b,d,f,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b.moveTo(d,0);b.lineTo(c,0);b.quadTo(c-2*d,e/2,c,e);b.lineTo(d,
2794e);b.quadTo(d-2*d,e/2,d,0);b.close();b.end()};mxCellRenderer.registerShape("dataStorage",ca);mxUtils.extend(ua,mxActor);ua.prototype.redrawPath=function(b,d,f,c,e){b.moveTo(0,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,0,e);b.close();b.end()};mxCellRenderer.registerShape("or",ua);mxUtils.extend(Ca,mxActor);Ca.prototype.redrawPath=function(b,d,f,c,e){b.moveTo(0,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,0,e);b.quadTo(c/2,e/2,0,0);b.close();b.end()};mxCellRenderer.registerShape("xor",Ca);mxUtils.extend(P,mxActor);
2795P.prototype.size=20;P.prototype.isRoundable=function(){return!0};P.prototype.redrawPath=function(b,d,f,c,e){d=Math.min(c/2,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(d,0),new mxPoint(c-d,0),new mxPoint(c,.8*d),new mxPoint(c,e),new mxPoint(0,e),new mxPoint(0,.8*d)],this.isRounded,f,!0);b.end()};mxCellRenderer.registerShape("loopLimit",P);mxUtils.extend(fa,mxActor);
2796fa.prototype.size=.375;fa.prototype.isRoundable=function(){return!0};fa.prototype.redrawPath=function(b,d,f,c,e){d=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,e-d),new mxPoint(c/2,e),new mxPoint(0,e-d)],this.isRounded,f,!0);b.end()};mxCellRenderer.registerShape("offPageConnector",fa);mxUtils.extend(wa,mxEllipse);
2797wa.prototype.paintVertexShape=function(b,d,f,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+c/2,f+e);b.lineTo(d+c,f+e);b.end();b.stroke()};mxCellRenderer.registerShape("tapeData",wa);mxUtils.extend(xa,mxEllipse);xa.prototype.paintVertexShape=function(b,d,f,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();b.moveTo(d,f+e/2);b.lineTo(d+c,f+e/2);b.end();b.stroke();b.begin();b.moveTo(d+c/2,f);b.lineTo(d+c/2,f+e);b.end();b.stroke()};
2798mxCellRenderer.registerShape("orEllipse",xa);mxUtils.extend(qa,mxEllipse);qa.prototype.paintVertexShape=function(b,d,f,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();b.moveTo(d+.145*c,f+.145*e);b.lineTo(d+.855*c,f+.855*e);b.end();b.stroke();b.begin();b.moveTo(d+.855*c,f+.145*e);b.lineTo(d+.145*c,f+.855*e);b.end();b.stroke()};mxCellRenderer.registerShape("sumEllipse",qa);mxUtils.extend(za,mxRhombus);za.prototype.paintVertexShape=function(b,d,f,c,e){mxRhombus.prototype.paintVertexShape.apply(this,
2799arguments);b.setShadow(!1);b.begin();b.moveTo(d,f+e/2);b.lineTo(d+c,f+e/2);b.end();b.stroke()};mxCellRenderer.registerShape("sortShape",za);mxUtils.extend(Aa,mxEllipse);Aa.prototype.paintVertexShape=function(b,d,f,c,e){b.begin();b.moveTo(d,f);b.lineTo(d+c,f);b.lineTo(d+c/2,f+e/2);b.close();b.fillAndStroke();b.begin();b.moveTo(d,f+e);b.lineTo(d+c,f+e);b.lineTo(d+c/2,f+e/2);b.close();b.fillAndStroke()};mxCellRenderer.registerShape("collate",Aa);mxUtils.extend(Da,mxEllipse);Da.prototype.paintVertexShape=
2800function(b,d,f,c,e){var g=f+e-5;b.begin();b.moveTo(d,f);b.lineTo(d,f+e);b.moveTo(d,g);b.lineTo(d+10,g-5);b.moveTo(d,g);b.lineTo(d+10,g+5);b.moveTo(d,g);b.lineTo(d+c,g);b.moveTo(d+c,f);b.lineTo(d+c,f+e);b.moveTo(d+c,g);b.lineTo(d+c-10,g-5);b.moveTo(d+c,g);b.lineTo(d+c-10,g+5);b.end();b.stroke()};mxCellRenderer.registerShape("dimension",Da);mxUtils.extend(Ea,mxEllipse);Ea.prototype.paintVertexShape=function(b,d,f,c,e){this.outline||b.setStrokeColor(null);if(null!=this.style){var g=b.pointerEvents;"1"==
2801mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||null!=this.fill&&this.fill!=mxConstants.NONE||(b.pointerEvents=!1);b.rect(d,f,c,e);b.fill();b.pointerEvents=g;b.setStrokeColor(this.stroke);b.begin();b.moveTo(d,f);this.outline||"1"==mxUtils.getValue(this.style,"top","1")?b.lineTo(d+c,f):b.moveTo(d+c,f);this.outline||"1"==mxUtils.getValue(this.style,"right","1")?b.lineTo(d+c,f+e):b.moveTo(d+c,f+e);this.outline||"1"==mxUtils.getValue(this.style,"bottom","1")?b.lineTo(d,f+e):b.moveTo(d,
2802f+e);(this.outline||"1"==mxUtils.getValue(this.style,"left","1"))&&b.lineTo(d,f);b.end();b.stroke()}};mxCellRenderer.registerShape("partialRectangle",Ea);mxUtils.extend(Ka,mxEllipse);Ka.prototype.paintVertexShape=function(b,d,f,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();"vertical"==mxUtils.getValue(this.style,"line")?(b.moveTo(d+c/2,f),b.lineTo(d+c/2,f+e)):(b.moveTo(d,f+e/2),b.lineTo(d+c,f+e/2));b.end();b.stroke()};mxCellRenderer.registerShape("lineEllipse",
2803Ka);mxUtils.extend(Ba,mxActor);Ba.prototype.redrawPath=function(b,d,f,c,e){d=Math.min(c,e/2);b.moveTo(0,0);b.lineTo(c-d,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,c-d,e);b.lineTo(0,e);b.close();b.end()};mxCellRenderer.registerShape("delay",Ba);mxUtils.extend(Ha,mxActor);Ha.prototype.size=.2;Ha.prototype.redrawPath=function(b,d,f,c,e){d=Math.min(e,c);var g=Math.max(0,Math.min(d,d*parseFloat(mxUtils.getValue(this.style,"size",this.size))));d=(e-g)/2;f=d+g;var l=(c-g)/2,g=l+g;b.moveTo(0,d);b.lineTo(l,d);b.lineTo(l,
28040);b.lineTo(g,0);b.lineTo(g,d);b.lineTo(c,d);b.lineTo(c,f);b.lineTo(g,f);b.lineTo(g,e);b.lineTo(l,e);b.lineTo(l,f);b.lineTo(0,f);b.close();b.end()};mxCellRenderer.registerShape("cross",Ha);mxUtils.extend(Fa,mxActor);Fa.prototype.size=.25;Fa.prototype.redrawPath=function(b,d,f,c,e){d=Math.min(c,e/2);f=Math.min(c-d,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*c);b.moveTo(0,e/2);b.lineTo(f,0);b.lineTo(c-d,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,c-d,e);b.lineTo(f,e);b.close();b.end()};
2805mxCellRenderer.registerShape("display",Fa);mxUtils.extend(X,mxActor);X.prototype.cst={RECT2:"mxgraph.basic.rect"};X.prototype.customProperties=[{name:"rectStyle",dispName:"Style",type:"enum",defVal:"square",enumList:[{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"size",dispName:"Corner Size",type:"float",defVal:10},{name:"absoluteCornerSize",dispName:"Abs. Corner Size",type:"bool",
2806defVal:!0},{name:"indent",dispName:"Indent",type:"float",defVal:2},{name:"rectOutline",dispName:"Outline",type:"enum",defVal:"single",enumList:[{val:"single",dispName:"Single"},{val:"double",dispName:"Double"},{val:"frame",dispName:"Frame"}]},{name:"fillColor2",dispName:"Inside Fill Color",type:"color",defVal:"none"},{name:"gradientColor2",dispName:"Inside Gradient Color",type:"color",defVal:"none"},{name:"gradientDirection2",dispName:"Inside Gradient Direction",type:"enum",defVal:"south",enumList:[{val:"south",
2807dispName:"South"},{val:"west",dispName:"West"},{val:"north",dispName:"North"},{val:"east",dispName:"East"}]},{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"right",dispName:"Right",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left ",type:"bool",defVal:!0},{name:"topLeftStyle",dispName:"Top Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",
2808dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"topRightStyle",dispName:"Top Right Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomRightStyle",dispName:"Bottom Right Style",type:"enum",defVal:"default",enumList:[{val:"default",
2809dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomLeftStyle",dispName:"Bottom Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]}];X.prototype.paintVertexShape=
2810function(b,d,f,c,e){b.translate(d,f);this.strictDrawShape(b,0,0,c,e)};X.prototype.strictDrawShape=function(b,d,f,c,e,g){var l=g&&g.rectStyle?g.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),k=g&&g.absoluteCornerSize?g.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),m=g&&g.size?g.size:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),q=g&&g.rectOutline?g.rectOutline:mxUtils.getValue(this.style,"rectOutline",
2811this.rectOutline),n=g&&g.indent?g.indent:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),H=g&&g.dashed?g.dashed:mxUtils.getValue(this.style,"dashed",!1),z=g&&g.dashPattern?g.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),v=g&&g.relIndent?g.relIndent:Math.max(0,Math.min(50,n)),u=g&&g.top?g.top:mxUtils.getValue(this.style,"top",!0),A=g&&g.right?g.right:mxUtils.getValue(this.style,"right",!0),p=g&&g.bottom?g.bottom:mxUtils.getValue(this.style,"bottom",
2812!0),x=g&&g.left?g.left:mxUtils.getValue(this.style,"left",!0),J=g&&g.topLeftStyle?g.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),t=g&&g.topRightStyle?g.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),G=g&&g.bottomRightStyle?g.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),y=g&&g.bottomLeftStyle?g.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),C=g&&g.fillColor?g.fillColor:mxUtils.getValue(this.style,"fillColor",
2813"#ffffff");g&&g.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var B=g&&g.strokeWidth?g.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),Z=g&&g.fillColor2?g.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),N=g&&g.gradientColor2?g.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),sa=g&&g.gradientDirection2?g.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),da=g&&g.opacity?g.opacity:mxUtils.getValue(this.style,"opacity",
2814"100"),aa=Math.max(0,Math.min(50,m));g=X.prototype;b.setDashed(H);z&&""!=z&&b.setDashPattern(z);b.setStrokeWidth(B);m=Math.min(.5*e,.5*c,m);k||(m=aa*Math.min(c,e)/100);m=Math.min(m,.5*Math.min(c,e));k||(n=Math.min(v*Math.min(c,e)/100));n=Math.min(n,.5*Math.min(c,e)-m);(u||A||p||x)&&"frame"!=q&&(b.begin(),u?g.moveNW(b,d,f,c,e,l,J,m,x):b.moveTo(0,0),u&&g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,A),A&&g.paintNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,G,m,p),p&&g.paintSE(b,d,f,c,e,l,
2815G,m,A),g.paintBottom(b,d,f,c,e,l,y,m,x),x&&g.paintSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,u),b.close(),b.fill(),b.setShadow(!1),b.setFillColor(Z),H=k=da,"none"==Z&&(k=0),"none"==N&&(H=0),b.setGradient(Z,N,0,0,c,e,sa,k,H),b.begin(),u?g.moveNWInner(b,d,f,c,e,l,J,m,n,u,x):b.moveTo(n,0),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),x&&p&&g.paintSWInner(b,d,f,c,e,l,y,m,n,p),g.paintBottomInner(b,d,f,c,e,l,G,m,n,A,p),p&&A&&g.paintSEInner(b,d,f,c,e,l,G,m,n),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,A),A&&
2816u&&g.paintNEInner(b,d,f,c,e,l,t,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),u&&x&&g.paintNWInner(b,d,f,c,e,l,J,m,n),b.fill(),"none"==C&&(b.begin(),g.paintFolds(b,d,f,c,e,l,J,t,G,y,m,u,A,p,x),b.stroke()));u||A||p||!x?u||A||!p||x?!u&&!A&&p&&x?"frame"!=q?(b.begin(),g.moveSE(b,d,f,c,e,l,G,m,A),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,u),"double"==q&&(g.moveNWInner(b,d,f,c,e,l,J,m,n,u,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),g.paintSWInner(b,d,f,c,e,l,
2817y,m,n,p),g.paintBottomInner(b,d,f,c,e,l,G,m,n,A,p)),b.stroke()):(b.begin(),g.moveSE(b,d,f,c,e,l,G,m,A),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,u),g.lineNWInner(b,d,f,c,e,l,J,m,n,u,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,p),g.paintBottomInner(b,d,f,c,e,l,G,m,n,A,p),b.close(),b.fillAndStroke()):u||!A||p||x?!u&&A&&!p&&x?"frame"!=q?(b.begin(),g.moveSW(b,d,f,c,e,l,J,m,p),g.paintLeft(b,d,f,c,e,l,J,m,u),"double"==q&&(g.moveNWInner(b,
2818d,f,c,e,l,J,m,n,u,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x)),b.stroke(),b.begin(),g.moveNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,G,m,p),"double"==q&&(g.moveSEInner(b,d,f,c,e,l,G,m,n,p),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,A)),b.stroke()):(b.begin(),g.moveSW(b,d,f,c,e,l,J,m,p),g.paintLeft(b,d,f,c,e,l,J,m,u),g.lineNWInner(b,d,f,c,e,l,J,m,n,u,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),b.close(),b.fillAndStroke(),b.begin(),g.moveNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,G,m,p),g.lineSEInner(b,
2819d,f,c,e,l,G,m,n,p),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,A),b.close(),b.fillAndStroke()):!u&&A&&p&&!x?"frame"!=q?(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,G,m,p),g.paintSE(b,d,f,c,e,l,G,m,A),g.paintBottom(b,d,f,c,e,l,y,m,x),"double"==q&&(g.moveSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,G,m,n,A,p),g.paintSEInner(b,d,f,c,e,l,G,m,n),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,A)),b.stroke()):(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,G,m,p),g.paintSE(b,
2820d,f,c,e,l,G,m,A),g.paintBottom(b,d,f,c,e,l,y,m,x),g.lineSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,G,m,n,A,p),g.paintSEInner(b,d,f,c,e,l,G,m,n),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,A),b.close(),b.fillAndStroke()):!u&&A&&p&&x?"frame"!=q?(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,G,m,p),g.paintSE(b,d,f,c,e,l,G,m,A),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,u),"double"==q&&(g.moveNWInner(b,d,f,c,e,l,J,m,n,u,x),g.paintLeftInner(b,
2821d,f,c,e,l,y,m,n,p,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,p),g.paintBottomInner(b,d,f,c,e,l,G,m,n,A,p),g.paintSEInner(b,d,f,c,e,l,G,m,n),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,A)),b.stroke()):(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,G,m,p),g.paintSE(b,d,f,c,e,l,G,m,A),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,u),g.lineNWInner(b,d,f,c,e,l,J,m,n,u,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,p),g.paintBottomInner(b,
2822d,f,c,e,l,G,m,n,A,p),g.paintSEInner(b,d,f,c,e,l,G,m,n),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,A),b.close(),b.fillAndStroke()):!u||A||p||x?u&&!A&&!p&&x?"frame"!=q?(b.begin(),g.moveSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,u),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,A),"double"==q&&(g.moveNEInner(b,d,f,c,e,l,t,m,n,A),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x)),b.stroke()):(b.begin(),g.moveSW(b,d,f,c,e,l,y,m,
2823p),g.paintLeft(b,d,f,c,e,l,J,m,u),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,A),g.lineNEInner(b,d,f,c,e,l,t,m,n,A),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),b.close(),b.fillAndStroke()):u&&!A&&p&&!x?"frame"!=q?(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,A),"double"==q&&(g.moveNEInner(b,d,f,c,e,l,t,m,n,A),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u)),b.stroke(),b.begin(),g.moveSE(b,d,f,c,e,l,G,m,A),
2824g.paintBottom(b,d,f,c,e,l,y,m,x),"double"==q&&(g.moveSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,G,m,n,A,p)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,A),g.lineNEInner(b,d,f,c,e,l,t,m,n,A),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),b.close(),b.fillAndStroke(),b.begin(),g.moveSE(b,d,f,c,e,l,G,m,A),g.paintBottom(b,d,f,c,e,l,y,m,x),g.lineSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,G,m,n,A,p),b.close(),b.fillAndStroke()):u&&!A&&p&&x?"frame"!=
2825q?(b.begin(),g.moveSE(b,d,f,c,e,l,G,m,A),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,u),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,A),"double"==q&&(g.moveNEInner(b,d,f,c,e,l,t,m,n,A),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,p),g.paintBottomInner(b,d,f,c,e,l,G,m,n,A,p)),b.stroke()):(b.begin(),g.moveSE(b,d,f,c,e,l,G,m,A),g.paintBottom(b,
2826d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,u),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,A),g.lineNEInner(b,d,f,c,e,l,t,m,n,A),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,p),g.paintBottomInner(b,d,f,c,e,l,G,m,n,A,p),b.close(),b.fillAndStroke()):u&&A&&!p&&!x?"frame"!=q?(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,A),g.paintNE(b,d,f,c,
2827e,l,t,m,u),g.paintRight(b,d,f,c,e,l,G,m,p),"double"==q&&(g.moveSEInner(b,d,f,c,e,l,G,m,n,p),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,A),g.paintNEInner(b,d,f,c,e,l,t,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,A),g.paintNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,G,m,p),g.lineSEInner(b,d,f,c,e,l,G,m,n,p),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,A),g.paintNEInner(b,d,f,c,e,l,t,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),b.close(),
2828b.fillAndStroke()):u&&A&&!p&&x?"frame"!=q?(b.begin(),g.moveSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,u),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,A),g.paintNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,G,m,p),"double"==q&&(g.moveSEInner(b,d,f,c,e,l,G,m,n,p),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,A),g.paintNEInner(b,d,f,c,e,l,t,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x)),b.stroke()):(b.begin(),g.moveSW(b,
2829d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,u),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,A),g.paintNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,G,m,p),g.lineSEInner(b,d,f,c,e,l,G,m,n,p),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,A),g.paintNEInner(b,d,f,c,e,l,t,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),b.close(),b.fillAndStroke()):u&&A&&p&&!x?"frame"!=q?(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,
2830e,l,t,m,A),g.paintNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,G,m,p),g.paintSE(b,d,f,c,e,l,G,m,A),g.paintBottom(b,d,f,c,e,l,y,m,x),"double"==q&&(g.moveSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,G,m,n,A,p),g.paintSEInner(b,d,f,c,e,l,G,m,n),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,A),g.paintNEInner(b,d,f,c,e,l,t,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,A),g.paintNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,
2831f,c,e,l,G,m,p),g.paintSE(b,d,f,c,e,l,G,m,A),g.paintBottom(b,d,f,c,e,l,y,m,x),g.lineSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,G,m,n,A,p),g.paintSEInner(b,d,f,c,e,l,G,m,n),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,A),g.paintNEInner(b,d,f,c,e,l,t,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),b.close(),b.fillAndStroke()):u&&A&&p&&x&&("frame"!=q?(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,A),g.paintNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,
2832c,e,l,G,m,p),g.paintSE(b,d,f,c,e,l,G,m,A),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,u),b.close(),"double"==q&&(g.moveSWInner(b,d,f,c,e,l,y,m,n,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,p),g.paintBottomInner(b,d,f,c,e,l,G,m,n,A,p),g.paintSEInner(b,d,f,c,e,l,G,m,n),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,A),g.paintNEInner(b,d,f,c,e,l,t,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),b.close()),
2833b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,A),g.paintNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,G,m,p),g.paintSE(b,d,f,c,e,l,G,m,A),g.paintBottom(b,d,f,c,e,l,y,m,x),g.paintSW(b,d,f,c,e,l,y,m,p),g.paintLeft(b,d,f,c,e,l,J,m,u),b.close(),g.moveSWInner(b,d,f,c,e,l,y,m,n,x),g.paintSWInner(b,d,f,c,e,l,y,m,n,p),g.paintBottomInner(b,d,f,c,e,l,G,m,n,A,p),g.paintSEInner(b,d,f,c,e,l,G,m,n),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,A),g.paintNEInner(b,
2834d,f,c,e,l,t,m,n),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),g.paintNWInner(b,d,f,c,e,l,J,m,n),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),b.close(),b.fillAndStroke())):"frame"!=q?(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,A),"double"==q&&(g.moveNEInner(b,d,f,c,e,l,t,m,n,A),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u)),b.stroke()):(b.begin(),g.moveNW(b,d,f,c,e,l,J,m,x),g.paintTop(b,d,f,c,e,l,t,m,A),g.lineNEInner(b,d,f,c,e,l,t,m,n,A),g.paintTopInner(b,d,f,c,e,l,J,m,n,x,u),b.close(),b.fillAndStroke()):
2835"frame"!=q?(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,G,m,p),"double"==q&&(g.moveSEInner(b,d,f,c,e,l,G,m,n,p),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,A)),b.stroke()):(b.begin(),g.moveNE(b,d,f,c,e,l,t,m,u),g.paintRight(b,d,f,c,e,l,G,m,p),g.lineSEInner(b,d,f,c,e,l,G,m,n,p),g.paintRightInner(b,d,f,c,e,l,t,m,n,u,A),b.close(),b.fillAndStroke()):"frame"!=q?(b.begin(),g.moveSE(b,d,f,c,e,l,G,m,A),g.paintBottom(b,d,f,c,e,l,y,m,x),"double"==q&&(g.moveSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,
2836d,f,c,e,l,G,m,n,A,p)),b.stroke()):(b.begin(),g.moveSE(b,d,f,c,e,l,G,m,A),g.paintBottom(b,d,f,c,e,l,y,m,x),g.lineSWInner(b,d,f,c,e,l,y,m,n,x),g.paintBottomInner(b,d,f,c,e,l,G,m,n,A,p),b.close(),b.fillAndStroke()):"frame"!=q?(b.begin(),g.moveSW(b,d,f,c,e,l,J,m,p),g.paintLeft(b,d,f,c,e,l,J,m,u),"double"==q&&(g.moveNWInner(b,d,f,c,e,l,J,m,n,u,x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x)),b.stroke()):(b.begin(),g.moveSW(b,d,f,c,e,l,J,m,p),g.paintLeft(b,d,f,c,e,l,J,m,u),g.lineNWInner(b,d,f,c,e,l,J,m,n,u,
2837x),g.paintLeftInner(b,d,f,c,e,l,y,m,n,p,x),b.close(),b.fillAndStroke());b.begin();g.paintFolds(b,d,f,c,e,l,J,t,G,y,m,u,A,p,x);b.stroke()};X.prototype.moveNW=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.moveTo(0,0):b.moveTo(0,m)};X.prototype.moveNE=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.moveTo(c,0):b.moveTo(c-m,0)};X.prototype.moveSE=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.moveTo(c,e):b.moveTo(c,e-m)};X.prototype.moveSW=
2838function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.moveTo(0,e):b.moveTo(m,e)};X.prototype.paintNW=function(b,d,f,c,e,g,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==g||"invRound"==l||"default"==l&&"invRound"==g){d=0;if("rounded"==l||"default"==l&&"rounded"==g)d=1;b.arcTo(m,m,0,0,d,m,0)}else("snip"==l||"default"==l&&"snip"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(m,0);else b.lineTo(0,0)};X.prototype.paintTop=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==
2839l&&"square"==g||!k?b.lineTo(c,0):b.lineTo(c-m,0)};X.prototype.paintNE=function(b,d,f,c,e,g,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==g||"invRound"==l||"default"==l&&"invRound"==g){d=0;if("rounded"==l||"default"==l&&"rounded"==g)d=1;b.arcTo(m,m,0,0,d,c,m)}else("snip"==l||"default"==l&&"snip"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c,m);else b.lineTo(c,0)};X.prototype.paintRight=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.lineTo(c,e):b.lineTo(c,e-m)};
2840X.prototype.paintLeft=function(b,d,f,c,e,g,l,m,k){"square"==l||"default"==l&&"square"==g||!k?b.lineTo(0,0):b.lineTo(0,m)};X.prototype.paintSE=function(b,d,f,c,e,g,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==g||"invRound"==l||"default"==l&&"invRound"==g){d=0;if("rounded"==l||"default"==l&&"rounded"==g)d=1;b.arcTo(m,m,0,0,d,c-m,e)}else("snip"==l||"default"==l&&"snip"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c-m,e);else b.lineTo(c,e)};X.prototype.paintBottom=function(b,d,f,c,e,g,l,
2841m,k){"square"==l||"default"==l&&"square"==g||!k?b.lineTo(0,e):b.lineTo(m,e)};X.prototype.paintSW=function(b,d,f,c,e,g,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==g||"invRound"==l||"default"==l&&"invRound"==g){d=0;if("rounded"==l||"default"==l&&"rounded"==g)d=1;b.arcTo(m,m,0,0,d,0,e-m)}else("snip"==l||"default"==l&&"snip"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(0,e-m);else b.lineTo(0,e)};X.prototype.paintNWInner=function(b,d,f,c,e,g,l,m,k){if("rounded"==l||"default"==l&&"rounded"==
2842g)b.arcTo(m-.5*k,m-.5*k,0,0,0,k,.5*k+m);else if("invRound"==l||"default"==l&&"invRound"==g)b.arcTo(m+k,m+k,0,0,1,k,k+m);else if("snip"==l||"default"==l&&"snip"==g)b.lineTo(k,.5*k+m);else if("fold"==l||"default"==l&&"fold"==g)b.lineTo(k+m,k+m),b.lineTo(k,k+m)};X.prototype.paintTopInner=function(b,d,f,c,e,g,l,m,k,n,q){n||q?!n&&q?b.lineTo(0,k):n&&!q?b.lineTo(k,0):n?"square"==l||"default"==l&&"square"==g?b.lineTo(k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(m+
2843.5*k,k):b.lineTo(m+k,k):b.lineTo(0,k):b.lineTo(0,0)};X.prototype.paintNEInner=function(b,d,f,c,e,g,l,m,k){if("rounded"==l||"default"==l&&"rounded"==g)b.arcTo(m-.5*k,m-.5*k,0,0,0,c-m-.5*k,k);else if("invRound"==l||"default"==l&&"invRound"==g)b.arcTo(m+k,m+k,0,0,1,c-m-k,k);else if("snip"==l||"default"==l&&"snip"==g)b.lineTo(c-m-.5*k,k);else if("fold"==l||"default"==l&&"fold"==g)b.lineTo(c-m-k,m+k),b.lineTo(c-m-k,k)};X.prototype.paintRightInner=function(b,d,f,c,e,g,l,m,k,n,q){n||q?!n&&q?b.lineTo(c-k,
28440):n&&!q?b.lineTo(c,k):n?"square"==l||"default"==l&&"square"==g?b.lineTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(c-k,m+.5*k):b.lineTo(c-k,m+k):b.lineTo(c-k,0):b.lineTo(c,0)};X.prototype.paintLeftInner=function(b,d,f,c,e,g,l,m,k,n,q){n||q?!n&&q?b.lineTo(k,e):n&&!q?b.lineTo(0,e-k):n?"square"==l||"default"==l&&"square"==g?b.lineTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(k,e-m-.5*k):b.lineTo(k,e-
2845m-k):b.lineTo(k,e):b.lineTo(0,e)};X.prototype.paintSEInner=function(b,d,f,c,e,g,l,m,k){if("rounded"==l||"default"==l&&"rounded"==g)b.arcTo(m-.5*k,m-.5*k,0,0,0,c-k,e-m-.5*k);else if("invRound"==l||"default"==l&&"invRound"==g)b.arcTo(m+k,m+k,0,0,1,c-k,e-m-k);else if("snip"==l||"default"==l&&"snip"==g)b.lineTo(c-k,e-m-.5*k);else if("fold"==l||"default"==l&&"fold"==g)b.lineTo(c-m-k,e-m-k),b.lineTo(c-k,e-m-k)};X.prototype.paintBottomInner=function(b,d,f,c,e,g,l,m,k,n,q){n||q?!n&&q?b.lineTo(c,e-k):n&&!q?
2846b.lineTo(c-k,e):"square"==l||"default"==l&&"square"==g||!n?b.lineTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(c-m-.5*k,e-k):b.lineTo(c-m-k,e-k):b.lineTo(c,e)};X.prototype.paintSWInner=function(b,d,f,c,e,g,l,m,k,n){if(!n)b.lineTo(k,e);else if("square"==l||"default"==l&&"square"==g)b.lineTo(k,e-k);else if("rounded"==l||"default"==l&&"rounded"==g)b.arcTo(m-.5*k,m-.5*k,0,0,0,m+.5*k,e-k);else if("invRound"==l||"default"==l&&"invRound"==g)b.arcTo(m+k,
2847m+k,0,0,1,m+k,e-k);else if("snip"==l||"default"==l&&"snip"==g)b.lineTo(m+.5*k,e-k);else if("fold"==l||"default"==l&&"fold"==g)b.lineTo(k+m,e-m-k),b.lineTo(k+m,e-k)};X.prototype.moveSWInner=function(b,d,f,c,e,g,l,m,k,n){n?"square"==l||"default"==l&&"square"==g?b.moveTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.moveTo(k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(k,e-m-k):b.moveTo(0,e-k)};X.prototype.lineSWInner=
2848function(b,d,f,c,e,g,l,m,k,n){n?"square"==l||"default"==l&&"square"==g?b.lineTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(k,e-m-k):b.lineTo(0,e-k)};X.prototype.moveSEInner=function(b,d,f,c,e,g,l,m,k,n){n?"square"==l||"default"==l&&"square"==g?b.moveTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.moveTo(c-
2849k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(c-k,e-m-k):b.moveTo(c-k,e)};X.prototype.lineSEInner=function(b,d,f,c,e,g,l,m,k,n){n?"square"==l||"default"==l&&"square"==g?b.lineTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(c-k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c-k,e-m-k):b.lineTo(c-k,e)};X.prototype.moveNEInner=function(b,d,f,
2850c,e,g,l,m,k,n){n?"square"==l||"default"==l&&"square"==g||n?b.moveTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.moveTo(c-k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(c-k,m+k):b.moveTo(c,k)};X.prototype.lineNEInner=function(b,d,f,c,e,g,l,m,k,n){n?"square"==l||"default"==l&&"square"==g||n?b.lineTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(c-k,m+.5*k):("invRound"==
2851l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(c-k,m+k):b.lineTo(c,k)};X.prototype.moveNWInner=function(b,d,f,c,e,g,l,m,k,n,q){n||q?!n&&q?b.moveTo(k,0):n&&!q?b.moveTo(0,k):"square"==l||"default"==l&&"square"==g?b.moveTo(k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.moveTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.moveTo(k,m+k):b.moveTo(0,0)};X.prototype.lineNWInner=function(b,d,
2852f,c,e,g,l,m,k,n,q){n||q?!n&&q?b.lineTo(k,0):n&&!q?b.lineTo(0,k):"square"==l||"default"==l&&"square"==g?b.lineTo(k,k):"rounded"==l||"default"==l&&"rounded"==g||"snip"==l||"default"==l&&"snip"==g?b.lineTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==g||"fold"==l||"default"==l&&"fold"==g)&&b.lineTo(k,m+k):b.lineTo(0,0)};X.prototype.paintFolds=function(b,d,f,c,e,g,l,m,k,n,q,H,u,A,v){if("fold"==g||"fold"==l||"fold"==m||"fold"==k||"fold"==n)("fold"==l||"default"==l&&"fold"==g)&&H&&v&&(b.moveTo(0,
2853q),b.lineTo(q,q),b.lineTo(q,0)),("fold"==m||"default"==m&&"fold"==g)&&H&&u&&(b.moveTo(c-q,0),b.lineTo(c-q,q),b.lineTo(c,q)),("fold"==k||"default"==k&&"fold"==g)&&A&&u&&(b.moveTo(c-q,e),b.lineTo(c-q,e-q),b.lineTo(c,e-q)),("fold"==n||"default"==n&&"fold"==g)&&A&&v&&(b.moveTo(0,e-q),b.lineTo(q,e-q),b.lineTo(q,e))};mxCellRenderer.registerShape(X.prototype.cst.RECT2,X);X.prototype.constraints=null;mxUtils.extend(va,mxConnector);va.prototype.origPaintEdgeShape=va.prototype.paintEdgeShape;va.prototype.paintEdgeShape=
2854function(b,d,f){for(var c=[],e=0;e<d.length;e++)c.push(mxUtils.clone(d[e]));var e=b.state.dashed,g=b.state.fixDash;va.prototype.origPaintEdgeShape.apply(this,[b,c,f]);3<=b.state.strokeWidth&&(c=mxUtils.getValue(this.style,"fillColor",null),null!=c&&(b.setStrokeColor(c),b.setStrokeWidth(b.state.strokeWidth-2),b.setDashed(e,g),va.prototype.origPaintEdgeShape.apply(this,[b,d,f])))};mxCellRenderer.registerShape("filledEdge",va);"undefined"!==typeof StyleFormatPanel&&function(){var b=StyleFormatPanel.prototype.getCustomColors;
2855StyleFormatPanel.prototype.getCustomColors=function(){var d=this.format.getSelectionState(),f=b.apply(this,arguments);"umlFrame"==d.style.shape&&f.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return f}}();mxMarker.addMarker("dash",function(b,d,f,c,e,g,l,m,k,n){var q=e*(l+k+1),H=g*(l+k+1);return function(){b.begin();b.moveTo(c.x-q/2-H/2,c.y-H/2+q/2);b.lineTo(c.x+H/2-3*q/2,c.y-3*H/2-q/2);b.stroke()}});mxMarker.addMarker("box",function(b,d,f,c,e,g,l,m,k,n){var q=
2856e*(l+k+1),H=g*(l+k+1),u=c.x+q/2,A=c.y+H/2;c.x-=q;c.y-=H;return function(){b.begin();b.moveTo(u-q/2-H/2,A-H/2+q/2);b.lineTo(u-q/2+H/2,A-H/2-q/2);b.lineTo(u+H/2-3*q/2,A-3*H/2-q/2);b.lineTo(u-H/2-3*q/2,A-3*H/2+q/2);b.close();n?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("cross",function(b,d,f,c,e,g,l,m,k,q){var n=e*(l+k+1),H=g*(l+k+1);return function(){b.begin();b.moveTo(c.x-n/2-H/2,c.y-H/2+n/2);b.lineTo(c.x+H/2-3*n/2,c.y-3*H/2-n/2);b.moveTo(c.x-n/2+H/2,c.y-H/2-n/2);b.lineTo(c.x-H/2-3*n/2,c.y-
28573*H/2+n/2);b.stroke()}});mxMarker.addMarker("circle",Oa);mxMarker.addMarker("circlePlus",function(b,d,f,c,e,g,l,m,k,n){var q=c.clone(),H=Oa.apply(this,arguments),u=e*(l+2*k),A=g*(l+2*k);return function(){H.apply(this,arguments);b.begin();b.moveTo(q.x-e*k,q.y-g*k);b.lineTo(q.x-2*u+e*k,q.y-2*A+g*k);b.moveTo(q.x-u-A+g*k,q.y-A+u-e*k);b.lineTo(q.x+A-u-g*k,q.y-A-u+e*k);b.stroke()}});mxMarker.addMarker("halfCircle",function(b,d,f,c,e,g,l,m,k,q){var n=e*(l+k+1),H=g*(l+k+1),u=c.clone();c.x-=n;c.y-=H;return function(){b.begin();
2858b.moveTo(u.x-H,u.y+n);b.quadTo(c.x-H,c.y+n,c.x,c.y);b.quadTo(c.x+H,c.y-n,u.x+H,u.y-n);b.stroke()}});mxMarker.addMarker("async",function(b,d,f,c,e,g,l,m,k,n){d=e*k*1.118;f=g*k*1.118;e*=l+k;g*=l+k;var q=c.clone();q.x-=d;q.y-=f;c.x+=1*-e-d;c.y+=1*-g-f;return function(){b.begin();b.moveTo(q.x,q.y);m?b.lineTo(q.x-e-g/2,q.y-g+e/2):b.lineTo(q.x+g/2-e,q.y-g-e/2);b.lineTo(q.x-e,q.y-g);b.close();n?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("openAsync",function(b){b=null!=b?b:2;return function(d,f,c,
2859e,g,l,m,k,q,n){g*=m+q;l*=m+q;var H=e.clone();return function(){d.begin();d.moveTo(H.x,H.y);k?d.lineTo(H.x-g-l/b,H.y-l+g/b):d.lineTo(H.x+l/b-g,H.y-l-g/b);d.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Za=function(b,d,f){return Na(b,["width"],d,function(d,c,e,g,l){l=b.shape.getEdgeWidth()*b.view.scale+f;return new mxPoint(g.x+c*d/4+e*l/2,g.y+e*d/4-c*l/2)},function(d,c,e,g,l,m){d=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,l.x,l.y,m.x,m.y));b.style.width=Math.round(2*d)/b.view.scale-f})},Na=
2860function(b,d,f,c,e){return ia(b,d,function(d){var e=b.absolutePoints,g=e.length-1;d=b.view.translate;var l=b.view.scale,m=f?e[0]:e[g],e=f?e[1]:e[g-1],g=e.x-m.x,k=e.y-m.y,q=Math.sqrt(g*g+k*k),m=c.call(this,q,g/q,k/q,m,e);return new mxPoint(m.x/l-d.x,m.y/l-d.y)},function(d,c,g){var l=b.absolutePoints,m=l.length-1;d=b.view.translate;var k=b.view.scale,q=f?l[0]:l[m],l=f?l[1]:l[m-1],m=l.x-q.x,n=l.y-q.y,H=Math.sqrt(m*m+n*n);c.x=(c.x+d.x)*k;c.y=(c.y+d.y)*k;e.call(this,H,m/H,n/H,q,l,c,g)})},Ia=function(b){return function(d){return[ia(d,
2861["arrowWidth","arrowSize"],function(d){var f=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",ga.prototype.arrowWidth))),c=Math.max(0,Math.min(b,mxUtils.getValue(this.state.style,"arrowSize",ga.prototype.arrowSize)));return new mxPoint(d.x+(1-c)*d.width,d.y+(1-f)*d.height/2)},function(d,f){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(d.y+d.height/2-f.y)/d.height*2));this.state.style.arrowSize=Math.max(0,Math.min(b,(d.x+d.width-f.x)/d.width))})]}},Wa=function(b){return function(d){return[ia(d,
2862["size"],function(d){var f=Math.max(0,Math.min(.5*d.height,parseFloat(mxUtils.getValue(this.state.style,"size",b))));return new mxPoint(d.x,d.y+f)},function(b,d){this.state.style.size=Math.max(0,d.y-b.y)},!0)]}},Ua=function(b,d,f){return function(c){var e=[ia(c,["size"],function(f){var c=Math.max(0,Math.min(f.width,Math.min(f.height,parseFloat(mxUtils.getValue(this.state.style,"size",d)))))*b;return new mxPoint(f.x+c,f.y+c)},function(d,f){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(d.width,
2863f.x-d.x),Math.min(d.height,f.y-d.y)))/b)},!1)];f&&mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(Ga(c));return e}},Pa=function(b,d,f,c,e){f=null!=f?f:.5;return function(g){var l=[ia(g,["size"],function(d){var f=null!=e?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,c=parseFloat(mxUtils.getValue(this.state.style,"size",f?e:b));return new mxPoint(d.x+Math.max(0,Math.min(.5*d.width,c*(f?1:d.width))),d.getCenterY())},function(b,d,c){b=null!=e&&"0"!=mxUtils.getValue(this.state.style,
2864"fixedSize","0")?d.x-b.x:Math.max(0,Math.min(f,(d.x-b.x)/b.width));this.state.style.size=b},!1,c)];d&&mxUtils.getValue(g.style,mxConstants.STYLE_ROUNDED,!1)&&l.push(Ga(g));return l}},Xa=function(b,d,f){b=null!=b?b:.5;return function(c){var e=[ia(c,["size"],function(c){var e=null!=f?"0"!=mxUtils.getValue(this.state.style,"fixedSize","0"):null,g=Math.max(0,parseFloat(mxUtils.getValue(this.state.style,"size",e?f:d)));return new mxPoint(c.x+Math.min(.75*c.width*b,g*(e?.75:.75*c.width)),c.y+c.height/4)},
2865function(d,c){var e=null!=f&&"0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?c.x-d.x:Math.max(0,Math.min(b,(c.x-d.x)/d.width*.75));this.state.style.size=e},!1,!0)];mxUtils.getValue(c.style,mxConstants.STYLE_ROUNDED,!1)&&e.push(Ga(c));return e}},Ma=function(){return function(b){var d=[];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d}},Ga=function(b,d){return ia(b,[mxConstants.STYLE_ARCSIZE],function(f){var c=null!=d?d:f.height/8;if("1"==mxUtils.getValue(b.style,
2866mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)){var e=mxUtils.getValue(b.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;return new mxPoint(f.x+f.width-Math.min(f.width/2,e),f.y+c)}e=Math.max(0,parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)))/100;return new mxPoint(f.x+f.width-Math.min(Math.max(f.width/2,f.height/2),Math.min(f.width,f.height)*e),f.y+c)},function(d,f,c){"1"==mxUtils.getValue(b.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?
2867this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(d.width,2*(d.x+d.width-f.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(d.width-f.x+d.x)/Math.min(d.width,d.height))))})},ia=function(b,d,f,c,e,g,l){var m=new mxHandle(b,null,mxVertexHandler.prototype.secondaryHandleImage);m.execute=function(b){for(var f=0;f<d.length;f++)this.copyStyle(d[f]);l&&l(b)};m.getPosition=f;m.setPosition=c;m.ignoreGrid=null!=e?e:!0;if(g){var k=m.positionChanged;
2868m.positionChanged=function(){k.apply(this,arguments);b.view.invalidate(this.state.cell);b.view.validate()}}return m},Qa={link:function(b){return[Za(b,!0,10),Za(b,!1,10)]},flexArrow:function(b){var d=b.view.graph.gridSize/b.view.scale,f=[];mxUtils.getValue(b.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(f.push(Na(b,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(d,f,c,e,g){d=(b.shape.getEdgeWidth()-b.shape.strokewidth)*b.view.scale;g=3*mxUtils.getNumber(b.style,
2869mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+f*(g+b.shape.strokewidth*b.view.scale)+c*d/2,e.y+c*(g+b.shape.strokewidth*b.view.scale)-f*d/2)},function(f,c,e,g,l,m,k){f=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(g.x,g.y,g.x+e,g.y-c,m.x,m.y);b.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(c-b.shape.strokewidth)/3)/100/b.view.scale;b.style.width=Math.round(2*f)/b.view.scale;mxEvent.isControlDown(k.getEvent())&&(b.style[mxConstants.STYLE_ENDSIZE]=
2870b.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(b.style[mxConstants.STYLE_STARTSIZE])-parseFloat(b.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE])})),f.push(Na(b,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(d,f,c,e,g){d=(b.shape.getStartArrowWidth()-b.shape.strokewidth)*b.view.scale;g=3*mxUtils.getNumber(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/
28715)*b.view.scale;return new mxPoint(e.x+f*(g+b.shape.strokewidth*b.view.scale)+c*d/2,e.y+c*(g+b.shape.strokewidth*b.view.scale)-f*d/2)},function(f,c,e,g,l,m,k){f=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(g.x,g.y,g.x+e,g.y-c,m.x,m.y);b.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(c-b.shape.strokewidth)/3)/100/b.view.scale;b.style.startWidth=Math.max(0,Math.round(2*f)-b.shape.getEdgeWidth())/b.view.scale;mxEvent.isControlDown(k.getEvent())&&(b.style[mxConstants.STYLE_ENDSIZE]=
2872b.style[mxConstants.STYLE_STARTSIZE],b.style.endWidth=b.style.startWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(b.style[mxConstants.STYLE_STARTSIZE])-parseFloat(b.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(b.style.startWidth)-parseFloat(b.style.endWidth))<d&&(b.style.startWidth=b.style.endWidth))})));mxUtils.getValue(b.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(f.push(Na(b,
2873["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(d,f,c,e,g){d=(b.shape.getEdgeWidth()-b.shape.strokewidth)*b.view.scale;g=3*mxUtils.getNumber(b.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+f*(g+b.shape.strokewidth*b.view.scale)-c*d/2,e.y+c*(g+b.shape.strokewidth*b.view.scale)+f*d/2)},function(f,c,e,g,l,m,k){f=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(g.x,g.y,g.x+e,g.y-c,m.x,m.y);b.style[mxConstants.STYLE_ENDSIZE]=
2874Math.round(100*(c-b.shape.strokewidth)/3)/100/b.view.scale;b.style.width=Math.round(2*f)/b.view.scale;mxEvent.isControlDown(k.getEvent())&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(b.style[mxConstants.STYLE_ENDSIZE])-parseFloat(b.style[mxConstants.STYLE_STARTSIZE]))<d/6&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE])})),f.push(Na(b,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],
2875!1,function(d,f,c,e,g){d=(b.shape.getEndArrowWidth()-b.shape.strokewidth)*b.view.scale;g=3*mxUtils.getNumber(b.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+f*(g+b.shape.strokewidth*b.view.scale)-c*d/2,e.y+c*(g+b.shape.strokewidth*b.view.scale)+f*d/2)},function(f,c,e,g,l,m,k){f=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(g.x,g.y,g.x+e,g.y-c,m.x,m.y);b.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(c-b.shape.strokewidth)/
28763)/100/b.view.scale;b.style.endWidth=Math.max(0,Math.round(2*f)-b.shape.getEdgeWidth())/b.view.scale;mxEvent.isControlDown(k.getEvent())&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE],b.style.startWidth=b.style.endWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(b.style[mxConstants.STYLE_ENDSIZE])-parseFloat(b.style[mxConstants.STYLE_STARTSIZE]))<d/6&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(b.style.endWidth)-
2877parseFloat(b.style.startWidth))<d&&(b.style.endWidth=b.style.startWidth))})));return f},swimlane:function(b){var d=[];if(mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED)){var f=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));d.push(Ga(b,f/2))}d.push(ia(b,[mxConstants.STYLE_STARTSIZE],function(d){var f=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(b.style,mxConstants.STYLE_HORIZONTAL,
28781)?new mxPoint(d.getCenterX(),d.y+Math.max(0,Math.min(d.height,f))):new mxPoint(d.x+Math.max(0,Math.min(d.width,f)),d.getCenterY())},function(d,f){b.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(d.height,f.y-d.y))):Math.round(Math.max(0,Math.min(d.width,f.x-d.x)))},!1,null,function(d){if(mxEvent.isControlDown(d.getEvent())&&(d=b.view.graph,d.isTableRow(b.cell)||d.isTableCell(b.cell))){for(var f=d.getSwimlaneDirection(b.style),
2879c=d.model.getParent(b.cell),c=d.model.getChildCells(c,!0),e=[],g=0;g<c.length;g++)c[g]!=b.cell&&d.isSwimlane(c[g])&&d.getSwimlaneDirection(d.getCurrentCellStyle(c[g]))==f&&e.push(c[g]);d.setCellStyles(mxConstants.STYLE_STARTSIZE,b.style[mxConstants.STYLE_STARTSIZE],e)}}));return d},label:Ma(),ext:Ma(),rectangle:Ma(),triangle:Ma(),rhombus:Ma(),umlLifeline:function(b){return[ia(b,["size"],function(b){var d=Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",G.prototype.size))));
2880return new mxPoint(b.getCenterX(),b.y+d)},function(b,d){this.state.style.size=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},umlFrame:function(b){return[ia(b,["width","height"],function(b){var d=Math.max(W.prototype.corner,Math.min(b.width,mxUtils.getValue(this.state.style,"width",W.prototype.width))),f=Math.max(1.5*W.prototype.corner,Math.min(b.height,mxUtils.getValue(this.state.style,"height",W.prototype.height)));return new mxPoint(b.x+d,b.y+f)},function(b,d){this.state.style.width=
2881Math.round(Math.max(W.prototype.corner,Math.min(b.width,d.x-b.x)));this.state.style.height=Math.round(Math.max(1.5*W.prototype.corner,Math.min(b.height,d.y-b.y)))},!1)]},process:function(b){var d=[ia(b,["size"],function(b){var d="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),f=parseFloat(mxUtils.getValue(this.state.style,"size",E.prototype.size));return d?new mxPoint(b.x+f,b.y+b.height/4):new mxPoint(b.x+b.width*f,b.y+b.height/4)},function(b,d){var f="0"!=mxUtils.getValue(this.state.style,
2882"fixedSize","0")?Math.max(0,Math.min(.5*b.width,d.x-b.x)):Math.max(0,Math.min(.5,(d.x-b.x)/b.width));this.state.style.size=f},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},cross:function(b){return[ia(b,["size"],function(b){var d=Math.min(b.width,b.height),d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"size",Ha.prototype.size)))*d/2;return new mxPoint(b.getCenterX()-d,b.getCenterY()-d)},function(b,d){var f=Math.min(b.width,b.height);this.state.style.size=
2883Math.max(0,Math.min(1,Math.min(Math.max(0,b.getCenterY()-d.y)/f*2,Math.max(0,b.getCenterX()-d.x)/f*2)))})]},note:function(b){return[ia(b,["size"],function(b){var d=Math.max(0,Math.min(b.width,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",t.prototype.size)))));return new mxPoint(b.x+b.width-d,b.y+d)},function(b,d){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,b.x+b.width-d.x),Math.min(b.height,d.y-b.y))))})]},note2:function(b){return[ia(b,["size"],function(b){var f=
2884Math.max(0,Math.min(b.width,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",d.prototype.size)))));return new mxPoint(b.x+b.width-f,b.y+f)},function(b,d){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,b.x+b.width-d.x),Math.min(b.height,d.y-b.y))))})]},manualInput:function(b){var d=[ia(b,["size"],function(b){var d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"size",V.prototype.size)));return new mxPoint(b.x+b.width/4,b.y+3*d/4)},function(b,
2885d){this.state.style.size=Math.round(Math.max(0,Math.min(b.height,4*(d.y-b.y)/3)))},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},dataStorage:function(b){return[ia(b,["size"],function(b){var d="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),f=parseFloat(mxUtils.getValue(this.state.style,"size",d?ca.prototype.fixedSize:ca.prototype.size));return new mxPoint(b.x+b.width-f*(d?1:b.width),b.getCenterY())},function(b,d){var f="0"!=mxUtils.getValue(this.state.style,
2886"fixedSize","0")?Math.max(0,Math.min(b.width,b.x+b.width-d.x)):Math.max(0,Math.min(1,(b.x+b.width-d.x)/b.width));this.state.style.size=f},!1)]},callout:function(b){var d=[ia(b,["size","position"],function(b){var d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"size",C.prototype.size))),f=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",C.prototype.position)));mxUtils.getValue(this.state.style,"base",C.prototype.base);return new mxPoint(b.x+f*b.width,b.y+b.height-
2887d)},function(b,d){mxUtils.getValue(this.state.style,"base",C.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(b.height,b.y+b.height-d.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(d.x-b.x)/b.width)))/100},!1),ia(b,["position2"],function(b){var d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",C.prototype.position2)));return new mxPoint(b.x+d*b.width,b.y+b.height)},function(b,d){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,
2888(d.x-b.x)/b.width)))/100},!1),ia(b,["base"],function(b){var d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"size",C.prototype.size))),f=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",C.prototype.position))),c=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"base",C.prototype.base)));return new mxPoint(b.x+Math.min(b.width,f*b.width+c),b.y+b.height-d)},function(b,d){var f=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",C.prototype.position)));
2889this.state.style.base=Math.round(Math.max(0,Math.min(b.width,d.x-b.x-f*b.width)))},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},internalStorage:function(b){var d=[ia(b,["dx","dy"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",U.prototype.dx))),f=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"dy",U.prototype.dy)));return new mxPoint(b.x+d,b.y+f)},function(b,d){this.state.style.dx=Math.round(Math.max(0,Math.min(b.width,
2890d.x-b.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},module:function(b){return[ia(b,["jettyWidth","jettyHeight"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"jettyWidth",na.prototype.jettyWidth))),f=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"jettyHeight",na.prototype.jettyHeight)));return new mxPoint(b.x+d/2,b.y+2*f)},function(b,
2891d){this.state.style.jettyWidth=Math.round(2*Math.max(0,Math.min(b.width,d.x-b.x)));this.state.style.jettyHeight=Math.round(Math.max(0,Math.min(b.height,d.y-b.y))/2)})]},corner:function(b){return[ia(b,["dx","dy"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",ma.prototype.dx))),f=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"dy",ma.prototype.dy)));return new mxPoint(b.x+d,b.y+f)},function(b,d){this.state.style.dx=Math.round(Math.max(0,Math.min(b.width,
2892d.x-b.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},tee:function(b){return[ia(b,["dx","dy"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",S.prototype.dx))),f=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"dy",S.prototype.dy)));return new mxPoint(b.x+(b.width+d)/2,b.y+f)},function(b,d){this.state.style.dx=Math.round(Math.max(0,2*Math.min(b.width/2,d.x-b.x-b.width/2)));this.state.style.dy=Math.round(Math.max(0,
2893Math.min(b.height,d.y-b.y)))},!1)]},singleArrow:Ia(1),doubleArrow:Ia(.5),folder:function(b){return[ia(b,["tabWidth","tabHeight"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"tabWidth",n.prototype.tabWidth))),f=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"tabHeight",n.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",n.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(d=b.width-d);return new mxPoint(b.x+d,b.y+f)},function(b,
2894d){var f=Math.max(0,Math.min(b.width,d.x-b.x));mxUtils.getValue(this.state.style,"tabPosition",n.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(f=b.width-f);this.state.style.tabWidth=Math.round(f);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},document:function(b){return[ia(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",x.prototype.size))));return new mxPoint(b.x+3*b.width/4,b.y+(1-d)*b.height)},function(b,
2895d){this.state.style.size=Math.max(0,Math.min(1,(b.y+b.height-d.y)/b.height))},!1)]},tape:function(b){return[ia(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",y.prototype.size))));return new mxPoint(b.getCenterX(),b.y+d*b.height/2)},function(b,d){this.state.style.size=Math.max(0,Math.min(1,(d.y-b.y)/b.height*2))},!1)]},isoCube2:function(b){return[ia(b,["isoAngle"],function(b){var d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,
2896"isoAngle",f.isoAngle))))*Math.PI/200;return new mxPoint(b.x,b.y+Math.min(b.width*Math.tan(d),.5*b.height))},function(b,d){this.state.style.isoAngle=Math.max(0,50*(d.y-b.y)/b.height)},!0)]},cylinder2:Wa(l.prototype.size),cylinder3:Wa(q.prototype.size),offPageConnector:function(b){return[ia(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",fa.prototype.size))));return new mxPoint(b.getCenterX(),b.y+(1-d)*b.height)},function(b,d){this.state.style.size=
2897Math.max(0,Math.min(1,(b.y+b.height-d.y)/b.height))},!1)]},"mxgraph.basic.rect":function(b){var d=[Graph.createHandle(b,["size"],function(b){var d=Math.max(0,Math.min(b.width/2,b.height/2,parseFloat(mxUtils.getValue(this.state.style,"size",this.size))));return new mxPoint(b.x+d,b.y+d)},function(b,d){this.state.style.size=Math.round(100*Math.max(0,Math.min(b.height/2,b.width/2,d.x-b.x)))/100})];b=Graph.createHandle(b,["indent"],function(b){var d=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,
2898"indent",this.dx2))));return new mxPoint(b.x+.75*b.width,b.y+d*b.height/200)},function(b,d){this.state.style.indent=Math.round(100*Math.max(0,Math.min(100,200*(d.y-b.y)/b.height)))/100});d.push(b);return d},step:Pa(L.prototype.size,!0,null,!0,L.prototype.fixedSize),hexagon:Pa(O.prototype.size,!0,.5,!0,O.prototype.fixedSize),curlyBracket:Pa(B.prototype.size,!1),display:Pa(Fa.prototype.size,!1),cube:Ua(1,c.prototype.size,!1),card:Ua(.5,v.prototype.size,!0),loopLimit:Ua(.5,P.prototype.size,!0),trapezoid:Xa(.5,
2899I.prototype.size,I.prototype.fixedSize),parallelogram:Xa(1,D.prototype.size,D.prototype.fixedSize)};Graph.createHandle=ia;Graph.handleFactory=Qa;var db=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var b=db.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var d=this.state.style.shape;null==mxCellRenderer.defaultShapes[d]&&null==mxStencilRegistry.getStencil(d)?d=mxConstants.SHAPE_RECTANGLE:this.state.view.graph.isSwimlane(this.state.cell)&&
2900(d=mxConstants.SHAPE_SWIMLANE);d=Qa[d];null==d&&null!=this.state.shape&&this.state.shape.isRoundable()&&(d=Qa[mxConstants.SHAPE_RECTANGLE]);null!=d&&(d=d(this.state),null!=d&&(b=null==b?d:b.concat(d)))}return b};mxEdgeHandler.prototype.createCustomHandles=function(){var b=this.state.style.shape;null==mxCellRenderer.defaultShapes[b]&&null==mxStencilRegistry.getStencil(b)&&(b=mxConstants.SHAPE_CONNECTOR);b=Qa[b];return null!=b?b(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory=
2901{};var Ra=new mxPoint(1,0),Sa=new mxPoint(1,0),Ia=mxUtils.toRadians(-30),Ra=mxUtils.getRotatedPoint(Ra,Math.cos(Ia),Math.sin(Ia)),Ia=mxUtils.toRadians(-150),Sa=mxUtils.getRotatedPoint(Sa,Math.cos(Ia),Math.sin(Ia));mxEdgeStyle.IsometricConnector=function(b,d,f,c,e){var g=b.view;c=null!=c&&0<c.length?c[0]:null;var l=b.absolutePoints,m=l[0],l=l[l.length-1];null!=c&&(c=g.transformControlPoint(b,c));null==m&&null!=d&&(m=new mxPoint(d.getCenterX(),d.getCenterY()));null==l&&null!=f&&(l=new mxPoint(f.getCenterX(),
2902f.getCenterY()));var k=Ra.x,q=Ra.y,n=Sa.x,H=Sa.y,u="horizontal"==mxUtils.getValue(b.style,"elbow","horizontal");if(null!=l&&null!=m){b=function(b,d,f){b-=A.x;var c=d-A.y;d=(H*b-n*c)/(k*H-q*n);b=(q*b-k*c)/(q*n-k*H);u?(f&&(A=new mxPoint(A.x+k*d,A.y+q*d),e.push(A)),A=new mxPoint(A.x+n*b,A.y+H*b)):(f&&(A=new mxPoint(A.x+n*b,A.y+H*b),e.push(A)),A=new mxPoint(A.x+k*d,A.y+q*d));e.push(A)};var A=m;null==c&&(c=new mxPoint(m.x+(l.x-m.x)/2,m.y+(l.y-m.y)/2));b(c.x,c.y,!0);b(l.x,l.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",
2903mxEdgeStyle.IsometricConnector);var eb=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(b,d){if(d==mxEdgeStyle.IsometricConnector){var f=new mxElbowEdgeHandler(b);f.snapToTerminals=!1;return f}return eb.apply(this,arguments)};k.prototype.constraints=[];g.prototype.getConstraints=function(b,d,f){b=[];var c=Math.tan(mxUtils.toRadians(30)),e=(.5-c)/2,c=Math.min(d,f/(.5+c));d=(d-c)/2;f=(f-c)/2;b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f+.25*c));b.push(new mxConnectionConstraint(new mxPoint(0,
29040),!1,null,d+.5*c,f+c*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+c,f+.25*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+c,f+.75*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+.5*c,f+(1-e)*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f+.75*c));return b};f.prototype.getConstraints=function(b,d,f){b=[];var c=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,c=Math.min(d*
2905Math.tan(c),.5*f);b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f-c));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f-c));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
29060,c));return b};C.prototype.getConstraints=function(b,d,f){b=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var c=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));parseFloat(mxUtils.getValue(this.style,"position",this.position));var e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2))));parseFloat(mxUtils.getValue(this.style,"base",this.base));b.push(new mxConnectionConstraint(new mxPoint(0,
29070),!1));b.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(f-c)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,
2908f-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(f-c)));d>=2*c&&b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return b};mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,
2909.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0)];mxEllipse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
29100),!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))];Ea.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=
2911mxRectangleShape.prototype.constraints;ea.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;t.prototype.getConstraints=function(b,d,f){b=[];var c=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,
2912null,d-c,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.5*c,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(f+c)));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));d>=2*c&&b.push(new mxConnectionConstraint(new mxPoint(.5,
29130),!1));return b};v.prototype.getConstraints=function(b,d,f){b=[];var c=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));b.push(new mxConnectionConstraint(new mxPoint(0,
29140),!1,null,0,.5*(f+c)));b.push(new mxConnectionConstraint(new mxPoint(0,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));d>=2*c&&b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return b};c.prototype.getConstraints=function(b,d,f){b=[];var c=Math.max(0,Math.min(d,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));b.push(new mxConnectionConstraint(new mxPoint(0,
29150),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.5*c,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(f+c)));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),f));b.push(new mxConnectionConstraint(new mxPoint(0,
29160),!1,null,c,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,f-.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(f-c)));return b};q.prototype.getConstraints=function(b,d,f){b=[];d=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,
29171),!1));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,d));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,0,-d));b.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,0,-d));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d+.5*(.5*f-d)));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,d+.5*(.5*f-d)));b.push(new mxConnectionConstraint(new mxPoint(1,
29180),!1,null,0,f-d-.5*(.5*f-d)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f-d-.5*(.5*f-d)));b.push(new mxConnectionConstraint(new mxPoint(.145,0),!1,null,0,.29*d));b.push(new mxConnectionConstraint(new mxPoint(.855,0),!1,null,0,.29*d));b.push(new mxConnectionConstraint(new mxPoint(.855,1),!1,null,0,.29*-d));b.push(new mxConnectionConstraint(new mxPoint(.145,1),!1,null,0,.29*-d));return b};n.prototype.getConstraints=function(b,d,f){b=[];var c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,
2919"tabWidth",this.tabWidth)))),e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?(b.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,0)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,0)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
2920.5*(d+c),e))):(b.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.5*c,0)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,0)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,e)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),e)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.25*(f-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,
29210),!1,null,d,.5*(f-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.75*(f-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(f-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(f-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.75*(f-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,
29220),!1,null,0,f));b.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return b};U.prototype.constraints=mxRectangleShape.prototype.constraints;ca.prototype.constraints=mxRectangleShape.prototype.constraints;wa.prototype.constraints=mxEllipse.prototype.constraints;xa.prototype.constraints=mxEllipse.prototype.constraints;qa.prototype.constraints=mxEllipse.prototype.constraints;Ka.prototype.constraints=
2923mxEllipse.prototype.constraints;V.prototype.constraints=mxRectangleShape.prototype.constraints;Ba.prototype.constraints=mxRectangleShape.prototype.constraints;Fa.prototype.getConstraints=function(b,d,f){b=[];var c=Math.min(d,f/2),e=Math.min(d-c,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*d);b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
2924.5*(e+d-c),0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,0));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(e+d-c),f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,f));return b};na.prototype.getConstraints=function(b,d,f){d=parseFloat(mxUtils.getValue(b,"jettyWidth",na.prototype.jettyWidth))/2;b=parseFloat(mxUtils.getValue(b,
2925"jettyHeight",na.prototype.jettyHeight));var c=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,d),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(0,1),!1,null,
2926d),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(f-.5*b,1.5*b)),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(f-.5*b,3.5*b))];f>5*b&&c.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,d));f>8*b&&c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,d));f>
292715*b&&c.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,d));return c};P.prototype.constraints=mxRectangleShape.prototype.constraints;fa.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,
2928.7),!0),new mxConnectionConstraint(new mxPoint(1,.3),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.7),!0),new mxConnectionConstraint(new mxPoint(.15,.95),!1),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.85,.95),!1)];T.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.1),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.75,.1),!1),new mxConnectionConstraint(new mxPoint(0,
29291/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)];pa.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,
2930.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,
2931.25),!1),new mxConnectionConstraint(new mxPoint(.9,.5),!1),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];m.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(.5,.25),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,
2932.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.5,.75),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];y.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,
29331),!1),new mxConnectionConstraint(new mxPoint(.75,0),!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(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,
2934.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxLine.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];aa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,
29351),!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=
2936[new mxConnectionConstraint(new mxPoint(.375,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.625,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.375,1),!0),
2937new 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,
2938.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)];D.prototype.constraints=mxRectangleShape.prototype.constraints;I.prototype.constraints=mxRectangleShape.prototype.constraints;x.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,
29390),!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;S.prototype.getConstraints=function(b,d,f){b=[];var c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,
2940"dy",this.dy))));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*d+.25*c,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),e));b.push(new mxConnectionConstraint(new mxPoint(0,
29410),!1,null,.5*(d+c),.5*(f+e)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),f));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),.5*(f+e)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*d-.25*c,e));b.push(new mxConnectionConstraint(new mxPoint(0,
29420),!1,null,0,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*e));return b};ma.prototype.getConstraints=function(b,d,f){b=[];var c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e=Math.max(0,Math.min(f,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
29430),!1,null,d,.5*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(f+e)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,f));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
29441),!1));return b};ta.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];ga.prototype.getConstraints=
2945function(b,d,f){b=[];var c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize)))),c=(f-c)/2;b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-e),c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-e,0));b.push(new mxConnectionConstraint(new mxPoint(1,
2946.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-e,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-e),f-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f-c));return b};ja.prototype.getConstraints=function(b,d,f){b=[];var c=f*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ga.prototype.arrowWidth)))),e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ga.prototype.arrowSize)))),c=(f-c)/2;b.push(new mxConnectionConstraint(new mxPoint(0,
2947.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-e,0));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-e,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,f-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,f));return b};Ha.prototype.getConstraints=
2948function(b,d,f){b=[];var c=Math.min(f,d),e=Math.max(0,Math.min(c,c*parseFloat(mxUtils.getValue(this.style,"size",this.size)))),c=(f-e)/2,g=c+e,l=(d-e)/2,e=l+e;b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,0));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,
29490),!1,null,e,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,f-.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,f));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,f-.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+e),c));b.push(new mxConnectionConstraint(new mxPoint(0,
29500),!1,null,d,c));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+e),g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*l,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
29510),!1,null,0,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*l,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,c));return b};G.prototype.constraints=null;ua.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,
2952.9),!1)];Ca.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)];ha.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ka.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
2953.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)]})();function Actions(b){this.editorUi=b;this.actions={};this.init()}
2954Actions.prototype.init=function(){function b(b){g.escape();b=g.deleteCells(g.getDeletableCells(g.getSelectionCells()),b);null!=b&&g.setSelectionCells(b)}function c(){if(!g.isSelectionEmpty()){g.getModel().beginUpdate();try{for(var b=g.getSelectionCells(),d=0;d<b.length;d++)g.cellLabelChanged(b[d],"")}finally{g.getModel().endUpdate()}}}var e=this.editorUi,k=e.editor,g=k.graph,p=function(){return Action.prototype.isEnabled.apply(this,arguments)&&g.isEnabled()};this.addAction("new...",function(){g.openLink(e.getUrl())});
2955this.addAction("open...",function(){window.openNew=!0;window.openKey="open";e.openFile()});this.addAction("smartFit",function(){g.popupMenuHandler.hideMenu();var b=g.view.scale,d=g.view.translate.x,c=g.view.translate.y;e.actions.get("resetView").funct();1E-5>Math.abs(b-g.view.scale)&&d==g.view.translate.x&&c==g.view.translate.y&&e.actions.get(g.pageVisible?"fitPage":"fitWindow").funct()});this.addAction("keyPressEnter",function(){g.isEnabled()&&(g.isSelectionEmpty()?e.actions.get("smartFit").funct():
2956g.startEditingAtCell())});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){e.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(b,d){try{var f=mxUtils.parseXml(b);k.graph.setSelectionCells(k.graph.importGraphModel(f.documentElement))}catch(m){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+m.message)}}));e.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=
2957null})}).isEnabled=p;this.addAction("save",function(){e.saveFile(!1)},null,null,Editor.ctrlKey+"+S").isEnabled=p;this.addAction("saveAs...",function(){e.saveFile(!0)},null,null,Editor.ctrlKey+"+Shift+S").isEnabled=p;this.addAction("export...",function(){e.showDialog((new ExportDialog(e)).container,300,340,!0,!0)});this.addAction("editDiagram...",function(){var b=new EditDiagramDialog(e);e.showDialog(b.container,620,420,!0,!1);b.init()});this.addAction("pageSetup...",function(){e.showDialog((new PageSetupDialog(e)).container,
2958320,240,!0,!0)}).isEnabled=p;this.addAction("print...",function(){e.showDialog((new PrintDialog(e)).container,300,180,!0,!0)},null,"sprite-print",Editor.ctrlKey+"+P");this.addAction("preview",function(){mxUtils.show(g,null,10,10)});this.addAction("undo",function(){e.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){e.redo()},null,"sprite-redo",mxClient.IS_WIN?Editor.ctrlKey+"+Y":Editor.ctrlKey+"+Shift+Z");this.addAction("cut",function(){var b=null;try{b=e.copyXml(),
2959null!=b&&g.removeCells(b,!1)}catch(l){}null==b&&mxClipboard.cut(g)},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",function(){try{e.copyXml()}catch(f){}try{mxClipboard.copy(g)}catch(f){e.handleError(f)}},null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){if(g.isEnabled()&&!g.isCellLocked(g.getDefaultParent())){var b=!1;try{Editor.enableNativeCipboard&&(e.readGraphModelFromClipboard(function(b){if(null!=b){g.getModel().beginUpdate();try{e.pasteXml(b,!0)}finally{g.getModel().endUpdate()}}else mxClipboard.paste(g)}),
2960b=!0)}catch(l){}b||mxClipboard.paste(g)}},!1,"sprite-paste",Editor.ctrlKey+"+V");this.addAction("pasteHere",function(b){function d(b){if(null!=b){for(var d=!0,f=0;f<b.length&&d;f++)d=d&&g.model.isEdge(b[f]);var c=g.view.translate,f=g.view.scale,e=c.x,l=c.y,c=null;if(1==b.length&&d){var m=g.getCellGeometry(b[0]);null!=m&&(c=m.getTerminalPoint(!0))}c=null!=c?c:g.getBoundingBoxFromGeometry(b,d);null!=c&&(d=Math.round(g.snap(g.popupMenuHandler.triggerX/f-e)),f=Math.round(g.snap(g.popupMenuHandler.triggerY/
2961f-l)),g.cellsMoved(b,d-c.x,f-c.y))}}function f(){g.getModel().beginUpdate();try{d(mxClipboard.paste(g))}finally{g.getModel().endUpdate()}}if(g.isEnabled()&&!g.isCellLocked(g.getDefaultParent())){b=!1;try{Editor.enableNativeCipboard&&(e.readGraphModelFromClipboard(function(b){if(null!=b){g.getModel().beginUpdate();try{d(e.pasteXml(b,!0))}finally{g.getModel().endUpdate()}}else f()}),b=!0)}catch(m){}b||f()}});this.addAction("copySize",function(){var b=g.getSelectionCell();g.isEnabled()&&null!=b&&g.getModel().isVertex(b)&&
2962(b=g.getCellGeometry(b),null!=b&&(e.copiedSize=new mxRectangle(b.x,b.y,b.width,b.height)))},null,null,"Alt+Shift+X");this.addAction("pasteSize",function(){if(g.isEnabled()&&!g.isSelectionEmpty()&&null!=e.copiedSize){g.getModel().beginUpdate();try{for(var b=g.getResizableCells(g.getSelectionCells()),d=0;d<b.length;d++)if(g.getModel().isVertex(b[d])){var c=g.getCellGeometry(b[d]);null!=c&&(c=c.clone(),c.width=e.copiedSize.width,c.height=e.copiedSize.height,g.getModel().setGeometry(b[d],c))}}finally{g.getModel().endUpdate()}}},
2963null,null,"Alt+Shift+V");this.addAction("copyData",function(){var b=g.getSelectionCell()||g.getModel().getRoot();g.isEnabled()&&null!=b&&(b=b.cloneValue(),null==b||isNaN(b.nodeType)||(e.copiedValue=b))},null,null,"Alt+Shift+B");this.addAction("pasteData",function(b,d){function f(d,f){var e=c.getValue(d);f=d.cloneValue(f);f.removeAttribute("placeholders");null==e||isNaN(e.nodeType)||f.setAttribute("placeholders",e.getAttribute("placeholders"));null!=b&&mxEvent.isShiftDown(b)||f.setAttribute("label",
2964g.convertValueToString(d));c.setValue(d,f)}b=null!=d?d:b;var c=g.getModel();if(g.isEnabled()&&!g.isSelectionEmpty()&&null!=e.copiedValue){c.beginUpdate();try{var l=g.getEditableCells(g.getSelectionCells());if(0==l.length)f(c.getRoot(),e.copiedValue);else for(var k=0;k<l.length;k++)f(l[k],e.copiedValue)}finally{c.endUpdate()}}},null,null,"Alt+Shift+E");this.addAction("delete",function(d,e){d=null!=e?e:d;null!=d&&mxEvent.isShiftDown(d)?c():b(null!=d&&(mxEvent.isControlDown(d)||mxEvent.isMetaDown(d)||
2965mxEvent.isAltDown(d)))},null,null,"Delete");this.addAction("deleteAll",function(){b(!0)});this.addAction("deleteLabels",function(){c()},null,null,Editor.ctrlKey+"+Delete");this.addAction("duplicate",function(){try{g.setSelectionCells(g.duplicateCells()),g.scrollCellToVisible(g.getSelectionCell())}catch(f){e.handleError(f)}},null,null,Editor.ctrlKey+"+D");this.put("turn",new Action(mxResources.get("turn")+" / "+mxResources.get("reverse"),function(b,d){b=null!=d?d:b;g.turnShapes(g.getResizableCells(g.getSelectionCells()),
2966null!=b?mxEvent.isShiftDown(b):!1)},null,null,Editor.ctrlKey+"+R"));this.put("selectConnections",new Action(mxResources.get("selectEdges"),function(b){b=g.getSelectionCell();g.isEnabled()&&null!=b&&g.addSelectionCells(g.getEdges(b))}));this.addAction("selectVertices",function(){g.selectVertices(null,!0)},null,null,Editor.ctrlKey+"+Shift+I");this.addAction("selectEdges",function(){g.selectEdges()},null,null,Editor.ctrlKey+"+Shift+E");this.addAction("selectAll",function(){g.selectAll(null,!0)},null,
2967null,Editor.ctrlKey+"+A");this.addAction("selectNone",function(){g.clearSelection()},null,null,Editor.ctrlKey+"+Shift+A");this.addAction("lockUnlock",function(){if(!g.isSelectionEmpty()){g.getModel().beginUpdate();try{var b=g.getSelectionCells(),d=g.getCurrentCellStyle(g.getSelectionCell()),c=1==mxUtils.getValue(d,mxConstants.STYLE_EDITABLE,1)?0:1;g.setCellStyles(mxConstants.STYLE_MOVABLE,c,b);g.setCellStyles(mxConstants.STYLE_RESIZABLE,c,b);g.setCellStyles(mxConstants.STYLE_ROTATABLE,c,b);g.setCellStyles(mxConstants.STYLE_DELETABLE,
2968c,b);g.setCellStyles(mxConstants.STYLE_EDITABLE,c,b);g.setCellStyles("connectable",c,b)}finally{g.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+L");this.addAction("home",function(){g.home()},null,null,"Shift+Home");this.addAction("exitGroup",function(){g.exitGroup()},null,null,Editor.ctrlKey+"+Shift+Home");this.addAction("enterGroup",function(){g.enterGroup()},null,null,Editor.ctrlKey+"+Shift+End");this.addAction("collapse",function(){g.foldCells(!0)},null,null,Editor.ctrlKey+"+Home");this.addAction("expand",
2969function(){g.foldCells(!1)},null,null,Editor.ctrlKey+"+End");this.addAction("toFront",function(){g.orderCells(!1)},null,null,Editor.ctrlKey+"+Shift+F");this.addAction("toBack",function(){g.orderCells(!0)},null,null,Editor.ctrlKey+"+Shift+B");this.addAction("bringForward",function(b){g.orderCells(!1,null,!0)});this.addAction("sendBackward",function(b){g.orderCells(!0,null,!0)});this.addAction("group",function(){if(g.isEnabled()){var b=mxUtils.sortCells(g.getSelectionCells(),!0);1!=b.length||g.isTable(b[0])||
2970g.isTableRow(b[0])?(b=g.getCellsForGroup(b),1<b.length&&g.setSelectionCell(g.groupCells(null,0,b))):g.setCellStyles("container","1")}},null,null,Editor.ctrlKey+"+G");this.addAction("ungroup",function(){if(g.isEnabled()){var b=g.getEditableCells(g.getSelectionCells());g.model.beginUpdate();try{var d=g.ungroupCells();if(null!=b)for(var c=0;c<b.length;c++)g.model.contains(b[c])&&(0==g.model.getChildCount(b[c])&&g.model.isVertex(b[c])&&g.setCellStyles("container","0",[b[c]]),d.push(b[c]))}finally{g.model.endUpdate()}0<
2971d.length&&g.setSelectionCells(d)}},null,null,Editor.ctrlKey+"+Shift+U");this.addAction("removeFromGroup",function(){if(g.isEnabled()){var b=g.getSelectionCells();if(null!=b){for(var d=[],c=0;c<b.length;c++)g.isTableRow(b[c])||g.isTableCell(b[c])||d.push(b[c]);g.removeCellsFromParent(d)}}});this.addAction("edit",function(){g.isEnabled()&&g.startEditingAtCell()},null,null,"F2/Enter");this.addAction("editData...",function(){var b=g.getSelectionCell()||g.getModel().getRoot();e.showDataDialog(b)},null,
2972null,Editor.ctrlKey+"+M");this.addAction("editTooltip...",function(){var b=g.getSelectionCell();if(g.isEnabled()&&null!=b&&g.isCellEditable(b)){var d="";if(mxUtils.isNode(b.value)){var c=null;Graph.translateDiagram&&null!=Graph.diagramLanguage&&b.value.hasAttribute("tooltip_"+Graph.diagramLanguage)&&(c=b.value.getAttribute("tooltip_"+Graph.diagramLanguage));null==c&&(c=b.value.getAttribute("tooltip"));null!=c&&(d=c)}d=new TextareaDialog(e,mxResources.get("editTooltip")+":",d,function(d){g.setTooltipForCell(b,
2973d)});e.showDialog(d.container,320,200,!0,!0);d.init()}},null,null,"Alt+Shift+T");this.addAction("openLink",function(){var b=g.getLinkForCell(g.getSelectionCell());null!=b&&g.openLink(b)});this.addAction("editLink...",function(){var b=g.getSelectionCell();if(g.isEnabled()&&null!=b&&g.isCellEditable(b)){var d=g.getLinkForCell(b)||"";e.showLinkDialog(d,mxResources.get("apply"),function(d,f,c){d=mxUtils.trim(d);g.setLinkForCell(b,0<d.length?d:null);g.setAttributeForCell(b,"linkTarget",c)},!0,g.getLinkTargetForCell(b))}},
2974null,null,"Alt+Shift+L");this.put("insertImage",new Action(mxResources.get("image")+"...",function(){g.isEnabled()&&!g.isCellLocked(g.getDefaultParent())&&(g.clearSelection(),e.actions.get("image").funct())})).isEnabled=p;this.put("insertLink",new Action(mxResources.get("link")+"...",function(){g.isEnabled()&&!g.isCellLocked(g.getDefaultParent())&&e.showLinkDialog("",mxResources.get("insert"),function(b,d,c){b=mxUtils.trim(b);if(0<b.length){var f=null,e=g.getLinkTitle(b);null!=d&&0<d.length&&(f=d[0].iconUrl,
2975e=d[0].name||d[0].type,e=e.charAt(0).toUpperCase()+e.substring(1),30<e.length&&(e=e.substring(0,30)+"..."));d=new mxCell(e,new mxGeometry(0,0,100,40),"fontColor=#0000EE;fontStyle=4;rounded=1;overflow=hidden;"+(null!=f?"shape=label;imageWidth=16;imageHeight=16;spacingLeft=26;align=left;image="+f:"spacing=10;"));d.vertex=!0;f=g.getCenterInsertPoint(g.getBoundingBoxFromGeometry([d],!0));d.geometry.x=f.x;d.geometry.y=f.y;g.setAttributeForCell(d,"linkTarget",c);g.setLinkForCell(d,b);g.cellSizeUpdated(d,
2976!0);g.getModel().beginUpdate();try{d=g.addCell(d),g.fireEvent(new mxEventObject("cellsInserted","cells",[d]))}finally{g.getModel().endUpdate()}g.setSelectionCell(d);g.scrollCellToVisible(g.getSelectionCell())}},!0)})).isEnabled=p;this.addAction("link...",mxUtils.bind(this,function(){if(g.isEnabled())if(g.cellEditor.isContentEditing()){var b=g.getSelectedElement(),d=g.getParentByName(b,"A",g.cellEditor.textarea),c="";if(null==d&&null!=b&&null!=b.getElementsByTagName)for(var m=b.getElementsByTagName("a"),
2977k=0;k<m.length&&null==d;k++)m[k].textContent==b.textContent&&(d=m[k]);null!=d&&"A"==d.nodeName&&(c=d.getAttribute("href")||"",g.selectNode(d));var u=g.cellEditor.saveSelection();e.showLinkDialog(c,mxResources.get("apply"),mxUtils.bind(this,function(b){g.cellEditor.restoreSelection(u);null!=b&&g.insertLink(b)}))}else g.isSelectionEmpty()?this.get("insertLink").funct():this.get("editLink").funct()})).isEnabled=p;this.addAction("autosize",function(){var b=g.getSelectionCells();if(null!=b){g.getModel().beginUpdate();
2978try{for(var d=0;d<b.length;d++){var c=b[d];0<g.getModel().getChildCount(c)?g.updateGroupBounds([c],0,!0):g.updateCellSize(c)}}finally{g.getModel().endUpdate()}}},null,null,Editor.ctrlKey+"+Shift+Y");this.addAction("formattedText",function(){g.stopEditing();var b=g.getCommonStyle(g.getSelectionCells()),b="1"==mxUtils.getValue(b,"html","0")?null:"1";g.getModel().beginUpdate();try{for(var d=g.getEditableCells(g.getSelectionCells()),c=0;c<d.length;c++)if(state=g.getView().getState(d[c]),null!=state){var m=
2979mxUtils.getValue(state.style,"html","0");if("1"==m&&null==b){var k=g.convertValueToString(state.cell);"0"!=mxUtils.getValue(state.style,"nl2Br","1")&&(k=k.replace(/\n/g,"").replace(/<br\s*.?>/g,"\n"));var u=document.createElement("div");u.innerHTML=g.sanitizeHtml(k);k=mxUtils.extractTextWithWhitespace(u.childNodes);g.cellLabelChanged(state.cell,k);g.setCellStyles("html",b,[d[c]])}else"0"==m&&"1"==b&&(k=mxUtils.htmlEntities(g.convertValueToString(state.cell),!1),"0"!=mxUtils.getValue(state.style,"nl2Br",
2980"1")&&(k=k.replace(/\n/g,"<br/>")),g.cellLabelChanged(state.cell,g.sanitizeHtml(k)),g.setCellStyles("html",b,[d[c]]))}e.fireEvent(new mxEventObject("styleChanged","keys",["html"],"values",[null!=b?b:"0"],"cells",d))}finally{g.getModel().endUpdate()}});this.addAction("wordWrap",function(){var b=g.getView().getState(g.getSelectionCell()),d="wrap";g.stopEditing();null!=b&&"wrap"==b.style[mxConstants.STYLE_WHITE_SPACE]&&(d=null);g.setCellStyles(mxConstants.STYLE_WHITE_SPACE,d)});this.addAction("rotation",
2981function(){var b="0",d=g.getView().getState(g.getSelectionCell());null!=d&&(b=d.style[mxConstants.STYLE_ROTATION]||b);b=new FilenameDialog(e,b,mxResources.get("apply"),function(b){null!=b&&0<b.length&&g.setCellStyles(mxConstants.STYLE_ROTATION,b)},mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)");e.showDialog(b.container,375,80,!0,!0);b.init()});this.addAction("resetView",function(){g.zoomTo(1);e.resetScrollbars()},null,null,"Enter/Home");this.addAction("zoomIn",function(b){g.isFastZoomEnabled()?
2982g.lazyZoom(!0,!0,e.buttonZoomDelay):g.zoomIn()},null,null,Editor.ctrlKey+" + (Numpad) / Alt+Mousewheel");this.addAction("zoomOut",function(b){g.isFastZoomEnabled()?g.lazyZoom(!1,!0,e.buttonZoomDelay):g.zoomOut()},null,null,Editor.ctrlKey+" - (Numpad) / Alt+Mousewheel");this.addAction("fitWindow",function(){var b=g.isSelectionEmpty()?g.getGraphBounds():g.getBoundingBox(g.getSelectionCells()),d=g.view.translate,c=g.view.scale;b.x=b.x/c-d.x;b.y=b.y/c-d.y;b.width/=c;b.height/=c;null!=g.backgroundImage&&
2983(b=mxRectangle.fromRectangle(b),b.add(new mxRectangle(0,0,g.backgroundImage.width,g.backgroundImage.height)));0==b.width||0==b.height?(g.zoomTo(1),e.resetScrollbars()):(d=Editor.fitWindowBorders,null!=d&&(b.x-=d.x,b.y-=d.y,b.width+=d.width+d.x,b.height+=d.height+d.y),g.fitWindow(b))},null,null,Editor.ctrlKey+"+Shift+H");this.addAction("fitPage",mxUtils.bind(this,function(){g.pageVisible||this.get("pageView").funct();var b=g.pageFormat,d=g.pageScale;g.zoomTo(Math.floor(20*Math.min((g.container.clientWidth-
298410)/b.width/d,(g.container.clientHeight-10)/b.height/d))/20);mxUtils.hasScrollbars(g.container)&&(b=g.getPagePadding(),g.container.scrollTop=b.y*g.view.scale-1,g.container.scrollLeft=Math.min(b.x*g.view.scale,(g.container.scrollWidth-g.container.clientWidth)/2)-1)}),null,null,Editor.ctrlKey+"+J");this.addAction("fitTwoPages",mxUtils.bind(this,function(){g.pageVisible||this.get("pageView").funct();var b=g.pageFormat,d=g.pageScale;g.zoomTo(Math.floor(20*Math.min((g.container.clientWidth-10)/(2*b.width)/
2985d,(g.container.clientHeight-10)/b.height/d))/20);mxUtils.hasScrollbars(g.container)&&(b=g.getPagePadding(),g.container.scrollTop=Math.min(b.y,(g.container.scrollHeight-g.container.clientHeight)/2),g.container.scrollLeft=Math.min(b.x,(g.container.scrollWidth-g.container.clientWidth)/2))}),null,null,Editor.ctrlKey+"+Shift+J");this.addAction("fitPageWidth",mxUtils.bind(this,function(){g.pageVisible||this.get("pageView").funct();g.zoomTo(Math.floor(20*(g.container.clientWidth-10)/g.pageFormat.width/g.pageScale)/
298620);if(mxUtils.hasScrollbars(g.container)){var b=g.getPagePadding();g.container.scrollLeft=Math.min(b.x*g.view.scale,(g.container.scrollWidth-g.container.clientWidth)/2)}}));this.put("customZoom",new Action(mxResources.get("custom")+"...",mxUtils.bind(this,function(){var b=new FilenameDialog(this.editorUi,parseInt(100*g.getView().getScale()),mxResources.get("apply"),mxUtils.bind(this,function(b){b=parseInt(b);!isNaN(b)&&0<b&&g.zoomTo(b/100)}),mxResources.get("zoom")+" (%)");this.editorUi.showDialog(b.container,
2987300,80,!0,!0);b.init()}),null,null,Editor.ctrlKey+"+0"));this.addAction("pageScale...",mxUtils.bind(this,function(){var b=new FilenameDialog(this.editorUi,parseInt(100*g.pageScale),mxResources.get("apply"),mxUtils.bind(this,function(b){b=parseInt(b);!isNaN(b)&&0<b&&(b=new ChangePageSetup(e,null,null,null,b/100),b.ignoreColor=!0,b.ignoreImage=!0,g.model.execute(b))}),mxResources.get("pageScale")+" (%)");this.editorUi.showDialog(b.container,300,80,!0,!0);b.init()}));var t=null,t=this.addAction("grid",
2988function(){g.setGridEnabled(!g.isGridEnabled());g.defaultGridEnabled=g.isGridEnabled();e.fireEvent(new mxEventObject("gridEnabledChanged"))},null,null,Editor.ctrlKey+"+Shift+G");t.setToggleAction(!0);t.setSelectedCallback(function(){return g.isGridEnabled()});t.setEnabled(!1);t=this.addAction("guides",function(){g.graphHandler.guidesEnabled=!g.graphHandler.guidesEnabled;e.fireEvent(new mxEventObject("guidesEnabledChanged"))});t.setToggleAction(!0);t.setSelectedCallback(function(){return g.graphHandler.guidesEnabled});
2989t.setEnabled(!1);t=this.addAction("tooltips",function(){g.tooltipHandler.setEnabled(!g.tooltipHandler.isEnabled());e.fireEvent(new mxEventObject("tooltipsEnabledChanged"))});t.setToggleAction(!0);t.setSelectedCallback(function(){return g.tooltipHandler.isEnabled()});t=this.addAction("collapseExpand",function(){var b=new ChangePageSetup(e);b.ignoreColor=!0;b.ignoreImage=!0;b.foldingEnabled=!g.foldingEnabled;g.model.execute(b)});t.setToggleAction(!0);t.setSelectedCallback(function(){return g.foldingEnabled});
2990t.isEnabled=p;t=this.addAction("scrollbars",function(){e.setScrollbars(!e.hasScrollbars())});t.setToggleAction(!0);t.setSelectedCallback(function(){return g.scrollbars});t=this.addAction("pageView",mxUtils.bind(this,function(){e.setPageVisible(!g.pageVisible)}));t.setToggleAction(!0);t.setSelectedCallback(function(){return g.pageVisible});t=this.addAction("connectionArrows",function(){g.connectionArrowsEnabled=!g.connectionArrowsEnabled;e.fireEvent(new mxEventObject("connectionArrowsChanged"))},null,
2991null,"Alt+Shift+A");t.setToggleAction(!0);t.setSelectedCallback(function(){return g.connectionArrowsEnabled});t=this.addAction("connectionPoints",function(){g.setConnectable(!g.connectionHandler.isEnabled());e.fireEvent(new mxEventObject("connectionPointsChanged"))},null,null,"Alt+Shift+P");t.setToggleAction(!0);t.setSelectedCallback(function(){return g.connectionHandler.isEnabled()});t=this.addAction("copyConnect",function(){g.connectionHandler.setCreateTarget(!g.connectionHandler.isCreateTarget());
2992e.fireEvent(new mxEventObject("copyConnectChanged"))});t.setToggleAction(!0);t.setSelectedCallback(function(){return g.connectionHandler.isCreateTarget()});t.isEnabled=p;t=this.addAction("autosave",function(){e.editor.setAutosave(!e.editor.autosave)});t.setToggleAction(!0);t.setSelectedCallback(function(){return e.editor.autosave});t.isEnabled=p;t.visible=!1;this.addAction("help",function(){var b="";mxResources.isLanguageSupported(mxClient.language)&&(b="_"+mxClient.language);g.openLink(RESOURCES_PATH+
2993"/help"+b+".html")});var d=!1;this.put("about",new Action(mxResources.get("about")+" Graph Editor...",function(){d||(e.showDialog((new AboutDialog(e)).container,320,280,!0,!0,function(){d=!1}),d=!0)}));t=mxUtils.bind(this,function(b,d,c,e){return this.addAction(b,function(){if(null!=c&&g.cellEditor.isContentEditing())c();else{g.stopEditing(!1);g.getModel().beginUpdate();try{var b=g.getEditableCells(g.getSelectionCells());g.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,d,b);(d&mxConstants.FONT_BOLD)==
2994mxConstants.FONT_BOLD?g.updateLabelElements(b,function(b){b.style.fontWeight=null;"B"==b.nodeName&&g.replaceElement(b)}):(d&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC?g.updateLabelElements(b,function(b){b.style.fontStyle=null;"I"==b.nodeName&&g.replaceElement(b)}):(d&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&g.updateLabelElements(b,function(b){b.style.textDecoration=null;"U"==b.nodeName&&g.replaceElement(b)});for(var f=0;f<b.length;f++)0==g.model.getChildCount(b[f])&&g.autoSizeCell(b[f],
2995!1)}finally{g.getModel().endUpdate()}}},null,null,e)});t("bold",mxConstants.FONT_BOLD,function(){document.execCommand("bold",!1,null)},Editor.ctrlKey+"+B");t("italic",mxConstants.FONT_ITALIC,function(){document.execCommand("italic",!1,null)},Editor.ctrlKey+"+I");t("underline",mxConstants.FONT_UNDERLINE,function(){document.execCommand("underline",!1,null)},Editor.ctrlKey+"+U");this.addAction("fontColor...",function(){e.menus.pickColor(mxConstants.STYLE_FONTCOLOR,"forecolor","000000")});this.addAction("strokeColor...",
2996function(){e.menus.pickColor(mxConstants.STYLE_STROKECOLOR)});this.addAction("fillColor...",function(){e.menus.pickColor(mxConstants.STYLE_FILLCOLOR)});this.addAction("gradientColor...",function(){e.menus.pickColor(mxConstants.STYLE_GRADIENTCOLOR)});this.addAction("backgroundColor...",function(){e.menus.pickColor(mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"backcolor")});this.addAction("borderColor...",function(){e.menus.pickColor(mxConstants.STYLE_LABEL_BORDERCOLOR)});this.addAction("vertical",function(){e.menus.toggleStyle(mxConstants.STYLE_HORIZONTAL,
2997!0)});this.addAction("shadow",function(){e.menus.toggleStyle(mxConstants.STYLE_SHADOW)});this.addAction("solid",function(){g.getModel().beginUpdate();try{g.setCellStyles(mxConstants.STYLE_DASHED,null),g.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),e.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",[null,null],"cells",g.getSelectionCells()))}finally{g.getModel().endUpdate()}});this.addAction("dashed",function(){g.getModel().beginUpdate();
2998try{g.setCellStyles(mxConstants.STYLE_DASHED,"1"),g.setCellStyles(mxConstants.STYLE_DASH_PATTERN,null),e.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1",null],"cells",g.getSelectionCells()))}finally{g.getModel().endUpdate()}});this.addAction("dotted",function(){g.getModel().beginUpdate();try{g.setCellStyles(mxConstants.STYLE_DASHED,"1"),g.setCellStyles(mxConstants.STYLE_DASH_PATTERN,"1 4"),e.fireEvent(new mxEventObject("styleChanged",
2999"keys",[mxConstants.STYLE_DASHED,mxConstants.STYLE_DASH_PATTERN],"values",["1","1 4"],"cells",g.getSelectionCells()))}finally{g.getModel().endUpdate()}});this.addAction("sharp",function(){g.getModel().beginUpdate();try{g.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),g.setCellStyles(mxConstants.STYLE_CURVED,"0"),e.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","0"],"cells",g.getSelectionCells()))}finally{g.getModel().endUpdate()}});
3000this.addAction("rounded",function(){g.getModel().beginUpdate();try{g.setCellStyles(mxConstants.STYLE_ROUNDED,"1"),g.setCellStyles(mxConstants.STYLE_CURVED,"0"),e.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["1","0"],"cells",g.getSelectionCells()))}finally{g.getModel().endUpdate()}});this.addAction("toggleRounded",function(){if(!g.isSelectionEmpty()&&g.isEnabled()){g.getModel().beginUpdate();try{var b=g.getSelectionCells(),d=g.getCurrentCellStyle(b[0]),
3001c="1"==mxUtils.getValue(d,mxConstants.STYLE_ROUNDED,"0")?"0":"1";g.setCellStyles(mxConstants.STYLE_ROUNDED,c);g.setCellStyles(mxConstants.STYLE_CURVED,null);e.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",[c,"0"],"cells",g.getSelectionCells()))}finally{g.getModel().endUpdate()}}});this.addAction("curved",function(){g.getModel().beginUpdate();try{g.setCellStyles(mxConstants.STYLE_ROUNDED,"0"),g.setCellStyles(mxConstants.STYLE_CURVED,
3002"1"),e.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],"values",["0","1"],"cells",g.getSelectionCells()))}finally{g.getModel().endUpdate()}});this.addAction("collapsible",function(){var b=g.view.getState(g.getSelectionCell()),d="1";null!=b&&null!=g.getFoldingImage(b)&&(d="0");g.setCellStyles("collapsible",d);e.fireEvent(new mxEventObject("styleChanged","keys",["collapsible"],"values",[d],"cells",g.getSelectionCells()))});this.addAction("editStyle...",
3003mxUtils.bind(this,function(){var b=g.getEditableCells(g.getSelectionCells());if(null!=b&&0<b.length){var d=g.getModel(),d=new TextareaDialog(this.editorUi,mxResources.get("editStyle")+":",d.getStyle(b[0])||"",function(d){null!=d&&g.setCellStyle(mxUtils.trim(d),b)},null,null,400,220);this.editorUi.showDialog(d.container,420,300,!0,!0);d.init()}}),null,null,Editor.ctrlKey+"+E");this.addAction("setAsDefaultStyle",function(){g.isEnabled()&&!g.isSelectionEmpty()&&e.setDefaultStyle(g.getSelectionCell())},
3004null,null,Editor.ctrlKey+"+Shift+D");this.addAction("clearDefaultStyle",function(){g.isEnabled()&&e.clearDefaultStyle()},null,null,Editor.ctrlKey+"+Shift+R");this.addAction("addWaypoint",function(){var b=g.getSelectionCell();if(null!=b&&g.getModel().isEdge(b)){var d=k.graph.selectionCellsHandler.getHandler(b);if(d instanceof mxEdgeHandler){for(var c=g.view.translate,e=g.view.scale,n=c.x,c=c.y,b=g.getModel().getParent(b),u=g.getCellGeometry(b);g.getModel().isVertex(b)&&null!=u;)n+=u.x,c+=u.y,b=g.getModel().getParent(b),
3005u=g.getCellGeometry(b);n=Math.round(g.snap(g.popupMenuHandler.triggerX/e-n));e=Math.round(g.snap(g.popupMenuHandler.triggerY/e-c));d.addPointAt(d.state,n,e)}}});this.addAction("removeWaypoint",function(){var b=e.actions.get("removeWaypoint");null!=b.handler&&b.handler.removePoint(b.handler.state,b.index)});this.addAction("clearWaypoints",function(b,d){b=null!=d?d:b;var c=g.getSelectionCells();if(null!=c){c=g.getEditableCells(g.addAllEdges(c));g.getModel().beginUpdate();try{for(var f=0;f<c.length;f++){var e=
3006c[f];if(g.getModel().isEdge(e)){var l=g.getCellGeometry(e);mxEvent.isShiftDown(b)?(g.setCellStyles(mxConstants.STYLE_EXIT_X,null,[e]),g.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[e]),g.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[e]),g.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[e])):null!=l&&(l=l.clone(),l.points=null,l.x=0,l.y=0,l.offset=null,g.getModel().setGeometry(e,l))}}}finally{g.getModel().endUpdate()}}},null,null,"Alt+Shift+C");t=this.addAction("subscript",mxUtils.bind(this,function(){g.cellEditor.isContentEditing()&&
3007document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");t=this.addAction("superscript",mxUtils.bind(this,function(){g.cellEditor.isContentEditing()&&document.execCommand("superscript",!1,null)}),null,null,Editor.ctrlKey+"+.");this.addAction("image...",function(){if(g.isEnabled()&&!g.isCellLocked(g.getDefaultParent())){var b=mxResources.get("image")+" ("+mxResources.get("url")+"):",d=g.getView().getState(g.getSelectionCell()),c="";null!=d&&(c=d.style[mxConstants.STYLE_IMAGE]||c);
3008var m=g.cellEditor.saveSelection();e.showImageDialog(b,c,function(b,d,c){if(g.cellEditor.isContentEditing())g.cellEditor.restoreSelection(m),g.insertImage(b,d,c);else{var f=g.getSelectionCells();if(null!=b&&(0<b.length||0<f.length)){var e=null;g.getModel().beginUpdate();try{if(0==f.length){var f=[g.insertVertex(g.getDefaultParent(),null,"",0,0,d,c,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")],l=g.getCenterInsertPoint(g.getBoundingBoxFromGeometry(f,!0));
3009f[0].geometry.x=l.x;f[0].geometry.y=l.y;e=f;g.fireEvent(new mxEventObject("cellsInserted","cells",e))}g.setCellStyles(mxConstants.STYLE_IMAGE,0<b.length?b:null,f);var k=g.getCurrentCellStyle(f[0]);"image"!=k[mxConstants.STYLE_SHAPE]&&"label"!=k[mxConstants.STYLE_SHAPE]?g.setCellStyles(mxConstants.STYLE_SHAPE,"image",f):0==b.length&&g.setCellStyles(mxConstants.STYLE_SHAPE,null,f);if(1==g.getSelectionCount()&&null!=d&&null!=c){var n=f[0],q=g.getModel().getGeometry(n);null!=q&&(q=q.clone(),q.width=d,
3010q.height=c,g.getModel().setGeometry(n,q))}}finally{g.getModel().endUpdate()}null!=e&&(g.setSelectionCells(e),g.scrollCellToVisible(e[0]))}}},g.cellEditor.isContentEditing(),!g.cellEditor.isContentEditing())}}).isEnabled=p;t=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(e,document.body.offsetWidth-280,120,212,200),this.layersWindow.window.addListener("show",mxUtils.bind(this,function(){e.fireEvent(new mxEventObject("layers"));this.layersWindow.window.fit()})),
3011this.layersWindow.window.addListener("hide",function(){e.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),e.fireEvent(new mxEventObject("layers")),this.layersWindow.init()):this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+L");t.setToggleAction(!0);t.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));t=this.addAction("formatPanel",mxUtils.bind(this,
3012function(){e.toggleFormatPanel()}),null,null,Editor.ctrlKey+"+Shift+P");t.setToggleAction(!0);t.setSelectedCallback(mxUtils.bind(this,function(){return 0<e.formatWidth}));t=this.addAction("outline",mxUtils.bind(this,function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(e,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",mxUtils.bind(this,function(){e.fireEvent(new mxEventObject("outline"));this.outlineWindow.window.fit()})),this.outlineWindow.window.addListener("hide",
3013function(){e.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.setVisible(!0),e.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+O");t.setToggleAction(!0);t.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};
3014Actions.prototype.addAction=function(b,c,e,k,g){var p;"..."==b.substring(b.length-3)?(b=b.substring(0,b.length-3),p=mxResources.get(b)+"..."):p=mxResources.get(b);return this.put(b,new Action(p,c,e,k,g))};Actions.prototype.put=function(b,c){return this.actions[b]=c};Actions.prototype.get=function(b){return this.actions[b]};function Action(b,c,e,k,g){mxEventSource.call(this);this.label=b;this.funct=this.createFunction(c);this.enabled=null!=e?e:!0;this.iconCls=k;this.shortcut=g;this.visible=!0}
3015mxUtils.extend(Action,mxEventSource);Action.prototype.createFunction=function(b){return b};Action.prototype.setEnabled=function(b){this.enabled!=b&&(this.enabled=b,this.fireEvent(new mxEventObject("stateChanged")))};Action.prototype.isEnabled=function(){return this.enabled};Action.prototype.setToggleAction=function(b){this.toggleAction=b};Action.prototype.setSelectedCallback=function(b){this.selectedCallback=b};Action.prototype.isSelected=function(){return this.selectedCallback()};DrawioFile=function(b,c){mxEventSource.call(this);this.ui=b;this.shadowData=this.data=c||"";this.shadowPages=null;this.created=(new Date).getTime();this.stats={opened:0,merged:0,fileMerged:0,fileReloaded:0,conflicts:0,timeouts:0,saved:0,closed:0,destroyed:0,joined:0,checksumErrors:0,bytesSent:0,bytesReceived:0,msgSent:0,msgReceived:0,cacheHits:0,cacheMiss:0,cacheFail:0}};DrawioFile.SYNC=urlParams.sync||"auto";DrawioFile.LAST_WRITE_WINS=!0;mxUtils.extend(DrawioFile,mxEventSource);
3016DrawioFile.prototype.allChangesSavedKey="allChangesSaved";DrawioFile.prototype.savingSpinnerKey="saving";DrawioFile.prototype.savingStatusKey="saving";DrawioFile.prototype.autosaveDelay=1500;DrawioFile.prototype.maxAutosaveDelay=3E4;DrawioFile.prototype.optimisticSyncDelay=300;DrawioFile.prototype.autosaveThread=null;DrawioFile.prototype.lastAutosave=null;DrawioFile.prototype.lastSaved=null;DrawioFile.prototype.lastChanged=null;DrawioFile.prototype.opened=null;DrawioFile.prototype.modified=!1;
3017DrawioFile.prototype.shadowModified=!1;DrawioFile.prototype.data=null;DrawioFile.prototype.shadowData=null;DrawioFile.prototype.shadowPages=null;DrawioFile.prototype.changeListenerEnabled=!0;DrawioFile.prototype.lastAutosaveRevision=null;DrawioFile.prototype.maxAutosaveRevisionDelay=3E5;DrawioFile.prototype.inConflictState=!1;DrawioFile.prototype.invalidChecksum=!1;DrawioFile.prototype.errorReportsEnabled=!1;DrawioFile.prototype.ageStart=null;
3018DrawioFile.prototype.getSize=function(){return null!=this.data?this.data.length:0};DrawioFile.prototype.synchronizeFile=function(b,c){this.savingFile?null!=c&&c({message:mxResources.get("busy")}):null!=this.sync?this.sync.fileChanged(b,c):this.updateFile(b,c)};
3019DrawioFile.prototype.updateFile=function(b,c,e,k){null!=e&&e()||(this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=c&&c():this.getLatestVersion(mxUtils.bind(this,function(g){try{null!=e&&e()||(this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=c&&c():null!=g?this.mergeFile(g,b,c,k):this.reloadFile(b,c))}catch(p){null!=c&&c(p)}}),c))};
3020DrawioFile.prototype.mergeFile=function(b,c,e,k){var g=!0;try{this.stats.fileMerged++;var p=null!=this.shadowPages?this.shadowPages:this.ui.getPagesForNode(mxUtils.parseXml(this.shadowData).documentElement),t=this.ui.getPagesForNode(mxUtils.parseXml(b.data).documentElement);if(null!=t&&0<t.length){this.shadowPages=t;this.backupPatch=this.isModified()?this.ui.diffPages(p,this.ui.pages):null;var d=[this.ui.diffPages(null!=k?k:p,this.shadowPages)];if(!this.ignorePatches(d)){var f=this.ui.patchPages(p,
3021d[0]);k={};var l=this.ui.getHashValueForPages(f,k),p={},q=this.ui.getHashValueForPages(this.shadowPages,p);"1"==urlParams.test&&EditorUi.debug("File.mergeFile",[this],"backup",this.backupPatch,"patches",d,"checksum",q==l,l);if(null!=l&&l!=q){var m=this.compressReportData(this.getAnonymizedXmlForPages(t)),n=this.compressReportData(this.getAnonymizedXmlForPages(f)),u=this.ui.hashValue(b.getCurrentEtag()),v=this.ui.hashValue(this.getCurrentEtag());this.checksumError(e,d,"Shadow Details: "+JSON.stringify(k)+
3022"\nChecksum: "+l+"\nCurrent: "+q+"\nCurrent Details: "+JSON.stringify(p)+"\nFrom: "+u+"\nTo: "+v+"\n\nFile Data:\n"+m+"\nPatched Shadow:\n"+n,null,"mergeFile");return}this.patch(d,DrawioFile.LAST_WRITE_WINS?this.backupPatch:null)}}else throw g=!1,Error(mxResources.get("notADiagramFile"));this.inConflictState=this.invalidChecksum=!1;this.setDescriptor(b.getDescriptor());this.descriptorChanged();this.backupPatch=null;null!=c&&c()}catch(D){this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();
3023null!=e&&e(D);try{if(g)if(this.errorReportsEnabled)this.sendErrorReport("Error in mergeFile",null,D);else{var y=this.getCurrentUser(),x=null!=y?y.id:"unknown";EditorUi.logError("Error in mergeFile",null,this.getMode()+"."+this.getId(),x,D)}}catch(I){}}};
3024DrawioFile.prototype.getAnonymizedXmlForPages=function(b){var c=new mxCodec(mxUtils.createXmlDocument()),e=c.document.createElement("mxfile");if(null!=b)for(var k=0;k<b.length;k++){var g=c.encode(new mxGraphModel(b[k].root));"1"!=urlParams.dev&&(g=this.ui.anonymizeNode(g,!0));g.setAttribute("id",b[k].getId());b[k].viewState&&this.ui.editor.graph.saveViewState(b[k].viewState,g,!0);e.appendChild(g)}return mxUtils.getPrettyXml(e)};
3025DrawioFile.prototype.compressReportData=function(b,c,e){c=null!=c?c:1E4;null!=e&&null!=b&&b.length>e?b=b.substring(0,e)+"[...]":null!=b&&b.length>c&&(b=Graph.compress(b)+"\n");return b};
3026DrawioFile.prototype.checksumError=function(b,c,e,k,g){this.stats.checksumErrors++;this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();null!=this.sync&&this.sync.updateOnlineState();null!=b&&b();try{if(this.errorReportsEnabled){if(null!=c)for(b=0;b<c.length;b++)this.ui.anonymizePatch(c[b]);var p=mxUtils.bind(this,function(b){var d=this.compressReportData(JSON.stringify(c,null,2));b=null!=b?this.compressReportData(this.getAnonymizedXmlForPages(this.ui.getPagesForNode(mxUtils.parseXml(b.data).documentElement)),
302725E3):"n/a";this.sendErrorReport("Checksum Error in "+g+" "+this.getHash(),(null!=e?e:"")+"\n\nPatches:\n"+d+(null!=b?"\n\nRemote:\n"+b:""),null,7E4)});null==k?p(null):this.getLatestVersion(mxUtils.bind(this,function(b){null!=b&&b.getCurrentEtag()==k?p(b):p(null)}),function(){})}else{var t=this.getCurrentUser(),d=null!=t?t.id:"unknown";EditorUi.logError("Checksum Error in "+g+" "+this.getId(),null,this.getMode()+"."+this.getId(),"user_"+d+(null!=this.sync?"-client_"+this.sync.clientId:"-nosync"));
3028try{EditorUi.logEvent({category:"CHECKSUM-ERROR-SYNC-FILE-"+this.getHash(),action:g,label:"user_"+d+(null!=this.sync?"-client_"+this.sync.clientId:"-nosync")})}catch(f){}}}catch(f){}};
3029DrawioFile.prototype.sendErrorReport=function(b,c,e,k){try{var g=this.compressReportData(this.getAnonymizedXmlForPages(this.shadowPages),25E3),p=this.compressReportData(this.getAnonymizedXmlForPages(this.ui.pages),25E3),t=this.getCurrentUser(),d=null!=t?this.ui.hashValue(t.id):"unknown",f=null!=this.sync?"-client_"+this.sync.clientId:"-nosync",l=this.getTitle(),q=l.lastIndexOf("."),t="xml";0<q&&(t=l.substring(q));var m=null!=e?e.stack:Error().stack;EditorUi.sendReport(b+" "+(new Date).toISOString()+
3030":\n\nAppVersion="+navigator.appVersion+"\nFile="+this.ui.hashValue(this.getId())+" ("+this.getMode()+")"+(this.isModified()?" modified":"")+"\nSize/Type="+this.getSize()+" ("+t+")\nUser="+d+f+"\nPrefix="+this.ui.editor.graph.model.prefix+"\nSync="+DrawioFile.SYNC+(null!=this.sync?(this.sync.enabled?" enabled":"")+(this.sync.isConnected()?" connected":""):"")+"\nPlugins="+(null!=mxSettings.settings?mxSettings.getPlugins():"null")+"\n\nStats:\n"+JSON.stringify(this.stats,null,2)+(null!=c?"\n\n"+c:
3031"")+(null!=e?"\n\nError: "+e.message:"")+"\n\nStack:\n"+m+"\n\nShadow:\n"+g+"\n\nData:\n"+p,k)}catch(n){}};
3032DrawioFile.prototype.reloadFile=function(b,c){try{this.ui.spinner.stop();var e=mxUtils.bind(this,function(){this.stats.fileReloaded++;var c=this.ui.editor.graph.getViewState(),e=this.ui.editor.graph.getSelectionCells(),p=this.ui.currentPage;this.ui.loadFile(this.getHash(),!0,null,mxUtils.bind(this,function(){if(null==this.ui.fileLoadedError){this.ui.restoreViewState(p,c,e);null!=this.backupPatch&&this.patch([this.backupPatch]);var g=this.ui.getCurrentFile();null!=g&&(g.stats=this.stats);null!=b&&
3033b()}}),!0)});this.isModified()&&null==this.backupPatch?this.ui.confirm(mxResources.get("allChangesLost"),mxUtils.bind(this,function(){this.handleFileSuccess("manual"==DrawioFile.SYNC)}),e,mxResources.get("cancel"),mxResources.get("discardChanges")):e()}catch(k){null!=c&&c(k)}};DrawioFile.prototype.copyFile=function(b,c){this.ui.editor.editAsNew(this.ui.getFileData(!0),this.ui.getCopyFilename(this))};
3034DrawioFile.prototype.ignorePatches=function(b){for(var c=!0,e=0;e<b.length&&c;e++)c=c&&0==Object.keys(b[e]).length;return c};
3035DrawioFile.prototype.patch=function(b,c,e){var k=this.ui.editor.undoManager,g=k.history.slice(),p=k.indexOfNextAdd,t=this.ui.editor.graph;t.container.style.visibility="hidden";var d=this.changeListenerEnabled;this.changeListenerEnabled=e;var f=t.foldingEnabled,l=t.mathEnabled,q=t.cellRenderer.redraw;t.cellRenderer.redraw=function(b){b.view.graph.isEditing(b.cell)&&(b.view.graph.scrollCellToVisible(b.cell),b.view.graph.cellEditor.resize());q.apply(this,arguments)};t.model.beginUpdate();try{for(var m=
30360;m<b.length;m++)this.ui.pages=this.ui.patchPages(this.ui.pages,b[m],!0,c,this.isModified());0==this.ui.pages.length&&this.ui.pages.push(this.ui.createPage());0>mxUtils.indexOf(this.ui.pages,this.ui.currentPage)&&this.ui.selectPage(this.ui.pages[0],!0)}finally{t.container.style.visibility="";t.model.endUpdate();t.cellRenderer.redraw=q;this.changeListenerEnabled=d;e||(k.history=g,k.indexOfNextAdd=p,k.fireEvent(new mxEventObject(mxEvent.CLEAR)));if(null==this.ui.currentPage||this.ui.currentPage.needsUpdate)l!=
3037t.mathEnabled?(this.ui.editor.updateGraphComponents(),t.refresh()):(f!=t.foldingEnabled?t.view.revalidate():t.view.validate(),t.sizeDidChange());this.ui.updateTabContainer();this.ui.editor.fireEvent(new mxEventObject("pagesPatched","patches",b))}};
3038DrawioFile.prototype.save=function(b,c,e,k,g,p){try{if(this.isEditable())if(!g&&this.invalidChecksum)if(null!=e)e({message:mxResources.get("checksum")});else throw Error(mxResources.get("checksum"));else this.updateFileData(),this.clearAutosave(),null!=c&&c();else if(null!=e)e({message:mxResources.get("readOnly")});else throw Error(mxResources.get("readOnly"));}catch(t){if(null!=e)e(t);else throw t;}};
3039DrawioFile.prototype.updateFileData=function(){this.setData(this.ui.getFileData(null,null,null,null,null,null,null,null,this,!this.isCompressed()))};DrawioFile.prototype.isCompressedStorage=function(){return!0};DrawioFile.prototype.isCompressed=function(){var b=null!=this.ui.fileNode?this.ui.fileNode.getAttribute("compressed"):null;return null!=b?"false"!=b:this.isCompressedStorage()&&Editor.compressXml};DrawioFile.prototype.saveAs=function(b,c,e){};DrawioFile.prototype.saveFile=function(b,c,e,k){};
3040DrawioFile.prototype.getPublicUrl=function(b){b(null)};DrawioFile.prototype.isRestricted=function(){return!1};DrawioFile.prototype.isModified=function(){return this.modified};DrawioFile.prototype.getShadowModified=function(){return this.shadowModified};DrawioFile.prototype.setShadowModified=function(b){this.shadowModified=b};DrawioFile.prototype.setModified=function(b){this.shadowModified=this.modified=b};DrawioFile.prototype.isAutosaveOptional=function(){return!1};
3041DrawioFile.prototype.isAutosave=function(){return!this.inConflictState&&this.ui.editor.autosave};DrawioFile.prototype.isRenamable=function(){return!1};DrawioFile.prototype.rename=function(b,c,e){};DrawioFile.prototype.isMovable=function(){return!1};DrawioFile.prototype.isTrashed=function(){return!1};DrawioFile.prototype.move=function(b,c,e){};DrawioFile.prototype.share=function(){this.ui.alert(mxResources.get("sharingAvailable"),null,380)};DrawioFile.prototype.getHash=function(){return""};
3042DrawioFile.prototype.getId=function(){return""};DrawioFile.prototype.isEditable=function(){return!this.ui.editor.isChromelessView()||this.ui.editor.editable};DrawioFile.prototype.getUi=function(){return this.ui};DrawioFile.prototype.getTitle=function(){return""};DrawioFile.prototype.setData=function(b){this.data=b};DrawioFile.prototype.getData=function(){return this.data};
3043DrawioFile.prototype.open=function(){this.stats.opened++;var b=this.getData();if(null!=b){var c=function(b){for(var c=0;null!=b&&c<b.length;c++){var e=b[c];null!=e.id&&0==e.id.indexOf("extFont_")&&e.parentNode.removeChild(e)}};c(document.querySelectorAll("head > style[id]"));c(document.querySelectorAll("head > link[id]"));this.ui.setFileData(b);this.isModified()||(this.shadowData=mxUtils.getXml(this.ui.getXmlFileData()),this.shadowPages=null)}this.installListeners();this.isSyncSupported()&&this.startSync()};
3044DrawioFile.prototype.isSyncSupported=function(){return!1};DrawioFile.prototype.isRevisionHistorySupported=function(){return!1};DrawioFile.prototype.getRevisions=function(b,c){b(null)};DrawioFile.prototype.loadDescriptor=function(b,c){b(null)};DrawioFile.prototype.loadPatchDescriptor=function(b,c){this.loadDescriptor(mxUtils.bind(this,function(c){b(c)}),c)};DrawioFile.prototype.patchDescriptor=function(b,c){this.setDescriptorEtag(b,this.getDescriptorEtag(c));this.descriptorChanged()};
3045DrawioFile.prototype.startSync=function(){"auto"!=DrawioFile.SYNC||"1"==urlParams.stealth||"1"!=urlParams.rt&&this.ui.editor.chromeless&&!this.ui.editor.editable||(null==this.sync&&(this.sync=new DrawioFileSync(this)),this.sync.start())};DrawioFile.prototype.isConflict=function(){return!1};DrawioFile.prototype.getChannelId=function(){return Graph.compress(this.getHash()).replace(/[\/ +]/g,"_")};DrawioFile.prototype.getChannelKey=function(b){return null};DrawioFile.prototype.getCurrentUser=function(){return null};
3046DrawioFile.prototype.getLatestVersion=function(b,c){b(null)};DrawioFile.prototype.getLastModifiedDate=function(){return new Date};DrawioFile.prototype.setCurrentRevisionId=function(b){this.setDescriptorRevisionId(this.getDescriptor(),b)};DrawioFile.prototype.getCurrentRevisionId=function(){return this.getDescriptorRevisionId(this.getDescriptor())};DrawioFile.prototype.setCurrentEtag=function(b){this.setDescriptorEtag(this.getDescriptor(),b)};DrawioFile.prototype.getCurrentEtag=function(){return this.getDescriptorEtag(this.getDescriptor())};
3047DrawioFile.prototype.getDescriptor=function(){return null};DrawioFile.prototype.setDescriptor=function(){};DrawioFile.prototype.setDescriptorRevisionId=function(b,c){this.setDescriptorEtag(b,c)};DrawioFile.prototype.getDescriptorRevisionId=function(b){return this.getDescriptorEtag(b)};DrawioFile.prototype.setDescriptorEtag=function(b,c){};DrawioFile.prototype.getDescriptorEtag=function(b){return null};DrawioFile.prototype.getDescriptorSecret=function(b){return null};
3048DrawioFile.prototype.installListeners=function(){null==this.changeListener&&(this.changeListener=mxUtils.bind(this,function(b,c){var e=null!=c?c.getProperty("edit"):null;!this.changeListenerEnabled||!this.isEditable()||null!=e&&e.ignoreEdit||this.fileChanged()}),this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener),this.ui.editor.graph.addListener("gridSizeChanged",this.changeListener),this.ui.editor.graph.addListener("shadowVisibleChanged",this.changeListener),this.ui.addListener("pageFormatChanged",
3049this.changeListener),this.ui.addListener("pageScaleChanged",this.changeListener),this.ui.addListener("backgroundColorChanged",this.changeListener),this.ui.addListener("backgroundImageChanged",this.changeListener),this.ui.addListener("foldingEnabledChanged",this.changeListener),this.ui.addListener("mathEnabledChanged",this.changeListener),this.ui.addListener("gridEnabledChanged",this.changeListener),this.ui.addListener("guidesEnabledChanged",this.changeListener),this.ui.addListener("tooltipsEnabledChanged",
3050this.changeListener),this.ui.addListener("pageViewChanged",this.changeListener),this.ui.addListener("connectionPointsChanged",this.changeListener),this.ui.addListener("connectionArrowsChanged",this.changeListener))};
3051DrawioFile.prototype.addAllSavedStatus=function(b){null!=this.ui.statusContainer&&this.ui.getCurrentFile()==this&&(b=null!=b?b:mxUtils.htmlEntities(mxResources.get(this.allChangesSavedKey)),this.ui.editor.setStatus('<div title="'+b+'">'+b+"</div>"),b=this.ui.statusContainer.getElementsByTagName("div"),0<b.length&&this.isRevisionHistorySupported()&&(b[0].style.cursor="pointer",b[0].style.textDecoration="underline",mxEvent.addListener(b[0],"click",mxUtils.bind(this,function(){this.ui.actions.get("revisionHistory").funct()}))))};
3052DrawioFile.prototype.saveDraft=function(){try{null==this.draftId&&(this.draftId=Editor.guid());var b={type:"draft",created:this.created,modified:(new Date).getTime(),data:this.ui.getFileData(),title:this.getTitle(),aliveCheck:this.ui.draftAliveCheck};this.ui.setDatabaseItem(".draft_"+this.draftId,JSON.stringify(b));EditorUi.debug("draft saved",this.draftId,b)}catch(c){this.removeDraft()}};
3053DrawioFile.prototype.removeDraft=function(){try{null!=this.draftId&&(this.ui.removeDatabaseItem(".draft_"+this.draftId),EditorUi.debug("draft deleted",".draft_"+this.draftId))}catch(b){}};
3054DrawioFile.prototype.addUnsavedStatus=function(b){if(!this.inConflictState&&null!=this.ui.statusContainer&&this.ui.getCurrentFile()==this)if(b instanceof Error&&null!=b.message&&""!=b.message){var c=mxUtils.htmlEntities(mxResources.get("unsavedChanges"));this.ui.editor.setStatus('<div title="'+c+'" class="geStatusAlert">'+c+" ("+mxUtils.htmlEntities(b.message)+")</div>")}else{c=this.getErrorMessage(b);if(null==c&&null!=this.lastSaved){var e=this.ui.timeSince(new Date(this.lastSaved));null!=e&&(c=
3055mxResources.get("lastSaved",[e]))}null!=c&&60<c.length&&(c=c.substring(0,60)+"...");c=mxUtils.htmlEntities(mxResources.get("unsavedChangesClickHereToSave"))+(null!=c&&""!=c?" ("+mxUtils.htmlEntities(c)+")":"");this.ui.editor.setStatus('<div title="'+c+'" class="geStatusAlertOrange">'+c+' <img src="'+Editor.saveImage+'"/></div>');c=this.ui.statusContainer.getElementsByTagName("div");null!=c&&0<c.length?(c[0].style.cursor="pointer",mxEvent.addListener(c[0],"click",mxUtils.bind(this,function(){this.ui.actions.get(null!=
3056this.ui.mode&&this.isEditable()?"save":"saveAs").funct()}))):(c=mxUtils.htmlEntities(mxResources.get("unsavedChanges")),this.ui.editor.setStatus('<div title="'+c+'" class="geStatusAlert">'+c+" ("+mxUtils.htmlEntities(b.message)+")</div>"));EditorUi.enableDrafts&&(null==this.getMode()||EditorUi.isElectronApp)&&(null!=this.saveDraftThread&&window.clearTimeout(this.saveDraftThread),this.saveDraftThread=window.setTimeout(mxUtils.bind(this,function(){this.saveDraft()}),0))}};
3057DrawioFile.prototype.addConflictStatus=function(b,c){this.invalidChecksum&&null==c&&(c=mxResources.get("checksum"));this.setConflictStatus(mxUtils.htmlEntities(mxResources.get("fileChangedSync"))+(null!=c&&""!=c?" ("+mxUtils.htmlEntities(c)+")":""));this.ui.spinner.stop();this.clearAutosave();var e=null!=this.ui.statusContainer?this.ui.statusContainer.getElementsByTagName("div"):null;null!=e&&0<e.length?(e[0].style.cursor="pointer",mxEvent.addListener(e[0],"click",mxUtils.bind(this,function(c){"IMG"!=
3058mxEvent.getSource(c).nodeName&&b()}))):this.ui.alert(mxUtils.htmlEntities(mxResources.get("fileChangedSync")),b)};DrawioFile.prototype.setConflictStatus=function(b){this.ui.editor.setStatus('<div title="'+b+'" class="geStatusAlert">'+b+' <a href="https://www.diagrams.net/doc/faq/synchronize" title="'+mxResources.get("help")+'" target="_blank"><img src="'+Editor.helpImage+'"/></a></div>')};
3059DrawioFile.prototype.showRefreshDialog=function(b,c,e){null==e&&(e=mxResources.get("checksum"));this.ui.editor.isChromelessView()&&!this.ui.editor.editable?this.ui.alert(mxResources.get("fileChangedSync"),mxUtils.bind(this,function(){this.reloadFile(b,c)})):(this.addConflictStatus(mxUtils.bind(this,function(){this.showRefreshDialog(b,c)}),e),this.ui.showError(mxResources.get("error")+" ("+e+")",mxResources.get("fileChangedSyncDialog"),mxResources.get("makeCopy"),mxUtils.bind(this,function(){this.copyFile(b,
3060c)}),null,mxResources.get("synchronize"),mxUtils.bind(this,function(){this.reloadFile(b,c)}),mxResources.get("cancel"),mxUtils.bind(this,function(){this.ui.hideDialog()}),360,150))};
3061DrawioFile.prototype.showCopyDialog=function(b,c,e){this.invalidChecksum=this.inConflictState=!1;this.addUnsavedStatus();this.ui.showError(mxResources.get("externalChanges"),mxResources.get("fileChangedOverwriteDialog"),mxResources.get("makeCopy"),mxUtils.bind(this,function(){this.copyFile(b,c)}),null,mxResources.get("overwrite"),e,mxResources.get("cancel"),mxUtils.bind(this,function(){this.ui.hideDialog()}),360,150)};
3062DrawioFile.prototype.showConflictDialog=function(b,c){this.ui.showError(mxResources.get("externalChanges"),mxResources.get("fileChangedSyncDialog"),mxResources.get("overwrite"),b,null,mxResources.get("synchronize"),c,mxResources.get("cancel"),mxUtils.bind(this,function(){this.ui.hideDialog();this.handleFileError(null,!1)}),340,150)};
3063DrawioFile.prototype.redirectToNewApp=function(b,c){this.ui.spinner.stop();if(!this.redirectDialogShowing){this.redirectDialogShowing=!0;var e=window.location.protocol+"//"+window.location.host+"/"+this.ui.getSearch("create title mode url drive splash state".split(" "))+"#"+this.getHash(),k=mxResources.get("redirectToNewApp");null!=c&&(k+=" ("+c+")");var g=mxUtils.bind(this,function(){var c=mxUtils.bind(this,function(){this.redirectDialogShowing=!1;window.location.href==e?window.location.reload():
3064window.location.href=e});null==b&&this.isModified()?this.ui.confirm(mxResources.get("allChangesLost"),mxUtils.bind(this,function(){this.redirectDialogShowing=!1}),c,mxResources.get("cancel"),mxResources.get("discardChanges")):c()});null!=b?this.isModified()?this.ui.confirm(k,mxUtils.bind(this,function(){this.redirectDialogShowing=!1;b()}),g,mxResources.get("cancel"),mxResources.get("discardChanges")):this.ui.confirm(k,g,mxUtils.bind(this,function(){this.redirectDialogShowing=!1;b()})):this.ui.alert(mxResources.get("redirectToNewApp"),
3065g)}};DrawioFile.prototype.handleFileSuccess=function(b){this.ui.spinner.stop();this.ui.getCurrentFile()==this&&(this.isModified()?this.fileChanged():b?(this.isTrashed()?this.addAllSavedStatus(mxUtils.htmlEntities(mxResources.get(this.allChangesSavedKey))+" ("+mxUtils.htmlEntities(mxResources.get("fileMovedToTrash"))+")"):this.addAllSavedStatus(),null!=this.sync&&(this.sync.resetUpdateStatusThread(),this.sync.remoteFileChanged&&(this.sync.remoteFileChanged=!1,this.sync.fileChangedNotify()))):this.ui.editor.setStatus(""))};
3066DrawioFile.prototype.handleFileError=function(b,c){this.ui.spinner.stop();if(this.ui.getCurrentFile()==this)if(this.inConflictState)this.handleConflictError(b,c);else if(this.isModified()&&this.addUnsavedStatus(b),c)this.ui.handleError(b,null!=b?mxResources.get("errorSavingFile"):null);else if(!this.isModified()){var e=this.getErrorMessage(b);null!=e&&60<e.length&&(e=e.substring(0,60)+"...");this.ui.editor.setStatus('<div class="geStatusAlert">'+mxUtils.htmlEntities(mxResources.get("error"))+(null!=
3067e?" ("+mxUtils.htmlEntities(e)+")":"")+"</div>")}};
3068DrawioFile.prototype.handleConflictError=function(b,c){var e=mxUtils.bind(this,function(){this.handleFileSuccess(!0)}),k=mxUtils.bind(this,function(b){this.handleFileError(b,!0)}),g=mxUtils.bind(this,function(){this.ui.spinner.spin(document.body,mxResources.get(this.savingSpinnerKey))&&(this.ui.editor.setStatus(""),this.save(!0,e,k,null,!0,this.constructor!=GitHubFile&&this.constructor!=GitLabFile||null==b?null:b.commitMessage))}),p=mxUtils.bind(this,function(){this.ui.spinner.spin(document.body,
3069mxResources.get("updatingDocument"))&&this.synchronizeFile(mxUtils.bind(this,function(){this.ui.spinner.stop();this.ui.spinner.spin(document.body,mxResources.get(this.savingSpinnerKey))&&this.save(!0,e,k,null,null,this.constructor!=GitHubFile&&this.constructor!=GitLabFile||null==b?null:b.commitMessage)}),k)});"none"==DrawioFile.SYNC?this.showCopyDialog(e,k,g):this.invalidChecksum?this.showRefreshDialog(e,k,this.getErrorMessage(b)):c?this.showConflictDialog(g,p):this.addConflictStatus(mxUtils.bind(this,
3070function(){this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("updatingDocument")));this.synchronizeFile(e,k)}),this.getErrorMessage(b))};DrawioFile.prototype.getErrorMessage=function(b){var c=null!=b?null!=b.error?b.error.message:b.message:null;null==c&&null!=b&&b.code==App.ERROR_TIMEOUT&&(c=mxResources.get("timeout"));return c};DrawioFile.prototype.isOverdue=function(){return null!=this.ageStart&&Date.now()-this.ageStart.getTime()>=this.ui.warnInterval};
3071DrawioFile.prototype.fileChanged=function(){this.lastChanged=new Date;this.setModified(!0);this.isAutosave()?(null!=this.savingStatusKey&&this.addAllSavedStatus(mxUtils.htmlEntities(mxResources.get(this.savingStatusKey))+"..."),this.ui.scheduleSanityCheck(),null==this.ageStart&&(this.ageStart=new Date),this.sendFileChanges(),this.autosave(this.autosaveDelay,this.maxAutosaveDelay,mxUtils.bind(this,function(b){this.ui.stopSanityCheck();null==this.autosaveThread?(this.handleFileSuccess(!0),this.ageStart=
3072null):this.isModified()&&(this.ui.scheduleSanityCheck(),this.ageStart=this.lastChanged)}),mxUtils.bind(this,function(b){this.handleFileError(b)}))):(this.ageStart=null,this.isAutosaveOptional()&&this.ui.editor.autosave||this.inConflictState||this.addUnsavedStatus())};DrawioFile.prototype.isOptimisticSync=function(){return!1};
3073DrawioFile.prototype.createSecret=function(b){var c=Editor.guid(32);null==this.sync||this.isOptimisticSync()?b(c):this.sync.createToken(c,mxUtils.bind(this,function(e){b(c,e)}),mxUtils.bind(this,function(){b(c)}))};DrawioFile.prototype.fileSaving=function(){null!=this.sync&&this.isOptimisticSync()&&this.sync.fileSaving();"1"==urlParams.test&&EditorUi.debug("DrawioFile.fileSaving",[this])};
3074DrawioFile.prototype.sendFileChanges=function(){try{null!=this.p2pCollab&&null!=this.sync&&(this.updateFileData(),this.sync.sendFileChanges(this.ui.getPagesForNode(mxUtils.parseXml(this.getData()).documentElement),this.desc),"1"==urlParams.test&&EditorUi.debug("DrawioFile.sendFileChanges",[this]))}catch(b){console.log(b)}};
3075DrawioFile.prototype.fileSaved=function(b,c,e,k,g){this.lastSaved=new Date;this.ageStart=null;try{this.stats.saved++,this.invalidChecksum=this.inConflictState=!1,null==this.sync||this.isOptimisticSync()?(this.shadowData=b,this.shadowPages=null,null!=this.sync&&(this.sync.lastModified=this.getLastModifiedDate(),this.sync.resetUpdateStatusThread()),null!=e&&e()):this.sync.fileSaved(this.ui.getPagesForNode(mxUtils.parseXml(b).documentElement),c,e,k,g)}catch(d){this.invalidChecksum=this.inConflictState=
3076!0;this.descriptorChanged();null!=k&&k(d);try{if(this.errorReportsEnabled)this.sendErrorReport("Error in fileSaved",null,d);else{var p=this.getCurrentUser(),t=null!=p?p.id:"unknown";EditorUi.logError("Error in fileSaved",null,this.getMode()+"."+this.getId(),t,d)}}catch(f){}}"1"==urlParams.test&&EditorUi.debug("DrawioFile.fileSaved",[this])};
3077DrawioFile.prototype.autosave=function(b,c,e,k){null==this.lastAutosave&&(this.lastAutosave=Date.now());b=Date.now()-this.lastAutosave<c?b:0;this.clearAutosave();var g=window.setTimeout(mxUtils.bind(this,function(){this.lastAutosave=null;this.autosaveThread==g&&(this.autosaveThread=null);if(this.isModified()&&this.isAutosaveNow()){var b=this.isAutosaveRevision();b&&(this.lastAutosaveRevision=(new Date).getTime());this.save(b,mxUtils.bind(this,function(b){this.autosaveCompleted();null!=e&&e(b)}),mxUtils.bind(this,
3078function(b){null!=k&&k(b)}))}else this.isModified()||this.ui.editor.setStatus(""),null!=e&&e(null)}),b);this.autosaveThread=g};DrawioFile.prototype.isAutosaveNow=function(){return!0};DrawioFile.prototype.autosaveCompleted=function(){};DrawioFile.prototype.clearAutosave=function(){null!=this.autosaveThread&&(window.clearTimeout(this.autosaveThread),this.autosaveThread=null)};
3079DrawioFile.prototype.isAutosaveRevision=function(){var b=(new Date).getTime();return null==this.lastAutosaveRevision||b-this.lastAutosaveRevision>this.maxAutosaveRevisionDelay};DrawioFile.prototype.descriptorChanged=function(){this.fireEvent(new mxEventObject("descriptorChanged"))};DrawioFile.prototype.contentChanged=function(){this.fireEvent(new mxEventObject("contentChanged"))};
3080DrawioFile.prototype.close=function(b){this.updateFileData();this.stats.closed++;this.isAutosave()&&this.isModified()&&this.save(this.isAutosaveRevision(),null,null,b);this.destroy()};DrawioFile.prototype.hasSameExtension=function(b,c){if(null!=b&&null!=c){var e=b.lastIndexOf("."),k=0<e?b.substring(e):"",e=c.lastIndexOf(".");return k===(0<e?c.substring(e):"")}return b==c};
3081DrawioFile.prototype.removeListeners=function(){null!=this.changeListener&&(this.ui.editor.graph.model.removeListener(this.changeListener),this.ui.editor.graph.removeListener(this.changeListener),this.ui.removeListener(this.changeListener),this.changeListener=null)};DrawioFile.prototype.destroy=function(){this.clearAutosave();this.removeListeners();this.stats.destroyed++;null!=this.sync&&(this.sync.destroy(),this.sync=null)};DrawioFile.prototype.commentsSupported=function(){return!1};
3082DrawioFile.prototype.commentsRefreshNeeded=function(){return!0};DrawioFile.prototype.commentsSaveNeeded=function(){return!1};DrawioFile.prototype.getComments=function(b,c){b([])};DrawioFile.prototype.addComment=function(b,c,e){c(Date.now())};DrawioFile.prototype.canReplyToReplies=function(){return!0};DrawioFile.prototype.canComment=function(){return!0};DrawioFile.prototype.newComment=function(b,c){return new DrawioComment(this,null,b,Date.now(),Date.now(),!1,c)};LocalFile=function(b,c,e,k,g,p){DrawioFile.call(this,b,c);this.title=e;this.mode=k?null:App.MODE_DEVICE;this.fileHandle=g;this.desc=p};mxUtils.extend(LocalFile,DrawioFile);LocalFile.prototype.isAutosave=function(){return null!=this.fileHandle&&!this.invalidFileHandle&&DrawioFile.prototype.isAutosave.apply(this,arguments)};LocalFile.prototype.isAutosaveOptional=function(){return null!=this.fileHandle};LocalFile.prototype.getMode=function(){return this.mode};LocalFile.prototype.getTitle=function(){return this.title};
3083LocalFile.prototype.isRenamable=function(){return!0};LocalFile.prototype.save=function(b,c,e){this.saveAs(this.title,c,e)};LocalFile.prototype.saveAs=function(b,c,e){this.saveFile(b,!1,c,e)};LocalFile.prototype.saveAs=function(b,c,e){this.saveFile(b,!1,c,e)};LocalFile.prototype.getDescriptor=function(){return this.desc};LocalFile.prototype.setDescriptor=function(b){this.desc=b};
3084LocalFile.prototype.getLatestVersion=function(b,c){null==this.fileHandle?b(null):this.ui.loadFileSystemEntry(this.fileHandle,b,c)};
3085LocalFile.prototype.saveFile=function(b,c,e,k,g){b!=this.title&&(this.desc=this.fileHandle=null);this.title=b;g||this.updateFileData();var p=this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle());this.setShadowModified(!1);var t=this.getData(),d=mxUtils.bind(this,function(){this.setModified(this.getShadowModified());this.contentChanged();null!=e&&e()}),f=mxUtils.bind(this,function(c){if(null!=this.fileHandle){if(!this.savingFile){this.savingFileTime=new Date;this.savingFile=!0;var f=mxUtils.bind(this,
3086function(b){this.savingFile=!1;null!=k&&k({error:b})});this.saveDraft();this.fileHandle.createWritable().then(mxUtils.bind(this,function(b){this.fileHandle.getFile().then(mxUtils.bind(this,function(e){this.invalidFileHandle=null;this.desc.lastModified==e.lastModified?b.write(p?this.ui.base64ToBlob(c,"image/png"):c).then(mxUtils.bind(this,function(){b.close().then(mxUtils.bind(this,function(){this.fileHandle.getFile().then(mxUtils.bind(this,function(b){try{var c=this.desc;this.savingFile=!1;this.desc=
3087b;this.fileSaved(t,c,d,f);this.removeDraft()}catch(x){f(x)}}),f)}),f)}),f):(this.inConflictState=!0,f())}),mxUtils.bind(this,function(b){this.invalidFileHandle=!0;f(b)}))}),f)}}else{if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(c,b,p?"image/png":"text/xml",p);else if(c.length<MAX_REQUEST_SIZE){var e=b.lastIndexOf("."),e=0<e?b.substring(e+1):"xml";(new mxXmlRequest(SAVE_URL,"format="+e+"&xml="+encodeURIComponent(c)+"&filename="+encodeURIComponent(b)+(p?"&binary=1":""))).simulate(document,
3088"_blank")}else this.ui.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(c)}));d()}});p?(c=this.ui.getPngFileProperties(this.ui.fileNode),this.ui.getEmbeddedPng(mxUtils.bind(this,function(b){f(b)}),k,this.ui.getCurrentFile()!=this?t:null,c.scale,c.border)):f(t)};LocalFile.prototype.rename=function(b,c,e){this.title=b;this.descriptorChanged();null!=c&&c()};
3089LocalFile.prototype.open=function(){this.ui.setFileData(this.getData());this.installListeners()};(function(){"undefined"!==typeof html4&&(html4.ATTRIBS["span::data-lucid-content"]=0,html4.ATTRIBS["span::data-lucid-type"]=0,html4.ATTRIBS["font::data-font-src"]=0);Editor.prototype.appName="diagrams.net";Editor.prototype.diagramFileTypes=[{description:"diagramXmlDesc",extension:"drawio",mimeType:"text/xml"},{description:"diagramPngDesc",extension:"png",mimeType:"image/png"},{description:"diagramSvgDesc",extension:"svg",mimeType:"image/svg"},{description:"diagramHtmlDesc",extension:"html",mimeType:"text/html"},
3090{description:"diagramXmlDesc",extension:"xml",mimeType:"text/xml"}];Editor.prototype.libraryFileTypes=[{description:"Library (.drawiolib, .xml)",extensions:["drawiolib","xml"]}];Editor.prototype.fileExtensions=[{ext:"html",title:"filetypeHtml"},{ext:"png",title:"filetypePng"},{ext:"svg",title:"filetypeSvg"}];Editor.styles=[{},{commonStyle:{fontColor:"#5C5C5C",strokeColor:"#006658",fillColor:"#21C0A5"}},{commonStyle:{fontColor:"#095C86",strokeColor:"#AF45ED",fillColor:"#F694C1"},edgeStyle:{strokeColor:"#60E696"}},
3091{commonStyle:{fontColor:"#46495D",strokeColor:"#788AA3",fillColor:"#B2C9AB"}},{commonStyle:{fontColor:"#5AA9E6",strokeColor:"#FF6392",fillColor:"#FFE45E"}},{commonStyle:{fontColor:"#1D3557",strokeColor:"#457B9D",fillColor:"#A8DADC"},graph:{background:"#F1FAEE"}},{commonStyle:{fontColor:"#393C56",strokeColor:"#E07A5F",fillColor:"#F2CC8F"},graph:{background:"#F4F1DE",gridColor:"#D4D0C0"}},{commonStyle:{fontColor:"#143642",strokeColor:"#0F8B8D",fillColor:"#FAE5C7"},edgeStyle:{strokeColor:"#A8201A"},
3092graph:{background:"#DAD2D8",gridColor:"#ABA4A9"}},{commonStyle:{fontColor:"#FEFAE0",strokeColor:"#DDA15E",fillColor:"#BC6C25"},graph:{background:"#283618",gridColor:"#48632C"}},{commonStyle:{fontColor:"#E4FDE1",strokeColor:"#028090",fillColor:"#F45B69"},graph:{background:"#114B5F",gridColor:"#0B3240"}},{},{vertexStyle:{strokeColor:"#D0CEE2",fillColor:"#FAD9D5"},edgeStyle:{strokeColor:"#09555B"},commonStyle:{fontColor:"#1A1A1A"}},{vertexStyle:{strokeColor:"#BAC8D3",fillColor:"#09555B",fontColor:"#EEEEEE"},
3093edgeStyle:{strokeColor:"#0B4D6A"}},{vertexStyle:{strokeColor:"#D0CEE2",fillColor:"#5D7F99"},edgeStyle:{strokeColor:"#736CA8"},commonStyle:{fontColor:"#1A1A1A"}},{vertexStyle:{strokeColor:"#FFFFFF",fillColor:"#182E3E",fontColor:"#FFFFFF"},edgeStyle:{strokeColor:"#23445D"},graph:{background:"#FCE7CD",gridColor:"#CFBDA8"}},{vertexStyle:{strokeColor:"#FFFFFF",fillColor:"#F08E81"},edgeStyle:{strokeColor:"#182E3E"},commonStyle:{fontColor:"#1A1A1A"},graph:{background:"#B0E3E6",gridColor:"#87AEB0"}},{vertexStyle:{strokeColor:"#909090",
3094fillColor:"#F5AB50"},edgeStyle:{strokeColor:"#182E3E"},commonStyle:{fontColor:"#1A1A1A"},graph:{background:"#EEEEEE"}},{vertexStyle:{strokeColor:"#EEEEEE",fillColor:"#56517E",fontColor:"#FFFFFF"},edgeStyle:{strokeColor:"#182E3E"},graph:{background:"#FAD9D5",gridColor:"#BFA6A3"}},{vertexStyle:{strokeColor:"#BAC8D3",fillColor:"#B1DDF0",fontColor:"#182E3E"},edgeStyle:{strokeColor:"#EEEEEE",fontColor:"#FFFFFF"},graph:{background:"#09555B",gridColor:"#13B4C2"}},{vertexStyle:{fillColor:"#EEEEEE",fontColor:"#1A1A1A"},
3095edgeStyle:{fontColor:"#FFFFFF"},commonStyle:{strokeColor:"#FFFFFF"},graph:{background:"#182E3E",gridColor:"#4D94C7"}}];Editor.saveImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iYmxhY2siIHdpZHRoPSIxOHB4IiBoZWlnaHQ9IjE4cHgiPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48cGF0aCBkPSJNMTkgMTJ2N0g1di03SDN2N2MwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0ydi03aC0yem0tNiAuNjdsMi41OS0yLjU4TDE3IDExLjVsLTUgNS01LTUgMS40MS0xLjQxTDExIDEyLjY3VjNoMnoiLz48L3N2Zz4=";
3096Editor.smallPlusImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDdCMTdENjVCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDdCMTdENjZCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowN0IxN0Q2M0I4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowN0IxN0Q2NEI4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtjrjmgAAAAtSURBVHjaYvz//z8DMigvLwcLdHZ2MiKLMzEQCaivkLGsrOw/dU0cAr4GCDAARQsQbTFrv10AAAAASUVORK5CYII=":
3097IMAGE_PATH+"/plus.png";Editor.spinImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDAAMAPUxAEVriVp7lmCAmmGBm2OCnGmHn3OPpneSqYKbr4OcsIScsI2kto6kt46lt5KnuZmtvpquvpuvv56ywaCzwqK1xKu7yay9yq+/zLHAzbfF0bjG0bzJ1LzK1MDN18jT28nT3M3X3tHa4dTc49Xd5Njf5dng5t3k6d/l6uDm6uru8e7x8/Dz9fT29/b4+Pj5+fj5+vr6+v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkKADEAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAADAAMAAAGR8CYcEgsOgYAIax4CCQuQldrCBEsiK8VS2hoFGOrlJDA+cZQwkLnqyoJFZKviSS0ICrE0ec0jDAwIiUeGyBFGhMPFBkhZo1BACH5BAkKAC4ALAAAAAAMAAwAhVB0kFR3k1V4k2CAmmWEnW6Lo3KOpXeSqH2XrIOcsISdsImhtIqhtJCmuJGnuZuwv52wwJ+ywZ+ywqm6yLHBzbLCzrXEz7fF0LnH0rrI0r7L1b/M1sXR2cfT28rV3czW3s/Z4Nfe5Nvi6ODm6uLn6+Ln7OLo7OXq7efs7+zw8u/y9PDy9PX3+Pr7+////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZDQJdwSCxGDAIAoVFkFBwYSyIwGE4OkCJxIdG6WkJEx8sSKj7elfBB0a5SQg1EQ0SVVMPKhDM6iUIkRR4ZFxsgJl6JQQAh+QQJCgAxACwAAAAADAAMAIVGa4lcfZdjgpxkg51nhp5ui6N3kqh5lKqFnbGHn7KIoLOQp7iRp7mSqLmTqbqarr6br7+fssGitcOitcSuvsuuv8uwwMyzw861xNC5x9K6x9K/zNbDztjE0NnG0drJ1NzQ2eDS2+LT2+LV3ePZ4Oba4ebb4ufc4+jm6+7t8PLt8PPt8fPx8/Xx9PX09vf19/j3+Pn///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQ8CYcEgsUhQFggFSjCQmnE1jcBhqGBXiIuAQSi7FGEIgfIzCFoCXFCZiPO0hKBMiwl7ET6eUYqlWLkUnISImKC1xbUEAIfkECQoAMgAsAAAAAAwADACFTnKPT3KPVHaTYoKcb4yjcY6leZSpf5mtgZuvh5+yiqG0i6K1jqW3kae5nrHBnrLBn7LCoLPCobTDqbrIqrvIs8LOtMPPtcPPtcTPuMbRucfSvcrUvsvVwMzWxdHaydTcytXdzNbezdff0drh2ODl2+Ln3eTp4Obq4ujs5Ont5uvu6O3w6u7w6u7x7/L09vj5+vr7+vv7////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkdAmXBILHIcicOCUqxELKKPxKAYgiYd4oMAEWo8RVmjIMScwhmBcJMKXwLCECmMGAhPI1QRwBiaSixCMDFhLSorLi8wYYxCQQAh+QQJCgAxACwAAAAADAAMAIVZepVggJphgZtnhp5vjKN2kah3kqmBmq+KobSLorWNpLaRp7mWq7ybr7+gs8KitcSktsWnuManucexwM2ywc63xtG6yNO9ytS+ytW/zNbDz9jH0tvL1d3N197S2+LU3OPU3ePV3eTX3+Xa4efb4ufd5Onl6u7r7vHs7/Lt8PLw8/Xy9Pby9fb09ff2+Pn3+Pn6+vr///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGSMCYcEgseiwSR+RS7GA4JFGF8RiWNiEiJTERgkjFGAQh/KTCGoJwpApnBkITKrwoCFWnFlEhaAxXLC9CBwAGRS4wQgELYY1CQQAh+QQJCgAzACwAAAAADAAMAIVMcI5SdZFhgZtti6JwjaR4k6mAma6Cm6+KobSLorWLo7WNo7aPpredsMCescGitMOitcSmuMaqu8ixwc2zws63xdC4xtG5x9K9ytXAzdfCztjF0NnF0drK1d3M1t7P2N/P2eDT2+LX3+Xe5Onh5+vi5+vj6Ozk6e3n7O/o7O/q7vHs7/Lt8PPu8fPx8/X3+Pn6+vv7+/v8/Pz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRcCZcEgsmkIbTOZTLIlGqZNnchm2SCgiJ6IRqljFmQUiXIVnoITQde4chC9Y+LEQxmTFRkFSNFAqDAMIRQoCAAEEDmeLQQAh+QQJCgAwACwAAAAADAAMAIVXeZRefplff5lhgZtph59yjqV2kaeAmq6FnbGFnrGLorWNpLaQp7mRqLmYrb2essGgs8Klt8apusitvcquv8u2xNC7yNO8ydS8ytTAzdfBzdfM1t7N197Q2eDU3OPX3+XZ4ObZ4ebc4+jf5erg5erg5uvp7fDu8fPv8vTz9fb09vf19/j3+Pn4+fn5+vr6+/v///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRUCYcEgspkwjEKhUVJ1QsBNp0xm2VixiSOMRvlxFGAcTJook5eEHIhQcwpWIkAFQECkNy9AQWFwyEAkPRQ4FAwQIE2llQQAh+QQJCgAvACwAAAAADAAMAIVNcY5SdZFigptph6BvjKN0kKd8lquAmq+EnbGGn7KHn7ONpLaOpbearr+csMCdscCescGhtMOnuMauvsuzws60w862xdC9ytW/y9a/zNbCztjG0drH0tvK1N3M1t7N19/U3ePb4uff5urj6Ozk6e3l6u7m6u7o7PDq7vDt8PPv8vTw8vTw8/X19vf6+vv///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQ8CXcEgsvlytVUplJLJIpSEDUESFTELBwSgCCQEV42kjDFiMo4uQsDB2MkLHoEHUTD7DRAHC8VAiZ0QSCgYIDxhNiUEAOw==":
3098IMAGE_PATH+"/spin.gif";Editor.globeImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnptNi45MyA2aC0yLjk1Yy0uMzItMS4yNS0uNzgtMi40NS0xLjM4LTMuNTYgMS44NC42MyAzLjM3IDEuOTEgNC4zMyAzLjU2ek0xMiA0LjA0Yy44MyAxLjIgMS40OCAyLjUzIDEuOTEgMy45NmgtMy44MmMuNDMtMS40MyAxLjA4LTIuNzYgMS45MS0zLjk2ek00LjI2IDE0QzQuMSAxMy4zNiA0IDEyLjY5IDQgMTJzLjEtMS4zNi4yNi0yaDMuMzhjLS4wOC42Ni0uMTQgMS4zMi0uMTQgMiAwIC42OC4wNiAxLjM0LjE0IDJINC4yNnptLjgyIDJoMi45NWMuMzIgMS4yNS43OCAyLjQ1IDEuMzggMy41Ni0xLjg0LS42My0zLjM3LTEuOS00LjMzLTMuNTZ6bTIuOTUtOEg1LjA4Yy45Ni0xLjY2IDIuNDktMi45MyA0LjMzLTMuNTZDOC44MSA1LjU1IDguMzUgNi43NSA4LjAzIDh6TTEyIDE5Ljk2Yy0uODMtMS4yLTEuNDgtMi41My0xLjkxLTMuOTZoMy44MmMtLjQzIDEuNDMtMS4wOCAyLjc2LTEuOTEgMy45NnpNMTQuMzQgMTRIOS42NmMtLjA5LS42Ni0uMTYtMS4zMi0uMTYtMiAwLS42OC4wNy0xLjM1LjE2LTJoNC42OGMuMDkuNjUuMTYgMS4zMi4xNiAyIDAgLjY4LS4wNyAxLjM0LS4xNiAyem0uMjUgNS41NmMuNi0xLjExIDEuMDYtMi4zMSAxLjM4LTMuNTZoMi45NWMtLjk2IDEuNjUtMi40OSAyLjkzLTQuMzMgMy41NnpNMTYuMzYgMTRjLjA4LS42Ni4xNC0xLjMyLjE0LTIgMC0uNjgtLjA2LTEuMzQtLjE0LTJoMy4zOGMuMTYuNjQuMjYgMS4zMS4yNiAycy0uMSAxLjM2LS4yNiAyaC0zLjM4eiIvPjwvc3ZnPg==";
3099Editor.commentImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMjEuOTkgNGMwLTEuMS0uODktMi0xLjk5LTJINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNGw0IDQtLjAxLTE4ek0xOCAxNEg2di0yaDEydjJ6bTAtM0g2VjloMTJ2MnptMC0zSDZWNmgxMnYyeiIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48L3N2Zz4=";Editor.userImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgMTJjMi4yMSAwIDQtMS43OSA0LTRzLTEuNzktNC00LTQtNCAxLjc5LTQgNCAxLjc5IDQgNCA0em0wIDJjLTIuNjcgMC04IDEuMzQtOCA0djJoMTZ2LTJjMC0yLjY2LTUuMzMtNC04LTR6Ii8+PC9zdmc+";
3100Editor.shareImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTggMTYuMDhjLS43NiAwLTEuNDQuMy0xLjk2Ljc3TDguOTEgMTIuN2MuMDUtLjIzLjA5LS40Ni4wOS0uN3MtLjA0LS40Ny0uMDktLjdsNy4wNS00LjExYy41NC41IDEuMjUuODEgMi4wNC44MSAxLjY2IDAgMy0xLjM0IDMtM3MtMS4zNC0zLTMtMy0zIDEuMzQtMyAzYzAgLjI0LjA0LjQ3LjA5LjdMOC4wNCA5LjgxQzcuNSA5LjMxIDYuNzkgOSA2IDljLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDNjLjc5IDAgMS41LS4zMSAyLjA0LS44MWw3LjEyIDQuMTZjLS4wNS4yMS0uMDguNDMtLjA4LjY1IDAgMS42MSAxLjMxIDIuOTIgMi45MiAyLjkyIDEuNjEgMCAyLjkyLTEuMzEgMi45Mi0yLjkycy0xLjMxLTIuOTItMi45Mi0yLjkyeiIvPjwvc3ZnPg==";
3101Editor.syncImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTIgNFYxTDggNWw0IDRWNmMzLjMxIDAgNiAyLjY5IDYgNiAwIDEuMDEtLjI1IDEuOTctLjcgMi44bDEuNDYgMS40NkMxOS41NCAxNS4wMyAyMCAxMy41NyAyMCAxMmMwLTQuNDItMy41OC04LTgtOHptMCAxNGMtMy4zMSAwLTYtMi42OS02LTYgMC0xLjAxLjI1LTEuOTcuNy0yLjhMNS4yNCA3Ljc0QzQuNDYgOC45NyA0IDEwLjQzIDQgMTJjMCA0LjQyIDMuNTggOCA4IDh2M2w0LTQtNC00djN6Ii8+PC9zdmc+";Editor.syncDisabledImage=
3102"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTAgNi4zNVY0LjI2Yy0uOC4yMS0xLjU1LjU0LTIuMjMuOTZsMS40NiAxLjQ2Yy4yNS0uMTIuNS0uMjQuNzctLjMzem0tNy4xNC0uOTRsMi4zNiAyLjM2QzQuNDUgOC45OSA0IDEwLjQ0IDQgMTJjMCAyLjIxLjkxIDQuMiAyLjM2IDUuNjRMNCAyMGg2di02bC0yLjI0IDIuMjRDNi42OCAxNS4xNSA2IDEzLjY2IDYgMTJjMC0xIC4yNS0xLjk0LjY4LTIuNzdsOC4wOCA4LjA4Yy0uMjUuMTMtLjUuMjUtLjc3LjM0djIuMDljLjgtLjIxIDEuNTUtLjU0IDIuMjMtLjk2bDIuMzYgMi4zNiAxLjI3LTEuMjdMNC4xNCA0LjE0IDIuODYgNS40MXpNMjAgNGgtNnY2bDIuMjQtMi4yNEMxNy4zMiA4Ljg1IDE4IDEwLjM0IDE4IDEyYzAgMS0uMjUgMS45NC0uNjggMi43N2wxLjQ2IDEuNDZDMTkuNTUgMTUuMDEgMjAgMTMuNTYgMjAgMTJjMC0yLjIxLS45MS00LjItMi4zNi01LjY0TDIwIDR6Ii8+PC9zdmc+";
3103Editor.syncProblemImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMyAxMmMwIDIuMjEuOTEgNC4yIDIuMzYgNS42NEwzIDIwaDZ2LTZsLTIuMjQgMi4yNEM1LjY4IDE1LjE1IDUgMTMuNjYgNSAxMmMwLTIuNjEgMS42Ny00LjgzIDQtNS42NVY0LjI2QzUuNTUgNS4xNSAzIDguMjcgMyAxMnptOCA1aDJ2LTJoLTJ2MnpNMjEgNGgtNnY2bDIuMjQtMi4yNEMxOC4zMiA4Ljg1IDE5IDEwLjM0IDE5IDEyYzAgMi42MS0xLjY3IDQuODMtNCA1LjY1djIuMDljMy40NS0uODkgNi00LjAxIDYtNy43NCAwLTIuMjEtLjkxLTQuMi0yLjM2LTUuNjRMMjEgNHptLTEwIDloMlY3aC0ydjZ6Ii8+PC9zdmc+";
3104Editor.drawLogoImage="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJFYmVuZV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMjUwIDI1MCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMjUwIDI1MDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MntmaWxsOiMwMDA7fQo8L3N0eWxlPgo8cGF0aCBjbGFzcz0ic3QyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLDE1KSIgZD0iTTE5Ny4xLDEzOC4zaC0yMy43bC0yNS00Mi43YzUuNy0xLjIsOS44LTYuMiw5LjctMTJWNTEuNWMwLTYuOC01LjQtMTIuMy0xMi4yLTEyLjNjMCwwLTAuMSwwLTAuMSwwaC00MS43CgljLTYuOCwwLTEyLjMsNS40LTEyLjMsMTIuMmMwLDAsMCwwLjEsMCwwLjF2MzIuMWMwLDUuOCw0LDEwLjgsOS43LDEybC0yNSw0Mi43SDUyLjljLTYuOCwwLTEyLjMsNS40LTEyLjMsMTIuMmMwLDAsMCwwLjEsMCwwLjEKCXYzMi4xYzAsNi44LDUuNCwxMi4zLDEyLjIsMTIuM2MwLDAsMC4xLDAsMC4xLDBoNDEuN2M2LjgsMCwxMi4zLTUuNCwxMi4zLTEyLjJjMCwwLDAtMC4xLDAtMC4xdi0zMi4xYzAtNi44LTUuNC0xMi4zLTEyLjItMTIuMwoJYzAsMC0wLjEsMC0wLjEsMGgtNGwyNC44LTQyLjRoMTkuM2wyNC45LDQyLjRoLTQuMWMtNi44LDAtMTIuMyw1LjQtMTIuMywxMi4yYzAsMCwwLDAuMSwwLDAuMXYzMi4xYzAsNi44LDUuNCwxMi4zLDEyLjIsMTIuMwoJYzAsMCwwLjEsMCwwLjEsMGg0MS43YzYuOCwwLDEyLjMtNS40LDEyLjMtMTIuMmMwLDAsMC0wLjEsMC0wLjF2LTMyLjFjMC02LjgtNS40LTEyLjMtMTIuMi0xMi4zCglDMTk3LjIsMTM4LjMsMTk3LjIsMTM4LjMsMTk3LjEsMTM4LjN6Ii8+Cjwvc3ZnPgo=";
3105Editor.tailSpin="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9Ii0yIC0yIDQ0IDQ0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGRlZnM+CiAgICAgICAgPGxpbmVhckdyYWRpZW50IHgxPSI4LjA0MiUiIHkxPSIwJSIgeDI9IjY1LjY4MiUiIHkyPSIyMy44NjUlIiBpZD0iYSI+CiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiM4MDgwODAiIHN0b3Atb3BhY2l0eT0iMCIgb2Zmc2V0PSIwJSIvPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjODA4MDgwIiBzdG9wLW9wYWNpdHk9Ii42MzEiIG9mZnNldD0iNjMuMTQ2JSIvPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjODA4MDgwIiBvZmZzZXQ9IjEwMCUiLz4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgPC9kZWZzPgogICAgPGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxIDEpIj4KICAgICAgICAgICAgPHBhdGggZD0iTTM2IDE4YzAtOS45NC04LjA2LTE4LTE4LTE4IiBzdHJva2U9InVybCgjYSkiIHN0cm9rZS13aWR0aD0iNiI+CiAgICAgICAgICAgICAgICA8YW5pbWF0ZVRyYW5zZm9ybQogICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIKICAgICAgICAgICAgICAgICAgICB0eXBlPSJyb3RhdGUiCiAgICAgICAgICAgICAgICAgICAgZnJvbT0iMCAxOCAxOCIKICAgICAgICAgICAgICAgICAgICB0bz0iMzYwIDE4IDE4IgogICAgICAgICAgICAgICAgICAgIGR1cj0iMC45cyIKICAgICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICAgICAgICAgICAgPC9wYXRoPgogICAgICAgICAgICA8Y2lyY2xlIGZpbGw9IiM4MDgwODAiIGN4PSIzNiIgY3k9IjE4IiByPSIxIj4KICAgICAgICAgICAgICAgIDxhbmltYXRlVHJhbnNmb3JtCiAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIgogICAgICAgICAgICAgICAgICAgIHR5cGU9InJvdGF0ZSIKICAgICAgICAgICAgICAgICAgICBmcm9tPSIwIDE4IDE4IgogICAgICAgICAgICAgICAgICAgIHRvPSIzNjAgMTggMTgiCiAgICAgICAgICAgICAgICAgICAgZHVyPSIwLjlzIgogICAgICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgICAgICAgICA8L2NpcmNsZT4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPgo=";
3106Editor.tweetImage=IMAGE_PATH+"/tweet.png";Editor.facebookImage=IMAGE_PATH+"/facebook.png";Editor.blankImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACklEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJggg==";Editor.hiResImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAA+CAMAAACLMWy1AAAAh1BMVEUAAABMTExERERBQUFBQUFFRUVAQEBCQkJAQEA6OjpDQ0NKSkpBQUFBQUFERERERERBQUFCQkJCQkJCQkJJSUlBQUFCQkJDQ0NDQ0NCQkJDQ0NBQUFBQUFCQkJBQUFCQkJCQkJDQ0NCQkJHR0dBQUFCQkJCQkJAQEBCQkJDQ0NAQEBERERCQkIk1hS2AAAAKnRSTlMAAjj96BL7PgQFRwfu3TYazKuVjRXl1V1DPCn1uLGjnWNVIgy9hU40eGqPkM38AAACG0lEQVRYw+2X63KbMBCFzwZblgGDceN74muatpLe//m6MHV3gHGFAv2RjM94MAbxzdnVsQbBDKwH8AH8MDAyafzjqYeyOG04XE7RS8nIRDXg6BlT+rA0nmtAPh+NQRDxIASIMG44rAMrGunBgHwy3uUldxggIStGKp2f+DQc2O4h4eQsX3O2IFB/oEbsjOKbStnjAEA+zJ0ylZTbgvoDn8xNyn6Dbj5Kd4GsNpABa6duQPfSdEj88TgMAhKuCWjAkgmFXPLnsD0pWd3OFGdrMugQII/eOMPEiGOzqPMIeWrcSoMCg71W1pXBPvCP+gS/OdXqQ3uW23+93XGWLl/OaBb805bNcBPoEIcVJsnHzcxpZH86u5KZ9gDby5dQCcnKqdbke4ItI4Tzd7IW9hZQt4EO6GG9b9sYuuK9Wwn8TIr2xKbF2+3Nhr+qxChJ/AI6pIfCu4z4Zowp4ZUNihz79vewzctnHDwTvQO/hCdFBzrUGDOPn2Y/F8YKT4oOATLvlhOznzmBSdFBJWtc58y7r+UVFOCQczy3wpN6pegDqHtsCPTGvH9JuTO0Dyg8icldYPk+RB6g8Aofj4m2EKBvtTmUPD9xDd1pPcSReV2U5iD/ik2yrngtvvqBfPzOvKiDTKTsCdoHZJ7pLLffgTwlJ5vJdtJV2/jiAYaLvLGhMAEDO5QcDg2M/jOw/8Zn+K3ZwJvHT7ZffgC/NvA3zcybTeIfE4EAAAAASUVORK5CYII=":
3107IMAGE_PATH+"/img-hi-res.png";Editor.loResImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAA+CAMAAACLMWy1AAAAS1BMVEVAQEAAAAA1NTVBQUFDQ0NDQ0NFRUVERERBQUFBQUFBQUFAQEBBQUFBQUFCQkJCQkJCQkJBQUFCQkJDQ0NDQ0NCQkJCQkJCQkJGRkb5/XqTAAAAGXRSTlP+AAWODlASCsesX+Lc2LyWe3pwa1tCPjohjSJfoAAAAI1JREFUWMPt1MkKhTAMRuG0anvneXr/J71nUypKcdqI/N8yhLMKMZE1CahnClDQzMPB44ED3EgeCubgDWnWQMHpwTtKwTe+UHD4sJ94wbUEHHFGhILlYDeSnsQeabeCgsPBgB0MOZZ9oGA5GJFiJSfUULAfjLjARrhCwX7wh2YCDwVbwZkUBKqFFJRN+wOcwSgR2sREcgAAAABJRU5ErkJggg==":
3108IMAGE_PATH+"/img-lo-res.png";Editor.cameraImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMThweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMThweCIgZmlsbD0iIzAwMDAwMCI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE0LjEyIDRsMS44MyAySDIwdjEySDRWNmg0LjA1bDEuODMtMmg0LjI0TTE1IDJIOUw3LjE3IDRINGMtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yaC0zLjE3TDE1IDJ6bS0zIDdjMS42NSAwIDMgMS4zNSAzIDNzLTEuMzUgMy0zIDMtMy0xLjM1LTMtMyAxLjM1LTMgMy0zbTAtMmMtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNSA1LTIuMjQgNS01LTIuMjQtNS01LTV6Ii8+PC9zdmc+";
3109Editor.tagsImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjE4cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE4cHgiIGZpbGw9IiMwMDAwMDAiPjxnPjxwYXRoIGQ9Ik0wLDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvZz48Zz48Zz48cGF0aCBkPSJNMjEuNDEsMTEuNDFsLTguODMtOC44M0MxMi4yMSwyLjIxLDExLjcsMiwxMS4xNywySDRDMi45LDIsMiwyLjksMiw0djcuMTdjMCwwLjUzLDAuMjEsMS4wNCwwLjU5LDEuNDFsOC44Myw4LjgzIGMwLjc4LDAuNzgsMi4wNSwwLjc4LDIuODMsMGw3LjE3LTcuMTdDMjIuMiwxMy40NiwyMi4yLDEyLjIsMjEuNDEsMTEuNDF6IE0xMi44MywyMEw0LDExLjE3VjRoNy4xN0wyMCwxMi44M0wxMi44MywyMHoiLz48Y2lyY2xlIGN4PSI2LjUiIGN5PSI2LjUiIHI9IjEuNSIvPjwvZz48L2c+PC9zdmc+";
3110Editor.svgBrokenImage=Graph.createSvgImage(10,10,'<rect x="0" y="0" width="10" height="10" stroke="#000" fill="transparent"/><path d="m 0 0 L 10 10 L 0 10 L 10 0" stroke="#000" fill="transparent"/>');Editor.errorImage="data:image/gif;base64,R0lGODlhEAAQAPcAAADGAIQAAISEhP8AAP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yH5BAEAAAAALAAAAAAQABAAAAhoAAEIFBigYMGBCAkGGMCQ4cGECxtKHBAAYUQCEzFSHLiQgMeGHjEGEAAg4oCQJz86LCkxpEqHAkwyRClxpEyXGmGaREmTIsmOL1GO/DkzI0yOE2sKIMlRJsWhCQHENDiUaVSpS5cmDAgAOw==";
3111Editor.configurationKey=".configuration";Editor.settingsKey=".drawio-config";Editor.defaultCustomLibraries=[];Editor.enableCustomLibraries=!0;Editor.enableCustomProperties=!0;Editor.defaultIncludeDiagram=!0;Editor.enableServiceWorker="0"!=urlParams.pwa&&"serviceWorker"in navigator&&("1"==urlParams.offline||/.*\.diagrams\.net$/.test(window.location.hostname)||/.*\.draw\.io$/.test(window.location.hostname));Editor.enableWebFonts="1"!=urlParams["safe-style-src"];Editor.enableShadowOption=!mxClient.IS_SF;
3112Editor.enableExportUrl=!0;Editor.compressXml=!0;Editor.oneDriveInlinePicker=null!=window.urlParams&&"0"==window.urlParams.inlinePicker?!1:!0;Editor.globalVars=null;Editor.config=null;Editor.configVersion=null;Editor.defaultBorder=5;Editor.commonProperties=[{name:"comic",dispName:"Comic",type:"bool",defVal:!1,isVisible:function(b,d){return"1"!=mxUtils.getValue(b.style,"sketch","0")}},{name:"jiggle",dispName:"Jiggle",type:"float",min:0,defVal:1,isVisible:function(b,d){return"1"==mxUtils.getValue(b.style,
3113"comic","0")||"1"==mxUtils.getValue(b.style,"sketch","1"==urlParams.rough?"1":"0")}},{name:"fillWeight",dispName:"Fill Weight",type:"int",defVal:-1,isVisible:function(b,d){return"1"==mxUtils.getValue(b.style,"sketch","1"==urlParams.rough?"1":"0")}},{name:"hachureGap",dispName:"Hachure Gap",type:"int",defVal:-1,isVisible:function(b,d){return"1"==mxUtils.getValue(b.style,"sketch","1"==urlParams.rough?"1":"0")}},{name:"hachureAngle",dispName:"Hachure Angle",type:"int",defVal:-41,isVisible:function(b,
3114d){return"1"==mxUtils.getValue(b.style,"sketch","1"==urlParams.rough?"1":"0")}},{name:"curveFitting",dispName:"Curve Fitting",type:"float",defVal:.95,isVisible:function(b,d){return"1"==mxUtils.getValue(b.style,"sketch","1"==urlParams.rough?"1":"0")}},{name:"simplification",dispName:"Simplification",type:"float",defVal:0,min:0,max:1,isVisible:function(b,d){return"1"==mxUtils.getValue(b.style,"sketch","1"==urlParams.rough?"1":"0")}},{name:"disableMultiStroke",dispName:"Disable Multi Stroke",type:"bool",
3115defVal:!1,isVisible:function(b,d){return"1"==mxUtils.getValue(b.style,"sketch","1"==urlParams.rough?"1":"0")}},{name:"disableMultiStrokeFill",dispName:"Disable Multi Stroke Fill",type:"bool",defVal:!1,isVisible:function(b,d){return"1"==mxUtils.getValue(b.style,"sketch","1"==urlParams.rough?"1":"0")}},{name:"dashOffset",dispName:"Dash Offset",type:"int",defVal:-1,isVisible:function(b,d){return"1"==mxUtils.getValue(b.style,"sketch","1"==urlParams.rough?"1":"0")}},{name:"dashGap",dispName:"Dash Gap",
3116type:"int",defVal:-1,isVisible:function(b,d){return"1"==mxUtils.getValue(b.style,"sketch","1"==urlParams.rough?"1":"0")}},{name:"zigzagOffset",dispName:"ZigZag Offset",type:"int",defVal:-1,isVisible:function(b,d){return"1"==mxUtils.getValue(b.style,"sketch","1"==urlParams.rough?"1":"0")}},{name:"jiggle",dispName:"Jiggle",type:"float",min:0,defVal:1,isVisible:function(b,d){return"1"==mxUtils.getValue(b.style,"comic","0")||"1"==mxUtils.getValue(b.style,"sketch","1"==urlParams.rough?"1":"0")}},{name:"sketchStyle",
3117dispName:"Sketch Style",type:"enum",defVal:"rough",enumList:[{val:"rough",dispName:"Rough"},{val:"comic",dispName:"Comic"}],isVisible:function(b,d){return"1"==mxUtils.getValue(b.style,"sketch","1"==urlParams.rough?"1":"0")}}];Editor.commonEdgeProperties=[{type:"separator"},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"sourcePortConstraint",dispName:"Source Constraint",type:"enum",defVal:"none",enumList:[{val:"none",dispName:"None"},{val:"north",dispName:"North"},
3118{val:"east",dispName:"East"},{val:"south",dispName:"South"},{val:"west",dispName:"West"}]},{name:"targetPortConstraint",dispName:"Target Constraint",type:"enum",defVal:"none",enumList:[{val:"none",dispName:"None"},{val:"north",dispName:"North"},{val:"east",dispName:"East"},{val:"south",dispName:"South"},{val:"west",dispName:"West"}]},{name:"jettySize",dispName:"Jetty Size",type:"int",min:0,defVal:"auto",allowAuto:!0,isVisible:function(b){return"orthogonalEdgeStyle"==mxUtils.getValue(b.style,mxConstants.STYLE_EDGE,
3119null)}},{name:"fillOpacity",dispName:"Fill Opacity",type:"int",min:0,max:100,defVal:100},{name:"strokeOpacity",dispName:"Stroke Opacity",type:"int",min:0,max:100,defVal:100},{name:"startFill",dispName:"Start Fill",type:"bool",defVal:!0},{name:"endFill",dispName:"End Fill",type:"bool",defVal:!0},{name:"perimeterSpacing",dispName:"Terminal Spacing",type:"float",defVal:0},{name:"anchorPointDirection",dispName:"Anchor Direction",type:"bool",defVal:!0},{name:"snapToPoint",dispName:"Snap to Point",type:"bool",
3120defVal:!1},{name:"fixDash",dispName:"Fixed Dash",type:"bool",defVal:!1},{name:"editable",dispName:"Editable",type:"bool",defVal:!0},{name:"metaEdit",dispName:"Edit Dialog",type:"bool",defVal:!1},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"bendable",dispName:"Bendable",type:"bool",defVal:!0},{name:"movable",dispName:"Movable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",
3121defVal:!0},{name:"noJump",dispName:"No Jumps",type:"bool",defVal:!1},{name:"flowAnimation",dispName:"Flow Animation",type:"bool",defVal:!1},{name:"ignoreEdge",dispName:"Ignore Edge",type:"bool",defVal:!1},{name:"orthogonalLoop",dispName:"Loop Routing",type:"bool",defVal:!1},{name:"orthogonal",dispName:"Orthogonal",type:"bool",defVal:!1}].concat(Editor.commonProperties);Editor.commonVertexProperties=[{name:"colspan",dispName:"Colspan",type:"int",min:1,defVal:1,isVisible:function(b,d){var c=d.editorUi.editor.graph;
3122return"1"==urlParams.test&&1==b.vertices.length&&0==b.edges.length&&c.isTableCell(b.vertices[0])}},{name:"rowspan",dispName:"Rowspan",type:"int",min:1,defVal:1,isVisible:function(b,d){var c=d.editorUi.editor.graph;return"1"==urlParams.test&&1==b.vertices.length&&0==b.edges.length&&c.isTableCell(b.vertices[0])}},{type:"separator"},{name:"resizeLastRow",dispName:"Resize Last Row",type:"bool",getDefaultValue:function(b,d){var c=d.editorUi.editor.graph.getCellStyle(1==b.vertices.length&&0==b.edges.length?
3123b.vertices[0]:null);return"1"==mxUtils.getValue(c,"resizeLastRow","0")},isVisible:function(b,d){var c=d.editorUi.editor.graph;return 1==b.vertices.length&&0==b.edges.length&&c.isTable(b.vertices[0])}},{name:"resizeLast",dispName:"Resize Last Column",type:"bool",getDefaultValue:function(b,d){var c=d.editorUi.editor.graph.getCellStyle(1==b.vertices.length&&0==b.edges.length?b.vertices[0]:null);return"1"==mxUtils.getValue(c,"resizeLast","0")},isVisible:function(b,d){var c=d.editorUi.editor.graph;return 1==
3124b.vertices.length&&0==b.edges.length&&c.isTable(b.vertices[0])}},{name:"fillOpacity",dispName:"Fill Opacity",type:"int",min:0,max:100,defVal:100},{name:"strokeOpacity",dispName:"Stroke Opacity",type:"int",min:0,max:100,defVal:100},{name:"overflow",dispName:"Text Overflow",defVal:"visible",type:"enum",enumList:[{val:"visible",dispName:"Visible"},{val:"hidden",dispName:"Hidden"},{val:"block",dispName:"Block"},{val:"fill",dispName:"Fill"},{val:"width",dispName:"Width"}]},{name:"noLabel",dispName:"Hide Label",
3125type:"bool",defVal:!1},{name:"labelPadding",dispName:"Label Padding",type:"float",defVal:0},{name:"direction",dispName:"Direction",type:"enum",defVal:"east",enumList:[{val:"north",dispName:"North"},{val:"east",dispName:"East"},{val:"south",dispName:"South"},{val:"west",dispName:"West"}]},{name:"portConstraint",dispName:"Constraint",type:"enum",defVal:"none",enumList:[{val:"none",dispName:"None"},{val:"north",dispName:"North"},{val:"east",dispName:"East"},{val:"south",dispName:"South"},{val:"west",
3126dispName:"West"}]},{name:"portConstraintRotation",dispName:"Rotate Constraint",type:"bool",defVal:!1},{name:"connectable",dispName:"Connectable",type:"bool",getDefaultValue:function(b,d){return d.editorUi.editor.graph.isCellConnectable(1==b.vertices.length&&0==b.edges.length?b.vertices[0]:null)},isVisible:function(b,d){return 1==b.vertices.length&&0==b.edges.length}},{name:"allowArrows",dispName:"Allow Arrows",type:"bool",defVal:!0},{name:"snapToPoint",dispName:"Snap to Point",type:"bool",defVal:!1},
3127{name:"perimeter",dispName:"Perimeter",defVal:"none",type:"enum",enumList:[{val:"none",dispName:"None"},{val:"rectanglePerimeter",dispName:"Rectangle"},{val:"ellipsePerimeter",dispName:"Ellipse"},{val:"rhombusPerimeter",dispName:"Rhombus"},{val:"trianglePerimeter",dispName:"Triangle"},{val:"hexagonPerimeter2",dispName:"Hexagon"},{val:"lifelinePerimeter",dispName:"Lifeline"},{val:"orthogonalPerimeter",dispName:"Orthogonal"},{val:"backbonePerimeter",dispName:"Backbone"},{val:"calloutPerimeter",dispName:"Callout"},
3128{val:"parallelogramPerimeter",dispName:"Parallelogram"},{val:"trapezoidPerimeter",dispName:"Trapezoid"},{val:"stepPerimeter",dispName:"Step"},{val:"centerPerimeter",dispName:"Center"}]},{name:"fixDash",dispName:"Fixed Dash",type:"bool",defVal:!1},{name:"autosize",dispName:"Autosize",type:"bool",defVal:!1},{name:"container",dispName:"Container",type:"bool",defVal:!1,isVisible:function(b,d){return 1==b.vertices.length&&0==b.edges.length}},{name:"dropTarget",dispName:"Drop Target",type:"bool",getDefaultValue:function(b,
3129d){var c=1==b.vertices.length&&0==b.edges.length?b.vertices[0]:null,f=d.editorUi.editor.graph;return null!=c&&(f.isSwimlane(c)||0<f.model.getChildCount(c))},isVisible:function(b,d){return 1==b.vertices.length&&0==b.edges.length}},{name:"collapsible",dispName:"Collapsible",type:"bool",getDefaultValue:function(b,d){var c=1==b.vertices.length&&0==b.edges.length?b.vertices[0]:null,f=d.editorUi.editor.graph;return null!=c&&(f.isContainer(c)&&"0"!=b.style.collapsible||!f.isContainer(c)&&"1"==b.style.collapsible)},
3130isVisible:function(b,d){return 1==b.vertices.length&&0==b.edges.length}},{name:"recursiveResize",dispName:"Resize Children",type:"bool",defVal:!0,isVisible:function(b,d){return 1==b.vertices.length&&0==b.edges.length&&!d.editorUi.editor.graph.isSwimlane(b.vertices[0])&&null==mxUtils.getValue(b.style,"childLayout",null)}},{name:"expand",dispName:"Expand",type:"bool",defVal:!0},{name:"part",dispName:"Part",type:"bool",defVal:!1,isVisible:function(b,d){var c=d.editorUi.editor.graph.model;return 0<b.vertices.length?
3131c.isVertex(c.getParent(b.vertices[0])):!1}},{name:"editable",dispName:"Editable",type:"bool",defVal:!0},{name:"metaEdit",dispName:"Edit Dialog",type:"bool",defVal:!1},{name:"backgroundOutline",dispName:"Background Outline",type:"bool",defVal:!1},{name:"movable",dispName:"Movable",type:"bool",defVal:!0},{name:"movableLabel",dispName:"Movable Label",type:"bool",defVal:!1,isVisible:function(b,d){var c=0<b.vertices.length?d.editorUi.editor.graph.getCellGeometry(b.vertices[0]):null;return null!=c&&!c.relative}},
3132{name:"resizable",dispName:"Resizable",type:"bool",defVal:!0},{name:"resizeWidth",dispName:"Resize Width",type:"bool",defVal:!1},{name:"resizeHeight",dispName:"Resize Height",type:"bool",defVal:!1},{name:"rotatable",dispName:"Rotatable",type:"bool",defVal:!0},{name:"cloneable",dispName:"Cloneable",type:"bool",defVal:!0},{name:"deletable",dispName:"Deletable",type:"bool",defVal:!0},{name:"treeFolding",dispName:"Tree Folding",type:"bool",defVal:!1},{name:"treeMoving",dispName:"Tree Moving",type:"bool",
3133defVal:!1},{name:"pointerEvents",dispName:"Pointer Events",type:"bool",defVal:!0,isVisible:function(b,d){var c=mxUtils.getValue(b.style,mxConstants.STYLE_FILLCOLOR,null);return d.editorUi.editor.graph.isSwimlane(b.vertices[0])||null==c||c==mxConstants.NONE||null!=b.style.pointerEvents}},{name:"moveCells",dispName:"Move Cells on Fold",type:"bool",defVal:!1,isVisible:function(b,d){return 0<b.vertices.length&&d.editorUi.editor.graph.isContainer(b.vertices[0])}}].concat(Editor.commonProperties);Editor.defaultCsvValue=
3134'##\n## Example CSV import. Use ## for comments and # for configuration. Paste CSV below.\n## The following names are reserved and should not be used (or ignored):\n## id, tooltip, placeholder(s), link and label (see below)\n##\n#\n## Node label with placeholders and HTML.\n## Default is \'%name_of_first_column%\'.\n#\n# label: %name%<br><i style="color:gray;">%position%</i><br><a href="mailto:%email%">Email</a>\n#\n## Node style (placeholders are replaced once).\n## Default is the current style for nodes.\n#\n# style: label;image=%image%;whiteSpace=wrap;html=1;rounded=1;fillColor=%fill%;strokeColor=%stroke%;\n#\n## Parent style for nodes with child nodes (placeholders are replaced once).\n#\n# parentstyle: swimlane;whiteSpace=wrap;html=1;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;\n#\n## Optional column name that contains a reference to a named style in styles.\n## Default is the current style for nodes.\n#\n# stylename: -\n#\n## JSON for named styles of the form {"name": "style", "name": "style"} where style is a cell style with\n## placeholders that are replaced once.\n#\n# styles: -\n#\n## JSON for variables in styles of the form {"name": "value", "name": "value"} where name is a string\n## that will replace a placeholder in a style.\n#\n# vars: -\n#\n## Optional column name that contains a reference to a named label in labels.\n## Default is the current label.\n#\n# labelname: -\n#\n## JSON for named labels of the form {"name": "label", "name": "label"} where label is a cell label with\n## placeholders.\n#\n# labels: -\n#\n## Uses the given column name as the identity for cells (updates existing cells).\n## Default is no identity (empty value or -).\n#\n# identity: -\n#\n## Uses the given column name as the parent reference for cells. Default is no parent (empty or -).\n## The identity above is used for resolving the reference so it must be specified.\n#\n# parent: -\n#\n## Adds a prefix to the identity of cells to make sure they do not collide with existing cells (whose\n## IDs are numbers from 0..n, sometimes with a GUID prefix in the context of realtime collaboration).\n## Default is csvimport-.\n#\n# namespace: csvimport-\n#\n## Connections between rows ("from": source colum, "to": target column).\n## Label, style and invert are optional. Defaults are \'\', current style and false.\n## If placeholders are used in the style, they are replaced with data from the source.\n## An optional placeholders can be set to target to use data from the target instead.\n## In addition to label, an optional fromlabel and tolabel can be used to name the column\n## that contains the text for the label in the edges source or target (invert ignored).\n## In addition to those, an optional source and targetlabel can be used to specify a label\n## that contains placeholders referencing the respective columns in the source or target row.\n## The label is created in the form fromlabel + sourcelabel + label + tolabel + targetlabel.\n## Additional labels can be added by using an optional labels array with entries of the\n## form {"label": string, "x": number, "y": number, "dx": number, "dy": number} where\n## x is from -1 to 1 along the edge, y is orthogonal, and dx/dy are offsets in pixels.\n## An optional placeholders with the string value "source" or "target" can be specified\n## to replace placeholders in the additional label with data from the source or target.\n## The target column may contain a comma-separated list of values.\n## Multiple connect entries are allowed.\n#\n# connect: {"from": "manager", "to": "name", "invert": true, "label": "manages", \\\n#          "style": "curved=1;endArrow=blockThin;endFill=1;fontSize=11;"}\n# connect: {"from": "refs", "to": "id", "style": "curved=1;fontSize=11;"}\n#\n## Node x-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# left: \n#\n## Node y-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# top: \n#\n## Node width. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the width. Default is auto.\n#\n# width: auto\n#\n## Node height. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the height. Default is auto.\n#\n# height: auto\n#\n## Padding for autosize. Default is 0.\n#\n# padding: -12\n#\n## Comma-separated list of ignored columns for metadata. (These can be\n## used for connections and styles but will not be added as metadata.)\n#\n# ignore: id,image,fill,stroke,refs,manager\n#\n## Column to be renamed to link attribute (used as link).\n#\n# link: url\n#\n## Spacing between nodes. Default is 40.\n#\n# nodespacing: 40\n#\n## Spacing between levels of hierarchical layouts. Default is 100.\n#\n# levelspacing: 100\n#\n## Spacing between parallel edges. Default is 40. Use 0 to disable.\n#\n# edgespacing: 40\n#\n## Name or JSON of layout. Possible values are auto, none, verticaltree, horizontaltree,\n## verticalflow, horizontalflow, organic, circle or a JSON string as used in Layout, Apply.\n## Default is auto.\n#\n# layout: auto\n#\n## ---- CSV below this line. First line are column names. ----\nname,position,id,location,manager,email,fill,stroke,refs,url,image\nTessa Miller,CFO,emi,Office 1,,me@example.com,#dae8fc,#6c8ebf,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-3-128.png\nEdward Morrison,Brand Manager,emo,Office 2,Tessa Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-10-3-128.png\nAlison Donovan,System Admin,rdo,Office 3,Tessa Miller,me@example.com,#d5e8d4,#82b366,"emo,tva",https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-2-128.png\nEvan Valet,HR Director,tva,Office 4,Tessa Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-9-2-128.png\n';
3135Editor.createRoughCanvas=function(b){var d=rough.canvas({getContext:function(){return b}});d.draw=function(d){var c=d.sets||[];d=d.options||this.getDefaultOptions();for(var f=0;f<c.length;f++){var e=c[f];switch(e.type){case "path":null!=d.stroke&&this._drawToContext(b,e,d);break;case "fillPath":this._drawToContext(b,e,d);break;case "fillSketch":this.fillSketch(b,e,d)}}};d.fillSketch=function(d,c,f){var e=b.state.strokeColor,g=b.state.strokeWidth,l=b.state.strokeAlpha,m=b.state.dashed,k=f.fillWeight;
31360>k&&(k=f.strokeWidth/2);b.setStrokeAlpha(b.state.fillAlpha);b.setStrokeColor(f.fill||"");b.setStrokeWidth(k);b.setDashed(!1);this._drawToContext(d,c,f);b.setDashed(m);b.setStrokeWidth(g);b.setStrokeColor(e);b.setStrokeAlpha(l)};d._drawToContext=function(b,d,c){b.begin();for(var f=0;f<d.ops.length;f++){var e=d.ops[f],g=e.data;switch(e.op){case "move":b.moveTo(g[0],g[1]);break;case "bcurveTo":b.curveTo(g[0],g[1],g[2],g[3],g[4],g[5]);break;case "lineTo":b.lineTo(g[0],g[1])}}b.end();"fillPath"===d.type&&
3137c.filled?b.fill():b.stroke()};return d};(function(){function b(d,c,f){this.canvas=d;this.rc=c;this.shape=f;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.originalBegin=this.canvas.begin;this.canvas.begin=mxUtils.bind(this,b.prototype.begin);this.originalEnd=this.canvas.end;this.canvas.end=mxUtils.bind(this,b.prototype.end);this.originalRect=this.canvas.rect;this.canvas.rect=mxUtils.bind(this,b.prototype.rect);this.originalRoundrect=this.canvas.roundrect;this.canvas.roundrect=
3138mxUtils.bind(this,b.prototype.roundrect);this.originalEllipse=this.canvas.ellipse;this.canvas.ellipse=mxUtils.bind(this,b.prototype.ellipse);this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,b.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,b.prototype.moveTo);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,b.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,
3139b.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,b.prototype.arcTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,b.prototype.close);this.originalFill=this.canvas.fill;this.canvas.fill=mxUtils.bind(this,b.prototype.fill);this.originalStroke=this.canvas.stroke;this.canvas.stroke=mxUtils.bind(this,b.prototype.stroke);this.originalFillAndStroke=this.canvas.fillAndStroke;this.canvas.fillAndStroke=mxUtils.bind(this,b.prototype.fillAndStroke);
3140this.path=[];this.passThrough=!1}b.prototype.moveOp="M";b.prototype.lineOp="L";b.prototype.quadOp="Q";b.prototype.curveOp="C";b.prototype.closeOp="Z";b.prototype.getStyle=function(b,d){var c=1;if(null!=this.shape.state){var f=this.shape.state.cell.id;if(null!=f)for(var e=0;e<f.length;e++)c=(c<<5)-c+f.charCodeAt(e)<<0}c={strokeWidth:this.canvas.state.strokeWidth,seed:c,preserveVertices:!0};f=this.rc.getDefaultOptions();b?c.stroke="none"===this.canvas.state.strokeColor?"transparent":this.canvas.state.strokeColor:
3141delete c.stroke;e=null;(c.filled=d)?(c.fill="none"===this.canvas.state.fillColor?"":this.canvas.state.fillColor,e="none"===this.canvas.state.gradientColor?null:this.canvas.state.gradientColor):c.fill="";c.bowing=mxUtils.getValue(this.shape.style,"bowing",f.bowing);c.hachureAngle=mxUtils.getValue(this.shape.style,"hachureAngle",f.hachureAngle);c.curveFitting=mxUtils.getValue(this.shape.style,"curveFitting",f.curveFitting);c.roughness=mxUtils.getValue(this.shape.style,"jiggle",f.roughness);c.simplification=
3142mxUtils.getValue(this.shape.style,"simplification",f.simplification);c.disableMultiStroke=mxUtils.getValue(this.shape.style,"disableMultiStroke",f.disableMultiStroke);c.disableMultiStrokeFill=mxUtils.getValue(this.shape.style,"disableMultiStrokeFill",f.disableMultiStrokeFill);var g=mxUtils.getValue(this.shape.style,"hachureGap",-1);c.hachureGap="auto"==g?-1:g;c.dashGap=mxUtils.getValue(this.shape.style,"dashGap",g);c.dashOffset=mxUtils.getValue(this.shape.style,"dashOffset",g);c.zigzagOffset=mxUtils.getValue(this.shape.style,
3143"zigzagOffset",g);g=mxUtils.getValue(this.shape.style,"fillWeight",-1);c.fillWeight="auto"==g?-1:g;g=mxUtils.getValue(this.shape.style,"fillStyle","auto");"auto"==g&&(g=mxUtils.hex2rgba(null!=this.shape.state?this.shape.state.view.graph.shapeBackgroundColor:Editor.isDarkMode()?Editor.darkColor:"#ffffff"),g=null!=c.fill&&(null!=e||null!=g&&c.fill==g)?"solid":f.fillStyle);c.fillStyle=g;return c};b.prototype.begin=function(){this.passThrough?this.originalBegin.apply(this.canvas,arguments):this.path=
3144[]};b.prototype.end=function(){this.passThrough&&this.originalEnd.apply(this.canvas,arguments)};b.prototype.addOp=function(){if(null!=this.path&&(this.path.push(arguments[0]),2<arguments.length))for(var b=2;b<arguments.length;b+=2)this.lastX=arguments[b-1],this.lastY=arguments[b],this.path.push(this.canvas.format(this.lastX)),this.path.push(this.canvas.format(this.lastY))};b.prototype.lineTo=function(b,d){this.passThrough?this.originalLineTo.apply(this.canvas,arguments):(this.addOp(this.lineOp,b,
3145d),this.lastX=b,this.lastY=d)};b.prototype.moveTo=function(b,d){this.passThrough?this.originalMoveTo.apply(this.canvas,arguments):(this.addOp(this.moveOp,b,d),this.lastX=b,this.lastY=d,this.firstX=b,this.firstY=d)};b.prototype.close=function(){this.passThrough?this.originalClose.apply(this.canvas,arguments):this.addOp(this.closeOp)};b.prototype.quadTo=function(b,d,c,f){this.passThrough?this.originalQuadTo.apply(this.canvas,arguments):(this.addOp(this.quadOp,b,d,c,f),this.lastX=c,this.lastY=f)};b.prototype.curveTo=
3146function(b,d,c,f,e,g){this.passThrough?this.originalCurveTo.apply(this.canvas,arguments):(this.addOp(this.curveOp,b,d,c,f,e,g),this.lastX=e,this.lastY=g)};b.prototype.arcTo=function(b,d,c,f,e,g,l){if(this.passThrough)this.originalArcTo.apply(this.canvas,arguments);else{var m=mxUtils.arcToCurves(this.lastX,this.lastY,b,d,c,f,e,g,l);if(null!=m)for(var k=0;k<m.length;k+=6)this.curveTo(m[k],m[k+1],m[k+2],m[k+3],m[k+4],m[k+5]);this.lastX=g;this.lastY=l}};b.prototype.rect=function(b,d,c,f){this.passThrough?
3147this.originalRect.apply(this.canvas,arguments):(this.path=[],this.nextShape=this.rc.generator.rectangle(b,d,c,f,this.getStyle(!0,!0)))};b.prototype.ellipse=function(b,d,c,f){this.passThrough?this.originalEllipse.apply(this.canvas,arguments):(this.path=[],this.nextShape=this.rc.generator.ellipse(b+c/2,d+f/2,c,f,this.getStyle(!0,!0)))};b.prototype.roundrect=function(b,d,c,f,e,g){this.passThrough?this.originalRoundrect.apply(this.canvas,arguments):(this.begin(),this.moveTo(b+e,d),this.lineTo(b+c-e,d),
3148this.quadTo(b+c,d,b+c,d+g),this.lineTo(b+c,d+f-g),this.quadTo(b+c,d+f,b+c-e,d+f),this.lineTo(b+e,d+f),this.quadTo(b,d+f,b,d+f-g),this.lineTo(b,d+g),this.quadTo(b,d,b+e,d))};b.prototype.drawPath=function(b){if(0<this.path.length){this.passThrough=!0;try{this.rc.path(this.path.join(" "),b)}catch(aa){}this.passThrough=!1}else if(null!=this.nextShape){for(var d in b)this.nextShape.options[d]=b[d];null==b.stroke&&delete this.nextShape.options.stroke;b.filled||delete this.nextShape.options.fill;this.passThrough=
3149!0;this.rc.draw(this.nextShape);this.passThrough=!1}};b.prototype.stroke=function(){this.passThrough?this.originalStroke.apply(this.canvas,arguments):this.drawPath(this.getStyle(!0,!1))};b.prototype.fill=function(){this.passThrough?this.originalFill.apply(this.canvas,arguments):this.drawPath(this.getStyle(!1,!0))};b.prototype.fillAndStroke=function(){this.passThrough?this.originalFillAndStroke.apply(this.canvas,arguments):this.drawPath(this.getStyle(!0,!0))};b.prototype.destroy=function(){this.canvas.lineTo=
3150this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo;this.canvas.close=this.originalClose;this.canvas.fill=this.originalFill;this.canvas.stroke=this.originalStroke;this.canvas.fillAndStroke=this.originalFillAndStroke;this.canvas.begin=this.originalBegin;this.canvas.end=this.originalEnd;this.canvas.rect=this.originalRect;this.canvas.ellipse=
3151this.originalEllipse;this.canvas.roundrect=this.originalRoundrect};mxShape.prototype.createRoughCanvas=function(d){return new b(d,Editor.createRoughCanvas(d),this)};var d=mxShape.prototype.createHandJiggle;mxShape.prototype.createHandJiggle=function(b){return this.outline||null==this.style||"0"==mxUtils.getValue(this.style,"sketch","0")?d.apply(this,arguments):"comic"==mxUtils.getValue(this.style,"sketchStyle","rough")?this.createComicCanvas(b):this.createRoughCanvas(b)};var c=mxShape.prototype.paint;
3152mxShape.prototype.paint=function(d){var f=d.addTolerance,e=!0;null!=this.style&&(e="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(null!=d.handJiggle&&d.handJiggle.constructor==b&&!this.outline){d.save();var g=this.fill,l=this.stroke;this.stroke=this.fill=null;var m=this.configurePointerEvents,k=d.setStrokeColor;d.setStrokeColor=function(){};var n=d.setFillColor;d.setFillColor=function(){};e||null==g||(this.configurePointerEvents=function(){});d.handJiggle.passThrough=!0;
3153c.apply(this,arguments);d.handJiggle.passThrough=!1;d.setFillColor=n;d.setStrokeColor=k;this.configurePointerEvents=m;this.stroke=l;this.fill=g;d.restore();e&&null!=g&&(d.addTolerance=function(){})}c.apply(this,arguments);d.addTolerance=f};var f=mxShape.prototype.paintGlassEffect;mxShape.prototype.paintGlassEffect=function(d,c,e,g,l,m){null!=d.handJiggle&&d.handJiggle.constructor==b?(d.handJiggle.passThrough=!0,f.apply(this,arguments),d.handJiggle.passThrough=!1):f.apply(this,arguments)}})();Editor.fastCompress=
3154function(b){return null==b||0==b.length||"undefined"===typeof pako?b:Graph.arrayBufferToString(pako.deflateRaw(b))};Editor.fastDecompress=function(b){return null==b||0==b.length||"undefined"===typeof pako?b:pako.inflateRaw(Graph.stringToArrayBuffer(atob(b)),{to:"string"})};Editor.extractGraphModel=function(b,d,c){if(null!=b&&"undefined"!==typeof pako){var f=b.ownerDocument.getElementsByTagName("div"),e=[];if(null!=f&&0<f.length)for(var g=0;g<f.length;g++)if("mxgraph"==f[g].getAttribute("class")){e.push(f[g]);
3155break}0<e.length&&(f=e[0].getAttribute("data-mxgraph"),null!=f?(e=JSON.parse(f),null!=e&&null!=e.xml&&(b=mxUtils.parseXml(e.xml),b=b.documentElement)):(e=e[0].getElementsByTagName("div"),0<e.length&&(f=mxUtils.getTextContent(e[0]),f=Graph.decompress(f,null,c),0<f.length&&(b=mxUtils.parseXml(f),b=b.documentElement))))}if(null!=b&&"svg"==b.nodeName)if(f=b.getAttribute("content"),null!=f&&"<"!=f.charAt(0)&&"%"!=f.charAt(0)&&(f=unescape(window.atob?atob(f):Base64.decode(cont,f))),null!=f&&"%"==f.charAt(0)&&
3156(f=decodeURIComponent(f)),null!=f&&0<f.length)b=mxUtils.parseXml(f).documentElement;else throw{message:mxResources.get("notADiagramFile")};null==b||d||(e=null,"diagram"==b.nodeName?e=b:"mxfile"==b.nodeName&&(f=b.getElementsByTagName("diagram"),0<f.length&&(e=f[Math.max(0,Math.min(f.length-1,urlParams.page||0))])),null!=e&&(b=Editor.parseDiagramNode(e,c)));null==b||"mxGraphModel"==b.nodeName||d&&"mxfile"==b.nodeName||(b=null);return b};Editor.parseDiagramNode=function(b,d){var c=mxUtils.trim(mxUtils.getTextContent(b)),
3157f=null;0<c.length?(c=Graph.decompress(c,null,d),null!=c&&0<c.length&&(f=mxUtils.parseXml(c).documentElement)):(c=mxUtils.getChildNodes(b),0<c.length&&(f=mxUtils.createXmlDocument(),f.appendChild(f.importNode(c[0],!0)),f=f.documentElement));return f};Editor.getDiagramNodeXml=function(b){var d=mxUtils.getTextContent(b),c=null;0<d.length?c=Graph.decompress(d):null!=b.firstChild&&(c=mxUtils.getXml(b.firstChild));return c};Editor.extractGraphModelFromPdf=function(b){b=b.substring(b.indexOf(",")+1);b=window.atob&&
3158!mxClient.IS_SF?atob(b):Base64.decode(b,!0);if("%PDF-1.7"==b.substring(0,8)){var d=b.indexOf("EmbeddedFile");if(-1<d){var c=b.indexOf("stream",d)+9;if(0<b.substring(d,c).indexOf("application#2Fvnd.jgraph.mxfile"))return d=b.indexOf("endstream",c-1),pako.inflateRaw(Graph.stringToArrayBuffer(b.substring(c,d)),{to:"string"})}return null}for(var c=null,d="",f=0,e=0,g=[],l=null;e<b.length;){var m=b.charCodeAt(e),e=e+1;10!=m&&(d+=String.fromCharCode(m));m=="/Subject (%3Cmxfile".charCodeAt(f)?f++:f=0;if(19==
3159f){var k=b.indexOf("%3C%2Fmxfile%3E)",e)+15,e=e-9;if(k>e){c=b.substring(e,k);break}}10==m&&("endobj"==d?l=null:"obj"==d.substring(d.length-3,d.length)||"xref"==d||"trailer"==d?(l=[],g[d.split(" ")[0]]=l):null!=l&&l.push(d),d="")}null==c&&(c=Editor.extractGraphModelFromXref(g));null!=c&&(c=decodeURIComponent(c.replace(/\\\(/g,"(").replace(/\\\)/g,")")));return c};Editor.extractGraphModelFromXref=function(b){var d=b.trailer,c=null;null!=d&&(d=/.* \/Info (\d+) (\d+) R/g.exec(d.join("\n")),null!=d&&0<
3160d.length&&(d=b[d[1]],null!=d&&(d=/.* \/Subject (\d+) (\d+) R/g.exec(d.join("\n")),null!=d&&0<d.length&&(b=b[d[1]],null!=b&&(b=b.join("\n"),c=b.substring(1,b.length-1))))));return c};Editor.extractGraphModelFromPng=function(b){var d=null;try{var c=b.substring(b.indexOf(",")+1),f=window.atob&&!mxClient.IS_SF?atob(c):Base64.decode(c,!0);EditorUi.parsePng(f,mxUtils.bind(this,function(b,c,e){b=f.substring(b+8,b+8+e);"zTXt"==c?(e=b.indexOf(String.fromCharCode(0)),"mxGraphModel"==b.substring(0,e)&&(b=pako.inflateRaw(Graph.stringToArrayBuffer(b.substring(e+
31612)),{to:"string"}).replace(/\+/g," "),null!=b&&0<b.length&&(d=b))):"tEXt"==c&&(b=b.split(String.fromCharCode(0)),1<b.length&&("mxGraphModel"==b[0]||"mxfile"==b[0])&&(d=b[1]));if(null!=d||"IDAT"==c)return!0}))}catch(G){}null!=d&&"%"==d.charAt(0)&&(d=decodeURIComponent(d));null!=d&&"%"==d.charAt(0)&&(d=decodeURIComponent(d));return d};Editor.extractParserError=function(b,d){var c=null,f=null!=b?b.getElementsByTagName("parsererror"):null;null!=f&&0<f.length&&(c=d||mxResources.get("invalidChars"),f=f[0].getElementsByTagName("div"),
31620<f.length&&(c=mxUtils.getTextContent(f[0])));return null!=c?mxUtils.trim(c):c};Editor.addRetryToError=function(b,d){if(null!=b){var c=null!=b.error?b.error:b;null==c.retry&&(c.retry=d)}};Editor.configure=function(b,d){if(null!=b){Editor.config=b;Editor.configVersion=b.version;Menus.prototype.defaultFonts=b.defaultFonts||Menus.prototype.defaultFonts;ColorDialog.prototype.presetColors=b.presetColors||ColorDialog.prototype.presetColors;ColorDialog.prototype.defaultColors=b.defaultColors||ColorDialog.prototype.defaultColors;
3163ColorDialog.prototype.colorNames=b.colorNames||ColorDialog.prototype.colorNames;StyleFormatPanel.prototype.defaultColorSchemes=b.defaultColorSchemes||StyleFormatPanel.prototype.defaultColorSchemes;Graph.prototype.defaultEdgeLength=b.defaultEdgeLength||Graph.prototype.defaultEdgeLength;DrawioFile.prototype.autosaveDelay=b.autosaveDelay||DrawioFile.prototype.autosaveDelay;null!=b.templateFile&&(EditorUi.templateFile=b.templateFile);null!=b.styles&&(Editor.styles=b.styles);null!=b.globalVars&&(Editor.globalVars=
3164b.globalVars);null!=b.compressXml&&(Editor.compressXml=b.compressXml);null!=b.includeDiagram&&(Editor.defaultIncludeDiagram=b.includeDiagram);null!=b.simpleLabels&&(Editor.simpleLabels=b.simpleLabels);null!=b.oneDriveInlinePicker&&(Editor.oneDriveInlinePicker=b.oneDriveInlinePicker);null!=b.darkColor&&(Editor.darkColor=b.darkColor);null!=b.lightColor&&(Editor.lightColor=b.lightColor);null!=b.settingsName&&(Editor.configurationKey="."+b.settingsName+"-configuration",Editor.settingsKey="."+b.settingsName+
3165"-config",mxSettings.key=Editor.settingsKey);b.customFonts&&(Menus.prototype.defaultFonts=b.customFonts.concat(Menus.prototype.defaultFonts));b.customPresetColors&&(ColorDialog.prototype.presetColors=b.customPresetColors.concat(ColorDialog.prototype.presetColors));null!=b.customColorSchemes&&(StyleFormatPanel.prototype.defaultColorSchemes=b.customColorSchemes.concat(StyleFormatPanel.prototype.defaultColorSchemes));if(null!=b.css){var c=document.createElement("style");c.setAttribute("type","text/css");
3166c.appendChild(document.createTextNode(b.css));var f=document.getElementsByTagName("script")[0];f.parentNode.insertBefore(c,f)}null!=b.libraries&&(Sidebar.prototype.customEntries=b.libraries);null!=b.enabledLibraries&&(Sidebar.prototype.enabledLibraries=b.enabledLibraries);null!=b.defaultLibraries&&(Sidebar.prototype.defaultEntries=b.defaultLibraries);null!=b.defaultCustomLibraries&&(Editor.defaultCustomLibraries=b.defaultCustomLibraries);null!=b.enableCustomLibraries&&(Editor.enableCustomLibraries=
3167b.enableCustomLibraries);null!=b.defaultVertexStyle&&(Graph.prototype.defaultVertexStyle=b.defaultVertexStyle);null!=b.defaultEdgeStyle&&(Graph.prototype.defaultEdgeStyle=b.defaultEdgeStyle);null!=b.defaultPageVisible&&(Graph.prototype.defaultPageVisible=b.defaultPageVisible);null!=b.defaultGridEnabled&&(Graph.prototype.defaultGridEnabled=b.defaultGridEnabled);null!=b.zoomWheel&&(Graph.zoomWheel=b.zoomWheel);null!=b.zoomFactor&&(c=parseFloat(b.zoomFactor),!isNaN(c)&&1<c?Graph.prototype.zoomFactor=
3168c:EditorUi.debug("Invalid zoomFactor: value must be float > 1"));null!=b.gridSteps&&(c=parseInt(b.gridSteps),!isNaN(c)&&0<c?mxGraphView.prototype.gridSteps=c:EditorUi.debug("Invalid gridSteps: value must be int > 0"));null!=b.pageFormat&&(c=parseInt(b.pageFormat.width),f=parseInt(b.pageFormat.height),!isNaN(c)&&0<c&&!isNaN(f)&&0<f?(mxGraph.prototype.defaultPageFormat=new mxRectangle(0,0,c,f),mxGraph.prototype.pageFormat=mxGraph.prototype.defaultPageFormat):EditorUi.debug("Invalid pageFormat: value must be {width: int, height: int}"));
3169b.thumbWidth&&(Sidebar.prototype.thumbWidth=b.thumbWidth);b.thumbHeight&&(Sidebar.prototype.thumbHeight=b.thumbHeight);b.emptyLibraryXml&&(EditorUi.prototype.emptyLibraryXml=b.emptyLibraryXml);b.emptyDiagramXml&&(EditorUi.prototype.emptyDiagramXml=b.emptyDiagramXml);b.sidebarWidth&&(EditorUi.prototype.hsplitPosition=b.sidebarWidth);b.sidebarTitles&&(Sidebar.prototype.sidebarTitles=b.sidebarTitles);b.sidebarTitleSize&&(c=parseInt(b.sidebarTitleSize),!isNaN(c)&&0<c?Sidebar.prototype.sidebarTitleSize=
3170c:EditorUi.debug("Invalid sidebarTitleSize: value must be int > 0"));b.fontCss&&("string"===typeof b.fontCss?Editor.configureFontCss(b.fontCss):EditorUi.debug("Invalid fontCss: value must be string"));null!=b.autosaveDelay&&(c=parseInt(b.autosaveDelay),!isNaN(c)&&0<c?DrawioFile.prototype.autosaveDelay=c:EditorUi.debug("Invalid autosaveDelay: value must be int > 0"));if(null!=b.plugins&&!d)for(App.initPluginCallback(),c=0;c<b.plugins.length;c++)mxscript(b.plugins[c]);null!=b.maxImageBytes&&(EditorUi.prototype.maxImageBytes=
3171b.maxImageBytes);null!=b.maxImageSize&&(EditorUi.prototype.maxImageSize=b.maxImageSize)}};Editor.configureFontCss=function(b){if(null!=b){Editor.prototype.fontCss=b;var d=document.getElementsByTagName("script")[0];if(null!=d&&null!=d.parentNode){var c=document.createElement("style");c.setAttribute("type","text/css");c.appendChild(document.createTextNode(b));d.parentNode.insertBefore(c,d);b=b.split("url(");for(c=1;c<b.length;c++){var f=b[c].indexOf(")"),f=Editor.trimCssUrl(b[c].substring(0,f)),e=document.createElement("link");
3172e.setAttribute("rel","preload");e.setAttribute("href",f);e.setAttribute("as","font");e.setAttribute("crossorigin","");d.parentNode.insertBefore(e,d)}}}};Editor.trimCssUrl=function(b){return b.replace(RegExp("^[\\s\"']+","g"),"").replace(RegExp("[\\s\"']+$","g"),"")};Editor.GOOGLE_FONTS="https://fonts.googleapis.com/css?family=";Editor.GUID_ALPHABET="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_";Editor.GUID_LENGTH=20;Editor.guid=function(b){b=null!=b?b:Editor.GUID_LENGTH;for(var d=
3173[],c=0;c<b;c++)d.push(Editor.GUID_ALPHABET.charAt(Math.floor(Math.random()*Editor.GUID_ALPHABET.length)));return d.join("")};Editor.prototype.timeout=25E3;Editor.prototype.useForeignObjectForMath=!0;Editor.prototype.editButtonLink=null!=urlParams.edit?decodeURIComponent(urlParams.edit):null;Editor.prototype.crossOriginImages=!mxClient.IS_IE;var b=Editor.prototype.setGraphXml;Editor.prototype.setGraphXml=function(d){d=null!=d&&"mxlibrary"!=d.nodeName?this.extractGraphModel(d):null;if(null!=d){var c=
3174d.getElementsByTagName("parsererror");if(null!=c&&0<c.length){var c=c[0],f=c.getElementsByTagName("div");null!=f&&0<f.length&&(c=f[0]);throw{message:mxUtils.getTextContent(c)};}if("mxGraphModel"==d.nodeName){c=d.getAttribute("style")||"default-style2";if("1"==urlParams.embed||null!=c&&""!=c)c!=this.graph.currentStyle&&(f=null!=this.graph.themes?this.graph.themes[c]:mxUtils.load(STYLE_PATH+"/"+c+".xml").getDocumentElement(),null!=f&&(e=new mxCodec(f.ownerDocument),e.decode(f,this.graph.getStylesheet())));
3175else if(f=null!=this.graph.themes?this.graph.themes["default-old"]:mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=f){var e=new mxCodec(f.ownerDocument);e.decode(f,this.graph.getStylesheet())}this.graph.currentStyle=c;this.graph.mathEnabled="1"==urlParams.math||"1"==d.getAttribute("math");c=d.getAttribute("backgroundImage");null!=c?this.graph.setBackgroundImage(this.graph.parseBackgroundImage(c)):this.graph.setBackgroundImage(null);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?
3176!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();this.graph.setShadowVisible("1"==d.getAttribute("shadow"),!1);if(c=d.getAttribute("extFonts"))try{for(c=c.split("|").map(function(b){b=b.split("^");return{name:b[0],url:b[1]}}),f=0;f<c.length;f++)this.graph.addExtFont(c[f].name,c[f].url)}catch(G){console.log("ExtFonts format error: "+G.message)}else null!=this.graph.extFonts&&0<
3177this.graph.extFonts.length&&(this.graph.extFonts=[])}b.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var c=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(b,d){b=null!=b?b:!0;var f=c.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&f.setAttribute("style",this.graph.currentStyle);var e=this.graph.getBackgroundImageObject(this.graph.backgroundImage,
3178d);null!=e&&f.setAttribute("backgroundImage",JSON.stringify(e));f.setAttribute("math",this.graph.mathEnabled?"1":"0");f.setAttribute("shadow",this.graph.shadowVisible?"1":"0");null!=this.graph.extFonts&&0<this.graph.extFonts.length&&(e=this.graph.extFonts.map(function(b){return b.name+"^"+b.url}),f.setAttribute("extFonts",e.join("|")));return f};Editor.prototype.isDataSvg=function(b){try{var d=mxUtils.parseXml(b).documentElement.getAttribute("content");if(null!=d&&(null!=d&&"<"!=d.charAt(0)&&"%"!=
3179d.charAt(0)&&(d=unescape(window.atob?atob(d):Base64.decode(cont,d))),null!=d&&"%"==d.charAt(0)&&(d=decodeURIComponent(d)),null!=d&&0<d.length)){var c=mxUtils.parseXml(d).documentElement;return"mxfile"==c.nodeName||"mxGraphModel"==c.nodeName}}catch(Z){}return!1};Editor.prototype.extractGraphModel=function(b,d,c){return Editor.extractGraphModel.apply(this,arguments)};var e=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled="1"==urlParams.math;this.graph.view.x0=
3180null;this.graph.view.y0=null;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();e.apply(this,arguments)};var k=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){k.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath&&null!=Editor.MathJaxRender?
3181!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform()};Editor.mathJaxWebkitCss="div.MathJax_SVG_Display { position: static; }\nspan.MathJax_SVG { position: static !important; }";Editor.initMath=function(b,d){if("undefined"===typeof window.MathJax){b=(null!=b?b:DRAW_MATH_URL+"/MathJax.js")+"?config=TeX-MML-AM_"+("html"==urlParams["math-output"]?"HTMLorMML":"SVG")+"-full";Editor.mathJaxQueue=
3182[];Editor.doMathJaxRender=function(b){window.setTimeout(function(){"hidden"!=b.style.visibility&&MathJax.Hub.Queue(["Typeset",MathJax.Hub,b])},0)};var c=null!=urlParams["math-font"]?decodeURIComponent(urlParams["math-font"]):"TeX";d=null!=d?d:{"HTML-CSS":{availableFonts:[c],imageFont:null},SVG:{font:c,useFontCache:!1},tex2jax:{ignoreClass:"mxCellEditor"},asciimath2jax:{ignoreClass:"mxCellEditor"}};window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config(d);
3183MathJax.Hub.Register.StartupHook("Begin",function(){for(var b=0;b<Editor.mathJaxQueue.length;b++)Editor.doMathJaxRender(Editor.mathJaxQueue[b])})}};Editor.MathJaxRender=function(b){"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?Editor.doMathJaxRender(b):Editor.mathJaxQueue.push(b)};Editor.MathJaxClear=function(){Editor.mathJaxQueue=[]};var f=Editor.prototype.init;Editor.prototype.init=function(){f.apply(this,arguments);this.graph.addListener(mxEvent.SIZE,mxUtils.bind(this,function(b,
3184d){null!=this.graph.container&&this.graph.mathEnabled&&!this.graph.blockMathRender&&Editor.MathJaxRender(this.graph.container)}))};c=document.getElementsByTagName("script");if(null!=c&&0<c.length){var e=document.createElement("script");e.setAttribute("type","text/javascript");e.setAttribute("src",b);c[0].parentNode.appendChild(e)}try{if(mxClient.IS_GC||mxClient.IS_SF){var g=document.createElement("style");g.type="text/css";g.innerHTML=Editor.mathJaxWebkitCss;document.getElementsByTagName("head")[0].appendChild(g)}}catch(aa){}}};
3185Editor.prototype.csvToArray=function(b){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*(?:,\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*'|"[^"\\]*(?:\\[\S\s][^"\\]*)*"|[^,'"\s\\]*(?:\s+[^,'"\s\\]+)*)\s*)*$/.test(b))return null;var d=[];b.replace(/(?!\s*$)\s*(?:'([^'\\]*(?:\\[\S\s][^'\\]*)*)'|"([^"\\]*(?:\\[\S\s][^"\\]*)*)"|([^,'"\s\\]*(?:\s+[^,'"\s\\]+)*))\s*(?:,|$)/g,function(b,c,f,e){void 0!==c?d.push(c.replace(/\\'/g,"'")):void 0!==f?d.push(f.replace(/\\"/g,
3186'"')):void 0!==e&&d.push(e);return""});/,\s*$/.test(b)&&d.push("");return d};Editor.prototype.isCorsEnabledForUrl=function(b){if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||b.substring(0,window.location.origin.length)==window.location.origin)return!0;null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(b)||"https://raw.githubusercontent.com/"===b.substring(0,34)};Editor.prototype.createImageUrlConverter=
3187function(){var b=new mxUrlConverter;b.updateBaseUrl();var d=b.convert,c=this;b.convert=function(f){if(null!=f){var e="http://"==f.substring(0,7)||"https://"==f.substring(0,8);e&&!navigator.onLine?f=Editor.svgBrokenImage.src:!e||f.substring(0,b.baseUrl.length)==b.baseUrl||c.crossOriginImages&&c.isCorsEnabledForUrl(f)?"chrome-extension://"==f.substring(0,19)||mxClient.IS_CHROMEAPP||(f=d.apply(this,arguments)):f=PROXY_URL+"?url="+encodeURIComponent(f)}return f};return b};Editor.createSvgDataUri=function(b){return"data:image/svg+xml;base64,"+
3188btoa(unescape(encodeURIComponent(b)))};Editor.prototype.convertImageToDataUri=function(b,d){try{var c=!0,f=window.setTimeout(mxUtils.bind(this,function(){c=!1;d(Editor.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(b))mxUtils.get(b,mxUtils.bind(this,function(b){window.clearTimeout(f);c&&d(Editor.createSvgDataUri(b.getText()))}),function(){window.clearTimeout(f);c&&d(Editor.svgBrokenImage.src)});else{var e=new Image;this.crossOriginImages&&(e.crossOrigin="anonymous");e.onload=function(){window.clearTimeout(f);
3189if(c)try{var b=document.createElement("canvas"),g=b.getContext("2d");b.height=e.height;b.width=e.width;g.drawImage(e,0,0);d(b.toDataURL())}catch(oa){d(Editor.svgBrokenImage.src)}};e.onerror=function(){window.clearTimeout(f);c&&d(Editor.svgBrokenImage.src)};e.src=b}}catch(W){d(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(b,d,c,f){null==f&&(f=this.createImageUrlConverter());var e=0,g=c||{};c=mxUtils.bind(this,function(c,l){for(var m=b.getElementsByTagName(c),k=0;k<m.length;k++)mxUtils.bind(this,
3190function(c){try{if(null!=c){var m=f.convert(c.getAttribute(l));if(null!=m&&"data:"!=m.substring(0,5)){var k=g[m];null==k?(e++,this.convertImageToDataUri(m,function(f){null!=f&&(g[m]=f,c.setAttribute(l,f));e--;0==e&&d(b)})):c.setAttribute(l,k)}else null!=m&&c.setAttribute(l,m)}}catch(Y){}})(m[k])});c("image","xlink:href");c("img","src");0==e&&d(b)};Editor.base64Encode=function(b){for(var d="",c=0,f=b.length,e,g,l;c<f;){e=b.charCodeAt(c++)&255;if(c==f){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
31912);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);d+="==";break}g=b.charCodeAt(c++);if(c==f){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(g&240)>>4);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((g&15)<<2);d+="=";break}l=b.charCodeAt(c++);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
31922);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(g&240)>>4);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((g&15)<<2|(l&192)>>6);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(l&63)}return d};Editor.prototype.loadUrl=function(b,d,c,f,e,g,l,m){try{var k=!l&&(f||/(\.png)($|\?)/i.test(b)||/(\.jpe?g)($|\?)/i.test(b)||/(\.gif)($|\?)/i.test(b)||/(\.pdf)($|\?)/i.test(b));e=null!=e?e:!0;var n=mxUtils.bind(this,
3193function(){mxUtils.get(b,mxUtils.bind(this,function(b){if(200<=b.getStatus()&&299>=b.getStatus()){if(null!=d){var f=b.getText();if(k){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){b=mxUtilsBinaryToArray(b.request.responseBody).toArray();for(var f=Array(b.length),e=0;e<b.length;e++)f[e]=String.fromCharCode(b[e]);f=f.join("")}g=null!=g?g:"data:image/png;base64,";f=g+Editor.base64Encode(f)}d(f)}}else null!=c&&(0==b.getStatus()?c({message:mxResources.get("accessDenied")},
3194b):c({message:mxResources.get("error")+" "+b.getStatus()},b))}),function(b){null!=c&&c({message:mxResources.get("error")+" "+b.getStatus()})},k,this.timeout,function(){e&&null!=c&&c({code:App.ERROR_TIMEOUT,retry:n})},m)});n()}catch(na){null!=c&&c(na)}};Editor.prototype.absoluteCssFonts=function(b){var d=null;if(null!=b){var c=b.split("url(");if(0<c.length){d=[c[0]];b=window.location.pathname;var f=null!=b?b.lastIndexOf("/"):-1;0<=f&&(b=b.substring(0,f+1));var f=document.getElementsByTagName("base"),
3195e=null;null!=f&&0<f.length&&(e=f[0].getAttribute("href"));for(var g=1;g<c.length;g++)if(f=c[g].indexOf(")"),0<f){var l=Editor.trimCssUrl(c[g].substring(0,f));this.graph.isRelativeUrl(l)&&(l=null!=e?e+l:window.location.protocol+"//"+window.location.hostname+("/"==l.charAt(0)?"":b)+l);d.push('url("'+l+'"'+c[g].substring(f))}else d.push(c[g])}else d=[b]}return null!=d?d.join(""):null};Editor.prototype.embedCssFonts=function(b,d){var c=b.split("url("),f=0;null==this.cachedFonts&&(this.cachedFonts={});
3196var e=mxUtils.bind(this,function(){if(0==f){for(var b=[c[0]],e=1;e<c.length;e++){var g=c[e].indexOf(")");b.push('url("');b.push(this.cachedFonts[Editor.trimCssUrl(c[e].substring(0,g))]);b.push('"'+c[e].substring(g))}d(b.join(""))}});if(0<c.length){for(var g=1;g<c.length;g++){var l=c[g].indexOf(")"),m=null,k=c[g].indexOf("format(",l);0<k&&(m=Editor.trimCssUrl(c[g].substring(k+7,c[g].indexOf(")",k))));mxUtils.bind(this,function(b){if(null==this.cachedFonts[b]){this.cachedFonts[b]=b;f++;var d="application/x-font-ttf";
3197if("svg"==m||/(\.svg)($|\?)/i.test(b))d="image/svg+xml";else if("otf"==m||"embedded-opentype"==m||/(\.otf)($|\?)/i.test(b))d="application/x-font-opentype";else if("woff"==m||/(\.woff)($|\?)/i.test(b))d="application/font-woff";else if("woff2"==m||/(\.woff2)($|\?)/i.test(b))d="application/font-woff2";else if("eot"==m||/(\.eot)($|\?)/i.test(b))d="application/vnd.ms-fontobject";else if("sfnt"==m||/(\.sfnt)($|\?)/i.test(b))d="application/font-sfnt";var c=b;/^https?:\/\//.test(c)&&!this.isCorsEnabledForUrl(c)&&
3198(c=PROXY_URL+"?url="+encodeURIComponent(b));this.loadUrl(c,mxUtils.bind(this,function(d){this.cachedFonts[b]=d;f--;e()}),mxUtils.bind(this,function(b){f--;e()}),!0,null,"data:"+d+";charset=utf-8;base64,")}})(Editor.trimCssUrl(c[g].substring(0,l)),m)}e()}else d(b)};Editor.prototype.loadFonts=function(b){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(d){this.resolvedFontCss=d;null!=b&&b()})):null!=b&&b()};Editor.prototype.embedExtFonts=function(b){var d=
3199this.graph.getCustomFonts();if(0<d.length){var c="",f=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts={});for(var e=mxUtils.bind(this,function(){0==f&&this.embedCssFonts(c,b)}),g=0;g<d.length;g++)mxUtils.bind(this,function(b,d){Graph.isCssFontUrl(d)?null==this.cachedGoogleFonts[d]?(f++,this.loadUrl(d,mxUtils.bind(this,function(b){this.cachedGoogleFonts[d]=b;c+=b;f--;e()}),mxUtils.bind(this,function(b){f--;c+="@import url("+d+");";e()}))):c+=this.cachedGoogleFonts[d]:c+='@font-face {font-family: "'+
3200b+'";src: url("'+d+'")}'})(d[g].name,d[g].url);e()}else b()};Editor.prototype.addMathCss=function(b){b=b.getElementsByTagName("defs");if(null!=b&&0<b.length)for(var d=document.getElementsByTagName("style"),c=0;c<d.length;c++)0<mxUtils.getTextContent(d[c]).indexOf("MathJax")&&b[0].appendChild(d[c].cloneNode(!0))};Editor.prototype.addFontCss=function(b,d){d=null!=d?d:this.absoluteCssFonts(this.fontCss);if(null!=d){var c=b.getElementsByTagName("defs"),f=b.ownerDocument;0==c.length?(c=null!=f.createElementNS?
3201f.createElementNS(mxConstants.NS_SVG,"defs"):f.createElement("defs"),null!=b.firstChild?b.insertBefore(c,b.firstChild):b.appendChild(c)):c=c[0];f=null!=f.createElementNS?f.createElementNS(mxConstants.NS_SVG,"style"):f.createElement("style");f.setAttribute("type","text/css");mxUtils.setTextContent(f,d);c.appendChild(f)}};Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(b,d,c){var f=mxClient.IS_FF?8192:16384;
3202return Math.min(c,Math.min(f/b,f/d))};Editor.prototype.exportToCanvas=function(b,d,c,f,e,g,l,m,k,n,q,u,p,x,v,t,y,C){try{g=null!=g?g:!0;l=null!=l?l:!0;u=null!=u?u:this.graph;p=null!=p?p:0;var H=k?null:u.background;H==mxConstants.NONE&&(H=null);null==H&&(H=f);null==H&&0==k&&(H=t?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(u.getSvg(null,null,p,x,null,l,null,null,null,n,null,t,y,C),mxUtils.bind(this,function(c){try{var f=new Image;f.onload=mxUtils.bind(this,function(){try{var l=
3203function(){mxClient.IS_SF?window.setTimeout(function(){x.drawImage(f,0,0);b(k,c)},0):(x.drawImage(f,0,0),b(k,c))},k=document.createElement("canvas"),n=parseInt(c.getAttribute("width")),q=parseInt(c.getAttribute("height"));m=null!=m?m:1;null!=d&&(m=g?Math.min(1,Math.min(3*d/(4*q),d/n)):d/n);m=this.getMaxCanvasScale(n,q,m);n=Math.ceil(m*n);q=Math.ceil(m*q);k.setAttribute("width",n);k.setAttribute("height",q);var x=k.getContext("2d");null!=H&&(x.beginPath(),x.rect(0,0,n,q),x.fillStyle=H,x.fill());1!=
3204m&&x.scale(m,m);if(v){var t=u.view,A=t.scale;t.scale=1;var y=btoa(unescape(encodeURIComponent(t.createSvgGrid(t.gridColor))));t.scale=A;var y="data:image/svg+xml;base64,"+y,C=u.gridSize*t.gridSteps*m,B=u.getGraphBounds(),J=t.translate.x*A,N=t.translate.y*A,G=J+(B.x-J)/A-p,F=N+(B.y-N)/A-p,D=new Image;D.onload=function(){try{for(var b=-Math.round(C-mxUtils.mod((J-G)*m,C)),d=-Math.round(C-mxUtils.mod((N-F)*m,C));b<n;b+=C)for(var c=d;c<q;c+=C)x.drawImage(D,b/m,c/m);l()}catch(X){null!=e&&e(X)}};D.onerror=
3205function(b){null!=e&&e(b)};D.src=y}else l()}catch(Ba){null!=e&&e(Ba)}});f.onerror=function(b){null!=e&&e(b)};n&&this.graph.addSvgShadow(c);this.graph.mathEnabled&&this.addMathCss(c);var l=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(c,this.resolvedFontCss),f.src=Editor.createSvgDataUri(mxUtils.getXml(c))}catch(ga){null!=e&&e(ga)}});this.embedExtFonts(mxUtils.bind(this,function(b){try{null!=b&&this.addFontCss(c,b),this.loadFonts(l)}catch(ja){null!=e&&e(ja)}}))}catch(ga){null!=
3206e&&e(ga)}}),c,q)}catch(ma){null!=e&&e(ma)}};Editor.crcTable=[];for(var g=0;256>g;g++)for(var p=g,t=0;8>t;t++)p=1==(p&1)?3988292384^p>>>1:p>>>1,Editor.crcTable[g]=p;Editor.updateCRC=function(b,d,c,f){for(var e=0;e<f;e++)b=Editor.crcTable[(b^d.charCodeAt(c+e))&255]^b>>>8;return b};Editor.crc32=function(b){for(var d=-1,c=0;c<b.length;c++)d=d>>>8^Editor.crcTable[(d^b.charCodeAt(c))&255];return(d^-1)>>>0};Editor.writeGraphModelToPng=function(b,d,c,f,e){function g(b,d){var c=k;k+=d;return b.substring(c,
3207k)}function l(b){b=g(b,4);return b.charCodeAt(3)+(b.charCodeAt(2)<<8)+(b.charCodeAt(1)<<16)+(b.charCodeAt(0)<<24)}function m(b){return String.fromCharCode(b>>24&255,b>>16&255,b>>8&255,b&255)}b=b.substring(b.indexOf(",")+1);b=window.atob?atob(b):Base64.decode(b,!0);var k=0;if(g(b,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(g(b,4),"IHDR"!=g(b,4))null!=e&&e();else{g(b,17);e=b.substring(0,k);do{var n=l(b);if("IDAT"==g(b,4)){e=b.substring(0,k-8);"pHYs"==d&&
3208"dpi"==c?(c=Math.round(f/.0254),c=m(c)+m(c)+String.fromCharCode(1)):c=c+String.fromCharCode(0)+("zTXt"==d?String.fromCharCode(0):"")+f;f=4294967295;f=Editor.updateCRC(f,d,0,4);f=Editor.updateCRC(f,c,0,c.length);e+=m(c.length)+d+c+m(f^4294967295);e+=b.substring(k-8,b.length);break}e+=b.substring(k-8,k-4+n);g(b,n);g(b,4)}while(n);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";
3209var d=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(b,c){d.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var f=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){f.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(b,d){var c=null;null!=b.editor.graph.getModel().getParent(d)?c=d.getId():null!=b.currentPage&&
3210(c=b.currentPage.getId());return c});if(null!=window.StyleFormatPanel){var l=Format.prototype.init;Format.prototype.init=function(){l.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var q=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?q.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var b=this.editorUi.getCurrentFile();
3211return"1"==urlParams.embed||null!=b&&b.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(b){return!1};var m=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(b){b=m.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var d=this.editorUi,c=d.editor.graph,f=this.createOption(mxResources.get("shadow"),function(){return c.shadowVisible},function(b){var f=new ChangePageSetup(d);f.ignoreColor=!0;f.ignoreImage=
3212!0;f.shadowVisible=b;c.model.execute(f)},{install:function(b){this.listener=function(){b(c.shadowVisible)};d.addListener("shadowVisibleChanged",this.listener)},destroy:function(){d.removeListener(this.listener)}});Editor.enableShadowOption||(f.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(f,60));b.appendChild(f)}return b};var n=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(b){b=n.apply(this,arguments);var d=this.editorUi,
3213c=d.editor.graph;if(c.isEnabled()){var f=d.getCurrentFile();if(null!=f&&f.isAutosaveOptional()){var e=this.createOption(mxResources.get("autosave"),function(){return d.editor.autosave},function(b){d.editor.setAutosave(b);d.editor.autosave&&f.isModified()&&f.fileChanged()},{install:function(b){this.listener=function(){b(d.editor.autosave)};d.editor.addListener("autosaveChanged",this.listener)},destroy:function(){d.editor.removeListener(this.listener)}});b.appendChild(e)}}if(this.isMathOptionVisible()&&
3214c.isEnabled()&&"undefined"!==typeof MathJax){e=this.createOption(mxResources.get("mathematicalTypesetting"),function(){return c.mathEnabled},function(b){d.actions.get("mathematicalTypesetting").funct()},{install:function(b){this.listener=function(){b(c.mathEnabled)};d.addListener("mathEnabledChanged",this.listener)},destroy:function(){d.removeListener(this.listener)}});e.style.paddingTop="5px";b.appendChild(e);var g=d.menus.createHelpLink("https://www.diagrams.net/doc/faq/math-typesetting");g.style.position=
3215"relative";g.style.marginLeft="6px";g.style.top="2px";e.appendChild(g)}return b};mxCellRenderer.prototype.defaultVertexShape.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.link.prototype.customProperties=[{name:"width",dispName:"Width",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.flexArrow.prototype.customProperties=
3216[{name:"width",dispName:"Width",type:"float",min:0,defVal:10},{name:"startWidth",dispName:"Start Width",type:"float",min:0,defVal:20},{name:"endWidth",dispName:"End Width",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.process.prototype.customProperties=[{name:"size",dispName:"Indent",type:"float",min:0,max:.5,defVal:.1}];mxCellRenderer.defaultShapes.rhombus.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,max:50,defVal:mxConstants.LINE_ARCSIZE},{name:"double",
3217dispName:"Double",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.partialRectangle.prototype.customProperties=[{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left Line",type:"bool",defVal:!0},{name:"right",dispName:"Right Line",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.parallelogram.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},
3218{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.hexagon.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.25}];mxCellRenderer.defaultShapes.triangle.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE}];mxCellRenderer.defaultShapes.document.prototype.customProperties=
3219[{name:"size",dispName:"Size",type:"float",defVal:.3,min:0,max:1}];mxCellRenderer.defaultShapes.internalStorage.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"dx",dispName:"Left Line",type:"float",min:0,defVal:20},{name:"dy",dispName:"Top Line",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.cube.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:20},{name:"darkOpacity",dispName:"Dark Opacity",
3220type:"float",min:-1,max:1,defVal:0},{name:"darkOpacity2",dispName:"Dark Opacity 2",type:"float",min:-1,max:1,defVal:0}];mxCellRenderer.defaultShapes.step.prototype.customProperties=[{name:"size",dispName:"Notch Size",type:"float",min:0,defVal:20},{name:"fixedSize",dispName:"Fixed Size",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.trapezoid.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",
3221type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.tape.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.4}];mxCellRenderer.defaultShapes.note.prototype.customProperties=[{name:"size",dispName:"Fold Size",type:"float",min:0,defVal:30},{name:"darkOpacity",dispName:"Dark Opacity",type:"float",min:-1,max:1,defVal:0}];mxCellRenderer.defaultShapes.card.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},
3222{name:"size",dispName:"Cutoff Size",type:"float",min:0,defVal:30}];mxCellRenderer.defaultShapes.callout.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"base",dispName:"Callout Width",type:"float",min:0,defVal:20},{name:"size",dispName:"Callout Length",type:"float",min:0,defVal:30},{name:"position",dispName:"Callout Position",type:"float",min:0,max:1,defVal:.5},{name:"position2",dispName:"Callout Tip Position",type:"float",
3223min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.folder.prototype.customProperties=[{name:"tabWidth",dispName:"Tab Width",type:"float"},{name:"tabHeight",dispName:"Tab Height",type:"float"},{name:"tabPosition",dispName:"Tap Position",type:"enum",enumList:[{val:"left",dispName:"Left"},{val:"right",dispName:"Right"}]}];mxCellRenderer.defaultShapes.swimlane.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},{name:"startSize",dispName:"Header Size",type:"float"},
3224{name:"horizontal",dispName:"Horizontal",type:"bool",defVal:!0},{name:"separatorColor",dispName:"Separator Color",type:"color",defVal:null}];mxCellRenderer.defaultShapes.table.prototype.customProperties=[{name:"rowLines",dispName:"Row Lines",type:"bool",defVal:!0},{name:"columnLines",dispName:"Column Lines",type:"bool",defVal:!0},{name:"fixedRows",dispName:"Fixed Rows",type:"bool",defVal:!1},{name:"resizeLast",dispName:"Resize Last Column",type:"bool",defVal:!1},{name:"resizeLastRow",dispName:"Resize Last Row",
3225type:"bool",defVal:!1}].concat(mxCellRenderer.defaultShapes.swimlane.prototype.customProperties);mxCellRenderer.defaultShapes.doubleEllipse.prototype.customProperties=[{name:"margin",dispName:"Indent",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.ext.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},{name:"double",dispName:"Double",type:"bool",defVal:!1},{name:"margin",dispName:"Indent",type:"float",min:0,defVal:0}];mxCellRenderer.defaultShapes.curlyBracket.prototype.customProperties=
3226[{name:"rounded",dispName:"Rounded",type:"bool",defVal:!0},{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.image.prototype.customProperties=[{name:"imageAspect",dispName:"Fixed Image Aspect",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.label.prototype.customProperties=[{name:"imageAspect",dispName:"Fixed Image Aspect",type:"bool",defVal:!0},{name:"imageAlign",dispName:"Image Align",type:"enum",enumList:[{val:"left",dispName:"Left"},{val:"center",
3227dispName:"Center"},{val:"right",dispName:"Right"}],defVal:"left"},{name:"imageVerticalAlign",dispName:"Image Vertical Align",type:"enum",enumList:[{val:"top",dispName:"Top"},{val:"middle",dispName:"Middle"},{val:"bottom",dispName:"Bottom"}],defVal:"middle"},{name:"imageWidth",dispName:"Image Width",type:"float",min:0,defVal:24},{name:"imageHeight",dispName:"Image Height",type:"float",min:0,defVal:24},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:12},{name:"absoluteArcSize",dispName:"Abs. Arc Size",
3228type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.dataStorage.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.1}];mxCellRenderer.defaultShapes.manualInput.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:30},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.loopLimit.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:20},{name:"arcSize",dispName:"Arc Size",
3229type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.offPageConnector.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:38},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.display.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.25}];mxCellRenderer.defaultShapes.singleArrow.prototype.customProperties=[{name:"arrowWidth",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.3},
3230{name:"arrowSize",dispName:"Arrowhead Length",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.doubleArrow.prototype.customProperties=[{name:"arrowWidth",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.3},{name:"arrowSize",dispName:"Arrowhead Length",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.cross.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.corner.prototype.customProperties=
3231[{name:"dx",dispName:"Width1",type:"float",min:0,defVal:20},{name:"dy",dispName:"Width2",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.tee.prototype.customProperties=[{name:"dx",dispName:"Width1",type:"float",min:0,defVal:20},{name:"dy",dispName:"Width2",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.umlLifeline.prototype.customProperties=[{name:"participant",dispName:"Participant",type:"enum",defVal:"none",enumList:[{val:"none",dispName:"Default"},{val:"umlActor",dispName:"Actor"},
3232{val:"umlBoundary",dispName:"Boundary"},{val:"umlEntity",dispName:"Entity"},{val:"umlControl",dispName:"Control"}]},{name:"size",dispName:"Height",type:"float",defVal:40,min:0}];mxCellRenderer.defaultShapes.umlFrame.prototype.customProperties=[{name:"width",dispName:"Title Width",type:"float",defVal:60,min:0},{name:"height",dispName:"Title Height",type:"float",defVal:30,min:0}];StyleFormatPanel.prototype.defaultColorSchemes=[[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",font:"#333333"},{fill:"#dae8fc",
3233stroke:"#6c8ebf"},{fill:"#d5e8d4",stroke:"#82b366"},{fill:"#ffe6cc",stroke:"#d79b00"},{fill:"#fff2cc",stroke:"#d6b656"},{fill:"#f8cecc",stroke:"#b85450"},{fill:"#e1d5e7",stroke:"#9673a6"}],[{fill:"",stroke:""},{fill:"#60a917",stroke:"#2D7600",font:"#ffffff"},{fill:"#008a00",stroke:"#005700",font:"#ffffff"},{fill:"#1ba1e2",stroke:"#006EAF",font:"#ffffff"},{fill:"#0050ef",stroke:"#001DBC",font:"#ffffff"},{fill:"#6a00ff",stroke:"#3700CC",font:"#ffffff"},{fill:"#d80073",stroke:"#A50040",font:"#ffffff"},
3234{fill:"#a20025",stroke:"#6F0000",font:"#ffffff"}],[{fill:"#e51400",stroke:"#B20000",font:"#ffffff"},{fill:"#fa6800",stroke:"#C73500",font:"#000000"},{fill:"#f0a30a",stroke:"#BD7000",font:"#000000"},{fill:"#e3c800",stroke:"#B09500",font:"#000000"},{fill:"#6d8764",stroke:"#3A5431",font:"#ffffff"},{fill:"#647687",stroke:"#314354",font:"#ffffff"},{fill:"#76608a",stroke:"#432D57",font:"#ffffff"},{fill:"#a0522d",stroke:"#6D1F00",font:"#ffffff"}],[{fill:"",stroke:""},{fill:mxConstants.NONE,stroke:""},{fill:"#fad7ac",
3235stroke:"#b46504"},{fill:"#fad9d5",stroke:"#ae4132"},{fill:"#b0e3e6",stroke:"#0e8088"},{fill:"#b1ddf0",stroke:"#10739e"},{fill:"#d0cee2",stroke:"#56517e"},{fill:"#bac8d3",stroke:"#23445d"}],[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",
3236gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[{fill:"",stroke:""},{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"},{fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]];StyleFormatPanel.prototype.customColorSchemes=null;StyleFormatPanel.prototype.findCommonProperties=function(b,d,c){if(null!=d){var f=function(b){if(null!=b)if(c)for(var f=
32370;f<b.length;f++)d[b[f].name]=b[f];else for(var e in d){for(var g=!1,f=0;f<b.length;f++)if(b[f].name==e&&b[f].type==d[e].type){g=!0;break}g||delete d[e]}},e=this.editorUi.editor.graph.view.getState(b);null!=e&&null!=e.shape&&(e.shape.commonCustomPropAdded||(e.shape.commonCustomPropAdded=!0,e.shape.customProperties=e.shape.customProperties||[],e.cell.vertex?Array.prototype.push.apply(e.shape.customProperties,Editor.commonVertexProperties):Array.prototype.push.apply(e.shape.customProperties,Editor.commonEdgeProperties)),
3238f(e.shape.customProperties));b=b.getAttribute("customProperties");if(null!=b)try{f(JSON.parse(b))}catch(W){}}};var u=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var b=this.format.getSelectionState();"image"!=b.style.shape&&!b.containsLabel&&0<b.cells.length&&this.container.appendChild(this.addStyles(this.createPanel()));u.apply(this,arguments);if(Editor.enableCustomProperties){for(var d={},c=b.vertices,f=b.edges,e=0;e<c.length;e++)this.findCommonProperties(c[e],d,0==
3239e);for(e=0;e<f.length;e++)this.findCommonProperties(f[e],d,0==c.length&&0==e);null!=Object.getOwnPropertyNames&&0<Object.getOwnPropertyNames(d).length&&this.container.appendChild(this.addProperties(this.createPanel(),d,b))}};var v=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(b){var d=this.format.getSelectionState(),c=mxUtils.button(mxResources.get("copyStyle"),mxUtils.bind(this,function(b){this.editorUi.actions.get("copyStyle").funct()}));c.setAttribute("title",
3240mxResources.get("copyStyle")+" ("+this.editorUi.actions.get("copyStyle").shortcut+")");c.style.marginBottom="2px";c.style.width="104px";c.style.marginRight="2px";b.appendChild(c);0<d.cells.length?(c=mxUtils.button(mxResources.get("pasteStyle"),mxUtils.bind(this,function(b){this.editorUi.actions.get("pasteStyle").funct()})),c.setAttribute("title",mxResources.get("pasteStyle")+" ("+this.editorUi.actions.get("pasteStyle").shortcut+")"),c.style.marginBottom="2px",c.style.width="104px",b.appendChild(c)):
3241c.style.width="210px";mxUtils.br(b);return v.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(b,d,c){function f(b,d,c,f){u.getModel().beginUpdate();try{var e=[],g=[];if(null!=c.index){for(var l=[],m=c.parentRow.nextSibling;m&&m.getAttribute("data-pName")==b;)l.push(m.getAttribute("data-pValue")),m=m.nextSibling;c.index<l.length?null!=f?l.splice(f,1):l[c.index]=d:l.push(d);null!=c.size&&l.length>c.size&&(l=l.slice(0,c.size));d=l.join(",");
3242null!=c.countProperty&&(u.setCellStyles(c.countProperty,l.length,u.getSelectionCells()),e.push(c.countProperty),g.push(l.length))}u.setCellStyles(b,d,u.getSelectionCells());e.push(b);g.push(d);if(null!=c.dependentProps)for(b=0;b<c.dependentProps.length;b++){var k=c.dependentPropsDefVal[b],n=c.dependentPropsVals[b];if(n.length>d)n=n.slice(0,d);else for(var v=n.length;v<d;v++)n.push(k);n=n.join(",");u.setCellStyles(c.dependentProps[b],n,u.getSelectionCells());e.push(c.dependentProps[b]);g.push(n)}if("function"==
3243typeof c.onChange)c.onChange(u,d);q.editorUi.fireEvent(new mxEventObject("styleChanged","keys",e,"values",g,"cells",u.getSelectionCells()))}finally{u.getModel().endUpdate()}}function e(d,c,f){var e=mxUtils.getOffset(b,!0),g=mxUtils.getOffset(d,!0);c.style.position="absolute";c.style.left=g.x-e.x+"px";c.style.top=g.y-e.y+"px";c.style.width=d.offsetWidth+"px";c.style.height=d.offsetHeight-(f?4:0)+"px";c.style.zIndex=5}function g(b,d,c){var e=document.createElement("div");e.style.width="32px";e.style.height=
3244"4px";e.style.margin="2px";e.style.border="1px solid black";e.style.background=d&&"none"!=d?d:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(q,function(g){this.editorUi.pickColor(d,function(d){e.style.background="none"==d?"url('"+Dialog.prototype.noColorImage+"')":d;f(b,d,c)});mxEvent.consume(g)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(e);return btn}function l(b,d,c,e,g,l,m){null!=d&&(d=d.split(","),p.push({name:b,
3245values:d,type:c,defVal:e,countProperty:g,parentRow:l,isDeletable:!0,flipBkg:m}));btn=mxUtils.button("+",mxUtils.bind(q,function(d){for(var k=l,q=0;null!=k.nextSibling;)if(k.nextSibling.getAttribute("data-pName")==b)k=k.nextSibling,q++;else break;var u={type:c,parentRow:l,index:q,isDeletable:!0,defVal:e,countProperty:g},q=n(b,"",u,0==q%2,m);f(b,e,u);k.parentNode.insertBefore(q,k.nextSibling);mxEvent.consume(d)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}
3246function m(b,d,c,f,e,g,l){if(0<e){var m=Array(e);d=null!=d?d.split(","):[];for(var k=0;k<e;k++)m[k]=null!=d[k]?d[k]:null!=f?f:"";p.push({name:b,values:m,type:c,defVal:f,parentRow:g,flipBkg:l,size:e})}return document.createElement("div")}function k(b,d,c){var e=document.createElement("input");e.type="checkbox";e.checked="1"==d;mxEvent.addListener(e,"change",function(){f(b,e.checked?"1":"0",c)});return e}function n(d,c,n,u,v){var p=n.dispName,x=n.type,t=document.createElement("tr");t.className="gePropRow"+
3247(v?"Dark":"")+(u?"Alt":"")+" gePropNonHeaderRow";t.setAttribute("data-pName",d);t.setAttribute("data-pValue",c);u=!1;null!=n.index&&(t.setAttribute("data-index",n.index),p=(null!=p?p:"")+"["+n.index+"]",u=!0);var y=document.createElement("td");y.className="gePropRowCell";p=mxResources.get(p,null,p);mxUtils.write(y,p);y.setAttribute("title",p);u&&(y.style.textAlign="right");t.appendChild(y);y=document.createElement("td");y.className="gePropRowCell";if("color"==x)y.appendChild(g(d,c,n));else if("bool"==
3248x||"boolean"==x)y.appendChild(k(d,c,n));else if("enum"==x){var C=n.enumList;for(v=0;v<C.length;v++)if(p=C[v],p.val==c){mxUtils.write(y,mxResources.get(p.dispName,null,p.dispName));break}mxEvent.addListener(y,"click",mxUtils.bind(q,function(){var g=document.createElement("select");e(y,g);for(var l=0;l<C.length;l++){var m=C[l],k=document.createElement("option");k.value=mxUtils.htmlEntities(m.val);mxUtils.write(k,mxResources.get(m.dispName,null,m.dispName));g.appendChild(k)}g.value=c;b.appendChild(g);
3249mxEvent.addListener(g,"change",function(){var b=mxUtils.htmlEntities(g.value);f(d,b,n)});g.focus();mxEvent.addListener(g,"blur",function(){b.removeChild(g)})}))}else"dynamicArr"==x?y.appendChild(l(d,c,n.subType,n.subDefVal,n.countProperty,t,v)):"staticArr"==x?y.appendChild(m(d,c,n.subType,n.subDefVal,n.size,t,v)):"readOnly"==x?(v=document.createElement("input"),v.setAttribute("readonly",""),v.value=c,v.style.width="96px",v.style.borderWidth="0px",y.appendChild(v)):(y.innerHTML=c,mxEvent.addListener(y,
3250"click",mxUtils.bind(q,function(){function g(){var b=l.value,b=0==b.length&&"string"!=x?0:b;n.allowAuto&&(null!=b.trim&&"auto"==b.trim().toLowerCase()?(b="auto",x="string"):(b=parseFloat(b),b=isNaN(b)?0:b));null!=n.min&&b<n.min?b=n.min:null!=n.max&&b>n.max&&(b=n.max);b=mxUtils.htmlEntities(("int"==x?parseInt(b):b)+"");f(d,b,n)}var l=document.createElement("input");e(y,l,!0);l.value=c;l.className="gePropEditor";"int"!=x&&"float"!=x||n.allowAuto||(l.type="number",l.step="int"==x?"1":"any",null!=n.min&&
3251(l.min=parseFloat(n.min)),null!=n.max&&(l.max=parseFloat(n.max)));b.appendChild(l);mxEvent.addListener(l,"keypress",function(b){13==b.keyCode&&g()});l.focus();mxEvent.addListener(l,"blur",function(){g()})})));n.isDeletable&&(v=mxUtils.button("-",mxUtils.bind(q,function(b){f(d,"",n,n.index);mxEvent.consume(b)})),v.style.height="16px",v.style.width="25px",v.style["float"]="right",v.className="geColorBtn",y.appendChild(v));t.appendChild(y);return t}var q=this,u=this.editorUi.editor.graph,p=[];b.style.position=
3252"relative";b.style.padding="0";var x=document.createElement("table");x.className="geProperties";x.style.whiteSpace="nowrap";x.style.width="100%";var v=document.createElement("tr");v.className="gePropHeader";var t=document.createElement("th");t.className="gePropHeaderCell";var y=document.createElement("img");y.src=Sidebar.prototype.expandedImage;y.style.verticalAlign="middle";t.appendChild(y);mxUtils.write(t,mxResources.get("property"));v.style.cursor="pointer";var C=function(){var d=x.querySelectorAll(".gePropNonHeaderRow"),
3253c;if(q.editorUi.propertiesCollapsed){y.src=Sidebar.prototype.collapsedImage;c="none";for(var f=b.childNodes.length-1;0<=f;f--)try{var e=b.childNodes[f],g=e.nodeName.toUpperCase();"INPUT"!=g&&"SELECT"!=g||b.removeChild(e)}catch(qa){}}else y.src=Sidebar.prototype.expandedImage,c="";for(f=0;f<d.length;f++)d[f].style.display=c};mxEvent.addListener(v,"click",function(){q.editorUi.propertiesCollapsed=!q.editorUi.propertiesCollapsed;C()});v.appendChild(t);t=document.createElement("th");t.className="gePropHeaderCell";
3254t.innerHTML=mxResources.get("value");v.appendChild(t);x.appendChild(v);var H=!1,A=!1,v=null;1==c.vertices.length&&0==c.edges.length?v=c.vertices[0].id:0==c.vertices.length&&1==c.edges.length&&(v=c.edges[0].id);null!=v&&x.appendChild(n("id",mxUtils.htmlEntities(v),{dispName:"ID",type:"readOnly"},!0,!1));for(var B in d)if(v=d[B],"function"!=typeof v.isVisible||v.isVisible(c,this)){var N=null!=c.style[B]?mxUtils.htmlEntities(c.style[B]+""):null!=v.getDefaultValue?v.getDefaultValue(c,this):v.defVal;if("separator"==
3255v.type)A=!A;else{if("staticArr"==v.type)v.size=parseInt(c.style[v.sizeProperty]||d[v.sizeProperty].defVal)||0;else if(null!=v.dependentProps){for(var J=v.dependentProps,F=[],D=[],t=0;t<J.length;t++){var O=c.style[J[t]];D.push(d[J[t]].subDefVal);F.push(null!=O?O.split(","):[])}v.dependentPropsDefVal=D;v.dependentPropsVals=F}x.appendChild(n(B,N,v,H,A));H=!H}}for(t=0;t<p.length;t++)for(v=p[t],d=v.parentRow,c=0;c<v.values.length;c++)B=n(v.name,v.values[c],{type:v.type,parentRow:v.parentRow,isDeletable:v.isDeletable,
3256index:c,defVal:v.defVal,countProperty:v.countProperty,size:v.size},0==c%2,v.flipBkg),d.parentNode.insertBefore(B,d.nextSibling),d=B;b.appendChild(x);C();return b};StyleFormatPanel.prototype.addStyles=function(b){function d(b){mxEvent.addListener(b,"mouseenter",function(){b.style.opacity="1"});mxEvent.addListener(b,"mouseleave",function(){b.style.opacity="0.5"})}var c=this.editorUi.editor.graph,f=document.createElement("div");f.style.whiteSpace="nowrap";f.style.paddingLeft="24px";f.style.paddingRight=
3257"20px";b.style.paddingLeft="16px";b.style.paddingBottom="6px";b.style.position="relative";b.appendChild(f);var e="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" "),g=document.createElement("div");g.style.whiteSpace="nowrap";g.style.position="relative";g.style.textAlign="center";g.style.width="210px";for(var l=[],m=0;m<this.defaultColorSchemes.length;m++){var k=document.createElement("div");
3258k.style.display="inline-block";k.style.width="6px";k.style.height="6px";k.style.marginLeft="4px";k.style.marginRight="3px";k.style.borderRadius="3px";k.style.cursor="pointer";k.style.background="transparent";k.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(b){mxEvent.addListener(k,"click",mxUtils.bind(this,function(){n(b)}))})(m);l.push(k);g.appendChild(k)}var n=mxUtils.bind(this,function(b){null!=l[b]&&(null!=this.format.currentScheme&&null!=l[this.format.currentScheme]&&(l[this.format.currentScheme].style.background=
3259"transparent"),this.format.currentScheme=b,q(this.defaultColorSchemes[this.format.currentScheme]),l[this.format.currentScheme].style.background="#84d7ff")}),q=mxUtils.bind(this,function(b){var d=mxUtils.bind(this,function(b){var d=mxUtils.button("",mxUtils.bind(this,function(d){c.getModel().beginUpdate();try{for(var f=this.format.getSelectionState().cells,g=0;g<f.length;g++){for(var l=c.getModel().getStyle(f[g]),m=0;m<e.length;m++)l=mxUtils.removeStylename(l,e[m]);var k=c.getModel().isVertex(f[g])?
3260c.defaultVertexStyle:c.defaultEdgeStyle;null!=b?(mxEvent.isShiftDown(d)||(l=""==b.fill?mxUtils.setStyle(l,mxConstants.STYLE_FILLCOLOR,null):mxUtils.setStyle(l,mxConstants.STYLE_FILLCOLOR,b.fill||mxUtils.getValue(k,mxConstants.STYLE_FILLCOLOR,null)),l=mxUtils.setStyle(l,mxConstants.STYLE_GRADIENTCOLOR,b.gradient||mxUtils.getValue(k,mxConstants.STYLE_GRADIENTCOLOR,null)),mxEvent.isControlDown(d)||mxClient.IS_MAC&&mxEvent.isMetaDown(d)||!c.getModel().isVertex(f[g])||(l=mxUtils.setStyle(l,mxConstants.STYLE_FONTCOLOR,
3261b.font||mxUtils.getValue(k,mxConstants.STYLE_FONTCOLOR,null)))),mxEvent.isAltDown(d)||(l=""==b.stroke?mxUtils.setStyle(l,mxConstants.STYLE_STROKECOLOR,null):mxUtils.setStyle(l,mxConstants.STYLE_STROKECOLOR,b.stroke||mxUtils.getValue(k,mxConstants.STYLE_STROKECOLOR,null)))):(l=mxUtils.setStyle(l,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(k,mxConstants.STYLE_FILLCOLOR,"#ffffff")),l=mxUtils.setStyle(l,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(k,mxConstants.STYLE_STROKECOLOR,"#000000")),l=mxUtils.setStyle(l,
3262mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(k,mxConstants.STYLE_GRADIENTCOLOR,null)),c.getModel().isVertex(f[g])&&(l=mxUtils.setStyle(l,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(k,mxConstants.STYLE_FONTCOLOR,null))));c.getModel().setStyle(f[g],l)}}finally{c.getModel().endUpdate()}}));d.className="geStyleButton";d.style.width="36px";d.style.height=10>=this.defaultColorSchemes.length?"24px":"30px";d.style.margin="0px 6px 6px 0px";if(null!=b){var g="1"==urlParams.sketch?"2px solid":"1px solid";
3263null!=b.gradient?mxClient.IS_IE&&10>document.documentMode?d.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+b.fill+"', EndColorStr='"+b.gradient+"', GradientType=0)":d.style.backgroundImage="linear-gradient("+b.fill+" 0px,"+b.gradient+" 100%)":b.fill==mxConstants.NONE?d.style.background="url('"+Dialog.prototype.noColorImage+"')":d.style.backgroundColor=""==b.fill?mxUtils.getValue(c.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?Editor.darkColor:"#ffffff"):
3264b.fill||mxUtils.getValue(c.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?Editor.darkColor:"#ffffff");d.style.border=b.stroke==mxConstants.NONE?g+" transparent":""==b.stroke?g+" "+mxUtils.getValue(c.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":Editor.darkColor):g+" "+(b.stroke||mxUtils.getValue(c.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":Editor.darkColor));null!=b.title&&d.setAttribute("title",b.title)}else{var g=
3265mxUtils.getValue(c.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),l=mxUtils.getValue(c.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");d.style.backgroundColor=g;d.style.border="1px solid "+l}d.style.borderRadius="0";f.appendChild(d)});f.innerHTML="";for(var g=0;g<b.length;g++)0<g&&0==mxUtils.mod(g,4)&&mxUtils.br(f),d(b[g])});null==this.format.currentScheme?n(Editor.isDarkMode()?1:"1"==urlParams.sketch?5:0):n(this.format.currentScheme);var m=10>=this.defaultColorSchemes.length?
326628:8,u=document.createElement("div");u.style.cssText="position:absolute;left:10px;top:8px;bottom:"+m+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);";mxEvent.addListener(u,
3267"click",mxUtils.bind(this,function(){n(mxUtils.mod(this.format.currentScheme-1,this.defaultColorSchemes.length))}));var v=document.createElement("div");v.style.cssText="position:absolute;left:202px;top:8px;bottom:"+m+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";
32681<this.defaultColorSchemes.length&&(b.appendChild(u),b.appendChild(v));mxEvent.addListener(v,"click",mxUtils.bind(this,function(){n(mxUtils.mod(this.format.currentScheme+1,this.defaultColorSchemes.length))}));d(u);d(v);q(this.defaultColorSchemes[this.format.currentScheme]);10>=this.defaultColorSchemes.length&&b.appendChild(g);return b};StyleFormatPanel.prototype.addEditOps=function(b){var d=this.format.getSelectionState(),c=null;1==d.cells.length&&(c=mxUtils.button(mxResources.get("editStyle"),mxUtils.bind(this,
3269function(b){this.editorUi.actions.get("editStyle").funct()})),c.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),c.style.width="210px",c.style.marginBottom="2px",b.appendChild(c));var f=this.editorUi.editor.graph,f=1==d.cells.length?f.view.getState(d.cells[0]):null;null!=f&&null!=f.shape&&null!=f.shape.stencil?(d=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this,function(b){this.editorUi.actions.get("editShape").funct()})),d.setAttribute("title",
3270mxResources.get("editShape")),d.style.marginBottom="2px",null==c?d.style.width="210px":(c.style.width="104px",d.style.width="104px",d.style.marginLeft="2px"),b.appendChild(d)):d.image&&0<d.cells.length&&(d=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,function(b){this.editorUi.actions.get("image").funct()})),d.setAttribute("title",mxResources.get("editImage")),d.style.marginBottom="2px",null==c?d.style.width="210px":(c.style.width="104px",d.style.width="104px",d.style.marginLeft="2px"),
3271b.appendChild(d));return b}}Graph.customFontElements={};Graph.recentCustomFonts={};Graph.isGoogleFontUrl=function(b){return b.substring(0,Editor.GOOGLE_FONTS.length)==Editor.GOOGLE_FONTS};Graph.isCssFontUrl=function(b){return Graph.isGoogleFontUrl(b)};Graph.createFontElement=function(b,d){var c;Graph.isCssFontUrl(d)?(c=document.createElement("link"),c.setAttribute("rel","stylesheet"),c.setAttribute("type","text/css"),c.setAttribute("charset","UTF-8"),c.setAttribute("href",d)):(c=document.createElement("style"),
3272mxUtils.write(c,'@font-face {\nfont-family: "'+b+'";\nsrc: url("'+d+'");\n}'));return c};Graph.addFont=function(b,d,c){if(null!=b&&0<b.length&&null!=d&&0<d.length){var f=b.toLowerCase();if("helvetica"!=f&&"arial"!=b&&"sans-serif"!=f){var e=Graph.customFontElements[f];null!=e&&e.url!=d&&(e.elt.parentNode.removeChild(e.elt),e=null);null==e?(e=d,"http:"==d.substring(0,5)&&(e=PROXY_URL+"?url="+encodeURIComponent(d)),e={name:b,url:d,elt:Graph.createFontElement(b,e)},Graph.customFontElements[f]=e,Graph.recentCustomFonts[f]=
3273e,d=document.getElementsByTagName("head")[0],null!=c&&("link"==e.elt.nodeName.toLowerCase()?(e.elt.onload=c,e.elt.onerror=c):c()),null!=d&&d.appendChild(e.elt)):null!=c&&c()}else null!=c&&c()}else null!=c&&c();return b};Graph.getFontUrl=function(b,d){var c=Graph.customFontElements[b.toLowerCase()];null!=c&&(d=c.url);return d};Graph.processFontAttributes=function(b){b=b.getElementsByTagName("*");for(var d=0;d<b.length;d++){var c=b[d].getAttribute("data-font-src");if(null!=c){var f="FONT"==b[d].nodeName?
3274b[d].getAttribute("face"):b[d].style.fontFamily;null!=f&&Graph.addFont(f,c)}}};Graph.processFontStyle=function(b){if(null!=b){var d=mxUtils.getValue(b,"fontSource",null);if(null!=d){var c=mxUtils.getValue(b,mxConstants.STYLE_FONTFAMILY,null);null!=c&&Graph.addFont(c,decodeURIComponent(d))}}return b};Graph.prototype.defaultThemeName="default-style2";Graph.prototype.lastPasteXml=null;Graph.prototype.pasteCounter=0;Graph.prototype.defaultScrollbars="0"!=urlParams.sb;Graph.prototype.defaultPageVisible=
3275"0"!=urlParams.pv;Graph.prototype.shadowId="dropShadow";Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity="0.4";Graph.prototype.svgShadowBlur="1.7";Graph.prototype.svgShadowSize="3";Graph.prototype.edgeMode="move"!=urlParams.edge;Graph.prototype.hiddenTags=null;Graph.prototype.defaultMathEnabled=!1;var y=Graph.prototype.init;Graph.prototype.init=function(){function b(b){d=b}y.apply(this,arguments);this.hiddenTags=[];window.mxFreehand&&(this.freehand=new mxFreehand(this));var d=
3276null;mxEvent.addListener(this.container,"mouseenter",b);mxEvent.addListener(this.container,"mousemove",b);mxEvent.addListener(this.container,"mouseleave",function(b){d=null});this.isMouseInsertPoint=function(){return null!=d};var c=this.getInsertPoint;this.getInsertPoint=function(){return null!=d?this.getPointForEvent(d):c.apply(this,arguments)};var f=this.layoutManager.getLayout;this.layoutManager.getLayout=function(b){var d=this.graph.getCellStyle(b);if(null!=d&&"rack"==d.childLayout){var c=new mxStackLayout(this.graph,
3277!1);c.gridSize=null!=d.rackUnitSize?parseFloat(d.rackUnitSize):"undefined"!==typeof mxRackContainer?mxRackContainer.unitSize:20;c.marginLeft=d.marginLeft||0;c.marginRight=d.marginRight||0;c.marginTop=d.marginTop||0;c.marginBottom=d.marginBottom||0;c.allowGaps=d.allowGaps||0;c.horizontal="1"==mxUtils.getValue(d,"horizontalRack","0");c.resizeParent=!1;c.fill=!0;return c}return f.apply(this,arguments)};this.updateGlobalUrlVariables()};var x=Graph.prototype.postProcessCellStyle;Graph.prototype.postProcessCellStyle=
3278function(b){this.replaceDefaultColors(b);return Graph.processFontStyle(x.apply(this,arguments))};Graph.prototype.replaceDefaultColors=function(b){if(null!=b){var d=mxUtils.hex2rgba(this.shapeBackgroundColor),c=mxUtils.hex2rgba(this.shapeForegroundColor);this.replaceDefaultColor(b,mxConstants.STYLE_FONTCOLOR,c);this.replaceDefaultColor(b,mxConstants.STYLE_FILLCOLOR,d);this.replaceDefaultColor(b,mxConstants.STYLE_STROKECOLOR,c);this.replaceDefaultColor(b,mxConstants.STYLE_IMAGE_BORDER,c);this.replaceDefaultColor(b,
3279mxConstants.STYLE_IMAGE_BACKGROUND,d);this.replaceDefaultColor(b,mxConstants.STYLE_LABEL_BORDERCOLOR,c);this.replaceDefaultColor(b,mxConstants.STYLE_SWIMLANE_FILLCOLOR,d);this.replaceDefaultColor(b,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,d)}};Graph.prototype.replaceDefaultColor=function(b,d,c){null!=b&&"default"==b[d]&&null!=c&&(b[d]=c)};var D=mxSvgCanvas2D.prototype.updateTextNodes;mxSvgCanvas2D.prototype.updateTextNodes=function(b,d,c,f,e,g,l,m,k,n,q){D.apply(this,arguments);Graph.processFontAttributes(q)};
3280var I=mxText.prototype.redraw;mxText.prototype.redraw=function(){I.apply(this,arguments);null!=this.node&&"DIV"==this.node.nodeName&&Graph.processFontAttributes(this.node)};Graph.prototype.createTagsDialog=function(b,d,c){function f(){for(var b=l.getSelectionCells(),d=[],c=0;c<b.length;c++)l.isCellVisible(b[c])&&d.push(b[c]);l.setSelectionCells(d)}function e(b){l.hiddenTags=b?[]:m.slice();f();l.refresh()}function g(b,c){n.innerHTML="";if(0<b.length){var g=document.createElement("table");g.setAttribute("cellpadding",
3281"2");g.style.boxSizing="border-box";g.style.tableLayout="fixed";g.style.width="100%";var k=document.createElement("tbody");if(null!=b&&0<b.length)for(var q=0;q<b.length;q++)(function(b){var g=0>mxUtils.indexOf(l.hiddenTags,b),n=document.createElement("tr"),q=document.createElement("td");q.style.align="center";q.style.width="16px";var u=document.createElement("img");u.setAttribute("src",g?Editor.visibleImage:Editor.hiddenImage);u.setAttribute("title",mxResources.get(g?"hideIt":"show",[b]));mxUtils.setOpacity(u,
3282g?75:25);u.style.verticalAlign="middle";u.style.cursor="pointer";u.style.width="16px";if(d||Editor.isDarkMode())u.style.filter="invert(100%)";q.appendChild(u);mxEvent.addListener(u,"click",function(d){var c=mxUtils.indexOf(l.hiddenTags,b);mxEvent.isShiftDown(d)?e(0<=mxUtils.indexOf(l.hiddenTags,b)):(0>c?l.hiddenTags.push(b):0<=c&&l.hiddenTags.splice(c,1),f(),l.refresh());mxEvent.consume(d)});n.appendChild(q);q=document.createElement("td");q.style.overflow="hidden";q.style.whiteSpace="nowrap";q.style.textOverflow=
3283"ellipsis";q.style.verticalAlign="middle";q.style.cursor="pointer";q.setAttribute("title",b);a=document.createElement("a");mxUtils.write(a,b);a.style.textOverflow="ellipsis";a.style.position="relative";mxUtils.setOpacity(a,g?100:40);q.appendChild(a);mxEvent.addListener(q,"click",function(d){if(mxEvent.isShiftDown(d)){e(!0);var c=l.getCellsForTags([b],null,null,!0);l.isEnabled()?l.setSelectionCells(c):l.highlightCells(c)}else if(g&&0<l.hiddenTags.length)e(!0);else{var c=m.slice(),k=mxUtils.indexOf(c,
3284b);c.splice(k,1);l.hiddenTags=c;f();l.refresh()}mxEvent.consume(d)});n.appendChild(q);if(l.isEnabled()){q=document.createElement("td");q.style.verticalAlign="middle";q.style.textAlign="center";q.style.width="18px";if(null==c){q.style.align="center";q.style.width="16px";u=document.createElement("img");u.setAttribute("src",Editor.crossImage);u.setAttribute("title",mxResources.get("removeIt",[b]));mxUtils.setOpacity(u,g?75:25);u.style.verticalAlign="middle";u.style.cursor="pointer";u.style.width="16px";
3285if(d||Editor.isDarkMode())u.style.filter="invert(100%)";mxEvent.addListener(u,"click",function(d){var c=mxUtils.indexOf(m,b);0<=c&&m.splice(c,1);l.removeTagsForCells(l.model.getDescendants(l.model.getRoot()),[b]);l.refresh();mxEvent.consume(d)});q.appendChild(u)}else{var v=document.createElement("input");v.setAttribute("type","checkbox");v.style.margin="0px";v.defaultChecked=null!=c&&0<=mxUtils.indexOf(c,b);v.checked=v.defaultChecked;v.style.background="transparent";v.setAttribute("title",mxResources.get(v.defaultChecked?
3286"removeIt":"add",[b]));mxEvent.addListener(v,"change",function(d){v.checked?l.addTagsForCells(l.getSelectionCells(),[b]):l.removeTagsForCells(l.getSelectionCells(),[b]);mxEvent.consume(d)});q.appendChild(v)}n.appendChild(q)}k.appendChild(n)})(b[q]);g.appendChild(k);n.appendChild(g)}}var l=this,m=l.hiddenTags.slice(),k=document.createElement("div");k.style.userSelect="none";k.style.overflow="hidden";k.style.padding="10px";k.style.height="100%";var n=document.createElement("div");n.style.boxSizing=
3287"border-box";n.style.borderRadius="4px";n.style.userSelect="none";n.style.overflow="auto";n.style.position="absolute";n.style.left="10px";n.style.right="10px";n.style.top="10px";n.style.border=l.isEnabled()?"1px solid #808080":"none";n.style.bottom=l.isEnabled()?"48px":"10px";k.appendChild(n);var q=mxUtils.button(mxResources.get("reset"),function(b){l.hiddenTags=[];mxEvent.isShiftDown(b)||(m=l.hiddenTags.slice());f();l.refresh()});q.setAttribute("title",mxResources.get("reset"));q.className="geBtn";
3288q.style.margin="0 4px 0 0";var u=mxUtils.button(mxResources.get("add"),function(){null!=c&&c(m,function(b){m=b;v()})});u.setAttribute("title",mxResources.get("add"));u.className="geBtn";u.style.margin="0";l.addListener(mxEvent.ROOT,function(){m=l.hiddenTags.slice()});var v=mxUtils.bind(this,function(d,c){if(b()){for(var f=l.getAllTags(),e=0;e<f.length;e++)0>mxUtils.indexOf(m,f[e])&&m.push(f[e]);m.sort();l.isSelectionEmpty()?g(m):g(m,l.getCommonTagsForCells(l.getSelectionCells()))}});l.selectionModel.addListener(mxEvent.CHANGE,
3289v);l.model.addListener(mxEvent.CHANGE,v);l.addListener(mxEvent.REFRESH,v);var p=document.createElement("div");p.style.boxSizing="border-box";p.style.whiteSpace="nowrap";p.style.position="absolute";p.style.overflow="hidden";p.style.bottom="0px";p.style.height="42px";p.style.right="10px";p.style.left="10px";l.isEnabled()&&(p.appendChild(q),p.appendChild(u),k.appendChild(p));return{div:k,refresh:v}};Graph.prototype.getCustomFonts=function(){var b=this.extFonts,b=null!=b?b.slice():[],d;for(d in Graph.customFontElements){var c=
3290Graph.customFontElements[d];b.push({name:c.name,url:c.url})}return b};Graph.prototype.setFont=function(b,d){Graph.addFont(b,d);document.execCommand("fontname",!1,b);if(null!=d){var c=this.cellEditor.textarea.getElementsByTagName("font");d=Graph.getFontUrl(b,d);for(var f=0;f<c.length;f++)c[f].getAttribute("face")==b&&c[f].getAttribute("data-font-src")!=d&&c[f].setAttribute("data-font-src",d)}};var B=Graph.prototype.isFastZoomEnabled;Graph.prototype.isFastZoomEnabled=function(){return B.apply(this,
3291arguments)&&(!this.shadowVisible||!mxClient.IS_SF)};Graph.prototype.updateGlobalUrlVariables=function(){this.globalVars=Editor.globalVars;if(null!=urlParams.vars)try{this.globalVars=null!=this.globalVars?mxUtils.clone(this.globalVars):{};var b=JSON.parse(decodeURIComponent(urlParams.vars));if(null!=b)for(var d in b)this.globalVars[d]=b[d]}catch(A){null!=window.console&&console.log("Error in vars URL parameter: "+A)}};Graph.prototype.getExportVariables=function(){return null!=this.globalVars?mxUtils.clone(this.globalVars):
3292{}};var F=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(b){var d=F.apply(this,arguments);null==d&&null!=this.globalVars&&(d=this.globalVars[b]);return d};Graph.prototype.getDefaultStylesheet=function(){if(null==this.defaultStylesheet){var b=this.themes["default-style2"];this.defaultStylesheet=(new mxCodec(b.ownerDocument)).decode(b)}return this.defaultStylesheet};Graph.prototype.isViewer=function(){return urlParams.viewer};var M=Graph.prototype.getSvg;Graph.prototype.getSvg=
3293function(b,d,c,f,e,g,l,m,k,n,q,u,v,p){var x=null,t=null,y=null;u||null==this.themes||"darkTheme"!=this.defaultThemeName||(x=this.stylesheet,t=this.shapeForegroundColor,y=this.shapeBackgroundColor,this.shapeForegroundColor="darkTheme"==this.defaultThemeName?"#000000":Editor.lightColor,this.shapeBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":Editor.darkColor,this.stylesheet=this.getDefaultStylesheet(),this.refresh());var C=M.apply(this,arguments),B=this.getCustomFonts();if(q&&0<B.length){var A=
3294C.ownerDocument,N=null!=A.createElementNS?A.createElementNS(mxConstants.NS_SVG,"style"):A.createElement("style");null!=A.setAttributeNS?N.setAttributeNS("type","text/css"):N.setAttribute("type","text/css");for(var H="",F="",J=0;J<B.length;J++){var D=B[J].name,G=B[J].url;Graph.isCssFontUrl(G)?H+="@import url("+G+");\n":F+='@font-face {\nfont-family: "'+D+'";\nsrc: url("'+G+'");\n}\n'}N.appendChild(A.createTextNode(H+F));C.getElementsByTagName("defs")[0].appendChild(N)}null!=x&&(this.shapeBackgroundColor=
3295y,this.shapeForegroundColor=t,this.stylesheet=x,this.refresh());return C};var E=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var b=E.apply(this,arguments);if(this.mathEnabled){var d=b.drawText;b.drawText=function(b,c){if(null!=b.text&&null!=b.text.value&&b.text.checkBounds()&&(mxUtils.isNode(b.text.value)||b.text.dialect==mxConstants.DIALECT_STRICTHTML)){var f=b.text.getContentNode();if(null!=f){f=f.cloneNode(!0);if(f.getElementsByTagNameNS)for(var e=f.getElementsByTagNameNS("http://www.w3.org/1998/Math/MathML",
3296"math");0<e.length;)e[0].parentNode.removeChild(e[0]);null!=f.innerHTML&&(e=b.text.value,b.text.value=f.innerHTML,d.apply(this,arguments),b.text.value=e)}}else d.apply(this,arguments)}}return b};var K=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){K.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var b=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO||null!=this.webKitForceRepaintNode&&null!=this.webKitForceRepaintNode.parentNode||
3297"svg"!=this.graph.container.firstChild.nodeName?null==this.webKitForceRepaintNode||this.graph.mathEnabled&&("svg"==this.graph.container.firstChild.nodeName||this.graph.container.firstChild==this.webKitForceRepaintNode)||(null!=this.webKitForceRepaintNode.parentNode&&this.webKitForceRepaintNode.parentNode.removeChild(this.webKitForceRepaintNode),this.webKitForceRepaintNode=null):(this.webKitForceRepaintNode=document.createElement("div"),this.webKitForceRepaintNode.style.cssText="position:absolute;",
3298b.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,b.ownerSVGElement))}};var C=Graph.prototype.refresh;Graph.prototype.refresh=function(){C.apply(this,arguments);this.refreshBackgroundImage()};Graph.prototype.refreshBackgroundImage=function(){null!=this.backgroundImage&&null!=this.backgroundImage.originalSrc&&(this.setBackgroundImage(this.backgroundImage),this.view.validateBackgroundImage())};var L=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){L.apply(this,
3299arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(b){"data:action/json,"==b.substring(0,17)&&(b=JSON.parse(b.substring(17)),null!=b.actions&&this.executeCustomActions(b.actions))};Graph.prototype.executeCustomActions=function(b,d){if(this.executingCustomActions)this.stoppingCustomActions=!0,null!=this.pendingWaitThread&&window.clearTimeout(this.pendingWaitThread),null!=this.pendingExecuteNextAction&&this.pendingExecuteNextAction(),this.fireEvent(new mxEventObject("stopExecutingCustomActions"));
3300else{this.executingCustomActions=!0;var c=!1,f=0,e=0,g=mxUtils.bind(this,function(){c||(c=!0,this.model.beginUpdate())}),l=mxUtils.bind(this,function(){c&&(c=!1,this.model.endUpdate())}),m=mxUtils.bind(this,function(){0<f&&f--;0==f&&k()}),k=mxUtils.bind(this,function(){if(e<b.length){var c=this.stoppingCustomActions,n=b[e++],q=[];if(null!=n.open)if(l(),this.isCustomLink(n.open)){if(!this.customLinkClicked(n.open))return}else this.openLink(n.open);null==n.wait||c||(this.pendingExecuteNextAction=mxUtils.bind(this,
3301function(){this.pendingWaitThread=this.pendingExecuteNextAction=null;m()}),f++,this.pendingWaitThread=window.setTimeout(this.pendingExecuteNextAction,""!=n.wait?parseInt(n.wait):1E3),l());null!=n.opacity&&null!=n.opacity.value&&Graph.setOpacityForNodes(this.getNodesForCells(this.getCellsForAction(n.opacity,!0)),n.opacity.value);null!=n.fadeIn&&(f++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(n.fadeIn,!0)),0,1,m,c?0:n.fadeIn.delay));null!=n.fadeOut&&(f++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(n.fadeOut,
3302!0)),1,0,m,c?0:n.fadeOut.delay));null!=n.wipeIn&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(n.wipeIn,!0),!0)));null!=n.wipeOut&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(n.wipeOut,!0),!1)));null!=n.toggle&&(g(),this.toggleCells(this.getCellsForAction(n.toggle,!0)));if(null!=n.show){g();var u=this.getCellsForAction(n.show,!0);Graph.setOpacityForNodes(this.getNodesForCells(u),1);this.setCellsVisible(u,!0)}null!=n.hide&&(g(),u=this.getCellsForAction(n.hide,!0),Graph.setOpacityForNodes(this.getNodesForCells(u),
33030),this.setCellsVisible(u,!1));null!=n.toggleStyle&&null!=n.toggleStyle.key&&(g(),this.toggleCellStyles(n.toggleStyle.key,null!=n.toggleStyle.defaultValue?n.toggleStyle.defaultValue:"0",this.getCellsForAction(n.toggleStyle,!0)));null!=n.style&&null!=n.style.key&&(g(),this.setCellStyles(n.style.key,n.style.value,this.getCellsForAction(n.style,!0)));u=[];null!=n.select&&this.isEnabled()&&(u=this.getCellsForAction(n.select),this.setSelectionCells(u));null!=n.highlight&&(u=this.getCellsForAction(n.highlight),
3304this.highlightCells(u,n.highlight.color,n.highlight.duration,n.highlight.opacity));null!=n.scroll&&(u=this.getCellsForAction(n.scroll));null!=n.viewbox&&this.fitWindow(n.viewbox,n.viewbox.border);0<u.length&&this.scrollCellToVisible(u[0]);if(null!=n.tags){u=[];null!=n.tags.hidden&&(u=u.concat(n.tags.hidden));if(null!=n.tags.visible)for(var v=this.getAllTags(),p=0;p<v.length;p++)0>mxUtils.indexOf(n.tags.visible,v[p])&&0>mxUtils.indexOf(u,v[p])&&u.push(v[p]);this.hiddenTags=u;this.refresh()}0<q.length&&
3305(f++,this.executeAnimations(q,m,c?1:n.steps,c?0:n.delay));0==f?k():l()}else this.stoppingCustomActions=this.executingCustomActions=!1,l(),null!=d&&d()});k()}};Graph.prototype.doUpdateCustomLinksForCell=function(b,d){var c=this.getLinkForCell(d);null!=c&&"data:action/json,"==c.substring(0,17)&&this.setLinkForCell(d,this.updateCustomLink(b,c));if(this.isHtmlLabel(d)){var f=document.createElement("div");f.innerHTML=this.sanitizeHtml(this.getLabel(d));for(var e=f.getElementsByTagName("a"),g=!1,l=0;l<
3306e.length;l++)c=e[l].getAttribute("href"),null!=c&&"data:action/json,"==c.substring(0,17)&&(e[l].setAttribute("href",this.updateCustomLink(b,c)),g=!0);g&&this.labelChanged(d,f.innerHTML)}};Graph.prototype.updateCustomLink=function(b,d){if("data:action/json,"==d.substring(0,17))try{var c=JSON.parse(d.substring(17));null!=c.actions&&(this.updateCustomLinkActions(b,c.actions),d="data:action/json,"+JSON.stringify(c))}catch(Z){}return d};Graph.prototype.updateCustomLinkActions=function(b,d){for(var c=0;c<
3307d.length;c++){var f=d[c],e;for(e in f)this.updateCustomLinkAction(b,f[e],"cells"),this.updateCustomLinkAction(b,f[e],"excludeCells")}};Graph.prototype.updateCustomLinkAction=function(b,d,c){if(null!=d&&null!=d[c]){for(var f=[],e=0;e<d[c].length;e++)if("*"==d[c][e])f.push(d[c][e]);else{var g=b[d[c][e]];null!=g?""!=g&&f.push(g):f.push(d[c][e])}d[c]=f}};Graph.prototype.getCellsForAction=function(b,d){var c=this.getCellsById(b.cells).concat(this.getCellsForTags(b.tags,null,d));if(null!=b.excludeCells){for(var f=
3308[],e=0;e<c.length;e++)0>b.excludeCells.indexOf(c[e].id)&&f.push(c[e]);c=f}return c};Graph.prototype.getCellsById=function(b){var d=[];if(null!=b)for(var c=0;c<b.length;c++)if("*"==b[c])var f=this.model.getRoot(),d=d.concat(this.model.filterDescendants(function(b){return b!=f},f));else{var e=this.model.getCell(b[c]);null!=e&&d.push(e)}return d};var O=Graph.prototype.isCellVisible;Graph.prototype.isCellVisible=function(b){return O.apply(this,arguments)&&!this.isAllTagsHidden(this.getTagsForCell(b))};
3309Graph.prototype.isAllTagsHidden=function(b){if(null==b||0==b.length||0==this.hiddenTags.length)return!1;b=b.split(" ");if(b.length>this.hiddenTags.length)return!1;for(var d=0;d<b.length;d++)if(0>mxUtils.indexOf(this.hiddenTags,b[d]))return!1;return!0};Graph.prototype.getCellsForTags=function(b,d,c,f){var e=[];if(null!=b){d=null!=d?d:this.model.getDescendants(this.model.getRoot());for(var g=0,l={},m=0;m<b.length;m++)0<b[m].length&&(l[b[m]]=!0,g++);for(m=0;m<d.length;m++)if(c&&this.model.getParent(d[m])==
3310this.model.root||this.model.isVertex(d[m])||this.model.isEdge(d[m])){var k=this.getTagsForCell(d[m]),n=!1;if(0<k.length&&(k=k.split(" "),k.length>=b.length)){for(var q=n=0;q<k.length&&n<g;q++)null!=l[k[q]]&&n++;n=n==g}n&&(1!=f||this.isCellVisible(d[m]))&&e.push(d[m])}}return e};Graph.prototype.getAllTags=function(){return this.getTagsForCells(this.model.getDescendants(this.model.getRoot()))};Graph.prototype.getCommonTagsForCells=function(b){for(var d=null,c=[],f=0;f<b.length;f++){var e=this.getTagsForCell(b[f]),
3311c=[];if(0<e.length){for(var e=e.split(" "),g={},l=0;l<e.length;l++)if(null==d||null!=d[e[l]])g[e[l]]=!0,c.push(e[l]);d=g}else return[]}return c};Graph.prototype.getTagsForCells=function(b){for(var d=[],c={},f=0;f<b.length;f++){var e=this.getTagsForCell(b[f]);if(0<e.length)for(var e=e.split(" "),g=0;g<e.length;g++)null==c[e[g]]&&(c[e[g]]=!0,d.push(e[g]))}return d};Graph.prototype.getTagsForCell=function(b){return this.getAttributeForCell(b,"tags","")};Graph.prototype.addTagsForCells=function(b,d){if(0<
3312b.length&&0<d.length){this.model.beginUpdate();try{for(var c=0;c<b.length;c++){for(var f=this.getTagsForCell(b[c]),e=f.split(" "),g=!1,l=0;l<d.length;l++){var m=mxUtils.trim(d[l]);""!=m&&0>mxUtils.indexOf(e,m)&&(f=0<f.length?f+" "+m:m,g=!0)}g&&this.setAttributeForCell(b[c],"tags",f)}}finally{this.model.endUpdate()}}};Graph.prototype.removeTagsForCells=function(b,d){if(0<b.length&&0<d.length){this.model.beginUpdate();try{for(var c=0;c<b.length;c++){var f=this.getTagsForCell(b[c]);if(0<f.length){for(var e=
3313f.split(" "),g=!1,l=0;l<d.length;l++){var m=mxUtils.indexOf(e,d[l]);0<=m&&(e.splice(m,1),g=!0)}g&&this.setAttributeForCell(b[c],"tags",e.join(" "))}}}finally{this.model.endUpdate()}}};Graph.prototype.toggleCells=function(b){this.model.beginUpdate();try{for(var d=0;d<b.length;d++)this.model.setVisible(b[d],!this.model.isVisible(b[d]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(b,d){this.model.beginUpdate();try{for(var c=0;c<b.length;c++)this.model.setVisible(b[c],d)}finally{this.model.endUpdate()}};
3314Graph.prototype.highlightCells=function(b,d,c,f){for(var e=0;e<b.length;e++)this.highlightCell(b[e],d,c,f)};Graph.prototype.highlightCell=function(b,d,c,f){d=null!=d?d:mxConstants.DEFAULT_VALID_COLOR;c=null!=c?c:1E3;b=this.view.getState(b);if(null!=b){var e=Math.max(5,mxUtils.getValue(b.style,mxConstants.STYLE_STROKEWIDTH,1)+4),g=new mxCellHighlight(this,d,e,!1);null!=f&&(g.opacity=f);g.highlight(b);window.setTimeout(function(){null!=g.shape&&(mxUtils.setPrefixedStyle(g.shape.node.style,"transition",
3315"all 1200ms ease-in-out"),g.shape.node.style.opacity=0);window.setTimeout(function(){g.destroy()},1200)},c)}};Graph.prototype.addSvgShadow=function(b,d,c,f){c=null!=c?c:!1;f=null!=f?f:!0;var e=b.ownerDocument,g=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"filter"):e.createElement("filter");g.setAttribute("id",this.shadowId);var l=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):e.createElement("feGaussianBlur");l.setAttribute("in","SourceAlpha");l.setAttribute("stdDeviation",
3316this.svgShadowBlur);l.setAttribute("result","blur");g.appendChild(l);l=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feOffset"):e.createElement("feOffset");l.setAttribute("in","blur");l.setAttribute("dx",this.svgShadowSize);l.setAttribute("dy",this.svgShadowSize);l.setAttribute("result","offsetBlur");g.appendChild(l);l=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feFlood"):e.createElement("feFlood");l.setAttribute("flood-color",this.svgShadowColor);l.setAttribute("flood-opacity",
3317this.svgShadowOpacity);l.setAttribute("result","offsetColor");g.appendChild(l);l=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feComposite"):e.createElement("feComposite");l.setAttribute("in","offsetColor");l.setAttribute("in2","offsetBlur");l.setAttribute("operator","in");l.setAttribute("result","offsetBlur");g.appendChild(l);l=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feBlend"):e.createElement("feBlend");l.setAttribute("in","SourceGraphic");l.setAttribute("in2",
3318"offsetBlur");g.appendChild(l);l=b.getElementsByTagName("defs");0==l.length?(e=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"defs"):e.createElement("defs"),null!=b.firstChild?b.insertBefore(e,b.firstChild):b.appendChild(e)):e=l[0];e.appendChild(g);c||(d=null!=d?d:b.getElementsByTagName("g")[0],null!=d&&(d.setAttribute("filter","url(#"+this.shadowId+")"),!isNaN(parseInt(b.getAttribute("width")))&&f&&(b.setAttribute("width",parseInt(b.getAttribute("width"))+6),b.setAttribute("height",
3319parseInt(b.getAttribute("height"))+6),d=b.getAttribute("viewBox"),null!=d&&0<d.length&&(d=d.split(" "),3<d.length&&(w=parseFloat(d[2])+6,h=parseFloat(d[3])+6,b.setAttribute("viewBox",d[0]+" "+d[1]+" "+w+" "+h))))));return g};Graph.prototype.setShadowVisible=function(b,d){mxClient.IS_SVG&&!mxClient.IS_SF&&(d=null!=d?d:!0,(this.shadowVisible=b)?this.view.getDrawPane().setAttribute("filter","url(#"+this.shadowId+")"):this.view.getDrawPane().removeAttribute("filter"),d&&this.fireEvent(new mxEventObject("shadowVisibleChanged")))};
3320Graph.prototype.selectUnlockedLayer=function(){if(null==this.defaultParent){var b=this.model.getChildCount(this.model.root),d,c=0;do d=this.model.getChildAt(this.model.root,c);while(c++<b&&"1"==mxUtils.getValue(this.getCellStyle(d),"locked","0"));null!=d&&this.setDefaultParent(d)}};mxStencilRegistry.libraries.mockup=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries.arrows2=[SHAPES_PATH+"/mxArrows.js"];mxStencilRegistry.libraries.atlassian=[STENCIL_PATH+"/atlassian.xml",SHAPES_PATH+
3321"/mxAtlassian.js"];mxStencilRegistry.libraries.bpmn=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/bpmn.xml",SHAPES_PATH+"/bpmn/mxBpmnShape2.js"];mxStencilRegistry.libraries.bpmn2=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/bpmn.xml",SHAPES_PATH+"/bpmn/mxBpmnShape2.js"];mxStencilRegistry.libraries.c4=[SHAPES_PATH+"/mxC4.js"];mxStencilRegistry.libraries.cisco19=[SHAPES_PATH+"/mxCisco19.js",STENCIL_PATH+"/cisco19.xml"];mxStencilRegistry.libraries.cisco_safe=[SHAPES_PATH+"/mxCiscoSafe.js",STENCIL_PATH+"/cisco_safe/architecture.xml",
3322STENCIL_PATH+"/cisco_safe/business_icons.xml",STENCIL_PATH+"/cisco_safe/capability.xml",STENCIL_PATH+"/cisco_safe/design.xml",STENCIL_PATH+"/cisco_safe/iot_things_icons.xml",STENCIL_PATH+"/cisco_safe/people_places_things_icons.xml",STENCIL_PATH+"/cisco_safe/security_icons.xml",STENCIL_PATH+"/cisco_safe/technology_icons.xml",STENCIL_PATH+"/cisco_safe/threat.xml"];mxStencilRegistry.libraries.dfd=[SHAPES_PATH+"/mxDFD.js"];mxStencilRegistry.libraries.er=[SHAPES_PATH+"/er/mxER.js"];mxStencilRegistry.libraries.kubernetes=
3323[SHAPES_PATH+"/mxKubernetes.js",STENCIL_PATH+"/kubernetes.xml"];mxStencilRegistry.libraries.flowchart=[SHAPES_PATH+"/mxFlowchart.js",STENCIL_PATH+"/flowchart.xml"];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"];
3324mxStencilRegistry.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/abstract"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/abstract.xml"];mxStencilRegistry.libraries["electrical/logic_gates"]=
3325[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/logic_gates.xml"];mxStencilRegistry.libraries["electrical/miscellaneous"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/miscellaneous.xml"];mxStencilRegistry.libraries["electrical/signal_sources"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/signal_sources.xml"];mxStencilRegistry.libraries["electrical/transmission"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/transmission.xml"];mxStencilRegistry.libraries.infographic=
3326[SHAPES_PATH+"/mxInfographic.js"];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"];
3327mxStencilRegistry.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",SHAPES_PATH+
3328"/mxBasic.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/gmdl.xml"];mxStencilRegistry.libraries.gcp2=[SHAPES_PATH+"/mxGCP2.js",STENCIL_PATH+"/gcp2.xml"];mxStencilRegistry.libraries.ibm=[SHAPES_PATH+"/mxIBM.js",STENCIL_PATH+"/ibm.xml"];mxStencilRegistry.libraries.cabinets=[SHAPES_PATH+"/mxCabinets.js",STENCIL_PATH+"/cabinets.xml"];mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilRegistry.libraries.archimate3=
3329[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml=[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=[SHAPES_PATH+"/mxEip.js",STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"];mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.aws4=[SHAPES_PATH+"/mxAWS4.js",STENCIL_PATH+"/aws4.xml"];mxStencilRegistry.libraries.aws4b=[SHAPES_PATH+"/mxAWS4.js",
3330STENCIL_PATH+"/aws4.xml"];mxStencilRegistry.libraries.uml25=[SHAPES_PATH+"/mxUML25.js"];mxStencilRegistry.libraries.veeam=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam.xml"];mxStencilRegistry.libraries.veeam2=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam2.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+
3331"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(b){var d=null;null!=b&&0<b.length&&("ER"==b.substring(0,2)?d="mxgraph.er":"sysML"==b.substring(0,5)&&(d="mxgraph.sysml"));return d};var ea=mxMarker.createMarker;mxMarker.createMarker=function(b,d,c,f,e,g,l,m,k,n){if(null!=c&&null==mxMarker.markers[c]){var q=this.getPackageForType(c);null!=
3332q&&mxStencilRegistry.getStencil(q)}return ea.apply(this,arguments)};PrintDialog.prototype.create=function(b,d){function c(){p.value=Math.max(1,Math.min(m,Math.max(parseInt(p.value),parseInt(v.value))));v.value=Math.max(1,Math.min(m,Math.min(parseInt(p.value),parseInt(v.value))))}function f(d){function c(d,c,g){var l=d.useCssTransforms,m=d.currentTranslate,k=d.currentScale,n=d.view.translate,q=d.view.scale;d.useCssTransforms&&(d.useCssTransforms=!1,d.currentTranslate=new mxPoint(0,0),d.currentScale=
33331,d.view.translate=new mxPoint(0,0),d.view.scale=1);var u=d.getGraphBounds(),v=0,p=0,x=M.get(),t=1/d.pageScale,B=C.checked;if(B)var t=parseInt(K.value),N=parseInt(J.value),t=Math.min(x.height*N/(u.height/d.view.scale),x.width*t/(u.width/d.view.scale));else t=parseInt(y.value)/(100*d.pageScale),isNaN(t)&&(f=1/d.pageScale,y.value="100 %");x=mxRectangle.fromRectangle(x);x.width=Math.ceil(x.width*f);x.height=Math.ceil(x.height*f);t*=f;!B&&d.pageVisible?(u=d.getPageLayout(),v-=u.x*x.width,p-=u.y*x.height):
3334B=!0;if(null==c){c=PrintDialog.createPrintPreview(d,t,x,0,v,p,B);c.pageSelector=!1;c.mathEnabled=!1;v=b.getCurrentFile();null!=v&&(c.title=v.getTitle());var A=c.writeHead;c.writeHead=function(c){A.apply(this,arguments);if(mxClient.IS_GC||mxClient.IS_SF)c.writeln('<style type="text/css">'),c.writeln(Editor.mathJaxWebkitCss),c.writeln("</style>");mxClient.IS_GC&&(c.writeln('<style type="text/css">'),c.writeln("@media print {"),c.writeln("span.MathJax_SVG svg { shape-rendering: crispEdges; }"),c.writeln("}"),
3335c.writeln("</style>"));null!=b.editor.fontCss&&(c.writeln('<style type="text/css">'),c.writeln(b.editor.fontCss),c.writeln("</style>"));for(var f=d.getCustomFonts(),e=0;e<f.length;e++){var g=f[e].name,l=f[e].url;Graph.isCssFontUrl(l)?c.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(l)+'" charset="UTF-8" type="text/css">'):(c.writeln('<style type="text/css">'),c.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(g)+'";\nsrc: url("'+mxUtils.htmlEntities(l)+'");\n}'),c.writeln("</style>"))}};
3336if("undefined"!==typeof MathJax){var F=c.renderPage;c.renderPage=function(d,c,f,e,g,l){var m=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!b.editor.useForeignObjectForMath?!0:b.editor.originalNoForeignObject;var k=F.apply(this,arguments);mxClient.NO_FO=m;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:k.className="geDisableMathJax";return k}}v=null;p=e.enableFlowAnimation;e.enableFlowAnimation=!1;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(v=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),
3337e.refresh());c.open(null,null,g,!0);e.enableFlowAnimation=p;null!=v&&(e.stylesheet=v,e.refresh())}else{x=d.background;if(null==x||""==x||x==mxConstants.NONE)x="#ffffff";c.backgroundColor=x;c.autoOrigin=B;c.appendGraph(d,t,v,p,g,!0);g=d.getCustomFonts();if(null!=c.wnd)for(v=0;v<g.length;v++)p=g[v].name,B=g[v].url,Graph.isCssFontUrl(B)?c.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(B)+'" charset="UTF-8" type="text/css">'):(c.wnd.document.writeln('<style type="text/css">'),
3338c.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(p)+'";\nsrc: url("'+mxUtils.htmlEntities(B)+'");\n}'),c.wnd.document.writeln("</style>"))}l&&(d.useCssTransforms=l,d.currentTranslate=m,d.currentScale=k,d.view.translate=n,d.view.scale=q);return c}var f=parseInt(E.value)/100;isNaN(f)&&(f=1,E.value="100 %");var f=.75*f,g=null;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(g=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),e.refresh());var l=v.value,m=p.value,n=!q.checked,
3339u=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(b,q.checked,l,m,C.checked,K.value,J.value,parseInt(y.value)/100,parseInt(E.value)/100,M.get());else{n&&(n=l==k&&m==k);if(!n&&null!=b.pages&&b.pages.length){var x=0,n=b.pages.length-1;q.checked||(x=parseInt(l)-1,n=parseInt(m)-1);for(var t=x;t<=n;t++){var B=b.pages[t],l=B==b.currentPage?e:null;if(null==l){var l=b.createTemporaryGraph(e.stylesheet),m=!0,x=!1,N=null,A=null;null==B.viewState&&null==B.root&&b.updatePageRoot(B);null!=B.viewState&&
3340(m=B.viewState.pageVisible,x=B.viewState.mathEnabled,N=B.viewState.background,A=B.viewState.backgroundImage,l.extFonts=B.viewState.extFonts);l.background=N;l.backgroundImage=null!=A?new mxImage(A.src,A.width,A.height):null;l.pageVisible=m;l.mathEnabled=x;var F=l.getGlobalVariable;l.getGlobalVariable=function(d){return"page"==d?B.getName():"pagenumber"==d?t+1:"pagecount"==d?null!=b.pages?b.pages.length:1:F.apply(this,arguments)};document.body.appendChild(l.container);b.updatePageRoot(B);l.model.setRoot(B.root)}u=
3341c(l,u,t!=n);l!=e&&l.container.parentNode.removeChild(l.container)}}else u=c(e);null==u?b.handleError({message:mxResources.get("errorUpdatingPreview")}):(u.mathEnabled&&(n=u.wnd.document,d&&(u.wnd.IMMEDIATE_PRINT=!0),n.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),u.closeDocument(),!u.mathEnabled&&d&&PrintDialog.printPreview(u));null!=g&&(e.stylesheet=g,e.refresh())}}var e=b.editor.graph,g=document.createElement("div"),l=document.createElement("h3");
3342l.style.width="100%";l.style.textAlign="center";l.style.marginTop="0px";mxUtils.write(l,d||mxResources.get("print"));g.appendChild(l);var m=1,k=1,n=document.createElement("div");n.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var q=document.createElement("input");q.style.cssText="margin-right:8px;margin-bottom:8px;";q.setAttribute("value","all");q.setAttribute("type","radio");q.setAttribute("name","pages-printdialog");n.appendChild(q);l=document.createElement("span");
3343mxUtils.write(l,mxResources.get("printAllPages"));n.appendChild(l);mxUtils.br(n);var u=q.cloneNode(!0);q.setAttribute("checked","checked");u.setAttribute("value","range");n.appendChild(u);l=document.createElement("span");mxUtils.write(l,mxResources.get("pages")+":");n.appendChild(l);var v=document.createElement("input");v.style.cssText="margin:0 8px 0 8px;";v.setAttribute("value","1");v.setAttribute("type","number");v.setAttribute("min","1");v.style.width="50px";n.appendChild(v);l=document.createElement("span");
3344mxUtils.write(l,mxResources.get("to"));n.appendChild(l);var p=v.cloneNode(!0);n.appendChild(p);mxEvent.addListener(v,"focus",function(){u.checked=!0});mxEvent.addListener(p,"focus",function(){u.checked=!0});mxEvent.addListener(v,"change",c);mxEvent.addListener(p,"change",c);if(null!=b.pages&&(m=b.pages.length,null!=b.currentPage))for(l=0;l<b.pages.length;l++)if(b.currentPage==b.pages[l]){k=l+1;v.value=k;p.value=k;break}v.setAttribute("max",m);p.setAttribute("max",m);b.isPagesEnabled()?1<m&&(g.appendChild(n),
3345u.checked=!0):u.checked=!0;var x=document.createElement("div");x.style.marginBottom="10px";var t=document.createElement("input");t.style.marginRight="8px";t.setAttribute("value","adjust");t.setAttribute("type","radio");t.setAttribute("name","printZoom");x.appendChild(t);l=document.createElement("span");mxUtils.write(l,mxResources.get("adjustTo"));x.appendChild(l);var y=document.createElement("input");y.style.cssText="margin:0 8px 0 8px;";y.setAttribute("value","100 %");y.style.width="50px";x.appendChild(y);
3346mxEvent.addListener(y,"focus",function(){t.checked=!0});g.appendChild(x);var n=n.cloneNode(!1),C=t.cloneNode(!0);C.setAttribute("value","fit");t.setAttribute("checked","checked");l=document.createElement("div");l.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";l.appendChild(C);n.appendChild(l);x=document.createElement("table");x.style.display="inline-block";var B=document.createElement("tbody"),N=document.createElement("tr"),F=N.cloneNode(!0),D=document.createElement("td"),
3347O=D.cloneNode(!0),I=D.cloneNode(!0),H=D.cloneNode(!0),L=D.cloneNode(!0),Q=D.cloneNode(!0);D.style.textAlign="right";H.style.textAlign="right";mxUtils.write(D,mxResources.get("fitTo"));var K=document.createElement("input");K.style.cssText="margin:0 8px 0 8px;";K.setAttribute("value","1");K.setAttribute("min","1");K.setAttribute("type","number");K.style.width="40px";O.appendChild(K);l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsAcross"));I.appendChild(l);mxUtils.write(H,
3348mxResources.get("fitToBy"));var J=K.cloneNode(!0);L.appendChild(J);mxEvent.addListener(K,"focus",function(){C.checked=!0});mxEvent.addListener(J,"focus",function(){C.checked=!0});l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsDown"));Q.appendChild(l);N.appendChild(D);N.appendChild(O);N.appendChild(I);F.appendChild(H);F.appendChild(L);F.appendChild(Q);B.appendChild(N);B.appendChild(F);x.appendChild(B);n.appendChild(x);g.appendChild(n);n=document.createElement("div");l=
3349document.createElement("div");l.style.fontWeight="bold";l.style.marginBottom="12px";mxUtils.write(l,mxResources.get("paperSize"));n.appendChild(l);l=document.createElement("div");l.style.marginBottom="12px";var M=PageSetupDialog.addPageFormatPanel(l,"printdialog",b.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);n.appendChild(l);l=document.createElement("span");mxUtils.write(l,mxResources.get("pageScale"));n.appendChild(l);var E=document.createElement("input");E.style.cssText="margin:0 8px 0 8px;";
3350E.setAttribute("value","100 %");E.style.width="60px";n.appendChild(E);g.appendChild(n);l=document.createElement("div");l.style.cssText="text-align:right;margin:48px 0 0 0;";n=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});n.className="geBtn";b.editor.cancelFirst&&l.appendChild(n);b.isOffline()||(x=mxUtils.button(mxResources.get("help"),function(){e.openLink("https://www.diagrams.net/doc/faq/print-diagram")}),x.className="geBtn",l.appendChild(x));PrintDialog.previewEnabled&&(x=
3351mxUtils.button(mxResources.get("preview"),function(){b.hideDialog();f(!1)}),x.className="geBtn",l.appendChild(x));x=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){b.hideDialog();f(!0)});x.className="geBtn gePrimaryBtn";l.appendChild(x);b.editor.cancelFirst||l.appendChild(n);g.appendChild(l);this.container=g};var N=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);if(this.page!=this.ui.currentPage){if(null!=
3352this.page.viewState){this.ignoreColor||(this.page.viewState.background=this.color);if(!this.ignoreImage){var b=this.image;null!=b&&null!=b.src&&Graph.isPageLink(b.src)&&(b={originalSrc:b.src});this.page.viewState.backgroundImage=b}null!=this.format&&(this.page.viewState.pageFormat=this.format);null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled);null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)}}else N.apply(this,arguments),null!=this.mathEnabled&&
3353this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible)};Editor.prototype.useCanvasForExport=!1;try{var Q=document.createElement("canvas"),T=new Image;T.onload=function(){try{Q.getContext("2d").drawImage(T,0,0);var b=Q.toDataURL("image/png");Editor.prototype.useCanvasForExport=
3354null!=b&&6<b.length}catch(J){}};T.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(H){}})();
3355(function(){var b=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);b.beforeDecode=function(b,e,k){k.ui=b.ui;return e};b.afterDecode=function(b,e,k){k.previousColor=k.color;k.previousImage=k.image;k.previousFormat=k.format;null!=k.foldingEnabled&&(k.foldingEnabled=!k.foldingEnabled);null!=k.mathEnabled&&(k.mathEnabled=!k.mathEnabled);null!=k.shadowVisible&&(k.shadowVisible=!k.shadowVisible);return k};mxCodecRegistry.register(b)})();
3356(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(b,e,k){k.ui=b.ui;return e};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="15.7.3";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
3357null;EditorUi.ignoredAnonymizedChars="\n\t`~!@#$%^&*()_+{}|:\"<>?-=[];'./,\n\t";EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.cacheUrl="1"==urlParams.dev?"/cache":window.REALTIME_URL;null==EditorUi.cacheUrl&&"undefined"!==typeof DrawioFile&&(DrawioFile.SYNC="none");Editor.cacheTimeout=1E4;EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.nativeFileSupport=
3358!mxClient.IS_OP&&!EditorUi.isElectronApp&&"1"!=urlParams.extAuth&&"showSaveFilePicker"in window&&"showOpenFilePicker"in window;EditorUi.enableDrafts=!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.diagrams.net/doc/faq/scratchpad";EditorUi.defaultMermaidConfig={theme:"neutral",arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!1},sequence:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,
3359noteMargin:10,messageMargin:35,mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:4,axisFormat:"%Y-%m-%d"}};EditorUi.logError=function(b,c,e,g,m,k,u){k=null!=k?k:0<=b.indexOf("NetworkError")||0<=b.indexOf("SecurityError")||0<=b.indexOf("NS_ERROR_FAILURE")||0<=b.indexOf("out of memory")?"CONFIG":
3360"SEVERE";if(EditorUi.enableLogging&&"1"!=urlParams.dev)try{if(b!=EditorUi.lastErrorMessage&&(null==b||null==c||-1==b.indexOf("Script error")&&-1==b.indexOf("extension"))&&null!=b&&0>b.indexOf("DocumentClosedError")){EditorUi.lastErrorMessage=b;var d=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";m=null!=m?m:Error(b);(new Image).src=d+"/log?severity="+k+"&v="+encodeURIComponent(EditorUi.VERSION)+"&msg=clientError:"+encodeURIComponent(b)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+
3361encodeURIComponent(e)+(null!=g?":colno:"+encodeURIComponent(g):"")+(null!=m&&null!=m.stack?"&stack="+encodeURIComponent(m.stack):"")}}catch(y){}try{u||null==window.console||console.error(k,b,c,e,g,m)}catch(y){}};EditorUi.logEvent=function(b){if("1"==urlParams.dev)EditorUi.debug("logEvent",b);else if(EditorUi.enableLogging)try{var d=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=d+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=b?"&data="+encodeURIComponent(JSON.stringify(b)):
3362"")}catch(l){}};EditorUi.sendReport=function(b,c){if("1"==urlParams.dev)EditorUi.debug("sendReport",b);else if(EditorUi.enableLogging)try{c=null!=c?c:5E4,b.length>c&&(b=b.substring(0,c)+"\n...[SHORTENED]"),mxUtils.post("/email","version="+encodeURIComponent(EditorUi.VERSION)+"&url="+encodeURIComponent(window.location.href)+"&data="+encodeURIComponent(b))}catch(l){}};EditorUi.debug=function(){try{if(null!=window.console&&"1"==urlParams.test){for(var b=[(new Date).toISOString()],c=0;c<arguments.length;c++)null!=
3363arguments[c]&&b.push(arguments[c]);console.log.apply(console,b)}}catch(l){}};EditorUi.parsePng=function(b,c,e){function d(b,d){var c=g;g+=d;return b.substring(c,g)}function f(b){b=d(b,4);return b.charCodeAt(3)+(b.charCodeAt(2)<<8)+(b.charCodeAt(1)<<16)+(b.charCodeAt(0)<<24)}var g=0;if(d(b,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(d(b,4),"IHDR"!=d(b,4))null!=e&&e();else{d(b,17);do{e=f(b);var l=d(b,4);if(null!=c&&c(g-8,l,e))break;value=d(b,e);d(b,4);if("IEND"==
3364l)break}while(e)}};EditorUi.removeChildNodes=function(b){for(;null!=b.firstChild;)b.removeChild(b.firstChild)};EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>';EditorUi.prototype.emptyLibraryXml="<mxlibrary>[]</mxlibrary>";EditorUi.prototype.mode=null;EditorUi.prototype.timeout=Editor.prototype.timeout;EditorUi.prototype.sidebarFooterHeight=38;EditorUi.prototype.defaultCustomShapeStyle="shape=stencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE=);whiteSpace=wrap;html=1;";
3365EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.maxTextWidth=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.maxTextBytes=5E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.printPdfExport=!1;EditorUi.prototype.pdfPageExport=!0;EditorUi.prototype.formatEnabled="0"!=urlParams.format;EditorUi.prototype.insertTemplateEnabled=!0;EditorUi.prototype.closableScratchpad=
3366!0;EditorUi.prototype.embedExportBorder=8;EditorUi.prototype.embedExportBackground=null;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var b=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!b.getContext||!b.getContext("2d"))}catch(m){}try{var c=document.createElement("canvas"),e=new Image;e.onload=function(){try{c.getContext("2d").drawImage(e,0,0);var b=c.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=null!=b&&6<b.length}catch(n){}};
3367e.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{c=document.createElement("canvas");c.width=c.height=1;var g=c.toDataURL("image/jpeg");EditorUi.prototype.jpgSupported=null!==g.match("image/jpeg")}catch(m){}})();EditorUi.prototype.openLink=
3368function(b,c,e){return this.editor.graph.openLink(b,c,e)};EditorUi.prototype.showSplash=function(b){};EditorUi.prototype.getLocalData=function(b,c){c(localStorage.getItem(b))};EditorUi.prototype.setLocalData=function(b,c,e){localStorage.setItem(b,c);null!=e&&e()};EditorUi.prototype.removeLocalData=function(b,c){localStorage.removeItem(b);c()};EditorUi.prototype.setMathEnabled=function(b){this.editor.graph.mathEnabled=b;this.editor.updateGraphComponents();this.editor.graph.refresh();this.editor.graph.defaultMathEnabled=
3369b;this.fireEvent(new mxEventObject("mathEnabledChanged"))};EditorUi.prototype.isMathEnabled=function(b){return this.editor.graph.mathEnabled};EditorUi.prototype.isOfflineApp=function(){return"1"==urlParams.offline};EditorUi.prototype.isOffline=function(b){return this.isOfflineApp()||!navigator.onLine||!b&&("1"==urlParams.stealth||"1"==urlParams.lockdown)};EditorUi.prototype.createSpinner=function(b,c,e){var d=null==b||null==c;e=null!=e?e:24;var f=new Spinner({lines:12,length:e,width:Math.round(e/
33703),radius:Math.round(e/2),rotate:0,color:Editor.isDarkMode()?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),g=f.spin;f.spin=function(e,l){var m=!1;this.active||(g.call(this,e),this.active=!0,null!=l&&(d&&(c=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,b=document.body.clientWidth/2-2),m=document.createElement("div"),m.style.position="absolute",m.style.whiteSpace="nowrap",m.style.background="#4B4243",m.style.color="white",m.style.fontFamily=
3371Editor.defaultHtmlFont,m.style.fontSize="9pt",m.style.padding="6px",m.style.paddingLeft="10px",m.style.paddingRight="10px",m.style.zIndex=2E9,m.style.left=Math.max(0,b)+"px",m.style.top=Math.max(0,c+70)+"px",mxUtils.setPrefixedStyle(m.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(m.style,"transform","translate(-50%,-50%)"),Editor.isDarkMode()||mxUtils.setPrefixedStyle(m.style,"boxShadow","2px 2px 3px 0px #ddd"),"..."!=l.substring(l.length-3,l.length)&&"!"!=l.charAt(l.length-1)&&(l+="..."),
3372m.innerHTML=l,e.appendChild(m),f.status=m),this.pause=mxUtils.bind(this,function(){var b=function(){};this.active&&(b=mxUtils.bind(this,function(){this.spin(e,l)}));this.stop();return b}),m=!0);return m};var l=f.stop;f.stop=function(){l.call(this);this.active=!1;null!=f.status&&null!=f.status.parentNode&&f.status.parentNode.removeChild(f.status);f.status=null};f.pause=function(){return function(){}};return f};EditorUi.prototype.isCompatibleString=function(b){try{var d=mxUtils.parseXml(b),c=this.editor.extractGraphModel(d.documentElement,
3373!0);return null!=c&&0==c.getElementsByTagName("parsererror").length}catch(q){}return!1};EditorUi.prototype.isVisioData=function(b){return 8<b.length&&(208==b.charCodeAt(0)&&207==b.charCodeAt(1)&&17==b.charCodeAt(2)&&224==b.charCodeAt(3)&&161==b.charCodeAt(4)&&177==b.charCodeAt(5)&&26==b.charCodeAt(6)&&225==b.charCodeAt(7)||80==b.charCodeAt(0)&&75==b.charCodeAt(1)&&3==b.charCodeAt(2)&&4==b.charCodeAt(3)||80==b.charCodeAt(0)&&75==b.charCodeAt(1)&&3==b.charCodeAt(2)&&6==b.charCodeAt(3))};EditorUi.prototype.isRemoteVisioData=
3374function(b){return 8<b.length&&(208==b.charCodeAt(0)&&207==b.charCodeAt(1)&&17==b.charCodeAt(2)&&224==b.charCodeAt(3)&&161==b.charCodeAt(4)&&177==b.charCodeAt(5)&&26==b.charCodeAt(6)&&225==b.charCodeAt(7)||60==b.charCodeAt(0)&&63==b.charCodeAt(1)&&120==b.charCodeAt(2)&&109==b.charCodeAt(3)&&108==b.charCodeAt(3))};EditorUi.prototype.isPngData=function(b){return 8<b.length&&137==b.charCodeAt(0)&&80==b.charCodeAt(1)&&78==b.charCodeAt(2)&&71==b.charCodeAt(3)&&13==b.charCodeAt(4)&&10==b.charCodeAt(5)&&
337526==b.charCodeAt(6)&&10==b.charCodeAt(7)};var b=EditorUi.prototype.createKeyHandler;EditorUi.prototype.createKeyHandler=function(d){var c=b.apply(this,arguments);if(!this.editor.chromeless||this.editor.editable){var e=c.getFunction,g=this.editor.graph,m=this;c.getFunction=function(b){if(g.isSelectionEmpty()&&null!=m.pages&&0<m.pages.length){var d=m.getSelectedPageIndex();if(mxEvent.isShiftDown(b)){if(37==b.keyCode)return function(){0<d&&m.movePage(d,d-1)};if(38==b.keyCode)return function(){0<d&&m.movePage(d,
33760)};if(39==b.keyCode)return function(){d<m.pages.length-1&&m.movePage(d,d+1)};if(40==b.keyCode)return function(){d<m.pages.length-1&&m.movePage(d,m.pages.length-1)}}else if(mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b)){if(37==b.keyCode)return function(){0<d&&m.selectNextPage(!1)};if(38==b.keyCode)return function(){0<d&&m.selectPage(m.pages[0])};if(39==b.keyCode)return function(){d<m.pages.length-1&&m.selectNextPage(!0)};if(40==b.keyCode)return function(){d<m.pages.length-1&&m.selectPage(m.pages[m.pages.length-
33771])}}}return e.apply(this,arguments)}}return c};var c=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(b){var d=c.apply(this,arguments);if(null==d)try{var e=b.indexOf("&lt;mxfile ");if(0<=e){var g=b.lastIndexOf("&lt;/mxfile&gt;");g>e&&(d=b.substring(e,g+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var m=mxUtils.parseXml(b),k=this.editor.extractGraphModel(m.documentElement,null!=this.pages||"hidden"==
3378this.diagramContainer.style.visibility),d=null!=k?mxUtils.getXml(k):""}catch(u){}return d};EditorUi.prototype.validateFileData=function(b){if(null!=b&&0<b.length){var d=b.indexOf('<meta charset="utf-8">');0<=d&&(b=b.slice(0,d)+'<meta charset="utf-8"/>'+b.slice(d+23-1,b.length));b=Graph.zapGremlins(b)}return b};EditorUi.prototype.replaceFileData=function(b){b=this.validateFileData(b);b=null!=b&&0<b.length?mxUtils.parseXml(b).documentElement:null;var d=null!=b?this.editor.extractGraphModel(b,!0):null;
3379null!=d&&(b=d);if(null!=b){d=this.editor.graph;d.model.beginUpdate();try{var c=null!=this.pages?this.pages.slice():null,e=b.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<e.length||1==e.length&&e[0].hasAttribute("name")){this.fileNode=b;this.pages=null!=this.pages?this.pages:[];for(var g=e.length-1;0<=g;g--){var k=this.updatePageRoot(new DiagramPage(e[g]));null==k.getName()&&k.setName(mxResources.get("pageWithNumber",[g+1]));d.model.execute(new ChangePage(this,k,0==g?k:null,0))}}else"0"!=
3380urlParams.pages&&null==this.fileNode&&(this.fileNode=b.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),d.model.execute(new ChangePage(this,this.currentPage,this.currentPage,0))),this.editor.setGraphXml(b),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=c)for(g=0;g<c.length;g++)d.model.execute(new ChangePage(this,c[g],null))}finally{d.model.endUpdate()}}};
3381EditorUi.prototype.createFileData=function(b,c,e,g,m,k,u,v,p,x,t){c=null!=c?c:this.editor.graph;m=null!=m?m:!1;p=null!=p?p:!0;var d,f=null;null==e||e.getMode()==App.MODE_DEVICE||e.getMode()==App.MODE_BROWSER?d="_blank":f=d=g;if(null==b)return"";var l=b;if("mxfile"!=l.nodeName.toLowerCase()){if(t){var n=b.ownerDocument.createElement("diagram");n.setAttribute("id",Editor.guid());n.appendChild(b)}else{n=Graph.zapGremlins(mxUtils.getXml(b));l=Graph.compress(n);if(Graph.decompress(l)!=n)return n;n=b.ownerDocument.createElement("diagram");
3382n.setAttribute("id",Editor.guid());mxUtils.setTextContent(n,l)}l=b.ownerDocument.createElement("mxfile");l.appendChild(n)}x?(l=l.cloneNode(!0),l.removeAttribute("modified"),l.removeAttribute("host"),l.removeAttribute("agent"),l.removeAttribute("etag"),l.removeAttribute("userAgent"),l.removeAttribute("version"),l.removeAttribute("editor"),l.removeAttribute("type")):(l.removeAttribute("userAgent"),l.removeAttribute("version"),l.removeAttribute("editor"),l.removeAttribute("pages"),l.removeAttribute("type"),
3383mxClient.IS_CHROMEAPP?l.setAttribute("host","Chrome"):EditorUi.isElectronApp?l.setAttribute("host","Electron"):l.setAttribute("host",window.location.hostname),l.setAttribute("modified",(new Date).toISOString()),l.setAttribute("agent",navigator.appVersion),l.setAttribute("version",EditorUi.VERSION),l.setAttribute("etag",Editor.guid()),b=null!=e?e.getMode():this.mode,null!=b&&l.setAttribute("type",b),1<l.getElementsByTagName("diagram").length&&null!=this.pages&&l.setAttribute("pages",this.pages.length));
3384t=t?mxUtils.getPrettyXml(l):mxUtils.getXml(l);if(!k&&!m&&(u||null!=e&&/(\.html)$/i.test(e.getTitle())))t=this.getHtml2(mxUtils.getXml(l),c,null!=e?e.getTitle():null,d,f);else if(k||!m&&null!=e&&/(\.svg)$/i.test(e.getTitle()))null==e||e.getMode()!=App.MODE_DEVICE&&e.getMode()!=App.MODE_BROWSER||(g=null),t=this.getEmbeddedSvg(t,c,g,null,v,p,f);return t};EditorUi.prototype.getXmlFileData=function(b,c,e,g){b=null!=b?b:!0;c=null!=c?c:!1;e=null!=e?e:!Editor.compressXml;var d=this.editor.getGraphXml(b,g);
3385if(b&&null!=this.fileNode&&null!=this.currentPage)if(b=function(b){var c=b.getElementsByTagName("mxGraphModel"),c=0<c.length?c[0]:null;null==c&&e?(c=mxUtils.trim(mxUtils.getTextContent(b)),b=b.cloneNode(!1),0<c.length&&(c=Graph.decompress(c),null!=c&&0<c.length&&b.appendChild(mxUtils.parseXml(c).documentElement))):null==c||e?b=b.cloneNode(!0):(b=b.cloneNode(!1),mxUtils.setTextContent(b,Graph.compressNode(c)));d.appendChild(b)},EditorUi.removeChildNodes(this.currentPage.node),mxUtils.setTextContent(this.currentPage.node,
3386Graph.compressNode(d)),d=this.fileNode.cloneNode(!1),c)b(this.currentPage.node);else for(c=0;c<this.pages.length;c++){var f=this.pages[c],l=f.node;if(f!=this.currentPage)if(f.needsUpdate){var k=new mxCodec(mxUtils.createXmlDocument()),k=k.encode(new mxGraphModel(f.root));this.editor.graph.saveViewState(f.viewState,k,null,g);EditorUi.removeChildNodes(l);mxUtils.setTextContent(l,Graph.compressNode(k));delete f.needsUpdate}else g&&(this.updatePageRoot(f),null!=f.viewState.backgroundImage&&(null!=f.viewState.backgroundImage.originalSrc?
3387f.viewState.backgroundImage=this.createImageForPageLink(f.viewState.backgroundImage.originalSrc,f):Graph.isPageLink(f.viewState.backgroundImage.src)&&(f.viewState.backgroundImage=this.createImageForPageLink(f.viewState.backgroundImage.src,f))),null!=f.viewState.backgroundImage&&null!=f.viewState.backgroundImage.originalSrc&&(k=new mxCodec(mxUtils.createXmlDocument()),k=k.encode(new mxGraphModel(f.root)),this.editor.graph.saveViewState(f.viewState,k,null,g),l=l.cloneNode(!1),mxUtils.setTextContent(l,
3388Graph.compressNode(k))));b(l)}return d};EditorUi.prototype.anonymizeString=function(b,c){for(var d=[],f=0;f<b.length;f++){var e=b.charAt(f);0<=EditorUi.ignoredAnonymizedChars.indexOf(e)?d.push(e):isNaN(parseInt(e))?e.toLowerCase()!=e?d.push(String.fromCharCode(65+Math.round(25*Math.random()))):e.toUpperCase()!=e?d.push(String.fromCharCode(97+Math.round(25*Math.random()))):/\s/.test(e)?d.push(" "):d.push("?"):d.push(c?"0":Math.round(9*Math.random()))}return d.join("")};EditorUi.prototype.anonymizePatch=
3389function(b){if(null!=b[EditorUi.DIFF_INSERT])for(var d=0;d<b[EditorUi.DIFF_INSERT].length;d++)try{var c=mxUtils.parseXml(b[EditorUi.DIFF_INSERT][d].data).documentElement.cloneNode(!1);null!=c.getAttribute("name")&&c.setAttribute("name",this.anonymizeString(c.getAttribute("name")));b[EditorUi.DIFF_INSERT][d].data=mxUtils.getXml(c)}catch(n){b[EditorUi.DIFF_INSERT][d].data=n.message}if(null!=b[EditorUi.DIFF_UPDATE]){for(var e in b[EditorUi.DIFF_UPDATE]){var g=b[EditorUi.DIFF_UPDATE][e];null!=g.name&&
3390(g.name=this.anonymizeString(g.name));null!=g.cells&&(d=mxUtils.bind(this,function(b){var d=g.cells[b];if(null!=d){for(var c in d)null!=d[c].value&&(d[c].value="["+d[c].value.length+"]"),null!=d[c].xmlValue&&(d[c].xmlValue="["+d[c].xmlValue.length+"]"),null!=d[c].style&&(d[c].style="["+d[c].style.length+"]"),0==Object.keys(d[c]).length&&delete d[c];0==Object.keys(d).length&&delete g.cells[b]}}),d(EditorUi.DIFF_INSERT),d(EditorUi.DIFF_UPDATE),0==Object.keys(g.cells).length&&delete g.cells);0==Object.keys(g).length&&
3391delete b[EditorUi.DIFF_UPDATE][e]}0==Object.keys(b[EditorUi.DIFF_UPDATE]).length&&delete b[EditorUi.DIFF_UPDATE]}return b};EditorUi.prototype.anonymizeAttributes=function(b,c){if(null!=b.attributes)for(var d=0;d<b.attributes.length;d++)"as"!=b.attributes[d].name&&b.setAttribute(b.attributes[d].name,this.anonymizeString(b.attributes[d].value,c));if(null!=b.childNodes)for(d=0;d<b.childNodes.length;d++)this.anonymizeAttributes(b.childNodes[d],c)};EditorUi.prototype.anonymizeNode=function(b,c){for(var d=
3392b.getElementsByTagName("mxCell"),f=0;f<d.length;f++)null!=d[f].getAttribute("value")&&d[f].setAttribute("value","["+d[f].getAttribute("value").length+"]"),null!=d[f].getAttribute("xmlValue")&&d[f].setAttribute("xmlValue","["+d[f].getAttribute("xmlValue").length+"]"),null!=d[f].getAttribute("style")&&d[f].setAttribute("style","["+d[f].getAttribute("style").length+"]"),null!=d[f].parentNode&&"root"!=d[f].parentNode.nodeName&&null!=d[f].parentNode.parentNode&&(d[f].setAttribute("id",d[f].parentNode.getAttribute("id")),
3393d[f].parentNode.parentNode.replaceChild(d[f],d[f].parentNode));return b};EditorUi.prototype.synchronizeCurrentFile=function(b){var d=this.getCurrentFile();null!=d&&(d.savingFile?this.handleError({message:mxResources.get("busy")}):!b&&d.invalidChecksum?d.handleFileError(null,!0):this.spinner.spin(document.body,mxResources.get("updatingDocument"))&&(d.clearAutosave(),this.editor.setStatus(""),b?d.reloadFile(mxUtils.bind(this,function(){d.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,
3394function(b){d.handleFileError(b,!0)})):d.synchronizeFile(mxUtils.bind(this,function(){d.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(b){d.handleFileError(b,!0)}))))};EditorUi.prototype.getFileData=function(b,c,e,g,m,k,u,v,p,x,t){m=null!=m?m:!0;k=null!=k?k:!1;var d=this.editor.graph;if(c||!b&&null!=p&&/(\.svg)$/i.test(p.getTitle())){var f=null!=d.themes&&"darkTheme"==d.defaultThemeName;x=!1;if(f||null!=this.pages&&this.currentPage!=this.pages[0]){var l=d.getGlobalVariable,
3395d=this.createTemporaryGraph(f?d.getDefaultStylesheet():d.getStylesheet());d.setBackgroundImage=this.editor.graph.setBackgroundImage;var n=this.pages[0];this.currentPage==n?d.setBackgroundImage(this.editor.graph.backgroundImage):null!=n.viewState&&null!=n.viewState&&d.setBackgroundImage(n.viewState.backgroundImage);d.getGlobalVariable=function(b){return"page"==b?n.getName():"pagenumber"==b?1:l.apply(this,arguments)};document.body.appendChild(d.container);d.model.setRoot(n.root)}}u=null!=u?u:this.getXmlFileData(m,
3396k,x,t);p=null!=p?p:this.getCurrentFile();b=this.createFileData(u,d,p,window.location.href,b,c,e,g,m,v,x);d!=this.editor.graph&&d.container.parentNode.removeChild(d.container);return b};EditorUi.prototype.getHtml=function(b,c,e,g,m,k){k=null!=k?k:!0;var d=null,f=EditorUi.drawHost+"/js/embed-static.min.js";if(null!=c){var d=k?c.getGraphBounds():c.getBoundingBox(c.getSelectionCells()),l=c.view.scale;k=Math.floor(d.x/l-c.view.translate.x);l=Math.floor(d.y/l-c.view.translate.y);d=c.background;null==m&&
3397(c=this.getBasenames().join(";"),0<c.length&&(f=EditorUi.drawHost+"/embed.js?s="+c));b.setAttribute("x0",k);b.setAttribute("y0",l)}null!=b&&(b.setAttribute("pan","1"),b.setAttribute("zoom","1"),b.setAttribute("resize","0"),b.setAttribute("fit","0"),b.setAttribute("border","20"),b.setAttribute("links","1"),null!=g&&b.setAttribute("edit",g));null!=m&&(m=m.replace(/&/g,"&amp;"));b=null!=b?Graph.zapGremlins(mxUtils.getXml(b)):"";g=Graph.compress(b);Graph.decompress(g)!=b&&(g=encodeURIComponent(b));return(null==
3398m?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=m?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==m?null!=e?"<title>"+mxUtils.htmlEntities(e)+"</title>\n":"":"<title>diagrams.net</title>\n")+(null!=m?'<meta http-equiv="refresh" content="0;URL=\''+m+"'\"/>\n":"")+"</head>\n<body"+(null==m&&null!=d&&d!=mxConstants.NONE?' style="background-color:'+d+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+
3399g+"</div>\n</div>\n"+(null==m?'<script type="text/javascript" src="'+f+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+m+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.getHtml2=function(b,c,e,g,k){c=window.DRAWIO_VIEWER_URL||EditorUi.drawHost+"/js/viewer-static.min.js";null!=k&&(k=k.replace(/&/g,"&amp;"));b={highlight:"#0000ff",nav:this.editor.graph.foldingEnabled,
3400resize:!0,xml:Graph.zapGremlins(b),toolbar:"pages zoom layers lightbox"};null!=this.pages&&null!=this.currentPage&&(b.page=mxUtils.indexOf(this.pages,this.currentPage));return(null==k?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=k?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==k?null!=e?"<title>"+mxUtils.htmlEntities(e)+"</title>\n":"":"<title>diagrams.net</title>\n")+(null!=k?'<meta http-equiv="refresh" content="0;URL=\''+
3401k+"'\"/>\n":"")+'<meta charset="utf-8"/>\n</head>\n<body>\n<div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(b))+'"></div>\n'+(null==k?'<script type="text/javascript" src="'+c+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+k+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=
3402function(b){b=this.validateFileData(b);this.pages=this.fileNode=this.currentPage=null;b=null!=b&&0<b.length?mxUtils.parseXml(b).documentElement:null;var d=Editor.extractParserError(b,mxResources.get("invalidOrMissingFile"));if(d)throw Error(mxResources.get("notADiagramFile")+" ("+d+")");d=null!=b?this.editor.extractGraphModel(b,!0):null;null!=d&&(b=d);if(null!=b&&"mxfile"==b.nodeName&&(d=b.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name"))){var c=
3403null;this.fileNode=b;this.pages=[];for(var e=0;e<d.length;e++)null==d[e].getAttribute("id")&&d[e].setAttribute("id",e),b=new DiagramPage(d[e]),null==b.getName()&&b.setName(mxResources.get("pageWithNumber",[e+1])),this.pages.push(b),null!=urlParams["page-id"]&&b.getId()==urlParams["page-id"]&&(c=b);this.currentPage=null!=c?c:this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||0))];b=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&null!=b&&(this.fileNode=b.ownerDocument.createElement("mxfile"),
3404this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(b);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=urlParams["layer-ids"])try{var g=urlParams["layer-ids"].split(" ");b={};for(e=0;e<g.length;e++)b[g[e]]=!0;for(var k=this.editor.graph.getModel(),u=k.getChildren(k.root),e=0;e<u.length;e++){var p=u[e];k.setVisible(p,b[p.id]||
3405!1)}}catch(y){}};EditorUi.prototype.getBaseFilename=function(b){var d=this.getCurrentFile(),d=null!=d&&null!=d.getTitle()?d.getTitle():this.defaultFilename;if(/(\.xml)$/i.test(d)||/(\.html)$/i.test(d)||/(\.svg)$/i.test(d)||/(\.png)$/i.test(d))d=d.substring(0,d.lastIndexOf("."));/(\.drawio)$/i.test(d)&&(d=d.substring(0,d.lastIndexOf(".")));!b&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(d=d+"-"+
3406this.currentPage.getName());return d};EditorUi.prototype.downloadFile=function(b,c,e,g,k,n,u,p,t,x,D,I){try{g=null!=g?g:this.editor.graph.isSelectionEmpty();var d=this.getBaseFilename(!k),f=d+("xml"==b||"pdf"==b&&D?".drawio":"")+"."+b;if("xml"==b){var l=Graph.xmlDeclaration+"\n"+this.getFileData(!0,null,null,null,g,k,null,null,null,c);this.saveData(f,b,l,"text/xml")}else if("html"==b)l=this.getHtml2(this.getFileData(!0),this.editor.graph,d),this.saveData(f,b,l,"text/html");else if("svg"!=b&&"xmlsvg"!=
3407b||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==b?f=d+".png":"jpeg"==b&&(f=d+".jpg"),this.saveRequest(f,b,mxUtils.bind(this,function(d,c){try{var f=this.editor.graph.pageVisible;null!=n&&(this.editor.graph.pageVisible=n);var e=this.createDownloadRequest(d,b,g,c,u,k,p,t,x,D,I);this.editor.graph.pageVisible=f;return e}catch(T){this.handleError(T)}}));else{var m=null,q=mxUtils.bind(this,function(b){b.length<=MAX_REQUEST_SIZE?this.saveData(f,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},
3408mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(m)}))});if("svg"==b){var v=this.editor.graph.background;if(u||v==mxConstants.NONE)v=null;var y=this.editor.graph.getSvg(v,null,null,null,null,g);e&&this.editor.graph.addSvgShadow(y);this.editor.convertImages(y,mxUtils.bind(this,mxUtils.bind(this,function(b){this.spinner.stop();q(Graph.xmlDeclaration+"\n"+Graph.svgDoctype+"\n"+mxUtils.getXml(b))})))}else f=d+".svg",m=this.getFileData(!1,!0,null,mxUtils.bind(this,function(b){this.spinner.stop();
3409q(b)}),g)}}catch(O){this.handleError(O)}};EditorUi.prototype.createDownloadRequest=function(b,c,e,g,k,n,u,p,t,x,D){var d=this.editor.graph,f=d.getGraphBounds();e=this.getFileData(!0,null,null,null,e,0==n?!1:"xmlpng"!=c,null,null,null,!1,"pdf"==c);var l="",m="";if(f.width*f.height>MAX_AREA||e.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};x=x?"1":"0";"pdf"==c&&(null!=D?m="&from="+D.from+"&to="+D.to:0==n&&(m="&allPages=1"));if("xmlpng"==c&&(x="1",c="png",null!=this.pages&&
3410null!=this.currentPage))for(n=0;n<this.pages.length;n++)if(this.pages[n]==this.currentPage){l="&from="+n;break}n=d.background;"png"!=c&&"pdf"!=c||!k?k||null!=n&&n!=mxConstants.NONE||(n="#ffffff"):n=mxConstants.NONE;k={globalVars:d.getExportVariables()};t&&(k.grid={size:d.gridSize,steps:d.view.gridSteps,color:d.view.gridColor});Graph.translateDiagram&&(k.diagramLanguage=Graph.diagramLanguage);return new mxXmlRequest(EXPORT_URL,"format="+c+l+m+"&bg="+(null!=n?n:mxConstants.NONE)+"&base64="+g+"&embedXml="+
3411x+"&xml="+encodeURIComponent(e)+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(k))+(null!=u?"&scale="+u:"")+(null!=p?"&border="+p:""))};EditorUi.prototype.setMode=function(b,c){this.mode=b};EditorUi.prototype.loadDescriptor=function(b,c,e){var d=window.location.hash,f=mxUtils.bind(this,function(f){var e=null!=b.data?b.data:"";null!=f&&0<f.length&&(0<e.length&&(e+="\n"),e+=f);f=new LocalFile(this,"csv"!=b.format&&0<e.length?e:this.emptyDiagramXml,null!=
3412urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);f.getHash=function(){return d};this.fileLoaded(f);"csv"==b.format&&this.importCsv(e,mxUtils.bind(this,function(b){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=b.update){var g=null!=b.interval?parseInt(b.interval):6E4,l=null,k=mxUtils.bind(this,function(){var d=this.currentPage;mxUtils.post(b.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),mxUtils.bind(this,
3413function(b){d===this.currentPage&&(200<=b.getStatus()&&300>=b.getStatus()?(this.updateDiagram(b.getText()),m()):this.handleError({message:mxResources.get("error")+" "+b.getStatus()}))}),mxUtils.bind(this,function(b){this.handleError(b)}))}),m=mxUtils.bind(this,function(){window.clearTimeout(l);l=window.setTimeout(k,g)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){m();k()}));m();k()}null!=c&&c()});null!=b.url&&0<b.url.length?this.editor.loadUrl(b.url,mxUtils.bind(this,function(b){f(b)}),
3414mxUtils.bind(this,function(b){null!=e&&e(b)})):f("")};EditorUi.prototype.updateDiagram=function(b){function d(b){var d=new mxCellOverlay(b.image||g.warningImage,b.tooltip,b.align,b.valign,b.offset);d.addListener(mxEvent.CLICK,function(d,c){e.alert(b.tooltip)});return d}var c=null,e=this;if(null!=b&&0<b.length&&(c=mxUtils.parseXml(b),b=null!=c?c.documentElement:null,null!=b&&"updates"==b.nodeName)){var g=this.editor.graph,k=g.getModel();k.beginUpdate();var u=null;try{for(b=b.firstChild;null!=b;){if("update"==
3415b.nodeName){var p=k.getCell(b.getAttribute("id"));if(null!=p){try{var t=b.getAttribute("value");if(null!=t){var x=mxUtils.parseXml(t).documentElement;if(null!=x)if("1"==x.getAttribute("replace-value"))k.setValue(p,x);else for(var D=x.attributes,I=0;I<D.length;I++)g.setAttributeForCell(p,D[I].nodeName,0<D[I].nodeValue.length?D[I].nodeValue:null)}}catch(O){null!=window.console&&console.log("Error in value for "+p.id+": "+O)}try{var B=b.getAttribute("style");null!=B&&g.model.setStyle(p,B)}catch(O){null!=
3416window.console&&console.log("Error in style for "+p.id+": "+O)}try{var F=b.getAttribute("icon");if(null!=F){var M=0<F.length?JSON.parse(F):null;null!=M&&M.append||g.removeCellOverlays(p);null!=M&&g.addCellOverlay(p,d(M))}}catch(O){null!=window.console&&console.log("Error in icon for "+p.id+": "+O)}try{var E=b.getAttribute("geometry");if(null!=E){var E=JSON.parse(E),K=g.getCellGeometry(p);if(null!=K){K=K.clone();for(key in E){var C=parseFloat(E[key]);"dx"==key?K.x+=C:"dy"==key?K.y+=C:"dw"==key?K.width+=
3417C:"dh"==key?K.height+=C:K[key]=parseFloat(E[key])}g.model.setGeometry(p,K)}}}catch(O){null!=window.console&&console.log("Error in icon for "+p.id+": "+O)}}}else if("model"==b.nodeName){for(var L=b.firstChild;null!=L&&L.nodeType!=mxConstants.NODETYPE_ELEMENT;)L=L.nextSibling;null!=L&&(new mxCodec(b.firstChild)).decode(L,k)}else if("view"==b.nodeName){if(b.hasAttribute("scale")&&(g.view.scale=parseFloat(b.getAttribute("scale"))),b.hasAttribute("dx")||b.hasAttribute("dy"))g.view.translate=new mxPoint(parseFloat(b.getAttribute("dx")||
34180),parseFloat(b.getAttribute("dy")||0))}else"fit"==b.nodeName&&(u=b.hasAttribute("max-scale")?parseFloat(b.getAttribute("max-scale")):1);b=b.nextSibling}}finally{k.endUpdate()}null!=u&&this.chromelessResize&&this.chromelessResize(!0,u)}return c};EditorUi.prototype.getCopyFilename=function(b,c){var d=null!=b&&null!=b.getTitle()?b.getTitle():this.defaultFilename,f="",e=d.lastIndexOf(".");0<=e&&(f=d.substring(e),d=d.substring(0,e));if(c)var g=new Date,e=g.getFullYear(),k=g.getMonth()+1,p=g.getDate(),
3419t=g.getHours(),x=g.getMinutes(),g=g.getSeconds(),d=d+(" "+(e+"-"+k+"-"+p+"-"+t+"-"+x+"-"+g));return d=mxResources.get("copyOf",[d])+f};EditorUi.prototype.fileLoaded=function(b,c){var d=this.getCurrentFile();this.fileEditable=this.fileLoadedError=null;this.setCurrentFile(null);var f=!1;this.hideDialog();null!=d&&(EditorUi.debug("File.closed",[d]),d.removeListener(this.descriptorChangedListener),d.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var e=mxUtils.bind(this,function(){this.setGraphEnabled(!1);
3420this.setCurrentFile(null);null!=d&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();this.setBackgroundImage(null);!c&&null!=window.location.hash&&0<window.location.hash.length&&(window.location.hash="");null!=this.fname&&(this.fnameWrapper.style.display="none",this.fname.innerHTML="",this.fname.setAttribute("title",mxResources.get("rename")));this.editor.setStatus("");this.updateUi();c||this.showSplash()});if(null!=b)try{mxClient.IS_SF&&"min"==uiTheme&&(this.diagramContainer.style.visibility=
3421"");this.openingFile=!0;this.setCurrentFile(b);b.addListener("descriptorChanged",this.descriptorChangedListener);b.addListener("contentChanged",this.descriptorChangedListener);b.open();delete this.openingFile;this.setGraphEnabled(!0);this.setMode(b.getMode());this.editor.graph.model.prefix=Editor.guid()+"-";this.editor.undoManager.clear();this.descriptorChanged();this.updateUi();b.isEditable()?b.isModified()?(b.addUnsavedStatus(),null!=b.backupPatch&&b.patch([b.backupPatch])):this.editor.setStatus(""):
3422this.editor.setStatus('<span class="geStatusAlert">'+mxUtils.htmlEntities(mxResources.get("readOnly"))+"</span>");!this.editor.isChromelessView()||this.editor.editable?(this.editor.graph.selectUnlockedLayer(),this.showLayersDialog(),this.restoreLibraries(),window.self!==window.top&&window.focus()):this.editor.graph.isLightboxView()&&this.lightboxFit();this.chromelessResize&&this.chromelessResize();this.editor.fireEvent(new mxEventObject("fileLoaded"));f=!0;this.isOffline()||null==b.getMode()||EditorUi.logEvent({category:b.getMode().toUpperCase()+
3423"-OPEN-FILE-"+b.getHash(),action:"size_"+b.getSize(),label:"autosave_"+(this.editor.autosave?"on":"off")});EditorUi.debug("File.opened",[b]);"1"==urlParams.viewerOnlyMsg&&this.showAlert(mxResources.get("viewerOnlyMsg"));if(this.editor.editable&&this.mode==b.getMode()&&b.getMode()!=App.MODE_DEVICE&&null!=b.getMode())try{this.addRecent({id:b.getHash(),title:b.getTitle(),mode:b.getMode()})}catch(u){}try{mxSettings.setOpenCounter(mxSettings.getOpenCounter()+1),mxSettings.save()}catch(u){}}catch(u){this.fileLoadedError=
3424u;if(EditorUi.enableLogging&&!this.isOffline())try{EditorUi.logEvent({category:"ERROR-LOAD-FILE-"+(null!=b?b.getHash():"none"),action:"message_"+u.message,label:"stack_"+u.stack})}catch(v){}var g=mxUtils.bind(this,function(){null!=urlParams.url&&this.spinner.spin(document.body,mxResources.get("reconnecting"))?window.location.search=this.getSearch(["url"]):null!=d?this.fileLoaded(d):e()});c?g():this.handleError(u,mxResources.get("errorLoadingFile"),g,!0,null,null,!0)}else e();return f};EditorUi.prototype.getHashValueForPages=
3425function(b,c){var d=0,f=new mxGraphModel,e=new mxCodec;null!=c&&(c.byteCount=0,c.attrCount=0,c.eltCount=0,c.nodeCount=0);for(var g=0;g<b.length;g++){this.updatePageRoot(b[g]);var k=b[g].node.cloneNode(!1);k.removeAttribute("name");f.root=b[g].root;var p=e.encode(f);this.editor.graph.saveViewState(b[g].viewState,p,!0);p.removeAttribute("pageWidth");p.removeAttribute("pageHeight");k.appendChild(p);null!=c&&(c.eltCount+=k.getElementsByTagName("*").length,c.nodeCount+=k.getElementsByTagName("mxCell").length);
3426d=(d<<5)-d+this.hashValue(k,function(b,d,c,f){return!f||"mxGeometry"!=b.nodeName&&"mxPoint"!=b.nodeName||"x"!=d&&"y"!=d&&"width"!=d&&"height"!=d?f&&"mxCell"==b.nodeName&&"previous"==d?null:c:Math.round(c)},c)<<0}return d};EditorUi.prototype.hashValue=function(b,c,e){var d=0;if(null!=b&&"object"===typeof b&&"number"===typeof b.nodeType&&"string"===typeof b.nodeName&&"function"===typeof b.getAttribute){null!=b.nodeName&&(d^=this.hashValue(b.nodeName,c,e));if(null!=b.attributes){null!=e&&(e.attrCount+=
3427b.attributes.length);for(var f=0;f<b.attributes.length;f++){var g=b.attributes[f].name,l=null!=c?c(b,g,b.attributes[f].value,!0):b.attributes[f].value;null!=l&&(d^=this.hashValue(g,c,e)+this.hashValue(l,c,e))}}if(null!=b.childNodes)for(f=0;f<b.childNodes.length;f++)d=(d<<5)-d+this.hashValue(b.childNodes[f],c,e)<<0}else if(null!=b&&"function"!==typeof b){b=String(b);c=0;null!=e&&(e.byteCount+=b.length);for(f=0;f<b.length;f++)c=(c<<5)-c+b.charCodeAt(f)<<0;d^=c}return d};EditorUi.prototype.descriptorChanged=
3428function(){};EditorUi.prototype.restoreLibraries=function(){};EditorUi.prototype.saveLibrary=function(b,c,e,g,k,n,p){};EditorUi.prototype.isScratchpadEnabled=function(){return isLocalStorage||mxClient.IS_CHROMEAPP};EditorUi.prototype.toggleScratchpad=function(){this.isScratchpadEnabled()&&(null==this.scratchpad?StorageFile.getFileContent(this,".scratchpad",mxUtils.bind(this,function(b){null==b&&(b=this.emptyLibraryXml);this.loadLibrary(new StorageLibrary(this,b,".scratchpad"))})):this.closeLibrary(this.scratchpad))};
3429EditorUi.prototype.createLibraryDataFromImages=function(b){var d=mxUtils.createXmlDocument(),c=d.createElement("mxlibrary");mxUtils.setTextContent(c,JSON.stringify(b));d.appendChild(c);return mxUtils.getXml(d)};EditorUi.prototype.closeLibrary=function(b){null!=b&&(this.removeLibrarySidebar(b.getHash()),b.constructor!=LocalLibrary&&mxSettings.removeCustomLibrary(b.getHash()),".scratchpad"==b.title&&(this.scratchpad=null))};EditorUi.prototype.removeLibrarySidebar=function(b){var d=this.sidebar.palettes[b];
3430if(null!=d){for(var c=0;c<d.length;c++)d[c].parentNode.removeChild(d[c]);delete this.sidebar.palettes[b]}};EditorUi.prototype.repositionLibrary=function(b){var d=this.sidebar.container;if(null==b){var c=this.sidebar.palettes["L.scratchpad"];null==c&&(c=this.sidebar.palettes.search);null!=c&&(b=c[c.length-1].nextSibling)}b=null!=b?b:d.firstChild.nextSibling.nextSibling;var c=d.lastChild,e=c.previousSibling;d.insertBefore(c,b);d.insertBefore(e,c)};EditorUi.prototype.loadLibrary=function(b,c){var d=
3431mxUtils.parseXml(b.getData());if("mxlibrary"==d.documentElement.nodeName){var f=JSON.parse(mxUtils.getTextContent(d.documentElement));this.libraryLoaded(b,f,d.documentElement.getAttribute("title"),c)}else throw{message:mxResources.get("notALibraryFile")};};EditorUi.prototype.getLibraryStorageHint=function(b){return""};EditorUi.prototype.libraryLoaded=function(b,c,e,g){if(null!=this.sidebar){b.constructor!=LocalLibrary&&mxSettings.addCustomLibrary(b.getHash());".scratchpad"==b.title&&(this.scratchpad=
3432b);var d=this.sidebar.palettes[b.getHash()],d=null!=d?d[d.length-1].nextSibling:null;this.removeLibrarySidebar(b.getHash());var f=null,l=mxUtils.bind(this,function(d,c){0==d.length&&b.isEditable()?(null==f&&(f=document.createElement("div"),f.className="geDropTarget",mxUtils.write(f,mxResources.get("dragElementsHere"))),c.appendChild(f)):this.addLibraryEntries(d,c)});null!=this.sidebar&&null!=c&&this.sidebar.addEntries(c);e=null!=e&&0<e.length?e:b.getTitle();var k=this.sidebar.addPalette(b.getHash(),
3433e,null!=g?g:!0,mxUtils.bind(this,function(b){l(c,b)}));this.repositionLibrary(d);var q=k.parentNode.previousSibling;g=q.getAttribute("title");null!=g&&0<g.length&&".scratchpad"!=b.title&&q.setAttribute("title",this.getLibraryStorageHint(b)+"\n"+g);var p=document.createElement("div");p.style.position="absolute";p.style.right="0px";p.style.top="0px";p.style.padding="8px";p.style.backgroundColor="inherit";q.style.position="relative";var t=document.createElement("img");t.setAttribute("src",Editor.crossImage);
3434t.setAttribute("title",mxResources.get("close"));t.setAttribute("valign","absmiddle");t.setAttribute("border","0");t.style.position="relative";t.style.top="2px";t.style.width="14px";t.style.cursor="pointer";t.style.margin="0 3px";Editor.isDarkMode()&&(t.style.filter="invert(100%)");var I=null;if(".scratchpad"!=b.title||this.closableScratchpad)p.appendChild(t),mxEvent.addListener(t,"click",mxUtils.bind(this,function(d){if(!mxEvent.isConsumed(d)){var c=mxUtils.bind(this,function(){this.closeLibrary(b)});
3435null!=I?this.confirm(mxResources.get("allChangesLost"),null,c,mxResources.get("cancel"),mxResources.get("discardChanges")):c();mxEvent.consume(d)}}));if(b.isEditable()){var B=this.editor.graph,F=null,M=mxUtils.bind(this,function(d){this.showLibraryDialog(b.getTitle(),k,c,b,b.getMode());mxEvent.consume(d)}),E=mxUtils.bind(this,function(d){b.setModified(!0);b.isAutosave()?(null!=F&&null!=F.parentNode&&F.parentNode.removeChild(F),F=t.cloneNode(!1),F.setAttribute("src",Editor.spinImage),F.setAttribute("title",
3436mxResources.get("saving")),F.style.cursor="default",F.style.marginRight="2px",F.style.marginTop="-2px",p.insertBefore(F,p.firstChild),q.style.paddingRight=18*p.childNodes.length+"px",this.saveLibrary(b.getTitle(),c,b,b.getMode(),!0,!0,function(){null!=F&&null!=F.parentNode&&(F.parentNode.removeChild(F),q.style.paddingRight=18*p.childNodes.length+"px")})):null==I&&(I=t.cloneNode(!1),I.setAttribute("src",Editor.saveImage),I.setAttribute("title",mxResources.get("save")),p.insertBefore(I,p.firstChild),
3437mxEvent.addListener(I,"click",mxUtils.bind(this,function(d){this.saveLibrary(b.getTitle(),c,b,b.getMode(),b.constructor==LocalLibrary,!0,function(){null==I||b.isModified()||(q.style.paddingRight=18*p.childNodes.length+"px",I.parentNode.removeChild(I),I=null)});mxEvent.consume(d)})),q.style.paddingRight=18*p.childNodes.length+"px")}),K=mxUtils.bind(this,function(b,d,e,g){b=B.cloneCells(mxUtils.sortCells(B.model.getTopmostCells(b)));for(var l=0;l<b.length;l++){var m=B.getCellGeometry(b[l]);null!=m&&
3438m.translate(-d.x,-d.y)}k.appendChild(this.sidebar.createVertexTemplateFromCells(b,d.width,d.height,g||"",!0,!1,!1));b={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(b))),w:d.width,h:d.height};null!=g&&(b.title=g);c.push(b);E(e);null!=f&&null!=f.parentNode&&0<c.length&&(f.parentNode.removeChild(f),f=null)}),C=mxUtils.bind(this,function(b){if(B.isSelectionEmpty())B.getRubberband().isActive()?(B.getRubberband().execute(b),B.getRubberband().reset()):this.showError(mxResources.get("error"),
3439mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var d=B.getSelectionCells(),c=B.view.getBounds(d),f=B.view.scale;c.x/=f;c.y/=f;c.width/=f;c.height/=f;c.x-=B.view.translate.x;c.y-=B.view.translate.y;K(d,c)}mxEvent.consume(b)});mxEvent.addGestureListeners(k,function(){},mxUtils.bind(this,function(b){B.isMouseDown&&null!=B.panningManager&&null!=B.graphHandler.first&&(B.graphHandler.suspend(),null!=B.graphHandler.hint&&(B.graphHandler.hint.style.visibility="hidden"),k.style.backgroundColor=
3440"#f1f3f4",k.style.cursor="copy",B.panningManager.stop(),B.autoScroll=!1,mxEvent.consume(b))}),mxUtils.bind(this,function(b){B.isMouseDown&&null!=B.panningManager&&null!=B.graphHandler&&(k.style.backgroundColor="",k.style.cursor="default",this.sidebar.showTooltips=!0,B.panningManager.stop(),B.graphHandler.reset(),B.isMouseDown=!1,B.autoScroll=!0,C(b),mxEvent.consume(b))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(b){B.isMouseDown&&null!=B.graphHandler.first&&(B.graphHandler.resume(),
3441null!=B.graphHandler.hint&&(B.graphHandler.hint.style.visibility="visible"),k.style.backgroundColor="",k.style.cursor="",B.autoScroll=!0)}));Graph.fileSupport&&(mxEvent.addListener(k,"dragover",mxUtils.bind(this,function(b){k.style.backgroundColor="#f1f3f4";b.dataTransfer.dropEffect="copy";k.style.cursor="copy";this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()})),mxEvent.addListener(k,"drop",mxUtils.bind(this,function(b){k.style.cursor="";k.style.backgroundColor="";0<b.dataTransfer.files.length&&
3442this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(d,e,g,m,n,q,p,u,v){if(null!=d&&"image/"==e.substring(0,6))d="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image="+this.convertDataUri(d),d=[new mxCell("",new mxGeometry(0,0,n,q),d)],d[0].vertex=!0,K(d,new mxRectangle(0,0,n,q),b,mxEvent.isAltDown(b)?null:p.substring(0,p.lastIndexOf(".")).replace(/_/g," ")),null!=f&&null!=f.parentNode&&0<c.length&&(f.parentNode.removeChild(f),
3443f=null);else{var x=!1,t=mxUtils.bind(this,function(d,e){if(null!=d&&"application/pdf"==e){var g=Editor.extractGraphModelFromPdf(d);null!=g&&0<g.length&&(d=g)}if(null!=d)if(g=mxUtils.parseXml(d),"mxlibrary"==g.documentElement.nodeName)try{var m=JSON.parse(mxUtils.getTextContent(g.documentElement));l(m,k);c=c.concat(m);E(b);this.spinner.stop();x=!0}catch(Y){}else if("mxfile"==g.documentElement.nodeName)try{for(var n=g.documentElement.getElementsByTagName("diagram"),m=0;m<n.length;m++){var q=this.stringToCells(Editor.getDiagramNodeXml(n[m])),
3444p=this.editor.graph.getBoundingBoxFromGeometry(q);K(q,new mxRectangle(0,0,p.width,p.height),b)}x=!0}catch(Y){null!=window.console&&console.log("error in drop handler:",Y)}x||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=f&&null!=f.parentNode&&0<c.length&&(f.parentNode.removeChild(f),f=null)});null!=v&&null!=p&&(/(\.v(dx|sdx?))($|\?)/i.test(p)||/(\.vs(x|sx?))($|\?)/i.test(p))?this.importVisio(v,function(b){t(b,"text/xml")},null,p):!this.isOffline()&&(new XMLHttpRequest).upload&&
3445this.isRemoteFileFormat(d,p)&&null!=v?this.parseFile(v,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?t(b.responseText,"text/xml"):this.handleError({message:mxResources.get(413==b.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):t(d,e)}}));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(k,"dragleave",function(b){k.style.cursor="";k.style.backgroundColor="";b.stopPropagation();b.preventDefault()}));
3446t=t.cloneNode(!1);t.setAttribute("src",Editor.editImage);t.setAttribute("title",mxResources.get("edit"));p.insertBefore(t,p.firstChild);mxEvent.addListener(t,"click",M);mxEvent.addListener(k,"dblclick",function(b){mxEvent.getSource(b)==k&&M(b)});g=t.cloneNode(!1);g.setAttribute("src",Editor.plusImage);g.setAttribute("title",mxResources.get("add"));p.insertBefore(g,p.firstChild);mxEvent.addListener(g,"click",C);this.isOffline()||".scratchpad"!=b.title||null==EditorUi.scratchpadHelpLink||(g=document.createElement("span"),
3447g.setAttribute("title",mxResources.get("help")),g.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;cursor:pointer;",mxUtils.write(g,"?"),mxEvent.addGestureListeners(g,mxUtils.bind(this,function(b){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(b)})),p.insertBefore(g,p.firstChild))}q.appendChild(p);q.style.paddingRight=18*p.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=function(b,c){for(var d=0;d<b.length;d++){var f=b[d],e=f.data;if(null!=e){var e=this.convertDataUri(e),
3448g="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==f.aspect&&(g+="aspect=fixed;");c.appendChild(this.sidebar.createVertexTemplate(g+"image="+e,f.w,f.h,"",f.title||"",!1,!1,!0))}else null!=f.xml&&(e=this.stringToCells(Graph.decompress(f.xml)),0<e.length&&c.appendChild(this.sidebar.createVertexTemplateFromCells(e,f.w,f.h,f.title||"",!0,!1,!0)))}};EditorUi.prototype.getResource=function(b){return null!=b?b[mxLanguage]||b.main:null};EditorUi.prototype.footerHeight=
34490;"1"==urlParams.savesidebar&&(Sidebar.prototype.thumbWidth=64,Sidebar.prototype.thumbHeight=64);EditorUi.initTheme=function(){"atlas"==uiTheme?(mxClient.link("stylesheet",STYLE_PATH+"/atlas.css"),"undefined"!==typeof Toolbar&&(Toolbar.prototype.unselectedBackground="linear-gradient(rgb(255, 255, 255) 0px, rgb(242, 242, 242) 100%)",Toolbar.prototype.selectedBackground="rgb(242, 242, 242)"),Editor.prototype.initialTopSpacing=3,EditorUi.prototype.menubarHeight=41,EditorUi.prototype.toolbarHeight=38):
3450Editor.isDarkMode()&&(mxClient.link("stylesheet",STYLE_PATH+"/dark.css"),Dialog.backdropColor=Editor.darkColor,Format.inactiveTabBackgroundColor="black",Graph.prototype.defaultThemeName="darkTheme",Graph.prototype.shapeBackgroundColor=Editor.darkColor,Graph.prototype.shapeForegroundColor=Editor.lightColor,Graph.prototype.defaultPageBackgroundColor=Editor.darkColor,Graph.prototype.defaultPageBorderColor="#505759",BaseFormatPanel.prototype.buttonBackgroundColor=Editor.darkColor,mxGraphHandler.prototype.previewColor=
3451"#cccccc",StyleFormatPanel.prototype.defaultStrokeColor="#cccccc",mxConstants.DROP_TARGET_COLOR="#00ff00");Editor.sketchFontFamily="Architects Daughter";Editor.sketchFontSource="https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter";"1"==urlParams.sketch&&(Graph.prototype.defaultVertexStyle={hachureGap:"4"},Graph.prototype.defaultEdgeStyle={edgeStyle:"none",rounded:"0",curved:"1",jettySize:"auto",orthogonalLoop:"1",endArrow:"open",startSize:"14",endSize:"14",sourcePerimeterSpacing:"8",
3452targetPerimeterSpacing:"8"},Editor.configurationKey=".sketch-configuration",Editor.settingsKey=".sketch-config",Graph.prototype.defaultGridEnabled="1"==urlParams.grid,Graph.prototype.defaultPageVisible="1"==urlParams.pv,Graph.prototype.defaultEdgeLength=120,Editor.fitWindowBorders=new mxRectangle(60,30,30,30))};EditorUi.initTheme();EditorUi.prototype.showImageDialog=function(b,c,e,g,k){b=new ImageDialog(this,b,c,e,g,k);this.showDialog(b.container,Graph.fileSupport?480:360,Graph.fileSupport?200:90,
3453!0,!0);b.init()};EditorUi.prototype.showBackgroundImageDialog=function(b,c){b=null!=b?b:mxUtils.bind(this,function(b,d){if(!d){var c=new ChangePageSetup(this,null,b);c.ignoreColor=!0;this.editor.graph.model.execute(c)}});var d=new BackgroundImageDialog(this,b,c);this.showDialog(d.container,360,200,!0,!0);d.init()};EditorUi.prototype.showLibraryDialog=function(b,c,e,g,k){b=new LibraryDialog(this,b,c,e,g,k);this.showDialog(b.container,640,440,!0,!1,mxUtils.bind(this,function(b){b&&null==this.getCurrentFile()&&
3454"1"!=urlParams.embed&&this.showSplash()}));b.init()};var e=EditorUi.prototype.createFormat;EditorUi.prototype.createFormat=function(b){var d=e.apply(this,arguments);this.editor.graph.addListener("viewStateChanged",mxUtils.bind(this,function(b){this.editor.graph.isSelectionEmpty()&&d.refresh()}));return d};EditorUi.prototype.createSidebarFooterContainer=function(){var b=this.createDiv("geSidebarContainer geSidebarFooter");b.style.position="absolute";b.style.overflow="hidden";var c=document.createElement("a");
3455c.className="geTitle";c.style.color="#DF6C0C";c.style.fontWeight="bold";c.style.height="100%";c.style.paddingTop="9px";c.innerHTML="<span>+</span>";var e=c.getElementsByTagName("span")[0];e.style.fontSize="18px";e.style.marginRight="5px";mxUtils.write(c,mxResources.get("moreShapes")+"...");mxEvent.addListener(c,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(b){b.preventDefault()}));mxEvent.addListener(c,"click",mxUtils.bind(this,function(b){this.actions.get("shapes").funct();
3456mxEvent.consume(b)}));b.appendChild(c);return b};EditorUi.prototype.handleError=function(b,c,e,g,k,n,p){var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=null!=b&&null!=b.error?b.error:b;if(null!=b&&null!=b.stack&&null!=b.message)try{p?null!=window.console&&console.error("EditorUi.handleError:",b):EditorUi.logError("Caught: "+(""==b.message&&null!=b.name)?b.name:b.message,b.filename,b.lineNumber,b.columnNumber,b,"INFO")}catch(F){}if(null!=f||null!=c){p=mxUtils.htmlEntities(mxResources.get("unknownError"));
3457var l=mxResources.get("ok"),m=null;c=null!=c?c:mxResources.get("error");if(null!=f){null!=f.retry&&(l=mxResources.get("cancel"),m=function(){d();f.retry()});if(404==f.code||404==f.status||403==f.code){p=403==f.code?null!=f.message?mxUtils.htmlEntities(f.message):mxUtils.htmlEntities(mxResources.get("accessDenied")):null!=k?k:mxUtils.htmlEntities(mxResources.get("fileNotFoundOrDenied")+(null!=this.drive&&null!=this.drive.user?" ("+this.drive.user.displayName+", "+this.drive.user.email+")":""));var q=
3458null!=k?null:null!=n?n:window.location.hash;if(null!=q&&("#G"==q.substring(0,2)||"#Uhttps%3A%2F%2Fdrive.google.com%2Fuc%3Fid%3D"==q.substring(0,45))&&(null!=b&&null!=b.error&&(null!=b.error.errors&&0<b.error.errors.length&&"fileAccess"==b.error.errors[0].reason||null!=b.error.data&&0<b.error.data.length&&"fileAccess"==b.error.data[0].reason)||404==f.code||404==f.status)){q="#U"==q.substring(0,2)?q.substring(45,q.lastIndexOf("%26ex")):q.substring(2);this.showError(c,p,mxResources.get("openInNewWindow"),
3459mxUtils.bind(this,function(){this.editor.graph.openLink("https://drive.google.com/open?id="+q);this.handleError(b,c,e,g,k)}),m,mxResources.get("changeUser"),mxUtils.bind(this,function(){function b(){e.innerHTML="";for(var b=0;b<d.length;b++){var c=document.createElement("option");mxUtils.write(c,d[b].displayName);c.value=b;e.appendChild(c);c=document.createElement("option");c.innerHTML="&nbsp;&nbsp;&nbsp;";mxUtils.write(c,"<"+d[b].email+">");c.setAttribute("disabled","disabled");e.appendChild(c)}c=
3460document.createElement("option");mxUtils.write(c,mxResources.get("addAccount"));c.value=d.length;e.appendChild(c)}var d=this.drive.getUsersList(),c=document.createElement("div"),f=document.createElement("span");f.style.marginTop="6px";mxUtils.write(f,mxResources.get("changeUser")+": ");c.appendChild(f);var e=document.createElement("select");e.style.width="200px";b();mxEvent.addListener(e,"change",mxUtils.bind(this,function(){var c=e.value,f=d.length!=c;f&&this.drive.setUser(d[c]);this.drive.authorize(f,
3461mxUtils.bind(this,function(){f||(d=this.drive.getUsersList(),b())}),mxUtils.bind(this,function(b){this.handleError(b)}),!0)}));c.appendChild(e);c=new CustomDialog(this,c,mxUtils.bind(this,function(){this.loadFile(window.location.hash.substr(1),!0)}));this.showDialog(c.container,300,100,!0,!0)}),mxResources.get("cancel"),mxUtils.bind(this,function(){this.hideDialog();null!=e&&e()}),480,150);return}}null!=f.message?p=""==f.message&&null!=f.name?mxUtils.htmlEntities(f.name):mxUtils.htmlEntities(f.message):
3462null!=f.response&&null!=f.response.error?p=mxUtils.htmlEntities(f.response.error):"undefined"!==typeof window.App&&(f.code==App.ERROR_TIMEOUT?p=mxUtils.htmlEntities(mxResources.get("timeout")):f.code==App.ERROR_BUSY?p=mxUtils.htmlEntities(mxResources.get("busy")):"string"===typeof f&&0<f.length&&(p=mxUtils.htmlEntities(f)))}var u=n=null;null!=f&&null!=f.helpLink?(n=mxResources.get("help"),u=mxUtils.bind(this,function(){return this.editor.graph.openLink(f.helpLink)})):null!=f&&null!=f.ownerEmail&&
3463(n=mxResources.get("contactOwner"),p+=mxUtils.htmlEntities(" ("+n+": "+f.ownerEmail+")"),u=mxUtils.bind(this,function(){return this.openLink("mailto:"+mxUtils.htmlEntities(f.ownerEmail))}));this.showError(c,p,l,e,m,null,null,n,u,null,null,null,g?e:null)}else null!=e&&e()};EditorUi.prototype.alert=function(b,c,e){b=new ErrorDialog(this,null,b,mxResources.get("ok"),c);this.showDialog(b.container,e||340,100,!0,!1);b.init()};EditorUi.prototype.confirm=function(b,c,e,g,k,n){var d=null!=this.spinner&&null!=
3464this.spinner.pause?this.spinner.pause():function(){},f=Math.min(200,28*Math.ceil(b.length/50));b=new ConfirmDialog(this,b,function(){d();null!=c&&c()},function(){d();null!=e&&e()},g,k,null,null,null,null,f);this.showDialog(b.container,340,46+f,!0,n);b.init()};EditorUi.prototype.showBanner=function(b,c,e,g){var d=!1;if(!(this.bannerShowing||this["hideBanner"+b]||isLocalStorage&&null!=mxSettings.settings&&null!=mxSettings.settings["close"+b])){var f=document.createElement("div");f.style.cssText="position:absolute;bottom:10px;left:50%;max-width:90%;padding:18px 34px 12px 20px;font-size:16px;font-weight:bold;white-space:nowrap;cursor:pointer;z-index:"+
3465mxPopupMenu.prototype.zIndex+";";mxUtils.setPrefixedStyle(f.style,"box-shadow","1px 1px 2px 0px #ddd");mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,120%)");mxUtils.setPrefixedStyle(f.style,"transition","all 1s ease");f.className="geBtn gePrimaryBtn";d=document.createElement("img");d.setAttribute("src",IMAGE_PATH+"/logo.png");d.setAttribute("border","0");d.setAttribute("align","absmiddle");d.style.cssText="margin-top:-4px;margin-left:8px;margin-right:12px;width:26px;height:26px;";f.appendChild(d);
3466d=document.createElement("img");d.setAttribute("src",Dialog.prototype.closeImage);d.setAttribute("title",mxResources.get(g?"doNotShowAgain":"close"));d.setAttribute("border","0");d.style.cssText="position:absolute;right:10px;top:12px;filter:invert(1);padding:6px;margin:-6px;cursor:default;";f.appendChild(d);mxUtils.write(f,c);document.body.appendChild(f);this.bannerShowing=!0;c=document.createElement("div");c.style.cssText="font-size:11px;text-align:center;font-weight:normal;";var l=document.createElement("input");
3467l.setAttribute("type","checkbox");l.setAttribute("id","geDoNotShowAgainCheckbox");l.style.marginRight="6px";if(!g){c.appendChild(l);var k=document.createElement("label");k.setAttribute("for","geDoNotShowAgainCheckbox");mxUtils.write(k,mxResources.get("doNotShowAgain"));c.appendChild(k);f.style.paddingBottom="30px";f.appendChild(c)}var q=mxUtils.bind(this,function(){null!=f.parentNode&&(f.parentNode.removeChild(f),this.bannerShowing=!1,l.checked||g)&&(this["hideBanner"+b]=!0,isLocalStorage&&null!=
3468mxSettings.settings&&(mxSettings.settings["close"+b]=Date.now(),mxSettings.save()))});mxEvent.addListener(d,"click",mxUtils.bind(this,function(b){mxEvent.consume(b);q()}));var p=mxUtils.bind(this,function(){mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,120%)");window.setTimeout(mxUtils.bind(this,function(){q()}),1E3)});mxEvent.addListener(f,"click",mxUtils.bind(this,function(b){var d=mxEvent.getSource(b);d!=l&&d!=k?(null!=e&&e(),q(),mxEvent.consume(b)):p()}));window.setTimeout(mxUtils.bind(this,
3469function(){mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,0%)")}),500);window.setTimeout(p,3E4);d=!0}return d};EditorUi.prototype.setCurrentFile=function(b){null!=b&&(b.opened=new Date);this.currentFile=b};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isExportToCanvas=function(){return this.editor.isExportToCanvas()};EditorUi.prototype.createImageDataUri=function(b,c,e,g){b=b.toDataURL("image/"+e);if(null!=b&&6<b.length)null!=c&&(b=Editor.writeGraphModelToPng(b,
3470"tEXt","mxfile",encodeURIComponent(c))),0<g&&(b=Editor.writeGraphModelToPng(b,"pHYs","dpi",g));else throw{message:mxResources.get("unknownError")};return b};EditorUi.prototype.saveCanvas=function(b,c,e,g,k){var d="jpeg"==e?"jpg":e;g=this.getBaseFilename(g)+(null!=c?".drawio":"")+"."+d;b=this.createImageDataUri(b,c,e,k);this.saveData(g,d,b.substring(b.lastIndexOf(",")+1),"image/"+e,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&
3471"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode||this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.showTextDialog=function(b,c){var d=new TextareaDialog(this,b,c,null,null,mxResources.get("close"));d.textarea.style.width="600px";d.textarea.style.height="380px";this.showDialog(d.container,620,460,!0,!0,null,null,null,null,!0);d.init();document.execCommand("selectall",!1,null)};EditorUi.prototype.doSaveLocalFile=function(b,c,e,g,
3472k,n){"text/xml"!=e||/(\.drawio)$/i.test(c)||/(\.xml)$/i.test(c)||/(\.svg)$/i.test(c)||/(\.html)$/i.test(c)||(c=c+"."+(null!=n?n:"drawio"));if(window.Blob&&navigator.msSaveOrOpenBlob)b=g?this.base64ToBlob(b,e):new Blob([b],{type:e}),navigator.msSaveOrOpenBlob(b,c);else if(mxClient.IS_IE)e=window.open("about:blank","_blank"),null==e?mxUtils.popup(b,!0):(e.document.write(b),e.document.close(),e.document.execCommand("SaveAs",!0,c),e.close());else if(mxClient.IS_IOS&&this.isOffline())navigator.standalone||
3473null==e||"image/"!=e.substring(0,6)?this.showTextDialog(c+":",b):this.openInNewWindow(b,e,g);else{var d=document.createElement("a");n=(null==navigator.userAgent||0>navigator.userAgent.indexOf("PaleMoon/"))&&"undefined"!==typeof d.download;if(mxClient.IS_GC&&null!=navigator.userAgent){var f=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);n=65==(f?parseInt(f[2],10):!1)?!1:n}if(n||this.isOffline()){d.href=URL.createObjectURL(g?this.base64ToBlob(b,e):new Blob([b],{type:e}));n?d.download=c:d.setAttribute("target",
3474"_blank");document.body.appendChild(d);try{window.setTimeout(function(){URL.revokeObjectURL(d.href)},2E4),d.click(),d.parentNode.removeChild(d)}catch(y){}}else this.createEchoRequest(b,c,e,g,k).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(b,c,e,g,k,n){b="xml="+encodeURIComponent(b);return new mxXmlRequest(SAVE_URL,b+(null!=e?"&mime="+e:"")+(null!=k?"&format="+k:"")+(null!=n?"&base64="+n:"")+(null!=c?"&filename="+encodeURIComponent(c):"")+(g?"&binary=1":""))};EditorUi.prototype.base64ToBlob=
3475function(b,c){c=c||"";for(var d=atob(b),e=d.length,f=Math.ceil(e/1024),g=Array(f),k=0;k<f;++k){for(var p=1024*k,t=Math.min(p+1024,e),x=Array(t-p),D=0;p<t;++D,++p)x[D]=d[p].charCodeAt(0);g[k]=new Uint8Array(x)}return new Blob(g,{type:c})};EditorUi.prototype.saveLocalFile=function(b,c,e,g,k,n,p,v){n=null!=n?n:!1;p=null!=p?p:"vsdx"!=k&&(!mxClient.IS_IOS||!navigator.standalone);k=this.getServiceCount(n);isLocalStorage&&k++;var d=4>=k?2:6<k?4:3;c=new CreateDialog(this,c,mxUtils.bind(this,function(d,c){try{if("_blank"==
3476c)if(null!=e&&"image/"==e.substring(0,6))this.openInNewWindow(b,e,g);else if(null!=e&&"text/html"==e.substring(0,9)){var f=new EmbedDialog(this,b);this.showDialog(f.container,450,240,!0,!0);f.init()}else{var l=window.open("about:blank");null==l?mxUtils.popup(b,!0):(l.document.write("<pre>"+mxUtils.htmlEntities(b,!1)+"</pre>"),l.document.close())}else c==App.MODE_DEVICE||"download"==c?this.doSaveLocalFile(b,d,e,g,null,v):null!=d&&0<d.length&&this.pickFolder(c,mxUtils.bind(this,function(f){try{this.exportFile(b,
3477d,e,g,c,f)}catch(M){this.handleError(M)}}))}catch(F){this.handleError(F)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,n,p,null,1<k,d,b,e,g);n=this.isServices(k)?k>d?390:270:160;this.showDialog(c.container,420,n,!0,!0);c.init()};EditorUi.prototype.openInNewWindow=function(b,c,e){var d=window.open("about:blank");null==d||null==d.document?mxUtils.popup(b,!0):("image/svg+xml"!=c||mxClient.IS_SVG?"image/svg+xml"==c?d.document.write("<html>"+
3478b+"</html>"):(b=e?b:btoa(unescape(encodeURIComponent(b))),d.document.write('<html><img style="max-width:100%;" src="data:'+c+";base64,"+b+'"/></html>')):d.document.write("<html><pre>"+mxUtils.htmlEntities(b,!1)+"</pre></html>"),d.document.close())};var k=EditorUi.prototype.addChromelessToolbarItems;EditorUi.prototype.isChromelessImageExportEnabled=function(){return"draw.io"!=this.getServiceName()||/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname)};
3479EditorUi.prototype.addChromelessToolbarItems=function(b){if(null!=urlParams.tags){this.tagsDialog=this.tagsComponent=null;var d=b(mxUtils.bind(this,function(b){null==this.tagsComponent&&(this.tagsComponent=this.editor.graph.createTagsDialog(mxUtils.bind(this,function(){return null!=this.tagsDialog}),!0),this.tagsComponent.div.getElementsByTagName("div")[0].style.position="",mxUtils.setPrefixedStyle(this.tagsComponent.div.style,"borderRadius","5px"),this.tagsComponent.div.className="geScrollable",
3480this.tagsComponent.div.style.maxHeight="160px",this.tagsComponent.div.style.maxWidth="120px",this.tagsComponent.div.style.padding="4px",this.tagsComponent.div.style.overflow="auto",this.tagsComponent.div.style.height="auto",this.tagsComponent.div.style.position="fixed",this.tagsComponent.div.style.fontFamily=Editor.defaultHtmlFont,mxClient.IS_IE||mxClient.IS_IE11?(this.tagsComponent.div.style.backgroundColor="#ffffff",this.tagsComponent.div.style.border="2px solid black",this.tagsComponent.div.style.color=
3481"#000000"):(this.tagsComponent.div.style.backgroundColor="#000000",this.tagsComponent.div.style.color="#ffffff",mxUtils.setOpacity(this.tagsComponent.div,80)));if(null!=this.tagsDialog)this.tagsDialog.parentNode.removeChild(this.tagsDialog),this.tagsDialog=null;else{this.tagsDialog=this.tagsComponent.div;mxEvent.addListener(this.tagsDialog,"mouseleave",mxUtils.bind(this,function(){null!=this.tagsDialog&&(this.tagsDialog.parentNode.removeChild(this.tagsDialog),this.tagsDialog=null)}));var c=d.getBoundingClientRect();
3482this.tagsDialog.style.left=c.left+"px";this.tagsDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+this.chromelessToolbar.offsetHeight+4+"px";c=mxUtils.getCurrentStyle(this.editor.graph.container);this.tagsDialog.style.zIndex=c.zIndex;document.body.appendChild(this.tagsDialog);this.tagsComponent.refresh();this.editor.fireEvent(new mxEventObject("tagsDialogShown"))}mxEvent.consume(b)}),Editor.tagsImage,mxResources.get("tags"));this.editor.graph.getModel().addListener(mxEvent.CHANGE,
3483mxUtils.bind(this,function(){var b=this.editor.graph.getAllTags();d.style.display=0<b.length?"":"none"}))}k.apply(this,arguments);this.editor.addListener("tagsDialogShown",mxUtils.bind(this,function(){null!=this.layersDialog&&(this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null)}));this.editor.addListener("layersDialogShown",mxUtils.bind(this,function(){null!=this.tagsDialog&&(this.tagsDialog.parentNode.removeChild(this.tagsDialog),this.tagsDialog=null)}));this.editor.addListener("pageSelected",
3484mxUtils.bind(this,function(){null!=this.tagsDialog&&(this.tagsDialog.parentNode.removeChild(this.tagsDialog),this.tagsDialog=null);null!=this.layersDialog&&(this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null)}));mxEvent.addListener(this.editor.graph.container,"click",mxUtils.bind(this,function(){null!=this.tagsDialog&&(this.tagsDialog.parentNode.removeChild(this.tagsDialog),this.tagsDialog=null);null!=this.layersDialog&&(this.layersDialog.parentNode.removeChild(this.layersDialog),
3485this.layersDialog=null)}));if(this.isExportToCanvas()&&this.isChromelessImageExportEnabled()){this.exportDialog=null;var c=b(mxUtils.bind(this,function(b){var d=mxUtils.bind(this,function(){mxEvent.removeListener(this.editor.graph.container,"click",d);null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null)});if(null!=this.exportDialog)d.apply(this);else{this.exportDialog=document.createElement("div");var e=c.getBoundingClientRect();mxUtils.setPrefixedStyle(this.exportDialog.style,
3486"borderRadius","5px");this.exportDialog.style.position="fixed";this.exportDialog.style.textAlign="center";this.exportDialog.style.fontFamily=Editor.defaultHtmlFont;this.exportDialog.style.backgroundColor="#000000";this.exportDialog.style.width="50px";this.exportDialog.style.height="50px";this.exportDialog.style.padding="4px 2px 4px 2px";this.exportDialog.style.color="#ffffff";mxUtils.setOpacity(this.exportDialog,70);this.exportDialog.style.left=e.left+"px";this.exportDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+
3487this.chromelessToolbar.offsetHeight+4+"px";e=mxUtils.getCurrentStyle(this.editor.graph.container);this.exportDialog.style.zIndex=e.zIndex;var f=new Spinner({lines:8,length:6,width:5,radius:6,rotate:0,color:"#fff",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"28px",zIndex:2E9});f.spin(this.exportDialog);this.editor.exportToCanvas(mxUtils.bind(this,function(b){f.stop();this.exportDialog.style.width="auto";this.exportDialog.style.height="auto";this.exportDialog.style.padding="10px";var c=this.createImageDataUri(b,
3488null,"png");b=document.createElement("img");b.style.maxWidth="140px";b.style.maxHeight="140px";b.style.cursor="pointer";b.style.backgroundColor="white";b.setAttribute("title",mxResources.get("openInNewWindow"));b.setAttribute("border","0");b.setAttribute("src",c);this.exportDialog.appendChild(b);mxEvent.addListener(b,"click",mxUtils.bind(this,function(){this.openInNewWindow(c.substring(c.indexOf(",")+1),"image/png",!0);d.apply(this,arguments)}))}),null,this.thumbImageCache,null,mxUtils.bind(this,
3489function(b){this.spinner.stop();this.handleError(b)}),null,null,null,null,null,null,null,Editor.defaultBorder);mxEvent.addListener(this.editor.graph.container,"click",d);document.body.appendChild(this.exportDialog)}mxEvent.consume(b)}),Editor.cameraImage,mxResources.get("export"))}};EditorUi.prototype.saveData=function(b,c,e,g,k){this.isLocalFileSave()?this.saveLocalFile(e,b,g,k,c):this.saveRequest(b,c,mxUtils.bind(this,function(b,d){return this.createEchoRequest(e,b,g,k,c,d)}),e,k,g)};EditorUi.prototype.saveRequest=
3490function(b,c,e,g,k,n,p){p=null!=p?p:!mxClient.IS_IOS||!navigator.standalone;var d=this.getServiceCount(!1);isLocalStorage&&d++;var f=4>=d?2:6<d?4:3;b=new CreateDialog(this,b,mxUtils.bind(this,function(b,d){if("_blank"==d||null!=b&&0<b.length){var f=e("_blank"==d?null:b,d==App.MODE_DEVICE||"download"==d||null==d||"_blank"==d?"0":"1");null!=f&&(d==App.MODE_DEVICE||"download"==d||"_blank"==d?f.simulate(document,"_blank"):this.pickFolder(d,mxUtils.bind(this,function(e){n=null!=n?n:"pdf"==c?"application/pdf":
3491"image/"+c;if(null!=g)try{this.exportFile(g,b,n,!0,d,e)}catch(F){this.handleError(F)}else this.spinner.spin(document.body,mxResources.get("saving"))&&f.send(mxUtils.bind(this,function(){this.spinner.stop();if(200<=f.getStatus()&&299>=f.getStatus())try{this.exportFile(f.getText(),b,n,!0,d,e)}catch(F){this.handleError(F)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(b){this.spinner.stop();this.handleError(b)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),
3492mxResources.get("saveAs"),mxResources.get("download"),!1,!1,p,null,1<d,f,g,n,k);d=this.isServices(d)?4<d?390:270:160;this.showDialog(b.container,420,d,!0,!0);b.init()};EditorUi.prototype.isServices=function(b){return 1!=b};EditorUi.prototype.getEditBlankXml=function(){return this.getFileData(!0)};EditorUi.prototype.exportFile=function(b,c,e,g,k,n){};EditorUi.prototype.pickFolder=function(b,c,e){c(null)};EditorUi.prototype.exportSvg=function(b,c,e,g,k,n,p,v,t,x,D,I,B,F){if(this.spinner.spin(document.body,
3493mxResources.get("export")))try{var d=this.editor.graph.isSelectionEmpty();e=null!=e?e:d;var f=c?null:this.editor.graph.background;f==mxConstants.NONE&&(f=null);null==f&&0==c&&(f=D?this.editor.graph.defaultPageBackgroundColor:"#ffffff");var l=this.editor.graph.getSvg(f,b,p,v,null,e,null,null,"blank"==x?"_blank":"self"==x?"_top":null,null,!0,D,I);g&&this.editor.graph.addSvgShadow(l);var m=this.getBaseFilename()+(k?".drawio":"")+".svg";F=null!=F?F:mxUtils.bind(this,function(b){this.isLocalFileSave()||
3494b.length<=MAX_REQUEST_SIZE?this.saveData(m,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}))});var q=mxUtils.bind(this,function(b){this.spinner.stop();k&&b.setAttribute("content",this.getFileData(!0,null,null,null,e,t,null,null,null,!1));F(Graph.xmlDeclaration+"\n"+(k?Graph.svgFileComment+"\n":"")+Graph.svgDoctype+"\n"+mxUtils.getXml(b))});this.editor.graph.mathEnabled&&this.editor.addMathCss(l);
3495var u=mxUtils.bind(this,function(b){n?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.editor.convertImages(b,q,this.thumbImageCache)):q(b)});B?this.embedFonts(l,u):(this.editor.addFontCss(l),u(l))}catch(ea){this.handleError(ea)}};EditorUi.prototype.addRadiobox=function(b,c,e,g,k,n,p){return this.addCheckbox(b,e,g,k,n,p,!0,c)};EditorUi.prototype.addCheckbox=function(b,c,e,g,k,n,p,t){n=null!=n?n:!0;var d=document.createElement("input");d.style.marginRight="8px";d.style.marginTop="16px";
3496d.setAttribute("type",p?"radio":"checkbox");p="geCheckbox-"+Editor.guid();d.id=p;null!=t&&d.setAttribute("name",t);e&&(d.setAttribute("checked","checked"),d.defaultChecked=!0);g&&d.setAttribute("disabled","disabled");n&&(b.appendChild(d),e=document.createElement("label"),mxUtils.write(e,c),e.setAttribute("for",p),b.appendChild(e),k||mxUtils.br(b));return d};EditorUi.prototype.addEditButton=function(b,c){var d=this.addCheckbox(b,mxResources.get("edit")+":",!0,null,!0);d.style.marginLeft="24px";var e=
3497this.getCurrentFile(),f="";null!=e&&e.getMode()!=App.MODE_DEVICE&&e.getMode()!=App.MODE_BROWSER&&(f=window.location.href);var g=document.createElement("select");g.style.width="120px";g.style.marginLeft="8px";g.style.marginRight="10px";g.className="geBtn";e=document.createElement("option");e.setAttribute("value","blank");mxUtils.write(e,mxResources.get("makeCopy"));g.appendChild(e);e=document.createElement("option");e.setAttribute("value","custom");mxUtils.write(e,mxResources.get("custom")+"...");
3498g.appendChild(e);b.appendChild(g);mxEvent.addListener(g,"change",mxUtils.bind(this,function(){if("custom"==g.value){var b=new FilenameDialog(this,f,mxResources.get("ok"),function(b){null!=b?f=b:g.value="blank"},mxResources.get("url"),null,null,null,null,function(){g.value="blank"});this.showDialog(b.container,300,80,!0,!1);b.init()}}));mxEvent.addListener(d,"change",mxUtils.bind(this,function(){d.checked&&(null==c||c.checked)?g.removeAttribute("disabled"):g.setAttribute("disabled","disabled")}));
3499mxUtils.br(b);return{getLink:function(){return d.checked?"blank"===g.value?"_blank":f:null},getEditInput:function(){return d},getEditSelect:function(){return g}}};EditorUi.prototype.addLinkSection=function(b,c){function d(){k.innerHTML='<div style="width:100%;height:100%;box-sizing:border-box;'+(null!=g&&g!=mxConstants.NONE?"border:1px solid black;background-color:"+g:"background-position:center center;background-repeat:no-repeat;background-image:url('"+Dialog.prototype.closeImage+"')")+';"></div>'}
3500mxUtils.write(b,mxResources.get("links")+":");var e=document.createElement("select");e.style.width="100px";e.style.marginLeft="8px";e.style.marginRight="10px";e.className="geBtn";var f=document.createElement("option");f.setAttribute("value","auto");mxUtils.write(f,mxResources.get("automatic"));e.appendChild(f);f=document.createElement("option");f.setAttribute("value","blank");mxUtils.write(f,mxResources.get("openInNewWindow"));e.appendChild(f);f=document.createElement("option");f.setAttribute("value",
3501"self");mxUtils.write(f,mxResources.get("openInThisWindow"));e.appendChild(f);c&&(f=document.createElement("option"),f.setAttribute("value","frame"),mxUtils.write(f,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),e.appendChild(f));b.appendChild(e);mxUtils.write(b,mxResources.get("borderColor")+":");var g="#0000ff",k=null,k=mxUtils.button("",mxUtils.bind(this,function(b){this.pickColor(g||"none",function(b){g=b;d()});mxEvent.consume(b)}));d();k.style.padding=mxClient.IS_FF?
3502"4px 2px 4px 2px":"4px";k.style.marginLeft="4px";k.style.height="22px";k.style.width="22px";k.style.position="relative";k.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";k.className="geColorBtn";b.appendChild(k);mxUtils.br(b);return{getColor:function(){return g},getTarget:function(){return e.value},focus:function(){e.focus()}}};EditorUi.prototype.createUrlParameters=function(b,c,e,g,k,n,p){p=null!=p?p:[];g&&("https://viewer.diagrams.net"==EditorUi.lightboxHost&&"1"!=urlParams.dev||
3503p.push("lightbox=1"),"auto"!=b&&p.push("target="+b),null!=c&&c!=mxConstants.NONE&&p.push("highlight="+("#"==c.charAt(0)?c.substring(1):c)),null!=k&&0<k.length&&p.push("edit="+encodeURIComponent(k)),n&&p.push("layers=1"),this.editor.graph.foldingEnabled&&p.push("nav=1"));e&&null!=this.currentPage&&null!=this.pages&&this.currentPage!=this.pages[0]&&p.push("page-id="+this.currentPage.getId());return p};EditorUi.prototype.createLink=function(b,c,e,g,k,n,p,t,y,x){y=this.createUrlParameters(b,c,e,g,k,n,
3504y);b=this.getCurrentFile();c=!0;null!=p?e="#U"+encodeURIComponent(p):(b=this.getCurrentFile(),t||null==b||b.constructor!=window.DriveFile?e="#R"+encodeURIComponent(e?this.getFileData(!0,null,null,null,null,null,null,!0,null,!1):Graph.compress(mxUtils.getXml(this.editor.getGraphXml()))):(e="#"+b.getHash(),c=!1));c&&null!=b&&null!=b.getTitle()&&b.getTitle()!=this.defaultFilename&&y.push("title="+encodeURIComponent(b.getTitle()));x&&1<e.length&&(y.push("open="+e.substring(1)),e="");return(g&&"1"!=urlParams.dev?
3505EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?EditorUi.drawHost:"https://"+window.location.host)+"/"+(0<y.length?"?"+y.join("&"):"")+e};EditorUi.prototype.createHtml=function(b,c,e,g,k,n,p,t,y,x,D,I){this.getBasenames();var d={};""!=k&&k!=mxConstants.NONE&&(d.highlight=k);"auto"!==g&&(d.target=g);x||(d.lightbox=!1);d.nav=this.editor.graph.foldingEnabled;e=parseInt(e);isNaN(e)||100==e||(d.zoom=e/100);e=[];p&&(e.push("pages"),d.resize=
3506!0,null!=this.pages&&null!=this.currentPage&&(d.page=mxUtils.indexOf(this.pages,this.currentPage)));c&&(e.push("zoom"),d.resize=!0);t&&e.push("layers");y&&e.push("tags");0<e.length&&(x&&e.push("lightbox"),d.toolbar=e.join(" "));null!=D&&0<D.length&&(d.edit=D);null!=b?d.url=b:d.xml=this.getFileData(!0,null,null,null,null,!p);c='<div class="mxgraph" style="'+(n?"max-width:100%;":"")+(""!=e?"border:1px solid transparent;":"")+'" data-mxgraph="'+mxUtils.htmlEntities(JSON.stringify(d))+'"></div>';b=null!=
3507b?"&fetch="+encodeURIComponent(b):"";I(c,'<script type="text/javascript" src="'+(0<b.length?("1"==urlParams.dev?"https://test.draw.io/embed2.js?dev=1":EditorUi.lightboxHost+"/embed2.js?")+b:"1"==urlParams.dev?"https://test.draw.io/js/viewer-static.min.js":window.DRAWIO_VIEWER_URL?window.DRAWIO_VIEWER_URL:EditorUi.lightboxHost+"/js/viewer-static.min.js")+'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(b,c,e,g){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");
3508mxUtils.write(f,mxResources.get("html"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(f);var l=document.createElement("div");l.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var k=document.createElement("input");k.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";k.setAttribute("value","url");k.setAttribute("type","radio");k.setAttribute("name","type-embedhtmldialog");f=k.cloneNode(!0);f.setAttribute("value",
3509"copy");l.appendChild(f);var q=document.createElement("span");mxUtils.write(q,mxResources.get("includeCopyOfMyDiagram"));l.appendChild(q);mxUtils.br(l);l.appendChild(k);q=document.createElement("span");mxUtils.write(q,mxResources.get("publicDiagramUrl"));l.appendChild(q);var p=this.getCurrentFile();null==e&&null!=p&&p.constructor==window.DriveFile&&(q=document.createElement("a"),q.style.paddingLeft="12px",q.style.color="gray",q.style.cursor="pointer",mxUtils.write(q,mxResources.get("share")),l.appendChild(q),
3510mxEvent.addListener(q,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(p.getId())})));f.setAttribute("checked","checked");null==e&&k.setAttribute("disabled","disabled");d.appendChild(l);var t=this.addLinkSection(d),I=this.addCheckbox(d,mxResources.get("zoom"),!0,null,!0);mxUtils.write(d,":");var B=document.createElement("input");B.setAttribute("type","text");B.style.marginRight="16px";B.style.width="60px";B.style.marginLeft="4px";B.style.marginRight="12px";B.value=
3511"100%";d.appendChild(B);var F=this.addCheckbox(d,mxResources.get("fit"),!0),l=null!=this.pages&&1<this.pages.length,M=M=this.addCheckbox(d,mxResources.get("allPages"),l,!l),E=this.addCheckbox(d,mxResources.get("layers"),!0),K=this.addCheckbox(d,mxResources.get("tags"),!0),C=this.addCheckbox(d,mxResources.get("lightbox"),!0),L=this.addEditButton(d,C),O=L.getEditInput();O.style.marginBottom="16px";mxEvent.addListener(C,"change",function(){C.checked?O.removeAttribute("disabled"):O.setAttribute("disabled",
3512"disabled");O.checked&&C.checked?L.getEditSelect().removeAttribute("disabled"):L.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){g(k.checked?e:null,I.checked,B.value,t.getTarget(),t.getColor(),F.checked,M.checked,E.checked,K.checked,C.checked,L.getLink())}),null,b,c);this.showDialog(b.container,340,430,!0,!0);f.focus()};EditorUi.prototype.showPublishLinkDialog=function(b,c,e,g,k,n,p){var d=document.createElement("div");d.style.whiteSpace=
3513"nowrap";var f=document.createElement("h3");mxUtils.write(f,b||mxResources.get("link"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(f);var l=this.getCurrentFile();b=0;if(null==l||l.constructor!=window.DriveFile||c)p=null!=p?p:"https://www.diagrams.net/doc/faq/publish-diagram-as-link";else{b=80;p=null!=p?p:"https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram";f=document.createElement("div");f.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";
3514var m=document.createElement("div");m.style.whiteSpace="normal";mxUtils.write(m,mxResources.get("linkAccountRequired"));f.appendChild(m);m=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(l.getId())}));m.style.marginTop="12px";m.className="geBtn";f.appendChild(m);d.appendChild(f);m=document.createElement("a");m.style.paddingLeft="12px";m.style.color="gray";m.style.fontSize="11px";m.style.cursor="pointer";mxUtils.write(m,mxResources.get("check"));f.appendChild(m);
3515mxEvent.addListener(m,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(b){this.spinner.stop();b=new ErrorDialog(this,null,mxResources.get(null!=b?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(b.container,300,80,!0,!1);b.init()}))}))}var q=null,t=null;if(null!=e||null!=g)b+=30,mxUtils.write(d,mxResources.get("width")+":"),q=document.createElement("input"),
3516q.setAttribute("type","text"),q.style.marginRight="16px",q.style.width="50px",q.style.marginLeft="6px",q.style.marginRight="16px",q.style.marginBottom="10px",q.value="100%",d.appendChild(q),mxUtils.write(d,mxResources.get("height")+":"),t=document.createElement("input"),t.setAttribute("type","text"),t.style.width="50px",t.style.marginLeft="6px",t.style.marginBottom="10px",t.value=g+"px",d.appendChild(t),mxUtils.br(d);var u=this.addLinkSection(d,n);e=null!=this.pages&&1<this.pages.length;var M=null;
3517if(null==l||l.constructor!=window.DriveFile||c)M=this.addCheckbox(d,mxResources.get("allPages"),e,!e);var E=this.addCheckbox(d,mxResources.get("lightbox"),!0,null,null,!n),K=this.addEditButton(d,E),C=K.getEditInput();n&&(C.style.marginLeft=E.style.marginLeft,E.style.display="none",b-=20);var L=this.addCheckbox(d,mxResources.get("layers"),!0);L.style.marginLeft=C.style.marginLeft;L.style.marginTop="8px";var O=this.addCheckbox(d,mxResources.get("tags"),!0);O.style.marginLeft=C.style.marginLeft;O.style.marginBottom=
3518"16px";O.style.marginTop="16px";mxEvent.addListener(E,"change",function(){E.checked?(L.removeAttribute("disabled"),C.removeAttribute("disabled")):(L.setAttribute("disabled","disabled"),C.setAttribute("disabled","disabled"));C.checked&&E.checked?K.getEditSelect().removeAttribute("disabled"):K.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,function(){k(u.getTarget(),u.getColor(),null==M?!0:M.checked,E.checked,K.getLink(),L.checked,null!=q?q.value:null,
3519null!=t?t.value:null,O.checked)}),null,mxResources.get("create"),p);this.showDialog(c.container,340,300+b,!0,!0);null!=q?(q.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)):u.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,c,e,g,k){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("image"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+
3520(k?"10":"4")+"px";d.appendChild(f);if(k){mxUtils.write(d,mxResources.get("zoom")+":");var l=document.createElement("input");l.setAttribute("type","text");l.style.marginRight="16px";l.style.width="60px";l.style.marginLeft="4px";l.style.marginRight="12px";l.value=this.lastExportZoom||"100%";d.appendChild(l);mxUtils.write(d,mxResources.get("borderWidth")+":");var m=document.createElement("input");m.setAttribute("type","text");m.style.marginRight="16px";m.style.width="60px";m.style.marginLeft="4px";m.value=
3521this.lastExportBorder||"0";d.appendChild(m);mxUtils.br(d)}var q=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),p=g?null:this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),Editor.defaultIncludeDiagram),f=this.editor.graph,t=g?null:this.addCheckbox(d,mxResources.get("transparentBackground"),f.background==mxConstants.NONE||null==f.background);null!=t&&(t.style.marginBottom="16px");b=new CustomDialog(this,d,mxUtils.bind(this,function(){var b=parseInt(l.value)/
3522100||1,d=parseInt(m.value)||0;e(!q.checked,null!=p?p.checked:!1,null!=t?t.checked:!1,b,d)}),null,b,c);this.showDialog(b.container,300,(k?25:0)+(g?125:210),!0,!0)};EditorUi.prototype.showExportDialog=function(b,c,e,g,k,n,p,t,y){p=null!=p?p:Editor.defaultIncludeDiagram;var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=this.editor.graph,l="jpeg"==t?220:300,m=document.createElement("h3");mxUtils.write(m,b);m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";
3523d.appendChild(m);mxUtils.write(d,mxResources.get("zoom")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.marginRight="16px";q.style.width="60px";q.style.marginLeft="4px";q.style.marginRight="12px";q.value=this.lastExportZoom||"100%";d.appendChild(q);mxUtils.write(d,mxResources.get("borderWidth")+":");var u=document.createElement("input");u.setAttribute("type","text");u.style.marginRight="16px";u.style.width="60px";u.style.marginLeft="4px";u.value=this.lastExportBorder||
3524"0";d.appendChild(u);mxUtils.br(d);var v=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,f.isSelectionEmpty()),K=document.createElement("input");K.style.marginTop="16px";K.style.marginRight="8px";K.style.marginLeft="24px";K.setAttribute("disabled","disabled");K.setAttribute("type","checkbox");var C=document.createElement("select");C.style.marginTop="16px";C.style.marginLeft="8px";b=["selectionOnly","diagram","page"];for(m=0;m<b.length;m++)if(!f.isSelectionEmpty()||"selectionOnly"!=b[m]){var L=
3525document.createElement("option");mxUtils.write(L,mxResources.get(b[m]));L.setAttribute("value",b[m]);C.appendChild(L)}y?(mxUtils.write(d,mxResources.get("size")+":"),d.appendChild(C),mxUtils.br(d),l+=26,mxEvent.addListener(C,"change",function(){"selectionOnly"==C.value&&(v.checked=!0)})):n&&(d.appendChild(K),mxUtils.write(d,mxResources.get("crop")),mxUtils.br(d),l+=30,mxEvent.addListener(v,"change",function(){v.checked?K.removeAttribute("disabled"):K.setAttribute("disabled","disabled")}));f.isSelectionEmpty()?
3526y&&(v.style.display="none",v.nextSibling.style.display="none",v.nextSibling.nextSibling.style.display="none",l-=30):(C.value="diagram",K.setAttribute("checked","checked"),K.defaultChecked=!0,mxEvent.addListener(v,"change",function(){C.value=v.checked?"selectionOnly":"diagram"}));var O=this.addCheckbox(d,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=t),ea=null;Editor.isDarkMode()&&(ea=this.addCheckbox(d,mxResources.get("dark"),!0),l+=26);var N=this.addCheckbox(d,mxResources.get("shadow"),
3527f.shadowVisible),Q=document.createElement("input");Q.style.marginTop="16px";Q.style.marginRight="8px";Q.setAttribute("type","checkbox");var T=document.createElement("input");T.style.marginTop="16px";T.style.marginRight="8px";T.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||Q.setAttribute("disabled","disabled");c&&(d.appendChild(Q),mxUtils.write(d,mxResources.get("embedImages")),mxUtils.br(d),d.appendChild(T),mxUtils.write(d,mxResources.get("embedFonts")),mxUtils.br(d),l+=
352860);var H=null;if("png"==t||"jpeg"==t)H=this.addCheckbox(d,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),l+=30;var J=this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),p,null,null,"jpeg"!=t);J.style.marginBottom="16px";var A=document.createElement("select");A.style.maxWidth="260px";A.style.marginLeft="8px";A.style.marginRight="10px";A.className="geBtn";c=document.createElement("option");c.setAttribute("value","auto");mxUtils.write(c,mxResources.get("automatic"));
3529A.appendChild(c);c=document.createElement("option");c.setAttribute("value","blank");mxUtils.write(c,mxResources.get("openInNewWindow"));A.appendChild(c);c=document.createElement("option");c.setAttribute("value","self");mxUtils.write(c,mxResources.get("openInThisWindow"));A.appendChild(c);"svg"==t&&(mxUtils.write(d,mxResources.get("links")+":"),d.appendChild(A),mxUtils.br(d),mxUtils.br(d),l+=50);e=new CustomDialog(this,d,mxUtils.bind(this,function(){this.lastExportBorder=u.value;this.lastExportZoom=
3530q.value;k(q.value,O.checked,!v.checked,N.checked,J.checked,Q.checked,u.value,K.checked,!1,A.value,null!=H?H.checked:null,null!=ea?ea.checked:null,C.value,T.checked)}),null,e,g);this.showDialog(e.container,340,l,!0,!0,null,null,null,null,!0);q.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(b,c,e,g,k){var d=document.createElement("div");d.style.whiteSpace="nowrap";var f=this.editor.graph;
3531if(null!=c){var l=document.createElement("h3");mxUtils.write(l,c);l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";d.appendChild(l)}var m=this.addCheckbox(d,mxResources.get("fit"),!0),q=this.addCheckbox(d,mxResources.get("shadow"),f.shadowVisible&&g,!g),p=this.addCheckbox(d,e),t=this.addCheckbox(d,mxResources.get("lightbox"),!0),B=this.addEditButton(d,t),F=B.getEditInput(),M=1<f.model.getChildCount(f.model.getRoot()),E=this.addCheckbox(d,mxResources.get("layers"),M,
3532!M);E.style.marginLeft=F.style.marginLeft;E.style.marginBottom="12px";E.style.marginTop="8px";mxEvent.addListener(t,"change",function(){t.checked?(M&&E.removeAttribute("disabled"),F.removeAttribute("disabled")):(E.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"));F.checked&&t.checked?B.getEditSelect().removeAttribute("disabled"):B.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,function(){b(m.checked,q.checked,p.checked,t.checked,
3533B.getLink(),E.checked)}),null,mxResources.get("embed"),k);this.showDialog(c.container,280,300,!0,!0)};EditorUi.prototype.createEmbedImage=function(b,c,e,g,k,n,p,t){function d(d){var c=" ",m="";g&&(c=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+
3534EditorUi.lightboxHost+"/?client=1"+(null!=l?"&page="+l:"")+(k?"&edit=_blank":"")+(n?"&layers=1":"")+"');}})(this);\"",m+="cursor:pointer;");b&&(m+="max-width:100%;");var q="";e&&(q=' width="'+Math.round(f.width)+'" height="'+Math.round(f.height)+'"');p('<img src="'+d+'"'+q+(""!=m?' style="'+m+'"':"")+c+"/>")}var f=this.editor.graph.getGraphBounds(),l=this.getSelectedPageIndex();if(this.isExportToCanvas())this.editor.exportToCanvas(mxUtils.bind(this,function(b){var c=g?this.getFileData(!0):null;b=
3535this.createImageDataUri(b,c,"png");d(b)}),null,null,null,mxUtils.bind(this,function(b){t({message:mxResources.get("unknownError")})}),null,!0,e?2:1,null,c,null,null,Editor.defaultBorder);else if(c=this.getFileData(!0),f.width*f.height<=MAX_AREA&&c.length<=MAX_REQUEST_SIZE){var m="";e&&(m="&w="+Math.round(2*f.width)+"&h="+Math.round(2*f.height));var q=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(g?"1":"0")+m+"&xml="+encodeURIComponent(c));q.send(mxUtils.bind(this,function(){200<=q.getStatus()&&
3536299>=q.getStatus()?d("data:image/png;base64,"+q.getText()):t({message:mxResources.get("unknownError")})}))}else t({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(b,c,e,g,k,n,p){var d=this.editor.graph.getSvg(null,null,null,null,null,null,null,null,null,null,!e),f=d.getElementsByTagName("a");if(null!=f)for(var l=0;l<f.length;l++){var m=f[l].getAttribute("href");null!=m&&"#"==m.charAt(0)&&"_blank"==f[l].getAttribute("target")&&f[l].removeAttribute("target")}g&&
3537d.setAttribute("content",this.getFileData(!0));c&&this.editor.graph.addSvgShadow(d);if(e){var q=" ",t="";g&&(q="onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+EditorUi.lightboxHost+"/?client=1"+(k?"&edit=_blank":"")+(n?"&layers=1":
3538"")+"');}})(this);\"",t+="cursor:pointer;");b&&(t+="max-width:100%;");this.editor.convertImages(d,mxUtils.bind(this,function(b){p('<img src="'+Editor.createSvgDataUri(mxUtils.getXml(b))+'"'+(""!=t?' style="'+t+'"':"")+q+"/>")}))}else t="",g&&(c=this.getSelectedPageIndex(),d.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('"+
3539EditorUi.lightboxHost+"/?client=1"+(null!=c?"&page="+c:"")+(k?"&edit=_blank":"")+(n?"&layers=1":"")+"');}}})(this);"),t+="cursor:pointer;"),b&&(b=parseInt(d.getAttribute("width")),k=parseInt(d.getAttribute("height")),d.setAttribute("viewBox","-0.5 -0.5 "+b+" "+k),t+="max-width:100%;max-height:"+k+"px;",d.removeAttribute("height")),""!=t&&d.setAttribute("style",t),this.editor.addFontCss(d),this.editor.graph.mathEnabled&&this.editor.addMathCss(d),p(mxUtils.getXml(d))};EditorUi.prototype.timeSince=function(b){b=
3540Math.floor((new Date-b)/1E3);var d=Math.floor(b/31536E3);if(1<d)return d+" "+mxResources.get("years");d=Math.floor(b/2592E3);if(1<d)return d+" "+mxResources.get("months");d=Math.floor(b/86400);if(1<d)return d+" "+mxResources.get("days");d=Math.floor(b/3600);if(1<d)return d+" "+mxResources.get("hours");d=Math.floor(b/60);return 1<d?d+" "+mxResources.get("minutes"):1==d?d+" "+mxResources.get("minute"):null};EditorUi.prototype.decodeNodeIntoGraph=function(b,c){if(null!=b){var d=null;if("diagram"==b.nodeName)d=
3541b;else if("mxfile"==b.nodeName){var e=b.getElementsByTagName("diagram");if(0<e.length){var d=e[0],f=c.getGlobalVariable;c.getGlobalVariable=function(b){return"page"==b?d.getAttribute("name")||mxResources.get("pageWithNumber",[1]):"pagenumber"==b?1:f.apply(this,arguments)}}}null!=d&&(b=Editor.parseDiagramNode(d))}e=this.editor.graph;try{this.editor.graph=c,this.editor.setGraphXml(b)}catch(n){}finally{this.editor.graph=e}return b};EditorUi.prototype.getPngFileProperties=function(b){var d=1,c=0;if(null!=
3542b){if(b.hasAttribute("scale")){var e=parseFloat(b.getAttribute("scale"));!isNaN(e)&&0<e&&(d=e)}b.hasAttribute("border")&&(e=parseInt(b.getAttribute("border")),!isNaN(e)&&0<e&&(c=e))}return{scale:d,border:c}};EditorUi.prototype.getEmbeddedPng=function(b,c,e,g,k){try{var d=this.editor.graph,f=null!=d.themes&&"darkTheme"==d.defaultThemeName,l=null;if(null!=e&&0<e.length)d=this.createTemporaryGraph(f?d.getDefaultStylesheet():d.getStylesheet()),document.body.appendChild(d.container),this.decodeNodeIntoGraph(this.editor.extractGraphModel(mxUtils.parseXml(e).documentElement,
3543!0),d),l=e;else if(f||null!=this.pages&&this.currentPage!=this.pages[0]){var d=this.createTemporaryGraph(f?d.getDefaultStylesheet():d.getStylesheet()),m=d.getGlobalVariable;d.setBackgroundImage=this.editor.graph.setBackgroundImage;var q=this.pages[0];this.currentPage==q?d.setBackgroundImage(this.editor.graph.backgroundImage):null!=q.viewState&&null!=q.viewState&&d.setBackgroundImage(q.viewState.backgroundImage);d.getGlobalVariable=function(b){return"page"==b?q.getName():"pagenumber"==b?1:m.apply(this,
3544arguments)};document.body.appendChild(d.container);d.model.setRoot(q.root)}this.editor.exportToCanvas(mxUtils.bind(this,function(e){try{null==l&&(l=this.getFileData(!0,null,null,null,null,null,null,null,null,!1));var f=e.toDataURL("image/png"),f=Editor.writeGraphModelToPng(f,"tEXt","mxfile",encodeURIComponent(l));b(f.substring(f.lastIndexOf(",")+1));d!=this.editor.graph&&d.container.parentNode.removeChild(d.container)}catch(B){null!=c&&c(B)}}),null,null,null,mxUtils.bind(this,function(b){null!=c&&
3545c(b)}),null,null,g,null,d.shadowVisible,null,d,k,null,null,null,"diagram",null)}catch(D){null!=c&&c(D)}};EditorUi.prototype.getEmbeddedSvg=function(b,c,e,g,k,n,p,t,y,x,D,I,B){t=null!=t?t:!0;D=null!=D?D:0;p=null!=y?y:c.background;p==mxConstants.NONE&&(p=null);n=c.getSvg(p,x,D,null,null,n,null,null,null,c.shadowVisible||I,null,B,"diagram");(c.shadowVisible||I)&&c.addSvgShadow(n,null,null,0==D);null!=b&&n.setAttribute("content",b);null!=e&&n.setAttribute("resource",e);var d=mxUtils.bind(this,function(b){b=
3546(g?"":Graph.xmlDeclaration+"\n"+Graph.svgFileComment+"\n"+Graph.svgDoctype+"\n")+mxUtils.getXml(b);null!=k&&k(b);return b});c.mathEnabled&&this.editor.addMathCss(n);if(null!=k)this.embedFonts(n,mxUtils.bind(this,function(b){t?this.editor.convertImages(b,mxUtils.bind(this,function(b){d(b)})):d(b)}));else return d(n)};EditorUi.prototype.embedFonts=function(b,c){this.editor.loadFonts(mxUtils.bind(this,function(){try{null!=this.editor.resolvedFontCss&&this.editor.addFontCss(b,this.editor.resolvedFontCss),
3547this.editor.embedExtFonts(mxUtils.bind(this,function(d){try{null!=d&&this.editor.addFontCss(b,d),c(b)}catch(q){c(b)}}))}catch(l){c(b)}}))};EditorUi.prototype.exportImage=function(b,c,e,g,k,n,p,t,y,x,D,I,B){y=null!=y?y:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var d=this.editor.graph.isSelectionEmpty();e=null!=e?e:d;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.editor.exportToCanvas(mxUtils.bind(this,function(b){this.spinner.stop();try{this.saveCanvas(b,
3548k?this.getFileData(!0,null,null,null,e,t):null,y,null==this.pages||0==this.pages.length,D)}catch(E){this.handleError(E)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,e,b||1,c,g,null,null,n,p,x,I,B)}catch(M){this.spinner.stop(),this.handleError(M)}}};EditorUi.prototype.isCorsEnabledForUrl=function(b){return this.editor.isCorsEnabledForUrl(b)};EditorUi.prototype.importXml=function(b,c,e,g,k,n,p){c=null!=c?c:0;e=null!=e?e:0;var d=[];try{var f=
3549this.editor.graph;if(null!=b&&0<b.length){f.model.beginUpdate();try{var l=mxUtils.parseXml(b);b={};var m=this.editor.extractGraphModel(l.documentElement,null!=this.pages);if(null!=m&&"mxfile"==m.nodeName&&null!=this.pages){var q=m.getElementsByTagName("diagram");if(1==q.length&&!n){if(m=Editor.parseDiagramNode(q[0]),null!=this.currentPage&&(b[q[0].getAttribute("id")]=this.currentPage.getId(),null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&this.currentPage.getName()==mxResources.get("pageWithNumber",
3550[1]))){var t=q[0].getAttribute("name");null!=t&&""!=t&&this.editor.graph.model.execute(new RenamePage(this,this.currentPage,t))}}else if(0<q.length){n=[];var u=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(b[q[0].getAttribute("id")]=this.pages[0].getId(),m=Editor.parseDiagramNode(q[0]),g=!1,u=1);for(;u<q.length;u++){var M=q[u].getAttribute("id");q[u].removeAttribute("id");var E=this.updatePageRoot(new DiagramPage(q[u]));b[M]=q[u].getAttribute("id");var K=this.pages.length;null==
3551E.getName()&&E.setName(mxResources.get("pageWithNumber",[K+1]));f.model.execute(new ChangePage(this,E,E,K,!0));n.push(E)}this.updatePageLinks(b,n)}}if(null!=m&&"mxGraphModel"===m.nodeName&&(d=f.importGraphModel(m,c,e,g),null!=d))for(u=0;u<d.length;u++)this.updatePageLinksForCell(b,d[u]);p&&this.insertHandler(d,null,null,f.defaultVertexStyle,f.defaultEdgeStyle,!1,!0)}finally{f.model.endUpdate()}}}catch(C){if(k)throw C;this.handleError(C)}return d};EditorUi.prototype.updatePageLinks=function(b,c){for(var d=
35520;d<c.length;d++)this.updatePageLinksForCell(b,c[d].root)};EditorUi.prototype.updatePageLinksForCell=function(b,c){var d=document.createElement("div"),e=this.editor.graph,f=e.getLinkForCell(c);null!=f&&e.setLinkForCell(c,this.updatePageLink(b,f));if(e.isHtmlLabel(c)){d.innerHTML=e.sanitizeHtml(e.getLabel(c));for(var g=d.getElementsByTagName("a"),k=!1,p=0;p<g.length;p++)f=g[p].getAttribute("href"),null!=f&&(g[p].setAttribute("href",this.updatePageLink(b,f)),k=!0);k&&e.labelChanged(c,d.innerHTML)}for(p=
35530;p<e.model.getChildCount(c);p++)this.updatePageLinksForCell(b,e.model.getChildAt(c,p))};EditorUi.prototype.updatePageLink=function(b,c){if(Graph.isPageLink(c)){var d=b[c.substring(c.indexOf(",")+1)];c=null!=d?"data:page/id,"+d:null}else if("data:action/json,"==c.substring(0,17))try{var e=JSON.parse(c.substring(17));if(null!=e.actions){for(var f=0;f<e.actions.length;f++){var g=e.actions[f];if(null!=g.open&&Graph.isPageLink(g.open)){var k=g.open.substring(g.open.indexOf(",")+1),d=b[k];null!=d?g.open=
3554"data:page/id,"+d:null==this.getPageById(k)&&delete g.open}}c="data:action/json,"+JSON.stringify(e)}}catch(v){}return c};EditorUi.prototype.isRemoteVisioFormat=function(b){return/(\.v(sd|dx))($|\?)/i.test(b)||/(\.vs(s|x))($|\?)/i.test(b)};EditorUi.prototype.importVisio=function(b,c,e,g,k){g=null!=g?g:b.name;e=null!=e?e:mxUtils.bind(this,function(b){this.handleError(b)});var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio){var d=this.isRemoteVisioFormat(g);try{var f=
3555"UNKNOWN-VISIO",l=g.lastIndexOf(".");if(0<=l&&l<g.length)f=g.substring(l+1).toUpperCase();else{var m=g.lastIndexOf("/");0<=m&&m<g.length&&(g=g.substring(m+1))}EditorUi.logEvent({category:f+"-MS-IMPORT-FILE",action:"filename_"+g,label:d?"remote":"local"})}catch(I){}if(d)if(null==VSD_CONVERT_URL||this.isOffline())e({message:"conf"==this.getServiceName()?mxResources.get("vsdNoConfig"):mxResources.get("serviceUnavailableOrBlocked")});else{d=new FormData;d.append("file1",b,g);var n=new XMLHttpRequest;
3556n.open("POST",VSD_CONVERT_URL+(/(\.vss|\.vsx)$/.test(g)?"?stencil=1":""));n.responseType="blob";this.addRemoteServiceSecurityCheck(n);null!=k&&n.setRequestHeader("x-convert-custom",k);n.onreadystatechange=mxUtils.bind(this,function(){if(4==n.readyState)if(200<=n.status&&299>=n.status)try{var b=n.response;if("text/xml"==b.type){var d=new FileReader;d.onload=mxUtils.bind(this,function(b){try{c(b.target.result)}catch(M){e({message:mxResources.get("errorLoadingFile")})}});d.readAsText(b)}else this.doImportVisio(b,
3557c,e,g)}catch(F){e(F)}else try{""==n.responseType||"text"==n.responseType?e({message:n.responseText}):(d=new FileReader,d.onload=function(){e({message:JSON.parse(d.result).Message})},d.readAsText(n.response))}catch(F){e({})}});n.send(d)}else try{this.doImportVisio(b,c,e,g)}catch(I){e(I)}}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportVisio||this.loadingExtensions||this.isOffline(!0)?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",
3558d))};EditorUi.prototype.importGraphML=function(b,c,e){e=null!=e?e:mxUtils.bind(this,function(b){this.handleError(b)});var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportGraphML)try{this.doImportGraphML(b,c,e)}catch(m){e(m)}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportGraphML||this.loadingExtensions||this.isOffline(!0)?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",d))};EditorUi.prototype.exportVisio=
3559function(b){var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams(b)||this.handleError({message:mxResources.get("unknownError")})}catch(l){this.handleError(l)}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof VsdxExport||this.loadingExtensions||this.isOffline(!0)?d():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",d))};EditorUi.prototype.convertLucidChart=
3560function(b,c,e){var d=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof window.LucidImporter){try{EditorUi.logEvent({category:"LUCIDCHART-IMPORT-FILE",action:"size_"+b.length}),EditorUi.debug("convertLucidChart",b)}catch(m){}try{c(LucidImporter.importState(JSON.parse(b)))}catch(m){null!=window.console&&console.error(m),e(m)}}else e({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof window.LucidImporter||this.loadingExtensions||this.isOffline(!0)?
3561window.setTimeout(d,0):(this.loadingExtensions=!0,"1"==urlParams.dev?mxscript("js/diagramly/Extensions.js",function(){mxscript("js/orgchart/bridge.min.js",function(){mxscript("js/orgchart/bridge.collections.min.js",function(){mxscript("js/orgchart/OrgChart.Layout.min.js",function(){mxscript("js/orgchart/mxOrgChartLayout.js",d)})})})}):mxscript("js/extensions.min.js",d))};EditorUi.prototype.generateMermaidImage=function(b,c,e,g){var d=this,f=function(){try{this.loadingMermaid=!1,c=null!=c?c:EditorUi.defaultMermaidConfig,
3562c.securityLevel="strict",c.startOnLoad=!1,mermaid.mermaidAPI.initialize(c),mermaid.mermaidAPI.render("geMermaidOutput-"+(new Date).getTime(),b,function(b){try{if(mxClient.IS_IE||mxClient.IS_IE11)b=b.replace(/ xmlns:\S*="http:\/\/www.w3.org\/XML\/1998\/namespace"/g,"").replace(/ (NS xml|\S*):space="preserve"/g,' xml:space="preserve"');var c=mxUtils.parseXml(b).getElementsByTagName("svg");if(0<c.length){var f=parseFloat(c[0].getAttribute("width")),l=parseFloat(c[0].getAttribute("height"));if(isNaN(f)||
3563isNaN(l))try{var k=c[0].getAttribute("viewBox").split(/\s+/),f=parseFloat(k[2]),l=parseFloat(k[3])}catch(I){f=f||100,l=l||100}e(d.convertDataUri(Editor.createSvgDataUri(b)),f,l)}else g({message:mxResources.get("invalidInput")})}catch(I){g(I)}})}catch(u){g(u)}};"undefined"!==typeof mermaid||this.loadingMermaid||this.isOffline(!0)?f():(this.loadingMermaid=!0,"1"==urlParams.dev?mxscript("js/mermaid/mermaid.min.js",f):mxscript("js/extensions.min.js",f))};EditorUi.prototype.generatePlantUmlImage=function(b,
3564c,e,g){function d(b,d,c){c1=b>>2;c2=(b&3)<<4|d>>4;c3=(d&15)<<2|c>>6;c4=c&63;r="";r+=f(c1&63);r+=f(c2&63);r+=f(c3&63);return r+=f(c4&63)}function f(b){if(10>b)return String.fromCharCode(48+b);b-=10;if(26>b)return String.fromCharCode(65+b);b-=26;if(26>b)return String.fromCharCode(97+b);b-=26;return 0==b?"-":1==b?"_":"?"}var l=new XMLHttpRequest;l.open("GET",("txt"==c?PLANT_URL+"/txt/":"png"==c?PLANT_URL+"/png/":PLANT_URL+"/svg/")+function(b){r="";for(i=0;i<b.length;i+=3)r=i+2==b.length?r+d(b.charCodeAt(i),
3565b.charCodeAt(i+1),0):i+1==b.length?r+d(b.charCodeAt(i),0,0):r+d(b.charCodeAt(i),b.charCodeAt(i+1),b.charCodeAt(i+2));return r}(Graph.arrayBufferToString(pako.deflateRaw(b))),!0);"txt"!=c&&(l.responseType="blob");l.onload=function(b){if(200<=this.status&&300>this.status)if("txt"==c)e(this.response);else{var d=new FileReader;d.readAsDataURL(this.response);d.onloadend=function(b){var c=new Image;c.onload=function(){try{var b=c.width,f=c.height;if(0==b&&0==f){var l=d.result,k=l.indexOf(","),m=decodeURIComponent(escape(atob(l.substring(k+
35661)))),n=mxUtils.parseXml(m).getElementsByTagName("svg");0<n.length&&(b=parseFloat(n[0].getAttribute("width")),f=parseFloat(n[0].getAttribute("height")))}e(d.result,b,f)}catch(C){g(C)}};c.src=d.result};d.onerror=function(b){g(b)}}else g(b)};l.onerror=function(b){g(b)};l.send()};EditorUi.prototype.insertAsPreText=function(b,c,e){var d=this.editor.graph,f=null;d.getModel().beginUpdate();try{f=d.insertVertex(null,null,"<pre>"+b+"</pre>",c,e,1,1,"text;html=1;align=left;verticalAlign=top;"),d.updateCellSize(f,
3567!0)}finally{d.getModel().endUpdate()}return f};EditorUi.prototype.insertTextAt=function(b,c,e,g,k,n,p,t){n=null!=n?n:!0;p=null!=p?p:!0;if(null!=b)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b))this.parseFile(new Blob([b.replace(/\s+/g," ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&200<=b.status&&299>=b.status&&this.editor.graph.setSelectionCells(this.insertTextAt(b.responseText,c,e,!0))}));else if("data:"==
3568b.substring(0,5)||!this.isOffline()&&(k||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(b))){var d=this.editor.graph;if("data:application/pdf;base64,"==b.substring(0,28)){var f=Editor.extractGraphModelFromPdf(b);if(null!=f&&0<f.length)return this.importXml(f,c,e,n,!0,t)}if("data:image/png;base64,"==b.substring(0,22)&&(f=this.extractGraphModelFromPng(b),null!=f&&0<f.length))return this.importXml(f,c,e,n,!0,t);if("data:image/svg+xml;"==b.substring(0,19))try{f=null;"data:image/svg+xml;base64,"==b.substring(0,
356926)?(f=b.substring(b.indexOf(",")+1),f=window.atob&&!mxClient.IS_SF?atob(f):Base64.decode(f,!0)):f=decodeURIComponent(b.substring(b.indexOf(",")+1));var l=this.importXml(f,c,e,n,!0,t);if(0<l.length)return l}catch(B){}this.loadImage(b,mxUtils.bind(this,function(f){if("data:"==b.substring(0,5))this.resizeImage(f,b,mxUtils.bind(this,function(b,f,g){d.setSelectionCell(d.insertVertex(null,null,"",d.snap(c),d.snap(e),f,g,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+
3570this.convertDataUri(b)+";"))}),p,this.maxImageSize);else{var g=Math.min(1,Math.min(this.maxImageSize/f.width,this.maxImageSize/f.height)),l=Math.round(f.width*g);f=Math.round(f.height*g);d.setSelectionCell(d.insertVertex(null,null,"",d.snap(c),d.snap(e),l,f,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+b+";"))}}),mxUtils.bind(this,function(){var f=null;d.getModel().beginUpdate();try{f=d.insertVertex(d.getDefaultParent(),
3571null,b,d.snap(c),d.snap(e),1,1,"text;"+(g?"html=1;":"")),d.updateCellSize(f),d.fireEvent(new mxEventObject("textInserted","cells",[f]))}finally{d.getModel().endUpdate()}d.setSelectionCell(f)}))}else{b=Graph.zapGremlins(mxUtils.trim(b));if(this.isCompatibleString(b))return this.importXml(b,c,e,n,null,t);if(0<b.length)if(this.isLucidChartData(b))this.convertLucidChart(b,mxUtils.bind(this,function(b){this.editor.graph.setSelectionCells(this.importXml(b,c,e,n,null,t))}),mxUtils.bind(this,function(b){this.handleError(b)}));
3572else{d=this.editor.graph;k=null;d.getModel().beginUpdate();try{k=d.insertVertex(d.getDefaultParent(),null,"",d.snap(c),d.snap(e),1,1,"text;whiteSpace=wrap;"+(g?"html=1;":""));d.fireEvent(new mxEventObject("textInserted","cells",[k]));"<"==b.charAt(0)&&b.indexOf(">")==b.length-1&&(b=mxUtils.htmlEntities(b));b.length>this.maxTextBytes&&(b=b.substring(0,this.maxTextBytes)+"...");k.value=b;d.updateCellSize(k);if(0<this.maxTextWidth&&k.geometry.width>this.maxTextWidth){var m=d.getPreferredSizeForCell(k,
3573this.maxTextWidth);k.geometry.width=m.width;k.geometry.height=m.height}Graph.isLink(k.value)&&d.setLinkForCell(k,k.value);k.geometry.width+=d.gridSize;k.geometry.height+=d.gridSize}finally{d.getModel().endUpdate()}return[k]}}return[]};EditorUi.prototype.formatFileSize=function(b){var d=-1;do b/=1024,d++;while(1024<b);return Math.max(b,.1).toFixed(1)+" kB; MB; GB; TB;PB;EB;ZB;YB".split(";")[d]};EditorUi.prototype.convertDataUri=function(b){if("data:"==b.substring(0,5)){var d=b.indexOf(";");0<d&&(b=
3574b.substring(0,d)+b.substring(b.indexOf(",",d+1)))}return b};EditorUi.prototype.isRemoteFileFormat=function(b,c){return/(\"contentType\":\s*\"application\/gliffy\+json\")/.test(b)};EditorUi.prototype.isLucidChartData=function(b){return null!=b&&('{"state":"{\\"Properties\\":'==b.substring(0,26)||'{"Properties":'==b.substring(0,14))};EditorUi.prototype.importLocalFile=function(b,c){if(b&&Graph.fileSupport){if(null==this.importFileInputElt){var d=document.createElement("input");d.setAttribute("type",
3575"file");mxEvent.addListener(d,"change",mxUtils.bind(this,function(){null!=d.files&&(this.importFiles(d.files,null,null,this.maxImageSize),d.type="",d.type="file",d.value="")}));d.style.display="none";document.body.appendChild(d);this.importFileInputElt=d}this.importFileInputElt.click()}else{window.openNew=!1;window.openKey="import";window.listBrowserFiles=mxUtils.bind(this,function(b,d){StorageFile.listFiles(this,"F",b,d)});window.openBrowserFile=mxUtils.bind(this,function(b,d,c){StorageFile.getFileContent(this,
3576b,d,c)});window.deleteBrowserFile=mxUtils.bind(this,function(b,d,c){StorageFile.deleteFile(this,b,d,c)});if(!c){var e=Editor.useLocalStorage;Editor.useLocalStorage=!b}window.openFile=new OpenFile(mxUtils.bind(this,function(b){this.hideDialog(b)}));window.openFile.setConsumer(mxUtils.bind(this,function(b,d){if(null!=d&&Graph.fileSupport&&/(\.v(dx|sdx?))($|\?)/i.test(d)){var c=new Blob([b],{type:"application/octet-stream"});this.importVisio(c,mxUtils.bind(this,function(b){this.importXml(b,0,0,!0)}),
3577null,d)}else this.editor.graph.setSelectionCells(this.importXml(b,0,0,!0))}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:360,Editor.useLocalStorage?480:220,!0,!0,function(){window.openFile=null});if(!c){var f=this.dialog,g=f.close;this.dialog.close=mxUtils.bind(this,function(b){Editor.useLocalStorage=e;g.apply(f,arguments);b&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};EditorUi.prototype.importZipFile=function(b,c,e){var d=this,f=mxUtils.bind(this,
3578function(){this.loadingExtensions=!1;"undefined"!==typeof JSZip?JSZip.loadAsync(b).then(function(f){if(0==Object.keys(f.files).length)e();else{var g=0,l,k=!1;f.forEach(function(b,d){var f=d.name.toLowerCase();"diagram/diagram.xml"==f?(k=!0,d.async("string").then(function(b){0==b.indexOf("<mxfile ")?c(b):e()})):0==f.indexOf("versions/")&&(f=parseInt(f.substr(9)),f>g&&(g=f,l=d))});0<g?l.async("string").then(function(f){!d.isOffline()&&(new XMLHttpRequest).upload&&d.isRemoteFileFormat(f,b.name)?d.parseFile(new Blob([f],
3579{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&(200<=b.status&&299>=b.status?c(b.responseText):e())}),b.name):e()}):k||e()}},function(b){e(b)}):e()});"undefined"!==typeof JSZip||this.loadingExtensions||this.isOffline(!0)?f():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",f))};EditorUi.prototype.importFile=function(b,c,e,g,k,n,p,t,y,x,D,I){x=null!=x?x:!0;var d=!1,f=null,l=mxUtils.bind(this,function(b){var d=null;null!=b&&"<mxlibrary"==b.substring(0,10)?
3580this.loadLibrary(new LocalLibrary(this,b,p)):d=this.importXml(b,e,g,x,null,null!=I?mxEvent.isControlDown(I):null);null!=t&&t(d)});"image"==c.substring(0,5)?(y=!1,"image/png"==c.substring(0,9)&&(c=D?null:this.extractGraphModelFromPng(b),null!=c&&0<c.length&&(f=this.importXml(c,e,g,x,null,null!=I?mxEvent.isControlDown(I):null),y=!0)),y||(c=this.editor.graph,D=b.indexOf(";"),0<D&&(b=b.substring(0,D)+b.substring(b.indexOf(",",D+1))),x&&c.isGridEnabled()&&(e=c.snap(e),g=c.snap(g)),f=[c.insertVertex(null,
3581null,"",e,g,k,n,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+b+";")])):/(\.*<graphml )/.test(b)?(d=!0,this.importGraphML(b,l)):null!=y&&null!=p&&(/(\.v(dx|sdx?))($|\?)/i.test(p)||/(\.vs(x|sx?))($|\?)/i.test(p))?(d=!0,this.importVisio(y,l)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,p)?(d=!0,this.parseFile(null!=y?y:new Blob([b],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==
3582b.readyState&&(200<=b.status&&299>=b.status?l(b.responseText):null!=t&&t(null))}),p)):0==b.indexOf("PK")&&null!=y?(d=!0,this.importZipFile(y,l,mxUtils.bind(this,function(){f=this.insertTextAt(this.validateFileData(b),e,g,!0,null,x);t(f)}))):/(\.v(sd|dx))($|\?)/i.test(p)||/(\.vs(s|x))($|\?)/i.test(p)||(f=this.insertTextAt(this.validateFileData(b),e,g,!0,null,x,null,null!=I?mxEvent.isControlDown(I):null));d||null==t||t(f);return f};EditorUi.prototype.importFiles=function(b,c,e,g,k,n,p,t,y,x,D,I,B){g=
3583null!=g?g:this.maxImageSize;x=null!=x?x:this.maxImageBytes;var d=null!=c&&null!=e,f=!0;c=null!=c?c:0;e=null!=e?e:0;var l=!1;if(!mxClient.IS_CHROMEAPP&&null!=b)for(var m=D||this.resampleThreshold,q=0;q<b.length;q++)if("image/"==b[q].type.substring(0,6)&&b[q].size>m){l=!0;break}var u=mxUtils.bind(this,function(){var l=this.editor.graph,m=l.gridSize;k=null!=k?k:mxUtils.bind(this,function(b,c,e,f,g,l,k,m,n){try{return null!=b&&"<mxlibrary"==b.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,
3584b,k)),null):this.importFile(b,c,e,f,g,l,k,m,n,d,I,B)}catch(pa){return this.handleError(pa),null}});n=null!=n?n:mxUtils.bind(this,function(b){l.setSelectionCells(b)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var q=b.length,u=q,v=[],C=mxUtils.bind(this,function(b,d){v[b]=d;if(0==--u){this.spinner.stop();if(null!=t)t(v);else{var c=[];l.getModel().beginUpdate();try{for(var e=0;e<v.length;e++){var f=v[e]();null!=f&&(c=c.concat(f))}}finally{l.getModel().endUpdate()}}n(c)}}),y=
35850;y<q;y++)mxUtils.bind(this,function(d){var n=b[d];if(null!=n){var q=new FileReader;q.onload=mxUtils.bind(this,function(b){if(null==p||p(n))if("image/"==n.type.substring(0,6))if("image/svg"==n.type.substring(0,9)){var q=Graph.clipSvgDataUri(b.target.result),t=q.indexOf(","),u=decodeURIComponent(escape(atob(q.substring(t+1)))),v=mxUtils.parseXml(u),u=v.getElementsByTagName("svg");if(0<u.length){var u=u[0],N=I?null:u.getAttribute("content");null!=N&&"<"!=N.charAt(0)&&"%"!=N.charAt(0)&&(N=unescape(window.atob?
3586atob(N):Base64.decode(N,!0)));null!=N&&"%"==N.charAt(0)&&(N=decodeURIComponent(N));null==N||"<mxfile "!==N.substring(0,8)&&"<mxGraphModel "!==N.substring(0,14)?C(d,mxUtils.bind(this,function(){try{if(q.substring(0,t+1),null!=v){var b=v.getElementsByTagName("svg");if(0<b.length){var f=b[0],p=f.getAttribute("width"),u=f.getAttribute("height"),p=null!=p&&"%"!=p.charAt(p.length-1)?parseFloat(p):NaN,u=null!=u&&"%"!=u.charAt(u.length-1)?parseFloat(u):NaN,x=f.getAttribute("viewBox");if(null==x||0==x.length)f.setAttribute("viewBox",
3587"0 0 "+p+" "+u);else if(isNaN(p)||isNaN(u)){var C=x.split(" ");3<C.length&&(p=parseFloat(C[2]),u=parseFloat(C[3]))}q=Editor.createSvgDataUri(mxUtils.getXml(f));var N=Math.min(1,Math.min(g/Math.max(1,p)),g/Math.max(1,u)),B=k(q,n.type,c+d*m,e+d*m,Math.max(1,Math.round(p*N)),Math.max(1,Math.round(u*N)),n.name);if(isNaN(p)||isNaN(u)){var y=new Image;y.onload=mxUtils.bind(this,function(){p=Math.max(1,y.width);u=Math.max(1,y.height);B[0].geometry.width=p;B[0].geometry.height=u;f.setAttribute("viewBox",
3588"0 0 "+p+" "+u);q=Editor.createSvgDataUri(mxUtils.getXml(f));var b=q.indexOf(";");0<b&&(q=q.substring(0,b)+q.substring(q.indexOf(",",b+1)));l.setCellStyles("image",q,[B[0]])});y.src=Editor.createSvgDataUri(mxUtils.getXml(f))}return B}}}catch(ga){}return null})):C(d,mxUtils.bind(this,function(){return k(N,"text/xml",c+d*m,e+d*m,0,0,n.name)}))}else C(d,mxUtils.bind(this,function(){return null}))}else{u=!1;if("image/png"==n.type){var B=I?null:this.extractGraphModelFromPng(b.target.result);if(null!=B&&
35890<B.length){var y=new Image;y.src=b.target.result;C(d,mxUtils.bind(this,function(){return k(B,"text/xml",c+d*m,e+d*m,y.width,y.height,n.name)}));u=!0}}u||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):this.loadImage(b.target.result,mxUtils.bind(this,function(l){this.resizeImage(l,
3590b.target.result,mxUtils.bind(this,function(b,l,q){C(d,mxUtils.bind(this,function(){if(null!=b&&b.length<x){var p=f&&this.isResampleImageSize(n.size,D)?Math.min(1,Math.min(g/l,g/q)):1;return k(b,n.type,c+d*m,e+d*m,Math.round(l*p),Math.round(q*p),n.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),f,g,D,n.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else q=b.target.result,k(q,n.type,c+d*m,e+d*m,240,160,n.name,
3591function(b){C(d,function(){return b})},n)});/(\.v(dx|sdx?))($|\?)/i.test(n.name)||/(\.vs(x|sx?))($|\?)/i.test(n.name)?k(null,n.type,c+d*m,e+d*m,240,160,n.name,function(b){C(d,function(){return b})},n):"image"==n.type.substring(0,5)||"application/pdf"==n.type?q.readAsDataURL(n):q.readAsText(n)}})(y)});if(l){l=[];for(q=0;q<b.length;q++)l.push(b[q]);b=l;this.confirmImageResize(function(b){f=b;u()},y)}else u()};EditorUi.prototype.confirmImageResize=function(b,c){c=null!=c?c:!1;var d=null!=this.spinner&&
3592null!=this.spinner.pause?this.spinner.pause():function(){},e=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,f=function(e,f){if(e||c)mxSettings.setResizeImages(e?f:null),mxSettings.save();d();b(f)};null==e||c?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),function(b){f(b,!0)},function(b){f(b,!1)},mxResources.get("resize"),mxResources.get("actualSize"),'<img style="margin-top:8px;" src="'+Editor.loResImage+'"/>','<img style="margin-top:8px;" src="'+
3593Editor.hiResImage+'"/>',isLocalStorage||mxClient.IS_CHROMEAPP)).container,340,isLocalStorage||mxClient.IS_CHROMEAPP?220:200,!0,!0):f(!1,e)};EditorUi.prototype.parseFile=function(b,c,e){e=null!=e?e:b.name;var d=new FormData;d.append("format","xml");d.append("upfile",b,e);var f=new XMLHttpRequest;f.open("POST",OPEN_URL);f.onreadystatechange=function(){c(f)};f.send(d);try{EditorUi.logEvent({category:"GLIFFY-IMPORT-FILE",action:"size_"+b.size})}catch(n){}};EditorUi.prototype.isResampleImageSize=function(b,
3594c){c=null!=c?c:this.resampleThreshold;return b>c};EditorUi.prototype.resizeImage=function(b,c,e,g,k,n,p){k=null!=k?k:this.maxImageSize;var d=Math.max(1,b.width),f=Math.max(1,b.height);if(g&&this.isResampleImageSize(null!=p?p:c.length,n))try{var l=Math.max(d/k,f/k);if(1<l){var m=Math.round(d/l),q=Math.round(f/l),t=document.createElement("canvas");t.width=m;t.height=q;t.getContext("2d").drawImage(b,0,0,m,q);var u=t.toDataURL();if(u.length<c.length){var M=document.createElement("canvas");M.width=m;M.height=
3595q;var E=M.toDataURL();u!==E&&(c=u,d=m,f=q)}}}catch(K){}e(c,d,f)};EditorUi.prototype.extractGraphModelFromPng=function(b){return Editor.extractGraphModelFromPng(b)};EditorUi.prototype.loadImage=function(b,c,e){try{var d=new Image;d.onload=function(){d.width=0<d.width?d.width:120;d.height=0<d.height?d.height:120;c(d)};null!=e&&(d.onerror=e);d.src=b}catch(m){if(null!=e)e(m);else throw m;}};var g=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=mxStencilRegistry.allowEval&&
3596!this.isOfflineApp();this.isSettingsEnabled()&&("1"==urlParams.sketch&&this.doSetSketchMode(null!=mxSettings.settings.sketchMode&&null==urlParams.rough?mxSettings.settings.sketchMode:"0"!=urlParams.rough),this.formatWidth=mxSettings.getFormatWidth());var b=this,c=this.editor.graph;Editor.isDarkMode()&&(c.view.defaultGridColor=mxGraphView.prototype.defaultDarkGridColor);c.cellEditor.editPlantUmlData=function(d,e,f){var g=JSON.parse(f);e=new TextareaDialog(b,mxResources.get("plantUml")+":",g.data,function(e){null!=
3597e&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generatePlantUmlImage(e,g.format,function(f,l,k){b.spinner.stop();c.getModel().beginUpdate();try{if("txt"==g.format)c.labelChanged(d,"<pre>"+f+"</pre>"),c.updateCellSize(d,!0);else{c.setCellStyles("image",b.convertDataUri(f),[d]);var m=c.model.getGeometry(d);null!=m&&(m=m.clone(),m.width=l,m.height=k,c.cellsResized([d],[m],!1))}c.setAttributeForCell(d,"plantUmlData",JSON.stringify({data:e,format:g.format}))}finally{c.getModel().endUpdate()}},
3598function(d){b.handleError(d)})},null,null,400,220);b.showDialog(e.container,420,300,!0,!0);e.init()};c.cellEditor.editMermaidData=function(d,e,f){var g=JSON.parse(f);e=new TextareaDialog(b,mxResources.get("mermaid")+":",g.data,function(e){null!=e&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generateMermaidImage(e,g.config,function(f,l,k){b.spinner.stop();c.getModel().beginUpdate();try{c.setCellStyles("image",f,[d]);var m=c.model.getGeometry(d);null!=m&&(m=m.clone(),m.width=Math.max(m.width,
3599l),m.height=Math.max(m.height,k),c.cellsResized([d],[m],!1));c.setAttributeForCell(d,"mermaidData",JSON.stringify({data:e,config:g.config},null,2))}finally{c.getModel().endUpdate()}},function(d){b.handleError(d)})},null,null,400,220);b.showDialog(e.container,420,300,!0,!0);e.init()};var e=c.cellEditor.startEditing;c.cellEditor.startEditing=function(d,f){try{var g=this.graph.getAttributeForCell(d,"plantUmlData");if(null!=g)this.editPlantUmlData(d,f,g);else if(g=this.graph.getAttributeForCell(d,"mermaidData"),
3600null!=g)this.editMermaidData(d,f,g);else{var l=c.getCellStyle(d);"1"==mxUtils.getValue(l,"metaEdit","0")?b.showDataDialog(d):e.apply(this,arguments)}}catch(ea){b.handleError(ea)}};c.getLinkTitle=function(d){return b.getLinkTitle(d)};c.customLinkClicked=function(d){var c=!1;try{b.handleCustomLink(d),c=!0}catch(L){b.handleError(L)}return c};var k=c.parseBackgroundImage;c.parseBackgroundImage=function(b){var d=k.apply(this,arguments);null!=d&&null!=d.src&&Graph.isPageLink(d.src)&&(d={originalSrc:d.src});
3601return d};var m=c.setBackgroundImage;c.setBackgroundImage=function(d){null!=d&&null!=d.originalSrc&&(d=b.createImageForPageLink(d.originalSrc,b.currentPage,this));m.apply(this,arguments)};this.editor.addListener("pageRenamed",mxUtils.bind(this,function(){c.refreshBackgroundImage()}));this.editor.addListener("pageMoved",mxUtils.bind(this,function(){c.refreshBackgroundImage()}));this.editor.addListener("pagesPatched",mxUtils.bind(this,function(b,d){var e=null!=c.backgroundImage?c.backgroundImage.originalSrc:
3602null;if(null!=e){var f=e.indexOf(",");if(0<f)for(var e=e.substring(f+1),f=d.getProperty("patches"),g=0;g<f.length;g++)if(null!=f[g][EditorUi.DIFF_UPDATE]&&null!=f[g][EditorUi.DIFF_UPDATE][e]){c.refreshBackgroundImage();break}}}));var n=c.getBackgroundImageObject;c.getBackgroundImageObject=function(d,c){var e=n.apply(this,arguments);if(null!=e&&null!=e.originalSrc)if(!c)e={src:e.originalSrc};else if(c&&null!=this.themes&&"darkTheme"==this.defaultThemeName){var f=this.stylesheet;this.stylesheet=this.getDefaultStylesheet();
3603e=b.createImageForPageLink(e.originalSrc);this.stylesheet=f}return e};var p=this.clearDefaultStyle;this.clearDefaultStyle=function(){p.apply(this,arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://www.diagrams.net/doc/faq/predefined-placeholders");if(/viewer\.diagrams\.net$/.test(window.location.hostname)||/embed\.diagrams\.net$/.test(window.location.hostname))this.editor.editBlankUrl="https://app.diagrams.net/";var t=b.editor.getEditBlankUrl;
3604this.editor.getEditBlankUrl=function(b){b=null!=b?b:"";"1"==urlParams.dev&&(b+=(0<b.length?"&":"?")+"dev=1");return t.apply(this,arguments)};var y=c.addClickHandler;c.addClickHandler=function(b,d,e){var f=d;d=function(b,d){if(null==d){var e=mxEvent.getSource(b);"a"==e.nodeName.toLowerCase()&&(d=e.getAttribute("href"))}null!=d&&c.isCustomLink(d)&&(mxEvent.isTouchEvent(b)||!mxEvent.isPopupTrigger(b))&&c.customLinkClicked(d)&&mxEvent.consume(b);null!=f&&f(b,d)};y.call(this,b,d,e)};g.apply(this,arguments);
3605mxClient.IS_SVG&&this.editor.graph.addSvgShadow(c.view.canvas.ownerSVGElement,null,!0);if(null!=this.menus){var x=Menus.prototype.addPopupMenuEditItems;this.menus.addPopupMenuEditItems=function(d,c,e){b.editor.graph.isSelectionEmpty()?x.apply(this,arguments):b.menus.addMenuItems(d,"delete - cut copy copyAsImage - duplicate".split(" "),null,e)}}b.actions.get("print").funct=function(){b.showDialog((new PrintDialog(b)).container,360,null!=b.pages&&1<b.pages.length?450:370,!0,!0)};this.defaultFilename=
3606mxResources.get("untitledDiagram");var D=c.getExportVariables;c.getExportVariables=function(){var d=D.apply(this,arguments),c=b.getCurrentFile();null!=c&&(d.filename=c.getTitle());d.pagecount=null!=b.pages?b.pages.length:1;d.page=null!=b.currentPage?b.currentPage.getName():"";d.pagenumber=null!=b.pages&&null!=b.currentPage?mxUtils.indexOf(b.pages,b.currentPage)+1:1;return d};var I=c.getGlobalVariable;c.getGlobalVariable=function(d){var c=b.getCurrentFile();return"filename"==d&&null!=c?c.getTitle():
3607"page"==d&&null!=b.currentPage?b.currentPage.getName():"pagenumber"==d?null!=b.currentPage&&null!=b.pages?mxUtils.indexOf(b.pages,b.currentPage)+1:1:"pagecount"==d?null!=b.pages?b.pages.length:1:I.apply(this,arguments)};var B=c.labelLinkClicked;c.labelLinkClicked=function(b,d,e){var f=d.getAttribute("href");if(null==f||!c.isCustomLink(f)||!mxEvent.isTouchEvent(e)&&mxEvent.isPopupTrigger(e))B.apply(this,arguments);else{if(!c.isEnabled()||null!=b&&c.isCellLocked(b.cell))c.customLinkClicked(f),c.getRubberband().reset();
3608mxEvent.consume(e)}};this.editor.getOrCreateFilename=function(){var d=b.defaultFilename,c=b.getCurrentFile();null!=c&&(d=null!=c.getTitle()?c.getTitle():d);return d};var F=this.actions.get("print");F.setEnabled(!mxClient.IS_IOS||!navigator.standalone);F.visible=F.isEnabled();if(!this.editor.chromeless||this.editor.editable)this.keyHandler.bindAction(70,!0,"findReplace"),this.keyHandler.bindAction(67,!0,"copyStyle",!0),this.keyHandler.bindAction(86,!0,"pasteStyle",!0),this.keyHandler.bindAction(77,
3609!0,"editGeometry",!0),this.keyHandler.bindAction(88,!0,"insertText",!0),this.keyHandler.bindAction(75,!0,"insertRectangle"),this.keyHandler.bindAction(75,!0,"insertEllipse",!0),this.altShiftActions[83]="synchronize",this.installImagePasteHandler(),this.installNativeClipboardHandler();this.spinner=this.createSpinner(null,null,24);Graph.fileSupport&&c.addListener(mxEvent.EDITING_STARTED,mxUtils.bind(this,function(b){var d=c.cellEditor.text2,e=null;null!=d&&(mxEvent.addListener(d,"dragleave",function(b){null!=
3610e&&(e.parentNode.removeChild(e),e=null);b.stopPropagation();b.preventDefault()}),mxEvent.addListener(d,"dragover",mxUtils.bind(this,function(b){null==e&&(!mxClient.IS_IE||10<document.documentMode)&&(e=this.highlightElement(d));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(d,"drop",mxUtils.bind(this,function(b){null!=e&&(e.parentNode.removeChild(e),e=null);if(0<b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,function(b,d,e,f,g,l){c.insertImage(b,
3611g,l)},function(){},function(b){return"image/"==b.type.substring(0,6)},function(b){for(var d=0;d<b.length;d++)b[d]()},mxEvent.isControlDown(b));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var d=b.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(d)?this.loadImage(decodeURIComponent(d),mxUtils.bind(this,function(b){var e=Math.max(1,b.width);b=Math.max(1,b.height);var f=this.maxImageSize,f=Math.min(1,Math.min(f/Math.max(1,e)),f/Math.max(1,b));c.insertImage(decodeURIComponent(d),
3612e*f,b*f)})):document.execCommand("insertHTML",!1,b.dataTransfer.getData("text/plain"))}else 0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")?document.execCommand("insertHTML",!1,b.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,b.dataTransfer.getData("text/plain"));b.stopPropagation();b.preventDefault()})))}));this.isSettingsEnabled()&&(F=this.editor.graph.view,F.setUnit(mxSettings.getUnit()),F.addListener("unitChanged",
3613function(b,d){mxSettings.setUnit(d.getProperty("unit"));mxSettings.save()}),this.ruler=!this.canvasSupported||9==document.documentMode||"1"!=urlParams.ruler&&!mxSettings.isRulerOn()||this.editor.isChromelessView()&&!this.editor.editable?null:new mxDualRuler(this,F.unit),this.refresh());if("1"==urlParams.styledev){F=document.getElementById("geFooter");null!=F&&(this.styleInput=document.createElement("input"),this.styleInput.setAttribute("type","text"),this.styleInput.style.position="absolute",this.styleInput.style.top=
3614"14px",this.styleInput.style.left="2px",this.styleInput.style.width="98%",this.styleInput.style.visibility="hidden",this.styleInput.style.opacity="0.9",mxEvent.addListener(this.styleInput,"change",mxUtils.bind(this,function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),this.styleInput.value)})),F.appendChild(this.styleInput),this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(b,d){if(0<this.editor.graph.getSelectionCount()){var c=
3615this.editor.graph.getSelectionCell(),c=this.editor.graph.getModel().getStyle(c);this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var M=this.isSelectionAllowed;this.isSelectionAllowed=function(b){return mxEvent.getSource(b)==this.styleInput?!0:M.apply(this,arguments)}}F=document.getElementById("geInfo");null!=F&&F.parentNode.removeChild(F);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var E=null;mxEvent.addListener(c.container,
3616"dragleave",function(b){c.isEnabled()&&(null!=E&&(E.parentNode.removeChild(E),E=null),b.stopPropagation(),b.preventDefault())});mxEvent.addListener(c.container,"dragover",mxUtils.bind(this,function(b){null==E&&(!mxClient.IS_IE||10<document.documentMode)&&(E=this.highlightElement(c.container));null!=this.sidebar&&this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()}));mxEvent.addListener(c.container,"drop",mxUtils.bind(this,function(b){null!=E&&(E.parentNode.removeChild(E),E=null);if(c.isEnabled()){var d=
3617mxUtils.convertPoint(c.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),e=c.view.translate,f=c.view.scale,g=d.x/f-e.x,l=d.y/f-e.y;if(0<b.dataTransfer.files.length)mxEvent.isShiftDown(b)?this.openFiles(b.dataTransfer.files,!0):(mxEvent.isAltDown(b)&&(l=g=null),this.importFiles(b.dataTransfer.files,g,l,this.maxImageSize,null,null,null,null,mxEvent.isControlDown(b),null,null,mxEvent.isShiftDown(b),b));else{mxEvent.isAltDown(b)&&(l=g=0);var k=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?
3618b.dataTransfer.getData("text/uri-list"):null,d=this.extractGraphModelFromEvent(b,null!=this.pages);if(null!=d)c.setSelectionCells(this.importXml(d,g,l,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){var m=b.dataTransfer.getData("text/html"),d=document.createElement("div");d.innerHTML=c.sanitizeHtml(m);var n=null,e=d.getElementsByTagName("img");null!=e&&1==e.length?(m=e[0].getAttribute("src"),null==m&&(m=e[0].getAttribute("srcset")),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(m)||(n=
3619!0)):(e=d.getElementsByTagName("a"),null!=e&&1==e.length?m=e[0].getAttribute("href"):(d=d.getElementsByTagName("pre"),null!=d&&1==d.length&&(m=mxUtils.getTextContent(d[0]))));var q=!0,p=mxUtils.bind(this,function(){c.setSelectionCells(this.insertTextAt(m,g,l,!0,n,null,q,mxEvent.isControlDown(b)))});n&&null!=m&&m.length>this.resampleThreshold?this.confirmImageResize(function(b){q=b;p()},mxEvent.isControlDown(b)):p()}else null!=k&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)?this.loadImage(decodeURIComponent(k),
3620mxUtils.bind(this,function(b){var d=Math.max(1,b.width);b=Math.max(1,b.height);var e=this.maxImageSize,e=Math.min(1,Math.min(e/Math.max(1,d)),e/Math.max(1,b));c.setSelectionCell(c.insertVertex(null,null,"",g,l,d*e,b*e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+k+";"))}),mxUtils.bind(this,function(b){c.setSelectionCells(this.insertTextAt(k,g,l,!0))})):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&c.setSelectionCells(this.insertTextAt(b.dataTransfer.getData("text/plain"),
3621g,l,!0))}}b.stopPropagation();b.preventDefault()}),!1)}c.enableFlowAnimation=!0;this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode();this.installSettings()};EditorUi.prototype.installImagePasteHandler=function(){if(!mxClient.IS_IE){var b=this.editor.graph;b.container.addEventListener("paste",mxUtils.bind(this,function(d){if(!mxEvent.isConsumed(d))try{for(var c=d.clipboardData||d.originalEvent.clipboardData,e=!1,f=0;f<c.types.length;f++)if("text/"===c.types[f].substring(0,5)){e=!0;break}if(!e){var g=
3622c.items;for(index in g){var k=g[index];if("file"===k.kind){if(b.isEditing())this.importFiles([k.getAsFile()],0,0,this.maxImageSize,function(d,c,e,f,g,l){b.insertImage(d,g,l)},function(){},function(b){return"image/"==b.type.substring(0,6)},function(b){for(var d=0;d<b.length;d++)b[d]()});else{var p=this.editor.graph.getInsertPoint();this.importFiles([k.getAsFile()],p.x,p.y,this.maxImageSize);mxEvent.consume(d)}break}}}}catch(y){}}),!1)}};EditorUi.prototype.installNativeClipboardHandler=function(){function b(){window.setTimeout(function(){e.innerHTML=
3623"&nbsp;";e.focus();document.execCommand("selectAll",!1,null)},0)}var c=this.editor.graph,e=document.createElement("div");e.setAttribute("autocomplete","off");e.setAttribute("autocorrect","off");e.setAttribute("autocapitalize","off");e.setAttribute("spellcheck","false");e.style.textRendering="optimizeSpeed";e.style.fontFamily="monospace";e.style.wordBreak="break-all";e.style.background="transparent";e.style.color="transparent";e.style.position="absolute";e.style.whiteSpace="nowrap";e.style.overflow=
3624"hidden";e.style.display="block";e.style.fontSize="1";e.style.zIndex="-1";e.style.resize="none";e.style.outline="none";e.style.width="1px";e.style.height="1px";mxUtils.setOpacity(e,0);e.contentEditable=!0;e.innerHTML="&nbsp;";var g=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(b){var d=mxEvent.getSource(b);null==c.container||!c.isEnabled()||c.isMouseDown||
3625c.isEditing()||null!=this.dialog||"INPUT"==d.nodeName||"TEXTAREA"==d.nodeName||224!=b.keyCode&&(mxClient.IS_MAC||17!=b.keyCode)&&(!mxClient.IS_MAC||91!=b.keyCode&&93!=b.keyCode)||g||(e.style.left=c.container.scrollLeft+10+"px",e.style.top=c.container.scrollTop+10+"px",c.container.appendChild(e),g=!0,e.focus(),document.execCommand("selectAll",!1,null))}));mxEvent.addListener(document,"keyup",mxUtils.bind(this,function(b){var d=b.keyCode;window.setTimeout(mxUtils.bind(this,function(){!g||224!=d&&17!=
3626d&&91!=d&&93!=d||(g=!1,c.isEditing()||null!=this.dialog||null==c.container||c.container.focus(),e.parentNode.removeChild(e),null==this.dialog&&mxUtils.clearSelection())}),0)}));mxEvent.addListener(e,"copy",mxUtils.bind(this,function(d){if(c.isEnabled())try{mxClipboard.copy(c),this.copyCells(e),b()}catch(u){this.handleError(u)}}));mxEvent.addListener(e,"cut",mxUtils.bind(this,function(d){if(c.isEnabled())try{mxClipboard.copy(c),this.copyCells(e,!0),b()}catch(u){this.handleError(u)}}));mxEvent.addListener(e,
3627"paste",mxUtils.bind(this,function(b){c.isEnabled()&&!c.isCellLocked(c.getDefaultParent())&&(e.innerHTML="&nbsp;",e.focus(),null!=b.clipboardData&&this.pasteCells(b,e,!0,!0),mxEvent.isConsumed(b)||window.setTimeout(mxUtils.bind(this,function(){this.pasteCells(b,e,!1,!0)}),0))}),!0);var k=this.isSelectionAllowed;this.isSelectionAllowed=function(b){return mxEvent.getSource(b)==e?!0:k.apply(this,arguments)}};EditorUi.prototype.setSketchMode=function(b){this.spinner.spin(document.body,mxResources.get("working")+
3628"...")&&window.setTimeout(mxUtils.bind(this,function(){this.spinner.stop();this.doSetSketchMode(b);null==urlParams.rough&&(mxSettings.settings.sketchMode=b,mxSettings.save());this.fireEvent(new mxEventObject("sketchModeChanged"))}),0)};EditorUi.prototype.setPagesVisible=function(b){Editor.pagesVisible!=b&&(Editor.pagesVisible=b,mxSettings.settings.pagesVisible=b,mxSettings.save(),this.fireEvent(new mxEventObject("pagesVisibleChanged")))};EditorUi.prototype.setInlineFullscreen=function(b){Editor.inlineFullscreen!=
3629b&&(Editor.inlineFullscreen=b,this.fireEvent(new mxEventObject("inlineFullscreenChanged")),(window.opener||window.parent).postMessage(JSON.stringify({event:"resize",fullscreen:Editor.inlineFullscreen,rect:this.diagramContainer.getBoundingClientRect()}),"*"),window.setTimeout(mxUtils.bind(this,function(){this.refresh();this.actions.get("resetView").funct()}),10))};EditorUi.prototype.doSetSketchMode=function(b){if(Editor.sketchMode!=b){var d=function(b,d,c){null==b[d]&&(b[d]=c)},c=this.editor.graph;
3630Editor.sketchMode=b;this.menus.defaultFonts=Menus.prototype.defaultFonts;this.menus.defaultFontSize=b?20:16;c.defaultVertexStyle=mxUtils.clone(Graph.prototype.defaultVertexStyle);d(c.defaultVertexStyle,"fontSize",this.menus.defaultFontSize);c.defaultEdgeStyle=mxUtils.clone(Graph.prototype.defaultEdgeStyle);d(c.defaultEdgeStyle,"fontSize",this.menus.defaultFontSize-4);d(c.defaultEdgeStyle,"edgeStyle","none");d(c.defaultEdgeStyle,"rounded","0");d(c.defaultEdgeStyle,"curved","1");d(c.defaultEdgeStyle,
3631"jettySize","auto");d(c.defaultEdgeStyle,"orthogonalLoop","1");d(c.defaultEdgeStyle,"endArrow","open");d(c.defaultEdgeStyle,"endSize","14");d(c.defaultEdgeStyle,"startSize","14");b&&(d(c.defaultVertexStyle,"fontFamily",Editor.sketchFontFamily),d(c.defaultVertexStyle,"fontSource",Editor.sketchFontSource),d(c.defaultVertexStyle,"hachureGap","4"),d(c.defaultVertexStyle,"sketch","1"),d(c.defaultEdgeStyle,"fontFamily",Editor.sketchFontFamily),d(c.defaultEdgeStyle,"fontSource",Editor.sketchFontSource),
3632d(c.defaultEdgeStyle,"sketch","1"),d(c.defaultEdgeStyle,"hachureGap","4"),d(c.defaultEdgeStyle,"sourcePerimeterSpacing","8"),d(c.defaultEdgeStyle,"targetPerimeterSpacing","8"),this.menus.defaultFonts=[{fontFamily:Editor.sketchFontFamily,fontUrl:decodeURIComponent(Editor.sketchFontSource)},{fontFamily:"Rock Salt",fontUrl:"https://fonts.googleapis.com/css?family=Rock+Salt"},{fontFamily:"Permanent Marker",fontUrl:"https://fonts.googleapis.com/css?family=Permanent+Marker"}].concat(this.menus.defaultFonts));
3633c.currentVertexStyle=mxUtils.clone(c.defaultVertexStyle);c.currentEdgeStyle=mxUtils.clone(c.defaultEdgeStyle);this.clearDefaultStyle()}};EditorUi.prototype.getLinkTitle=function(b){var d=Graph.prototype.getLinkTitle.apply(this,arguments);if(Graph.isPageLink(b)){var c=b.indexOf(",");0<c&&(d=this.getPageById(b.substring(c+1)),d=null!=d?d.getName():mxResources.get("pageNotFound"))}else"data:"==b.substring(0,5)&&(d=mxResources.get("action"));return d};EditorUi.prototype.handleCustomLink=function(b){if(Graph.isPageLink(b)){var d=
3634b.indexOf(",");if(b=this.getPageById(b.substring(d+1)))this.selectPage(b);else throw Error(mxResources.get("pageNotFound")||"Page not found");}else this.editor.graph.handleCustomLink(b)};EditorUi.prototype.isSettingsEnabled=function(){return"undefined"!==typeof window.mxSettings&&(isLocalStorage||mxClient.IS_CHROMEAPP)};EditorUi.prototype.installSettings=function(){if(this.isSettingsEnabled()){Editor.pagesVisible=mxSettings.settings.pagesVisible;ColorDialog.recentColors=mxSettings.getRecentColors();
3635if(isLocalStorage)try{window.addEventListener("storage",mxUtils.bind(this,function(b){b.key==mxSettings.key&&(mxSettings.load(),ColorDialog.recentColors=mxSettings.getRecentColors(),this.menus.customFonts=mxSettings.getCustomFonts())}),!1)}catch(d){}this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]));this.menus.customFonts=mxSettings.getCustomFonts();this.addListener("customFontsChanged",mxUtils.bind(this,function(b,c){if("1"!=urlParams["ext-fonts"])mxSettings.setCustomFonts(this.menus.customFonts);
3636else{var d=c.getProperty("customFonts");this.menus.customFonts=d;mxSettings.setCustomFonts(d)}mxSettings.save()}));this.editor.graph.connectionHandler.setCreateTarget(mxSettings.isCreateTarget());this.fireEvent(new mxEventObject("copyConnectChanged"));this.addListener("copyConnectChanged",mxUtils.bind(this,function(b,c){mxSettings.setCreateTarget(this.editor.graph.connectionHandler.isCreateTarget());mxSettings.save()}));this.editor.graph.pageFormat=null!=this.editor.graph.defaultPageFormat?this.editor.graph.defaultPageFormat:
3637mxSettings.getPageFormat();this.addListener("pageFormatChanged",mxUtils.bind(this,function(b,c){mxSettings.setPageFormat(this.editor.graph.pageFormat);mxSettings.save()}));this.editor.graph.view.gridColor=mxSettings.getGridColor(Editor.isDarkMode());this.addListener("gridColorChanged",mxUtils.bind(this,function(b,c){mxSettings.setGridColor(this.editor.graph.view.gridColor,Editor.isDarkMode());mxSettings.save()}));if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)this.editor.addListener("autosaveChanged",
3638mxUtils.bind(this,function(b,c){mxSettings.setAutosave(this.editor.autosave);mxSettings.save()})),this.editor.autosave=mxSettings.getAutosave();null!=this.sidebar&&(null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes?(this.sidebar.searchShapes(decodeURIComponent(urlParams["search-shapes"])),this.sidebar.showEntries("search")):(this.sidebar.showPalette("search",mxSettings.settings.search),this.editor.chromeless&&!this.editor.editable||!(mxSettings.settings.isNew||8>=parseInt(mxSettings.settings.version||
36390))||(this.toggleScratchpad(),mxSettings.save())));this.addListener("formatWidthChanged",function(){mxSettings.setFormatWidth(this.formatWidth);mxSettings.save()})}};EditorUi.prototype.copyImage=function(b,c,e){try{null!=navigator.clipboard&&this.spinner.spin(document.body,mxResources.get("exporting"))&&this.editor.exportToCanvas(mxUtils.bind(this,function(b,d){try{this.spinner.stop();var e=this.createImageDataUri(b,c,"png"),f=parseInt(d.getAttribute("width")),g=parseInt(d.getAttribute("height"));
3640this.writeImageToClipboard(e,f,g,mxUtils.bind(this,function(b){this.handleError(b)}))}catch(y){this.handleError(y)}}),null,null,null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,null,null!=e?e:4,null==this.editor.graph.background||this.editor.graph.background==mxConstants.NONE,null,null,null,10,null,null,!1,null,0<b.length?b:null)}catch(q){this.handleError(q)}};EditorUi.prototype.writeImageToClipboard=function(b,c,e,g){var d=this.base64ToBlob(b.substring(b.indexOf(",")+
36411),"image/png");b=new ClipboardItem({"image/png":d,"text/html":new Blob(['<img src="'+b+'" width="'+c+'" height="'+e+'">'],{type:"text/html"})});navigator.clipboard.write([b])["catch"](g)};EditorUi.prototype.copyCells=function(b,c){var d=this.editor.graph;if(d.isSelectionEmpty())b.innerHTML="";else{var e=mxUtils.sortCells(d.model.getTopmostCells(d.getSelectionCells())),f=mxUtils.getXml(d.encodeCells(e));mxUtils.setTextContent(b,encodeURIComponent(f));c?(d.removeCells(e,!1),d.lastPasteXml=null):(d.lastPasteXml=
3642f,d.pasteCounter=0);b.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.copyXml=function(){var b=null;if(Editor.enableNativeCipboard){var c=this.editor.graph;c.isSelectionEmpty()||(b=mxUtils.sortCells(c.getExportableCells(c.model.getTopmostCells(c.getSelectionCells()))),c=mxUtils.getXml(c.encodeCells(b)),navigator.clipboard.writeText(c))}return b};EditorUi.prototype.pasteXml=function(b,c,e,g){var d=this.editor.graph,f=null;d.lastPasteXml==b?d.pasteCounter++:(d.lastPasteXml=b,
3643d.pasteCounter=0);var l=d.pasteCounter*d.gridSize;if(e||this.isCompatibleString(b))f=this.importXml(b,l,l),d.setSelectionCells(f);else if(c&&1==d.getSelectionCount()){l=d.getStartEditingCell(d.getSelectionCell(),g);if(/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(b)&&"image"==d.getCurrentCellStyle(l)[mxConstants.STYLE_SHAPE])d.setCellStyles(mxConstants.STYLE_IMAGE,b,[l]);else{d.model.beginUpdate();try{d.labelChanged(l,b),Graph.isLink(b)&&d.setLinkForCell(l,b)}finally{d.model.endUpdate()}}d.setSelectionCell(l)}else f=
3644d.getInsertPoint(),d.isMouseInsertPoint()&&(l=0,d.lastPasteXml==b&&0<d.pasteCounter&&d.pasteCounter--),f=this.insertTextAt(b,f.x+l,f.y+l,!0),d.setSelectionCells(f);d.isSelectionEmpty()||(d.scrollCellToVisible(d.getSelectionCell()),null!=this.hoverIcons&&this.hoverIcons.update(d.view.getState(d.getSelectionCell())));return f};EditorUi.prototype.pasteCells=function(b,c,e,g){if(!mxEvent.isConsumed(b)){var d=c,f=!1;if(e&&null!=b.clipboardData&&b.clipboardData.getData){var l=b.clipboardData.getData("text/plain"),
3645k=!1;if(null!=l&&0<l.length&&"%3CmxGraphModel%3E"==l.substring(0,18)){var p=decodeURIComponent(l);this.isCompatibleString(p)&&(k=!0,l=p)}k=k?null:b.clipboardData.getData("text/html");null!=k&&0<k.length?(d=this.parseHtmlData(k),f="text/plain"!=d.getAttribute("data-type")):null!=l&&0<l.length&&(d=document.createElement("div"),mxUtils.setTextContent(d,k))}l=d.getElementsByTagName("span");if(null!=l&&0<l.length&&"application/vnd.lucid.chart.objects"===l[0].getAttribute("data-lucid-type"))e=l[0].getAttribute("data-lucid-content"),
3646null!=e&&0<e.length&&(this.convertLucidChart(e,mxUtils.bind(this,function(b){var d=this.editor.graph;d.lastPasteXml==b?d.pasteCounter++:(d.lastPasteXml=b,d.pasteCounter=0);var c=d.pasteCounter*d.gridSize;d.setSelectionCells(this.importXml(b,c,c));d.scrollCellToVisible(d.getSelectionCell())}),mxUtils.bind(this,function(b){this.handleError(b)})),mxEvent.consume(b));else{f=f?d.innerHTML:mxUtils.trim(null==d.innerText?mxUtils.getTextContent(d):d.innerText);k=!1;try{var q=f.lastIndexOf("%3E");0<=q&&q<
3647f.length-3&&(f=f.substring(0,q+3))}catch(I){}try{l=d.getElementsByTagName("span"),p=null!=l&&0<l.length?mxUtils.trim(decodeURIComponent(l[0].textContent)):decodeURIComponent(f),this.isCompatibleString(p)&&(k=!0,f=p)}catch(I){}try{if(null!=f&&0<f.length){this.pasteXml(f,g,k,b);try{mxEvent.consume(b)}catch(I){}}else if(!e){var t=this.editor.graph;t.lastPasteXml=null;t.pasteCounter=0}}catch(I){this.handleError(I)}}}c.innerHTML="&nbsp;"};EditorUi.prototype.addFileDropHandler=function(b){if(Graph.fileSupport)for(var d=
3648null,c=0;c<b.length;c++)mxEvent.addListener(b[c],"dragleave",function(b){null!=d&&(d.parentNode.removeChild(d),d=null);b.stopPropagation();b.preventDefault()}),mxEvent.addListener(b[c],"dragover",mxUtils.bind(this,function(b){(this.editor.graph.isEnabled()||"1"!=urlParams.embed)&&null==d&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode)&&(d=this.highlightElement());b.stopPropagation();b.preventDefault()})),mxEvent.addListener(b[c],"drop",mxUtils.bind(this,function(b){null!=d&&
3649(d.parentNode.removeChild(d),d=null);if(this.editor.graph.isEnabled()||"1"!=urlParams.embed)if(0<b.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(b)&&!mxEvent.isShiftDown(b)):this.openFiles(b.dataTransfer.files,!0);else{var c=this.extractGraphModelFromEvent(b);if(null==c){var e=null!=b.dataTransfer?b.dataTransfer:b.clipboardData;null!=e&&(10==document.documentMode||11==document.documentMode?
3650c=e.getData("Text"):(c=null,c=0<=mxUtils.indexOf(e.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(e.types,"text/html")?e.getData("text/html"):null,null!=c&&0<c.length?(e=document.createElement("div"),e.innerHTML=this.editor.graph.sanitizeHtml(c),e=e.getElementsByTagName("img"),0<e.length&&(c=e[0].getAttribute("src"))):0<=mxUtils.indexOf(e.types,"text/plain")&&(c=e.getData("text/plain"))),null!=c&&("data:image/png;base64,"==c.substring(0,22)?(c=this.extractGraphModelFromPng(c),
3651null!=c&&0<c.length&&this.openLocalFile(c,null,!0)):!this.isOffline()&&this.isRemoteFileFormat(c)?(new mxXmlRequest(OPEN_URL,"format=xml&data="+encodeURIComponent(c))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()&&this.openLocalFile(b.getText(),null,!0)})):/^https?:\/\//.test(c)&&(null==this.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(c):window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+
3652"#U"+encodeURIComponent(c)))))}else this.openLocalFile(c,null,!0)}b.stopPropagation();b.preventDefault()}))};EditorUi.prototype.highlightElement=function(b){var d=0,c=0,e,g;if(null==b){g=document.body;var k=document.documentElement;e=(g.clientWidth||k.clientWidth)-3;g=Math.max(g.clientHeight||0,k.clientHeight)-3}else d=b.offsetTop,c=b.offsetLeft,e=b.clientWidth,g=b.clientHeight;k=document.createElement("div");k.style.zIndex=mxPopupMenu.prototype.zIndex+2;k.style.border="3px dotted rgb(254, 137, 12)";
3653k.style.pointerEvents="none";k.style.position="absolute";k.style.top=d+"px";k.style.left=c+"px";k.style.width=Math.max(0,e-3)+"px";k.style.height=Math.max(0,g-3)+"px";null!=b&&b.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(k):document.body.appendChild(k);return k};EditorUi.prototype.stringToCells=function(b){b=mxUtils.parseXml(b);var d=this.editor.extractGraphModel(b.documentElement);b=[];if(null!=d){var c=new mxCodec(d.ownerDocument),e=new mxGraphModel;c.decode(d,
3654e);d=e.getChildAt(e.getRoot(),0);for(c=0;c<e.getChildCount(d);c++)b.push(e.getChildAt(d,c))}return b};EditorUi.prototype.openFileHandle=function(b,c,e,g,k){if(null!=c&&0<c.length){!this.useCanvasForExport&&/(\.png)$/i.test(c)?c=c.substring(0,c.length-4)+".drawio":/(\.pdf)$/i.test(c)&&(c=c.substring(0,c.length-4)+".drawio");var d=mxUtils.bind(this,function(b){c=0<=c.lastIndexOf(".")?c.substring(0,c.lastIndexOf("."))+".drawio":c+".drawio";if("<mxlibrary"==b.substring(0,10)){null==this.getCurrentFile()&&
3655"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,g);try{this.loadLibrary(new LocalLibrary(this,b,c))}catch(y){this.handleError(y,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(b,c,g)});if(/(\.v(dx|sdx?))($|\?)/i.test(c)||/(\.vs(x|sx?))($|\?)/i.test(c))this.importVisio(e,mxUtils.bind(this,function(b){this.spinner.stop();d(b)}));else if(/(\.*<graphml )/.test(b))this.importGraphML(b,mxUtils.bind(this,function(b){this.spinner.stop();d(b)}));else if(Graph.fileSupport&&
3656!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,c))this.parseFile(e,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?d(b.responseText):this.handleError({message:mxResources.get(413==b.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if(this.isLucidChartData(b))/(\.json)$/i.test(c)&&(c=c.substring(0,c.length-5)+".drawio"),this.convertLucidChart(b,mxUtils.bind(this,function(b){this.spinner.stop();
3657this.openLocalFile(b,c,g)}),mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}));else if("<mxlibrary"==b.substring(0,10)){this.spinner.stop();null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,g);try{this.loadLibrary(new LocalLibrary(this,b,e.name))}catch(v){this.handleError(v,mxResources.get("errorLoadingFile"))}}else if(0==b.indexOf("PK"))this.importZipFile(e,mxUtils.bind(this,function(b){this.spinner.stop();d(b)}),
3658mxUtils.bind(this,function(){this.spinner.stop();this.openLocalFile(b,c,g)}));else{if("image/png"==e.type.substring(0,9))b=this.extractGraphModelFromPng(b);else if("application/pdf"==e.type){var f=Editor.extractGraphModelFromPdf(b);null!=f&&(k=null,g=!0,b=f)}this.spinner.stop();this.openLocalFile(b,c,g,k,null!=k?e:null)}}};EditorUi.prototype.openFiles=function(b,c){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var d=0;d<b.length;d++)mxUtils.bind(this,function(b){var d=new FileReader;
3659d.onload=mxUtils.bind(this,function(d){try{this.openFileHandle(d.target.result,b.name,b,c)}catch(u){this.handleError(u)}});d.onerror=mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b);window.openFile=null});"image"!==b.type.substring(0,5)&&"application/pdf"!==b.type||"image/svg"===b.type.substring(0,9)?d.readAsText(b):d.readAsDataURL(b)})(b[d])};EditorUi.prototype.openLocalFile=function(b,c,e,g,k){var d=this.getCurrentFile(),f=mxUtils.bind(this,function(){window.openFile=null;if(null==
3660c&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var d=mxUtils.parseXml(b);null!=d&&(this.editor.setGraphXml(d.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,b,c||this.defaultFilename,e,g,k))});if(null!=b&&0<b.length)null==d||!d.isModified()&&(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=g)?f():(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=g)&&null!=d&&d.isModified()?this.confirm(mxResources.get("allChangesLost"),null,f,mxResources.get("cancel"),
3661mxResources.get("discardChanges")):(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(b,c),window.openWindow(this.getUrl(),null,mxUtils.bind(this,function(){null!=d&&d.isModified()?this.confirm(mxResources.get("allChangesLost"),null,f,mxResources.get("cancel"),mxResources.get("discardChanges")):f()})));else throw Error(mxResources.get("notADiagramFile"));};EditorUi.prototype.getBasenames=function(){var b={};if(null!=this.pages)for(var c=0;c<this.pages.length;c++)this.updatePageRoot(this.pages[c]),
3662this.addBasenamesForCell(this.pages[c].root,b);else this.addBasenamesForCell(this.editor.graph.model.getRoot(),b);var c=[],e;for(e in b)c.push(e);return c};EditorUi.prototype.addBasenamesForCell=function(b,c){function d(b){if(null!=b){var d=b.lastIndexOf(".");0<d&&(b=b.substring(d+1,b.length));null==c[b]&&(c[b]=!0)}}var e=this.editor.graph,f=e.getCellStyle(b);d(mxStencilRegistry.getBasenameForStencil(f[mxConstants.STYLE_SHAPE]));e.model.isEdge(b)&&(d(mxMarker.getPackageForType(f[mxConstants.STYLE_STARTARROW])),
3663d(mxMarker.getPackageForType(f[mxConstants.STYLE_ENDARROW])));for(var f=e.model.getChildCount(b),g=0;g<f;g++)this.addBasenamesForCell(e.model.getChildAt(b,g),c)};EditorUi.prototype.setGraphEnabled=function(b){this.diagramContainer.style.visibility=b?"":"hidden";this.formatContainer.style.visibility=b?"":"hidden";this.sidebarFooterContainer.style.display=b?"":"none";this.sidebarContainer.style.display=b?"":"none";this.hsplit.style.display=b?"":"none";this.editor.graph.setEnabled(b);null!=this.ruler&&
3664(this.ruler.hRuler.container.style.visibility=b?"":"hidden",this.ruler.vRuler.container.style.visibility=b?"":"hidden");null!=this.tabContainer&&(this.tabContainer.style.visibility=b?"":"hidden");b||(null!=this.actions.outlineWindow&&this.actions.outlineWindow.window.setVisible(!1),null!=this.actions.layersWindow&&this.actions.layersWindow.window.setVisible(!1),null!=this.menus.tagsWindow&&this.menus.tagsWindow.window.setVisible(!1),null!=this.menus.findWindow&&this.menus.findWindow.window.setVisible(!1),
3665null!=this.menus.findReplaceWindow&&this.menus.findReplaceWindow.window.setVisible(!1))};EditorUi.prototype.initializeEmbedMode=function(){this.setGraphEnabled(!1);if((window.opener||window.parent)!=window&&("1"!=urlParams.spin||this.spinner.spin(document.body,mxResources.get("loading")))){var b=!1;this.installMessageHandler(mxUtils.bind(this,function(d,c,e,g){b||(b=!0,this.spinner.stop(),this.addEmbedButtons(),this.setGraphEnabled(!0));if(null==d||0==d.length)d=this.emptyDiagramXml;this.setCurrentFile(new EmbedFile(this,
3666d,{}));this.mode=App.MODE_EMBED;this.setFileData(d);if(g)try{var f=this.editor.graph;f.setGridEnabled(!1);f.pageVisible=!1;var l=f.model.cells,k;for(k in l){var m=l[k];null!=m&&null!=m.style&&(m.style+=";sketch=1;"+(-1==m.style.indexOf("fontFamily=")||-1<m.style.indexOf("fontFamily=Helvetica;")?"fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;":""))}}catch(x){console.log(x)}this.editor.isChromelessView()?this.editor.graph.isLightboxView()&&
3667this.lightboxFit():this.showLayersDialog();this.chromelessResize&&this.chromelessResize();this.editor.undoManager.clear();this.editor.modified=null!=e?e:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&this.format.refresh()}))}};EditorUi.prototype.showLayersDialog=function(){1<this.editor.graph.getModel().getChildCount(this.editor.graph.getModel().getRoot())&&(null==this.actions.layersWindow?this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};
3668EditorUi.prototype.getPublicUrl=function(b,c){null!=b?b.getPublicUrl(c):c(null)};EditorUi.prototype.createLoadMessage=function(b){var d=this.editor.graph;return{event:b,pageVisible:d.pageVisible,translate:d.view.translate,bounds:d.getGraphBounds(),currentPage:this.getSelectedPageIndex(),scale:d.view.scale,page:d.view.getBackgroundPageBounds()}};EditorUi.prototype.sendEmbeddedSvgExport=function(b){var d=this.editor.graph;d.isEditing()&&d.stopEditing(!d.isInvokesStopCellEditing());var c=window.opener||
3669window.parent;if(this.editor.modified){var e=d.background;if(null==e||e==mxConstants.NONE)e=this.embedExportBackground;this.getEmbeddedSvg(this.getFileData(!0,null,null,null,null,null,null,null,null,!1),d,null,!0,mxUtils.bind(this,function(d){c.postMessage(JSON.stringify({event:"export",point:this.embedExitPoint,exit:null!=b?!b:!0,data:Editor.createSvgDataUri(d)}),"*")}),null,null,!0,e,1,this.embedExportBorder)}else b||c.postMessage(JSON.stringify({event:"exit",point:this.embedExitPoint}),"*");b||
3670(this.diagramContainer.removeAttribute("data-bounds"),Editor.inlineFullscreen=!1,d.model.clear(),this.editor.undoManager.clear(),this.setBackgroundImage(null),this.editor.modified=!1,this.fireEvent(new mxEventObject("editInlineStop")))};EditorUi.prototype.installMessageHandler=function(b){var d=null,c=!1,e=!1,g=null,k=mxUtils.bind(this,function(b,d){this.editor.modified&&"0"!=urlParams.modified?null!=urlParams.modified&&this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(urlParams.modified))):
3671this.editor.setStatus("")});this.editor.graph.model.addListener(mxEvent.CHANGE,k);mxEvent.addListener(window,"message",mxUtils.bind(this,function(f){if(f.source==(window.opener||window.parent)){var k=f.data,l=null,m=mxUtils.bind(this,function(b){if(null!=b&&"function"===typeof b.charAt&&"<"!=b.charAt(0))try{"data:image/png;base64,"==b.substring(0,22)?b=this.extractGraphModelFromPng(b):"data:image/svg+xml;base64,"==b.substring(0,26)?b=atob(b.substring(26)):"data:image/svg+xml;utf8,"==b.substring(0,
367224)&&(b=b.substring(24)),null!=b&&("%"==b.charAt(0)?b=decodeURIComponent(b):"<"!=b.charAt(0)&&(b=Graph.decompress(b)))}catch(na){}return b});if("json"==urlParams.proto){var n=!1;try{k=JSON.parse(k)}catch(ka){k=null}try{if(null==k)return;if("dialog"==k.action){this.showError(null!=k.titleKey?mxResources.get(k.titleKey):k.title,null!=k.messageKey?mxResources.get(k.messageKey):k.message,null!=k.buttonKey?mxResources.get(k.buttonKey):k.button);null!=k.modified&&(this.editor.modified=k.modified);return}if("layout"==
3673k.action){this.executeLayoutList(k.layouts);return}if("prompt"==k.action){this.spinner.stop();var q=new FilenameDialog(this,k.defaultValue||"",null!=k.okKey?mxResources.get(k.okKey):k.ok,function(b){null!=b?p.postMessage(JSON.stringify({event:"prompt",value:b,message:k}),"*"):p.postMessage(JSON.stringify({event:"prompt-cancel",message:k}),"*")},null!=k.titleKey?mxResources.get(k.titleKey):k.title);this.showDialog(q.container,300,80,!0,!1);q.init();return}if("draft"==k.action){var t=m(k.xml);this.spinner.stop();
3674q=new DraftDialog(this,mxResources.get("draftFound",[k.name||this.defaultFilename]),t,mxUtils.bind(this,function(){this.hideDialog();p.postMessage(JSON.stringify({event:"draft",result:"edit",message:k}),"*")}),mxUtils.bind(this,function(){this.hideDialog();p.postMessage(JSON.stringify({event:"draft",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();p.postMessage(JSON.stringify({event:"draft",
3675result:"ignore",message:k}),"*")}):null);this.showDialog(q.container,640,480,!0,!1,mxUtils.bind(this,function(b){b&&this.actions.get("exit").funct()}));try{q.init()}catch(ka){p.postMessage(JSON.stringify({event:"draft",error:ka.toString(),message:k}),"*")}return}if("template"==k.action){this.spinner.stop();var u=1==k.enableRecent,v=1==k.enableSearch,C=1==k.enableCustomTemp;if("1"==urlParams.newTempDlg&&!k.templatesOnly&&null!=k.callback){var y=this.getCurrentUser(),O=new TemplatesDialog(this,function(b,
3676d,c){b=b||this.emptyDiagramXml;p.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:d,tempUrl:c.url,libs:c.libs,builtIn:null!=c.info&&null!=c.info.custContentId,message:k}),"*")},mxUtils.bind(this,function(){this.actions.get("exit").funct()}),null,null,null!=y?y.id:null,u?mxUtils.bind(this,function(b,d,c){this.remoteInvoke("getRecentDiagrams",[c],null,b,d)}):null,v?mxUtils.bind(this,function(b,d,c,e){this.remoteInvoke("searchDiagrams",[b,e],null,d,c)}):null,mxUtils.bind(this,
3677function(b,d,c){this.remoteInvoke("getFileContent",[b.url],null,d,c)}),null,C?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,!1,!1,!0,!0);this.showDialog(O.container,window.innerWidth,window.innerHeight,!0,!1,null,!1,!0);return}q=new NewDialog(this,!1,k.templatesOnly?!1:null!=k.callback,mxUtils.bind(this,function(d,c,e,g){d=d||this.emptyDiagramXml;null!=k.callback?p.postMessage(JSON.stringify({event:"template",xml:d,blank:d==this.emptyDiagramXml,
3678name:c,tempUrl:e,libs:g,builtIn:!0,message:k}),"*"):(b(d,f,d!=this.emptyDiagramXml,k.toSketch),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,u?mxUtils.bind(this,function(b){this.remoteInvoke("getRecentDiagrams",[null],null,b,function(){b(null,"Network Error!")})}):null,v?mxUtils.bind(this,function(b,d){this.remoteInvoke("searchDiagrams",[b,null],null,d,function(){d(null,"Network Error!")})}):null,mxUtils.bind(this,function(b,d,c){p.postMessage(JSON.stringify({event:"template",
3679docUrl:b,info:d,name:c}),"*")}),null,null,C?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,1==k.withoutType);this.showDialog(q.container,620,460,!0,!1,mxUtils.bind(this,function(b){this.sidebar.hideTooltip();b&&this.actions.get("exit").funct()}));q.init();return}if("textContent"==k.action){var ea=this.getDiagramTextContent();p.postMessage(JSON.stringify({event:"textContent",data:ea,message:k}),"*");return}if("status"==k.action){null!=k.messageKey?
3680this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(k.messageKey))):null!=k.message&&this.editor.setStatus(mxUtils.htmlEntities(k.message));null!=k.modified&&(this.editor.modified=k.modified);return}if("spinner"==k.action){var N=null!=k.messageKey?mxResources.get(k.messageKey):k.message;null==k.show||k.show?this.spinner.spin(document.body,N):this.spinner.stop();return}if("exit"==k.action){this.actions.get("exit").funct();return}if("viewport"==k.action){null!=k.viewport&&(this.embedViewport=
3681k.viewport);return}if("snapshot"==k.action){this.sendEmbeddedSvgExport(!0);return}if("export"==k.action){if("png"==k.format||"xmlpng"==k.format){if(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin)){var Q=null!=k.xml?k.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var T=this.editor.graph,H=mxUtils.bind(this,function(b){this.editor.graph.setEnabled(!0);this.spinner.stop();var d=this.createLoadMessage("export");d.format=k.format;
3682d.message=k;d.data=b;d.xml=Q;p.postMessage(JSON.stringify(d),"*")}),J=mxUtils.bind(this,function(b){null==b&&(b=Editor.blankImage);"xmlpng"==k.format&&(b=Editor.writeGraphModelToPng(b,"tEXt","mxfile",encodeURIComponent(Q)));T!=this.editor.graph&&T.container.parentNode.removeChild(T.container);H(b)}),A=k.pageId||(null!=this.pages?k.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){var Z=mxUtils.bind(this,function(){if(null!=this.pages&&this.currentPage.getId()!=
3683A){var b=T.getGlobalVariable;T=this.createTemporaryGraph(T.getStylesheet());for(var d,c=0;c<this.pages.length;c++)if(this.pages[c].getId()==A){d=this.updatePageRoot(this.pages[c]);break}null==d&&(d=this.currentPage);T.getGlobalVariable=function(c){return"page"==c?d.getName():"pagenumber"==c?1:b.apply(this,arguments)};document.body.appendChild(T.container);T.model.setRoot(d.root)}if(null!=k.layerIds){for(var e=T.model,f=e.getChildCells(e.getRoot()),g={},c=0;c<k.layerIds.length;c++)g[k.layerIds[c]]=
3684!0;for(c=0;c<f.length;c++)e.setVisible(f[c],g[f[c].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(b){J(b.toDataURL("image/png"))}),k.width,null,k.background,mxUtils.bind(this,function(){J(null)}),null,null,k.scale,k.transparent,k.shadow,null,T,k.border,null,k.grid,k.keepTheme)});null!=k.xml&&0<k.xml.length?(c=!0,this.setFileData(Q),c=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(Z)},0):Z()):Z()}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+
3685("xmlpng"==k.format?"1":"0")+(null!=A?"&pageId="+A:"")+(null!=k.layerIds&&0<k.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:k.layerIds})):"")+(null!=k.scale?"&scale="+k.scale:"")+"&base64=1&xml="+encodeURIComponent(Q))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()?H("data:image/png;base64,"+b.getText()):J(null)}),mxUtils.bind(this,function(){J(null)}))}}else Z=mxUtils.bind(this,function(){var b=this.createLoadMessage("export");b.message=k;if("html2"==
3686k.format||"html"==k.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var d=this.getXmlFileData();b.xml=mxUtils.getXml(d);b.data=this.getFileData(null,null,!0,null,null,null,d);b.format=k.format}else if("html"==k.format)d=this.editor.getGraphXml(),b.data=this.getHtml(d,this.editor.graph),b.xml=mxUtils.getXml(d),b.format=k.format;else{mxSvgCanvas2D.prototype.foAltText=null;d=null!=k.background?k.background:this.editor.graph.background;d==mxConstants.NONE&&(d=null);b.xml=this.getFileData(!0,
3687null,null,null,null,null,null,null,null,!1);b.format="svg";var c=mxUtils.bind(this,function(d){this.editor.graph.setEnabled(!0);this.spinner.stop();b.data=Editor.createSvgDataUri(d);p.postMessage(JSON.stringify(b),"*")});if("xmlsvg"==k.format)(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin))&&this.getEmbeddedSvg(b.xml,this.editor.graph,null,!0,c,null,null,k.embedImages,d,k.scale,k.border,k.shadow,k.keepTheme);else if(null==k.spin&&
3688null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin))this.editor.graph.setEnabled(!1),d=this.editor.graph.getSvg(d,k.scale,k.border,null,null,null,null,null,null,this.editor.graph.shadowVisible||k.shadow,null,k.keepTheme),(this.editor.graph.shadowVisible||k.shadow)&&this.editor.graph.addSvgShadow(d),this.embedFonts(d,mxUtils.bind(this,function(b){k.embedImages||null==k.embedImages?this.editor.convertImages(b,mxUtils.bind(this,function(b){c(mxUtils.getXml(b))})):
3689c(mxUtils.getXml(b))}));return}p.postMessage(JSON.stringify(b),"*")}),null!=k.xml&&0<k.xml.length?(c=!0,this.setFileData(k.xml),c=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(Z)},0):Z()):Z();return}if("load"==k.action){n=k.toSketch;e=1==k.autosave;this.hideDialog();null!=k.modified&&null==urlParams.modified&&(urlParams.modified=k.modified);null!=k.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=k.saveAndExit);null!=k.noSaveBtn&&null==urlParams.noSaveBtn&&
3690(urlParams.noSaveBtn=k.noSaveBtn);if(null!=k.rough){var G=Editor.sketchMode;this.doSetSketchMode(k.rough);G!=Editor.sketchMode&&this.fireEvent(new mxEventObject("sketchModeChanged"))}null!=k.dark&&(G=Editor.darkMode,this.doSetDarkMode(k.dark),G!=Editor.darkMode&&this.fireEvent(new mxEventObject("darkModeChanged")));null!=k.border&&(this.embedExportBorder=k.border);null!=k.background&&(this.embedExportBackground=k.background);null!=k.viewport&&(this.embedViewport=k.viewport);this.embedExitPoint=null;
3691if(null!=k.rect){var W=this.embedExportBorder;this.diagramContainer.style.border="2px solid #295fcc";this.diagramContainer.style.top=k.rect.top+"px";this.diagramContainer.style.left=k.rect.left+"px";this.diagramContainer.style.height=k.rect.height+"px";this.diagramContainer.style.width=k.rect.width+"px";this.diagramContainer.style.bottom="";this.diagramContainer.style.right="";l=mxUtils.bind(this,function(){var b=this.editor.graph,d=b.maxFitScale;b.maxFitScale=k.maxFitScale;b.fit(2*W);b.maxFitScale=
3692d;b.container.scrollTop-=2*W;b.container.scrollLeft-=2*W;this.fireEvent(new mxEventObject("editInlineStart","data",[k]))})}null!=k.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=k.noExitBtn);null!=k.title&&null!=this.buttonContainer&&(t=document.createElement("span"),mxUtils.write(t,k.title),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(t),this.embedFilenameSpan=t);try{k.libs&&this.sidebar.showEntries(k.libs)}catch(ka){}k=
3693null!=k.xmlpng?this.extractGraphModelFromPng(k.xmlpng):null!=k.descriptor?k.descriptor:k.xml}else{if("merge"==k.action){var aa=this.getCurrentFile();null!=aa&&(t=m(k.xml),null!=t&&""!=t&&aa.mergeFile(new LocalFile(this,t),function(){p.postMessage(JSON.stringify({event:"merge",message:k}),"*")},function(b){p.postMessage(JSON.stringify({event:"merge",message:k,error:b}),"*")}))}else"remoteInvokeReady"==k.action?this.handleRemoteInvokeReady(p):"remoteInvoke"==k.action?this.handleRemoteInvoke(k,f.origin):
3694"remoteInvokeResponse"==k.action?this.handleRemoteInvokeResponse(k):p.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(k)}),"*");return}}catch(ka){this.handleError(ka)}}var oa=mxUtils.bind(this,function(){return"0"!=urlParams.pages||null!=this.pages&&1<this.pages.length?this.getFileData(!0):mxUtils.getXml(this.editor.getGraphXml())}),ha=mxUtils.bind(this,function(f,k){c=!0;try{b(f,k,null,n)}catch(la){this.handleError(la)}c=!1;null!=urlParams.modified&&this.editor.setStatus("");
3695g=oa();e&&null==d&&(d=mxUtils.bind(this,function(b,d){var e=oa();if(e!=g&&!c){var f=this.createLoadMessage("autosave");f.xml=e;(window.opener||window.parent).postMessage(JSON.stringify(f),"*")}g=e}),this.editor.graph.model.addListener(mxEvent.CHANGE,d),this.editor.graph.addListener("gridSizeChanged",d),this.editor.graph.addListener("shadowVisibleChanged",d),this.addListener("pageFormatChanged",d),this.addListener("pageScaleChanged",d),this.addListener("backgroundColorChanged",d),this.addListener("backgroundImageChanged",
3696d),this.addListener("foldingEnabledChanged",d),this.addListener("mathEnabledChanged",d),this.addListener("gridEnabledChanged",d),this.addListener("guidesEnabledChanged",d),this.addListener("pageViewChanged",d));if("1"==urlParams.returnbounds||"json"==urlParams.proto){var m=this.createLoadMessage("load");m.xml=f;p.postMessage(JSON.stringify(m),"*")}null!=l&&l()});null!=k&&"function"===typeof k.substring&&"data:application/vnd.visio;base64,"==k.substring(0,34)?(m="0M8R4KGxGuE"==k.substring(34,45)?"raw.vsd":
3697"raw.vsdx",this.importVisio(this.base64ToBlob(k.substring(k.indexOf(",")+1)),function(b){ha(b,f)},mxUtils.bind(this,function(b){this.handleError(b)}),m)):null!=k&&"function"===typeof k.substring&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(k,"")?this.parseFile(new Blob([k],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&200<=b.status&&299>=b.status&&"<mxGraphModel"==b.responseText.substring(0,13)&&ha(b.responseText,f)}),""):null!=k&&"function"===
3698typeof k.substring&&this.isLucidChartData(k)?this.convertLucidChart(k,mxUtils.bind(this,function(b){ha(b)}),mxUtils.bind(this,function(b){this.handleError(b)})):null==k||"object"!==typeof k||null==k.format||null==k.data&&null==k.url?(k=m(k),ha(k,f)):this.loadDescriptor(k,mxUtils.bind(this,function(b){ha(oa(),f)}),mxUtils.bind(this,function(b){this.handleError(b,mxResources.get("errorLoadingFile"))}))}}));var p=window.opener||window.parent,k="json"==urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||
3699"ready";p.postMessage(k,"*");if("json"==urlParams.proto){var t=this.editor.graph.openLink;this.editor.graph.openLink=function(b,d,c){t.apply(this,arguments);p.postMessage(JSON.stringify({event:"openLink",href:b,target:d,allowOpener:c}),"*")}}};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar&&"1"!=urlParams.embedInline){var b=document.createElement("div");b.style.display="inline-block";b.style.position="absolute";b.style.paddingTop="atlas"==uiTheme||"1"==urlParams.atlas?"2px":"0px";
3700b.style.paddingLeft="8px";b.style.paddingBottom="2px";var c=document.createElement("button");c.className="geBigButton";var e=c;if("1"==urlParams.noSaveBtn){if("0"!=urlParams.saveAndExit){var g="1"==urlParams.publishClose?mxResources.get("publish"):mxResources.get("saveAndExit");mxUtils.write(c,g);c.setAttribute("title",g);mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()}));b.appendChild(c)}}else mxUtils.write(c,mxResources.get("save")),c.setAttribute("title",
3701mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),b.appendChild(c),"1"==urlParams.saveAndExit&&(c=document.createElement("a"),mxUtils.write(c,mxResources.get("saveAndExit")),c.setAttribute("title",mxResources.get("saveAndExit")),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),b.appendChild(c),
3702e=c);"1"!=urlParams.noExitBtn&&(c=document.createElement("a"),e="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(c,e),c.setAttribute("title",e),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),b.appendChild(c),e=c);e.style.marginRight="20px";this.toolbar.container.appendChild(b);this.toolbar.staticElements.push(b);b.style.right="atlas"==uiTheme||
3703"1"==urlParams.atlas?"42px":"52px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(b){this.importCsv(b)}),null,null,620,430,null,!0,!0,mxResources.get("import"),this.isOffline()?null:"https://drawio-app.com/import-from-csv-to-drawio/"));this.showDialog(this.importCsvDialog.container,640,520,!0,!0,null,null,null,null,!0);this.importCsvDialog.init()};
3704EditorUi.prototype.executeLayoutList=function(b,c){for(var d=this.editor.graph,e=d.getSelectionCells(),f=0;f<b.length;f++){var g=new window[b[f].layout](d);if(null!=b[f].config)for(var k in b[f].config)g[k]=b[f].config[k];this.executeLayout(function(){g.execute(d.getDefaultParent(),0==e.length?null:e)},f==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),e=[],f=[],g=[],k={};if(0<d.length){var p={},t=null,x=null,D=null,I=null,B=null,F=null,M="whiteSpace=wrap;html=1;",
3705E=null,K=null,C="",L="auto",O="auto",ea=null,N=null,Q=40,T=40,H=100,J=0,A=this.editor.graph;A.getGraphBounds();for(var Z=function(){null!=c?c(qa):(A.setSelectionCells(qa),A.scrollCellToVisible(A.getSelectionCell()))},G=A.getFreeInsertPoint(),W=G.x,aa=G.y,G=aa,oa=null,ha="auto",K=null,ka=[],na=null,pa=null,la=0;la<d.length&&"#"==d[la].charAt(0);){b=d[la];for(la++;la<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[la].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[la].substring(1)),la++;if("#"!=
3706b.charAt(1)){var Y=b.indexOf(":");if(0<Y){var ba=mxUtils.trim(b.substring(1,Y)),R=mxUtils.trim(b.substring(Y+1));"label"==ba?oa=A.sanitizeHtml(R):"labelname"==ba&&0<R.length&&"-"!=R?B=R:"labels"==ba&&0<R.length&&"-"!=R?F=JSON.parse(R):"style"==ba?x=R:"parentstyle"==ba?M=R:"stylename"==ba&&0<R.length&&"-"!=R?I=R:"styles"==ba&&0<R.length&&"-"!=R?D=JSON.parse(R):"vars"==ba&&0<R.length&&"-"!=R?t=JSON.parse(R):"identity"==ba&&0<R.length&&"-"!=R?E=R:"parent"==ba&&0<R.length&&"-"!=R?K=R:"namespace"==ba&&
37070<R.length&&"-"!=R?C=R:"width"==ba?L=R:"height"==ba?O=R:"left"==ba&&0<R.length?ea=R:"top"==ba&&0<R.length?N=R:"ignore"==ba?pa=R.split(","):"connect"==ba?ka.push(JSON.parse(R)):"link"==ba?na=R:"padding"==ba?J=parseFloat(R):"edgespacing"==ba?Q=parseFloat(R):"nodespacing"==ba?T=parseFloat(R):"levelspacing"==ba?H=parseFloat(R):"layout"==ba&&(ha=R)}}}if(null==d[la])throw Error(mxResources.get("invalidOrMissingFile"));for(var ra=this.editor.csvToArray(d[la]),ba=Y=null,R=[],V=0;V<ra.length;V++)E==ra[V]&&
3708(Y=V),K==ra[V]&&(ba=V),R.push(mxUtils.trim(ra[V]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==oa&&(oa="%"+R[0]+"%");if(null!=ka)for(var U=0;U<ka.length;U++)null==p[ka[U].to]&&(p[ka[U].to]={});E=[];for(V=la+1;V<d.length;V++){var ma=this.editor.csvToArray(d[V]);if(null==ma){var ta=40<d[V].length?d[V].substring(0,40)+"...":d[V];throw Error(ta+" ("+V+"):\n"+mxResources.get("containsValidationErrors"));}0<ma.length&&E.push(ma)}A.model.beginUpdate();try{for(V=0;V<E.length;V++){var ma=
3709E[V],S=null,ga=null!=Y?C+ma[Y]:null;null!=ga&&(S=A.model.getCell(ga));var d=null!=S,ja=new mxCell(oa,new mxGeometry(W,G,0,0),x||"whiteSpace=wrap;html=1;");ja.vertex=!0;ja.id=ga;for(var ca=0;ca<ma.length;ca++)A.setAttributeForCell(ja,R[ca],ma[ca]);if(null!=B&&null!=F){var ua=F[ja.getAttribute(B)];null!=ua&&A.labelChanged(ja,ua)}if(null!=I&&null!=D){var Ca=D[ja.getAttribute(I)];null!=Ca&&(ja.style=Ca)}A.setAttributeForCell(ja,"placeholders","1");ja.style=A.replacePlaceholders(ja,ja.style,t);d?(A.model.setValue(S,
3710ja.value),A.model.setStyle(S,ja.style),0>mxUtils.indexOf(g,S)&&g.push(S),A.fireEvent(new mxEventObject("cellsInserted","cells",[S]))):A.fireEvent(new mxEventObject("cellsInserted","cells",[ja]));S=ja;if(!d)for(U=0;U<ka.length;U++)p[ka[U].to][S.getAttribute(ka[U].to)]=S;null!=na&&"link"!=na&&(A.setLinkForCell(S,S.getAttribute(na)),A.setAttributeForCell(S,na,null));var P=this.editor.graph.getPreferredSizeForCell(S),K=null!=ba?A.model.getCell(C+ma[ba]):null;if(S.vertex){ta=null!=K?0:W;la=null!=K?0:aa;
3711null!=ea&&null!=S.getAttribute(ea)&&(S.geometry.x=ta+parseFloat(S.getAttribute(ea)));null!=N&&null!=S.getAttribute(N)&&(S.geometry.y=la+parseFloat(S.getAttribute(N)));var fa="@"==L.charAt(0)?S.getAttribute(L.substring(1)):null;S.geometry.width=null!=fa&&"auto"!=fa?parseFloat(S.getAttribute(L.substring(1))):"auto"==L||"auto"==fa?P.width+J:parseFloat(L);var wa="@"==O.charAt(0)?S.getAttribute(O.substring(1)):null;S.geometry.height=null!=wa&&"auto"!=wa?parseFloat(wa):"auto"==O||"auto"==wa?P.height+J:
3712parseFloat(O);G+=S.geometry.height+T}d?(null==k[ga]&&(k[ga]=[]),k[ga].push(S)):(e.push(S),null!=K?(K.style=A.replacePlaceholders(K,M,t),A.addCell(S,K),f.push(K)):g.push(A.addCell(S)))}for(V=0;V<f.length;V++)fa="@"==L.charAt(0)?f[V].getAttribute(L.substring(1)):null,wa="@"==O.charAt(0)?f[V].getAttribute(O.substring(1)):null,"auto"!=L&&"auto"!=fa||"auto"!=O&&"auto"!=wa||A.updateGroupBounds([f[V]],J,!0);for(var xa=g.slice(),qa=g.slice(),U=0;U<ka.length;U++)for(var za=ka[U],V=0;V<e.length;V++){var S=
3713e[V],Aa=mxUtils.bind(this,function(b,d,c){var e=d.getAttribute(c.from);if(null!=e&&""!=e)for(var e=e.split(","),f=0;f<e.length;f++){var g=p[c.to][e[f]];if(null!=g){var k=c.label;null!=c.fromlabel&&(k=(d.getAttribute(c.fromlabel)||"")+(k||""));null!=c.sourcelabel&&(k=A.replacePlaceholders(d,c.sourcelabel,t)+(k||""));null!=c.tolabel&&(k=(k||"")+(g.getAttribute(c.tolabel)||""));null!=c.targetlabel&&(k=(k||"")+A.replacePlaceholders(g,c.targetlabel,t));var l="target"==c.placeholders==!c.invert?g:b,l=null!=
3714c.style?A.replacePlaceholders(l,c.style,t):A.createCurrentEdgeStyle(),k=A.insertEdge(null,null,k||"",c.invert?g:b,c.invert?b:g,l);if(null!=c.labels)for(l=0;l<c.labels.length;l++){var m=c.labels[l],n=new mxCell(m.label||l,new mxGeometry(null!=m.x?m.x:0,null!=m.y?m.y:0,0,0),"resizable=0;html=1;");n.vertex=!0;n.connectable=!1;n.geometry.relative=!0;null!=m.placeholders&&(n.value=A.replacePlaceholders("target"==m.placeholders==!c.invert?g:b,n.value,t));if(null!=m.dx||null!=m.dy)n.geometry.offset=new mxPoint(null!=
3715m.dx?m.dx:0,null!=m.dy?m.dy:0);k.insert(n)}qa.push(k);mxUtils.remove(c.invert?b:g,xa)}}});Aa(S,S,za);if(null!=k[S.id])for(ca=0;ca<k[S.id].length;ca++)Aa(S,k[S.id][ca],za)}if(null!=pa)for(V=0;V<e.length;V++)for(S=e[V],ca=0;ca<pa.length;ca++)A.setAttributeForCell(S,mxUtils.trim(pa[ca]),null);if(0<g.length){var Da=new mxParallelEdgeLayout(A);Da.spacing=Q;Da.checkOverlap=!0;var Ea=function(){0<Da.spacing&&Da.execute(A.getDefaultParent());for(var b=0;b<g.length;b++){var d=A.getCellGeometry(g[b]);d.x=Math.round(A.snap(d.x));
3716d.y=Math.round(A.snap(d.y));"auto"==L&&(d.width=Math.round(A.snap(d.width)));"auto"==O&&(d.height=Math.round(A.snap(d.height)))}};if("["==ha.charAt(0)){var Ka=Z;A.view.validate();this.executeLayoutList(JSON.parse(ha),function(){Ea();Ka()});Z=null}else if("circle"==ha){var Ba=new mxCircleLayout(A);Ba.disableEdgeStyle=!1;Ba.resetEdges=!1;var Ha=Ba.isVertexIgnored;Ba.isVertexIgnored=function(b){return Ha.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){Ba.execute(A.getDefaultParent());
3717Ea()},!0,Z);Z=null}else if("horizontaltree"==ha||"verticaltree"==ha||"auto"==ha&&qa.length==2*g.length-1&&1==xa.length){A.view.validate();var Fa=new mxCompactTreeLayout(A,"horizontaltree"==ha);Fa.levelDistance=T;Fa.edgeRouting=!1;Fa.resetEdges=!1;this.executeLayout(function(){Fa.execute(A.getDefaultParent(),0<xa.length?xa[0]:null)},!0,Z);Z=null}else if("horizontalflow"==ha||"verticalflow"==ha||"auto"==ha&&1==xa.length){A.view.validate();var X=new mxHierarchicalLayout(A,"horizontalflow"==ha?mxConstants.DIRECTION_WEST:
3718mxConstants.DIRECTION_NORTH);X.intraCellSpacing=T;X.parallelEdgeSpacing=Q;X.interRankCellSpacing=H;X.disableEdgeStyle=!1;this.executeLayout(function(){X.execute(A.getDefaultParent(),qa);A.moveCells(qa,W,aa)},!0,Z);Z=null}else if("organic"==ha||"auto"==ha&&qa.length>g.length){A.view.validate();var va=new mxFastOrganicLayout(A);va.forceConstant=3*T;va.disableEdgeStyle=!1;va.resetEdges=!1;var Oa=va.isVertexIgnored;va.isVertexIgnored=function(b){return Oa.apply(this,arguments)||0>mxUtils.indexOf(g,b)};
3719this.executeLayout(function(){va.execute(A.getDefaultParent());Ea()},!0,Z);Z=null}}this.hideDialog()}finally{A.model.endUpdate()}null!=Z&&Z()}}catch(La){this.handleError(La)}};EditorUi.prototype.getSearch=function(b){var d="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=b&&0<window.location.search.length){var c="?",e;for(e in urlParams)0>mxUtils.indexOf(b,e)&&null!=urlParams[e]&&(d+=c+e+"="+urlParams[e],c="&")}else d=window.location.search;return d};EditorUi.prototype.getUrl=function(b){b=
3720null!=b?b:window.location.pathname;var d=0<b.indexOf("?")?1:0;if("1"==urlParams.offline)b+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),e;for(e in urlParams)0>mxUtils.indexOf(c,e)&&(b=0==d?b+"?":b+"&",null!=urlParams[e]&&(b+=e+"="+urlParams[e],d++))}return b};EditorUi.prototype.showLinkDialog=function(b,c,e,g,k){b=new LinkDialog(this,b,c,e,!0,g,k);this.showDialog(b.container,560,130,!0,!0);b.init()};EditorUi.prototype.getServiceCount=
3721function(b){var d=1;null==this.drive&&"function"!==typeof window.DriveClient||d++;null==this.dropbox&&"function"!==typeof window.DropboxClient||d++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||d++;null!=this.gitHub&&d++;null!=this.gitLab&&d++;null!=this.notion&&d++;b&&isLocalStorage&&"1"==urlParams.browser&&d++;return d};EditorUi.prototype.updateUi=function(){this.updateButtonContainer();this.updateActionStates();var b=this.getCurrentFile(),c=null!=b||"1"==urlParams.embed&&this.editor.graph.isEnabled();
3722this.menus.get("viewPanels").setEnabled(c);this.menus.get("viewZoom").setEnabled(c);var e=("1"!=urlParams.embed||!this.editor.graph.isEnabled())&&(null==b||b.isRestricted());this.actions.get("makeCopy").setEnabled(!e);this.actions.get("print").setEnabled(!e);this.menus.get("exportAs").setEnabled(!e);this.menus.get("embed").setEnabled(!e);e="1"!=urlParams.embed||this.editor.graph.isEnabled();this.menus.get("extras").setEnabled(e);Editor.enableCustomLibraries&&(this.menus.get("openLibraryFrom").setEnabled(e),
3723this.menus.get("newLibrary").setEnabled(e));b="1"==urlParams.embed&&this.editor.graph.isEnabled()||null!=b&&b.isEditable();this.actions.get("image").setEnabled(c);this.actions.get("zoomIn").setEnabled(c);this.actions.get("zoomOut").setEnabled(c);this.actions.get("resetView").setEnabled(c);this.actions.get("undo").setEnabled(this.canUndo()&&b);this.actions.get("redo").setEnabled(this.canRedo()&&b);this.menus.get("edit").setEnabled(c);this.menus.get("view").setEnabled(c);this.menus.get("importFrom").setEnabled(b);
3724this.menus.get("arrange").setEnabled(b);null!=this.toolbar&&(null!=this.toolbar.edgeShapeMenu&&this.toolbar.edgeShapeMenu.setEnabled(b),null!=this.toolbar.edgeStyleMenu&&this.toolbar.edgeStyleMenu.setEnabled(b));this.updateUserElement()};EditorUi.prototype.updateButtonContainer=function(){};EditorUi.prototype.updateUserElement=function(){};EditorUi.prototype.scheduleSanityCheck=function(){};EditorUi.prototype.stopSanityCheck=function(){};EditorUi.prototype.isDiagramActive=function(){var b=this.getCurrentFile();
3725return null!=b&&b.isEditable()||"1"==urlParams.embed&&this.editor.graph.isEnabled()};var p=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){p.apply(this,arguments);var b=this.editor.graph,c=this.getCurrentFile(),e=this.isDiagramActive(),g=b.getEditableCells(b.getSelectionCells());this.actions.get("pageSetup").setEnabled(e);this.actions.get("autosave").setEnabled(null!=c&&c.isEditable()&&c.isAutosaveOptional());this.actions.get("guides").setEnabled(e);this.actions.get("editData").setEnabled(0<
3726g.length||b.isSelectionEmpty());this.actions.get("shadowVisible").setEnabled(e);this.actions.get("connectionArrows").setEnabled(e);this.actions.get("connectionPoints").setEnabled(e);this.actions.get("copyStyle").setEnabled(e&&!b.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(e&&0<g.length);this.actions.get("editGeometry").setEnabled(0<g.length&&b.getModel().isVertex(g[0]));this.actions.get("createShape").setEnabled(e);this.actions.get("createRevision").setEnabled(e);this.actions.get("moveToFolder").setEnabled(null!=
3727c);this.actions.get("makeCopy").setEnabled(null!=c&&!c.isRestricted());this.actions.get("editDiagram").setEnabled(e&&(null==c||!c.isRestricted()));this.actions.get("publishLink").setEnabled(null!=c&&!c.isRestricted());this.actions.get("tags").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("layers").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("outline").setEnabled("hidden"!=this.diagramContainer.style.visibility);this.actions.get("rename").setEnabled(null!=
3728c&&c.isRenamable()||"1"==urlParams.embed);this.actions.get("close").setEnabled(null!=c);this.menus.get("publish").setEnabled(null!=c&&!c.isRestricted());c=this.actions.get("findReplace");c.setEnabled("hidden"!=this.diagramContainer.style.visibility);c.label=mxResources.get("find")+(b.isEnabled()?"/"+mxResources.get("replace"):"")+"...";b=b.view.getState(b.getSelectionCell());this.actions.get("editShape").setEnabled(e&&null!=b&&null!=b.shape&&null!=b.shape.stencil)};var t=EditorUi.prototype.destroy;
3729EditorUi.prototype.destroy=function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null);t.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(b,c,e,g,k,n,p,t){var d=b.editor.graph;if("xml"==e)b.hideDialog(),b.saveData(c,"xml",mxUtils.getXml(b.editor.getGraphXml()),"text/xml");else if("svg"==e)b.hideDialog(),b.saveData(c,"svg",mxUtils.getXml(d.getSvg(g,
3730k,n)),"image/svg+xml");else{var f=b.getFileData(!0,null,null,null,null,!0),l=d.getGraphBounds(),m=Math.floor(l.width*k/d.view.scale),q=Math.floor(l.height*k/d.view.scale);if(f.length<=MAX_REQUEST_SIZE&&m*q<MAX_AREA)if(b.hideDialog(),"png"!=e&&"jpg"!=e&&"jpeg"!=e||!b.isExportToCanvas()){var u={globalVars:d.getExportVariables()};t&&(u.grid={size:d.gridSize,steps:d.view.gridSteps,color:d.view.gridColor});b.saveRequest(c,e,function(b,c){return new mxXmlRequest(EXPORT_URL,"format="+e+"&base64="+(c||"0")+
3731(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(u))+(0<p?"&dpi="+p:"")+"&bg="+(null!=g?g:"none")+"&w="+m+"&h="+q+"&border="+n+"&xml="+encodeURIComponent(f))})}else"png"==e?b.exportImage(k,null==g||"none"==g,!0,!1,!1,n,!0,!1,null,t,p):b.exportImage(k,!1,!0,!1,!1,n,!0,!1,"jpeg",t);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var b=this.editor.graph,c="";if(null!=
3732this.pages)for(var e=0;e<this.pages.length;e++){var g=b;this.currentPage!=this.pages[e]&&(g=this.createTemporaryGraph(b.getStylesheet()),this.updatePageRoot(this.pages[e]),g.model.setRoot(this.pages[e].root));c+=this.pages[e].getName()+" "+g.getIndexableText()+" "}else c=b.getIndexableText();this.editor.graph.setEnabled(!0);return c};EditorUi.prototype.showRemotelyStoredLibrary=function(b){var c={},d=document.createElement("div");d.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,
3733mxUtils.htmlEntities(b));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(e);var g=document.createElement("div");g.style.cssText="border:1px solid lightGray;overflow: auto;height:300px";g.innerHTML='<div style="text-align:center;padding:8px;"><img src="'+IMAGE_PATH+'/spin.gif"></div>';var k={};try{var p=mxSettings.getCustomLibraries();for(b=0;b<p.length;b++){var t=p[b];if("R"==t.substring(0,1)){var y=JSON.parse(decodeURIComponent(t.substring(1)));k[y[0]]=
3734{id:y[0],title:y[1],downloadUrl:y[2]}}}}catch(x){}this.remoteInvoke("getCustomLibraries",null,null,function(b){g.innerHTML="";if(0==b.length)g.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+"</div>";else for(var d=0;d<b.length;d++){var e=b[d];k[e.id]&&(c[e.id]=e);var f=this.addCheckbox(g,e.title,k[e.id]);(function(b,d){mxEvent.addListener(d,"change",function(){this.checked?c[b.id]=b:delete c[b.id]})})(e,f)}},mxUtils.bind(this,
3735function(b){g.innerHTML="";var c=document.createElement("div");c.style.padding="8px";c.style.textAlign="center";mxUtils.write(c,mxResources.get("error")+": ");mxUtils.write(c,null!=b&&null!=b.message?b.message:mxResources.get("unknownError"));g.appendChild(c)}));d.appendChild(g);d=new CustomDialog(this,d,mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"));var b=0,d;for(d in c)null==k[d]&&(b++,mxUtils.bind(this,function(c){this.remoteInvoke("getFileContent",[c.downloadUrl],
3736null,mxUtils.bind(this,function(d){b--;0==b&&this.spinner.stop();try{this.loadLibrary(new RemoteLibrary(this,d,c))}catch(F){this.handleError(F,mxResources.get("errorLoadingFile"))}}),mxUtils.bind(this,function(){b--;0==b&&this.spinner.stop();this.handleError(null,mxResources.get("errorLoadingFile"))}))})(c[d]));for(d in k)c[d]||this.closeLibrary(new RemoteLibrary(this,null,k[d]));0==b&&this.spinner.stop()}),null,null,"https://www.diagrams.net/doc/faq/custom-libraries-confluence-cloud");this.showDialog(d.container,
3737340,390,!0,!0,null,null,null,null,!0)};EditorUi.prototype.remoteInvokableFns={getDiagramTextContent:{isAsync:!1},getLocalStorageFile:{isAsync:!1,allowedDomains:["app.diagrams.net"]},getLocalStorageFileNames:{isAsync:!1,allowedDomains:["app.diagrams.net"]},setMigratedFlag:{isAsync:!1,allowedDomains:["app.diagrams.net"]}};EditorUi.prototype.remoteInvokeCallbacks=[];EditorUi.prototype.remoteInvokeQueue=[];EditorUi.prototype.handleRemoteInvokeReady=function(b){this.remoteWin=b;for(var c=0;c<this.remoteInvokeQueue.length;c++)b.postMessage(this.remoteInvokeQueue[c],
3738"*");this.remoteInvokeQueue=[]};EditorUi.prototype.handleRemoteInvokeResponse=function(b){var c=b.msgMarkers,d=this.remoteInvokeCallbacks[c.callbackId];if(null==d)throw Error("No callback for "+(null!=c?c.callbackId:"null"));b.error?d.error&&d.error(b.error.errResp):d.callback&&d.callback.apply(this,b.resp);this.remoteInvokeCallbacks[c.callbackId]=null};EditorUi.prototype.remoteInvoke=function(b,c,e,g,k){var d=!0,f=window.setTimeout(mxUtils.bind(this,function(){d=!1;k({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout")})}),
3739this.timeout),l=mxUtils.bind(this,function(){window.clearTimeout(f);d&&g.apply(this,arguments)}),m=mxUtils.bind(this,function(){window.clearTimeout(f);d&&k.apply(this,arguments)});e=e||{};e.callbackId=this.remoteInvokeCallbacks.length;this.remoteInvokeCallbacks.push({callback:l,error:m});b=JSON.stringify({event:"remoteInvoke",funtionName:b,functionArgs:c,msgMarkers:e});null!=this.remoteWin?this.remoteWin.postMessage(b,"*"):this.remoteInvokeQueue.push(b)};EditorUi.prototype.handleRemoteInvoke=function(b,
3740c){var d=mxUtils.bind(this,function(c,d){var e={event:"remoteInvokeResponse",msgMarkers:b.msgMarkers};null!=d?e.error={errResp:d}:null!=c&&(e.resp=c);this.remoteWin.postMessage(JSON.stringify(e),"*")});try{var e=b.funtionName,f=this.remoteInvokableFns[e];if(null!=f&&"function"===typeof this[e]){if(f.allowedDomains){for(var g=!1,k=0;k<f.allowedDomains.length;k++)if(c=="https://"+f.allowedDomains[k]){g=!0;break}if(!g){d(null,"Invalid Call: "+e+" is not allowed.");return}}var p=b.functionArgs;Array.isArray(p)||
3741(p=[]);if(f.isAsync)p.push(function(){d(Array.prototype.slice.apply(arguments))}),p.push(function(b){d(null,b||"Unkown Error")}),this[e].apply(this,p);else{var t=this[e].apply(this,p);d([t])}}else d(null,"Invalid Call: "+e+" is not found.")}catch(x){d(null,"Invalid Call: An error occurred, "+x.message)}};EditorUi.prototype.openDatabase=function(b,c){if(null==this.database){var d=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB;if(null!=d)try{var e=d.open("database",2);e.onupgradeneeded=
3742function(b){try{var d=e.result;1>b.oldVersion&&d.createObjectStore("objects",{keyPath:"key"});2>b.oldVersion&&(d.createObjectStore("files",{keyPath:"title"}),d.createObjectStore("filesInfo",{keyPath:"title"}),EditorUi.migrateStorageFiles=isLocalStorage)}catch(u){null!=c&&c(u)}};e.onsuccess=mxUtils.bind(this,function(c){var d=e.result;this.database=d;EditorUi.migrateStorageFiles&&(StorageFile.migrate(d),EditorUi.migrateStorageFiles=!1);"app.diagrams.net"!=location.host||this.drawioMigrationStarted||
3743(this.drawioMigrationStarted=!0,this.getDatabaseItem(".drawioMigrated3",mxUtils.bind(this,function(b){if(!b||"1"==urlParams.forceMigration){var c=document.createElement("iframe");c.style.display="none";c.setAttribute("src","https://www.draw.io?embed=1&proto=json&forceMigration="+urlParams.forceMigration);document.body.appendChild(c);var d=!0,e=!1,f,g=0,k=mxUtils.bind(this,function(){e=!0;this.setDatabaseItem(".drawioMigrated3",!0);c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",
3744funtionName:"setMigratedFlag"}),"*")}),l=mxUtils.bind(this,function(){g++;m()}),m=mxUtils.bind(this,function(){try{if(g>=f.length)k();else{var b=f[g];StorageFile.getFileContent(this,b,mxUtils.bind(this,function(d){null==d||".scratchpad"==b&&d==this.emptyLibraryXml?c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFile",functionArgs:[b]}),"*"):l()}),l)}}catch(C){console.log(C)}}),p=mxUtils.bind(this,function(b){try{this.setDatabaseItem(null,[{title:b.title,
3745size:b.data.length,lastModified:Date.now(),type:b.isLib?"L":"F"},{title:b.title,data:b.data}],l,l,["filesInfo","files"])}catch(C){console.log(C)}});b=mxUtils.bind(this,function(b){try{if(b.source==c.contentWindow){var g={};try{g=JSON.parse(b.data)}catch(L){}"init"==g.event?(c.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),"*"),c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=g.event||e||
3746(d?null!=g.resp&&0<g.resp.length&&null!=g.resp[0]?(f=g.resp[0],d=!1,m()):k():null!=g.resp&&0<g.resp.length&&null!=g.resp[0]?p(g.resp[0]):l())}}catch(L){console.log(L)}});window.addEventListener("message",b)}})));b(d);d.onversionchange=function(){d.close()}});e.onerror=c;e.onblocked=function(){}}catch(m){null!=c&&c(m)}else null!=c&&c()}else b(this.database)};EditorUi.prototype.setDatabaseItem=function(b,c,e,g,k){this.openDatabase(mxUtils.bind(this,function(d){try{k=k||"objects";Array.isArray(k)||(k=
3747[k],b=[b],c=[c]);var f=d.transaction(k,"readwrite");f.oncomplete=e;f.onerror=g;for(d=0;d<k.length;d++)f.objectStore(k[d]).put(null!=b&&null!=b[d]?{key:b[d],data:c[d]}:c[d])}catch(v){null!=g&&g(v)}}),g)};EditorUi.prototype.removeDatabaseItem=function(b,c,e,g){this.openDatabase(mxUtils.bind(this,function(d){g=g||"objects";Array.isArray(g)||(g=[g],b=[b]);d=d.transaction(g,"readwrite");d.oncomplete=c;d.onerror=e;for(var f=0;f<g.length;f++)d.objectStore(g[f])["delete"](b[f])}),e)};EditorUi.prototype.getDatabaseItem=
3748function(b,c,e,g){this.openDatabase(mxUtils.bind(this,function(d){try{g=g||"objects";var f=d.transaction([g],"readonly").objectStore(g).get(b);f.onsuccess=function(){c(f.result)};f.onerror=e}catch(u){null!=e&&e(u)}}),e)};EditorUi.prototype.getDatabaseItems=function(b,c,e){this.openDatabase(mxUtils.bind(this,function(d){try{e=e||"objects";var f=d.transaction([e],"readonly").objectStore(e).openCursor(IDBKeyRange.lowerBound(0)),g=[];f.onsuccess=function(c){null==c.target.result?b(g):(g.push(c.target.result.value),
3749c.target.result["continue"]())};f.onerror=c}catch(u){null!=c&&c(u)}}),c)};EditorUi.prototype.getDatabaseItemKeys=function(b,c,e){this.openDatabase(mxUtils.bind(this,function(d){try{e=e||"objects";var f=d.transaction([e],"readonly").objectStore(e).getAllKeys();f.onsuccess=function(){b(f.result)};f.onerror=c}catch(n){null!=c&&c(n)}}),c)};EditorUi.prototype.commentsSupported=function(){var b=this.getCurrentFile();return null!=b?b.commentsSupported():!1};EditorUi.prototype.commentsRefreshNeeded=function(){var b=
3750this.getCurrentFile();return null!=b?b.commentsRefreshNeeded():!0};EditorUi.prototype.commentsSaveNeeded=function(){var b=this.getCurrentFile();return null!=b?b.commentsSaveNeeded():!1};EditorUi.prototype.getComments=function(b,c){var d=this.getCurrentFile();null!=d?d.getComments(b,c):b([])};EditorUi.prototype.addComment=function(b,c,e){var d=this.getCurrentFile();null!=d?d.addComment(b,c,e):c(Date.now())};EditorUi.prototype.canReplyToReplies=function(){var b=this.getCurrentFile();return null!=b?
3751b.canReplyToReplies():!0};EditorUi.prototype.canComment=function(){var b=this.getCurrentFile();return null!=b?b.canComment():!0};EditorUi.prototype.newComment=function(b,c){var d=this.getCurrentFile();return null!=d?d.newComment(b,c):new DrawioComment(this,null,b,Date.now(),Date.now(),!1,c)};EditorUi.prototype.isRevisionHistorySupported=function(){var b=this.getCurrentFile();return null!=b&&b.isRevisionHistorySupported()};EditorUi.prototype.getRevisions=function(b,c){var d=this.getCurrentFile();null!=
3752d&&d.getRevisions?d.getRevisions(b,c):c({message:mxResources.get("unknownError")})};EditorUi.prototype.isRevisionHistoryEnabled=function(){var b=this.getCurrentFile();return null!=b&&(b.constructor==DriveFile&&b.isEditable()||b.constructor==DropboxFile)};EditorUi.prototype.getServiceName=function(){return"draw.io"};EditorUi.prototype.addRemoteServiceSecurityCheck=function(b){b.setRequestHeader("Content-Language","da, mi, en, de-DE")};EditorUi.prototype.loadUrl=function(b,c,e,g,k,p,t,v){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");
3753return this.editor.loadUrl(b,c,e,g,k,p,t,v)};EditorUi.prototype.loadFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");return this.editor.loadFonts(b)};EditorUi.prototype.createSvgDataUri=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(b)};EditorUi.prototype.embedCssFonts=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(b,c)};EditorUi.prototype.embedExtFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");
3754return this.editor.embedExtFonts(b)};EditorUi.prototype.exportToCanvas=function(b,c,e,g,k,p,t,v,y,x,D,I,B,F,M,E){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(b,c,e,g,k,p,t,v,y,x,D,I,B,F,M,E)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(b,c,e,g){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");
3755return this.editor.convertImages(b,c,e,g)};EditorUi.prototype.convertImageToDataUri=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImageToDataUri");return this.editor.convertImageToDataUri(b,c)};EditorUi.prototype.base64Encode=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: base64Encode");return Editor.base64Encode(b)};EditorUi.prototype.updateCRC=function(b,c,e,g){EditorUi.logEvent("SHOULD NOT BE CALLED: updateCRC");return Editor.updateCRC(b,c,e,g)};EditorUi.prototype.crc32=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: crc32");
3756return Editor.crc32(b)};EditorUi.prototype.writeGraphModelToPng=function(b,c,e,g,k){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");return Editor.writeGraphModelToPng(b,c,e,g,k)};EditorUi.prototype.getLocalStorageFileNames=function(){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;for(var b=[],c=0;c<localStorage.length;c++){var e=localStorage.key(c),g=localStorage.getItem(e);if(0<e.length&&(".scratchpad"==e||"."!=e.charAt(0))&&0<g.length){var k=
3757"<mxfile "===g.substring(0,8)||"<?xml"===g.substring(0,5)||"\x3c!--[if IE]>"===g.substring(0,12),g="<mxlibrary>"===g.substring(0,11);(k||g)&&b.push(e)}}return b};EditorUi.prototype.getLocalStorageFile=function(b){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;var c=localStorage.getItem(b);return{title:b,data:c,isLib:"<mxlibrary>"===c.substring(0,11)}};EditorUi.prototype.setMigratedFlag=function(){localStorage.setItem(".localStorageMigrated","1")}})();
3758var CommentsWindow=function(b,c,e,k,g,p){function t(){for(var b=I.getElementsByTagName("div"),c=0,d=0;d<b.length;d++)"none"!=b[d].style.display&&b[d].parentNode==I&&c++;B.style.display=0==c?"block":"none"}function d(b,c,d,e){function f(){c.removeChild(l);c.removeChild(m);k.style.display="block";g.style.display="block"}y={div:c,comment:b,saveCallback:d,deleteOnCancel:e};var g=c.querySelector(".geCommentTxt"),k=c.querySelector(".geCommentActionsList"),l=document.createElement("textarea");l.className=
3759"geCommentEditTxtArea";l.style.minHeight=g.offsetHeight+"px";l.value=b.content;c.insertBefore(l,g);var m=document.createElement("div");m.className="geCommentEditBtns";var p=mxUtils.button(mxResources.get("cancel"),function(){e?(c.parentNode.removeChild(c),t()):f();y=null});p.className="geCommentEditBtn";m.appendChild(p);var n=mxUtils.button(mxResources.get("save"),function(){g.innerHTML="";b.content=l.value;mxUtils.write(g,b.content);f();d(b);y=null});mxEvent.addListener(l,"keydown",mxUtils.bind(this,
3760function(b){mxEvent.isConsumed(b)||((mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b))&&13==b.keyCode?(n.click(),mxEvent.consume(b)):27==b.keyCode&&(p.click(),mxEvent.consume(b)))}));n.focus();n.className="geCommentEditBtn gePrimaryBtn";m.appendChild(n);c.insertBefore(m,g);k.style.display="none";g.style.display="none";l.focus()}function f(c,d){d.innerHTML="";var e=new Date(c.modifiedDate),f=b.timeSince(e);null==f&&(f=mxResources.get("lessThanAMinute"));mxUtils.write(d,mxResources.get("timeAgo",
3761[f],"{1} ago"));d.setAttribute("title",e.toLocaleDateString()+" "+e.toLocaleTimeString())}function l(b){var c=document.createElement("img");c.className="geCommentBusyImg";c.src=IMAGE_PATH+"/spin.gif";b.appendChild(c);b.busyImg=c}function q(b){b.style.border="1px solid red";b.removeChild(b.busyImg)}function m(b){b.style.border="";b.removeChild(b.busyImg)}function n(c,e,g,k,p){function C(b,d,e){var f=document.createElement("li");f.className="geCommentAction";var g=document.createElement("a");g.className=
3762"geCommentActionLnk";mxUtils.write(g,b);f.appendChild(g);mxEvent.addListener(g,"click",function(b){d(b,c);b.preventDefault();mxEvent.consume(b)});K.appendChild(f);e&&(f.style.display="none")}function N(){function b(c){d.push(e);if(null!=c.replies)for(var f=0;f<c.replies.length;f++)e=e.nextSibling,b(c.replies[f])}var d=[],e=Q;b(c);return{pdiv:e,replies:d}}function x(e,f,g,p,t){function u(){l(x);c.addReply(B,function(b){B.id=b;c.replies.push(B);m(x);g&&g()},function(c){v();q(x);b.handleError(c,null,
3763null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},p,t)}function v(){d(B,x,function(b){u()},!0)}var C=N().pdiv,B=b.newComment(e,b.getCurrentUser());B.pCommentId=c.id;null==c.replies&&(c.replies=[]);var x=n(B,c.replies,C,k+1);f?v():u()}if(p||!c.isResolved){B.style.display="none";var Q=document.createElement("div");Q.className="geCommentContainer";Q.setAttribute("data-commentId",c.id);Q.style.marginLeft=20*k+5+"px";c.isResolved&&!Editor.isDarkMode()&&(Q.style.backgroundColor="ghostWhite");
3764var F=document.createElement("div");F.className="geCommentHeader";var L=document.createElement("img");L.className="geCommentUserImg";L.src=c.user.pictureUrl||Editor.userImage;F.appendChild(L);L=document.createElement("div");L.className="geCommentHeaderTxt";F.appendChild(L);var T=document.createElement("div");T.className="geCommentUsername";mxUtils.write(T,c.user.displayName||"");L.appendChild(T);T=document.createElement("div");T.className="geCommentDate";T.setAttribute("data-commentId",c.id);f(c,
3765T);L.appendChild(T);Q.appendChild(F);F=document.createElement("div");F.className="geCommentTxt";mxUtils.write(F,c.content||"");Q.appendChild(F);c.isLocked&&(Q.style.opacity="0.5");F=document.createElement("div");F.className="geCommentActions";var K=document.createElement("ul");K.className="geCommentActionsList";F.appendChild(K);u||c.isLocked||0!=k&&!v||C(mxResources.get("reply"),function(){x("",!0)},c.isResolved);L=b.getCurrentUser();null==L||L.id!=c.user.id||u||c.isLocked||(C(mxResources.get("edit"),
3766function(){function e(){d(c,Q,function(){l(Q);c.editComment(c.content,function(){m(Q)},function(c){q(Q);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}e()},c.isResolved),C(mxResources.get("delete"),function(){b.confirm(mxResources.get("areYouSure"),function(){l(Q);c.deleteComment(function(b){if(!0===b){b=Q.querySelector(".geCommentTxt");b.innerHTML="";mxUtils.write(b,mxResources.get("msgDeleted"));var d=Q.querySelectorAll(".geCommentAction");for(b=
37670;b<d.length;b++)d[b].parentNode.removeChild(d[b]);m(Q);Q.style.opacity="0.5"}else{d=N(c).replies;for(b=0;b<d.length;b++)I.removeChild(d[b]);for(b=0;b<e.length;b++)if(e[b]==c){e.splice(b,1);break}B.style.display=0==I.getElementsByTagName("div").length?"block":"none"}},function(c){q(Q);b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},c.isResolved));u||c.isLocked||0!=k||C(c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(b){function d(){var d=
3768b.target;d.innerHTML="";c.isResolved=!c.isResolved;mxUtils.write(d,c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"));for(var e=c.isResolved?"none":"",f=N(c).replies,g=Editor.isDarkMode()?"transparent":c.isResolved?"ghostWhite":"white",k=0;k<f.length;k++){f[k].style.backgroundColor=g;for(var l=f[k].querySelectorAll(".geCommentAction"),m=0;m<l.length;m++)l[m]!=d.parentNode&&(l[m].style.display=e);E||(f[k].style.display="none")}t()}c.isResolved?x(mxResources.get("reOpened")+": ",!0,
3769d,!1,!0):x(mxResources.get("markedAsResolved"),!1,d,!0)});Q.appendChild(F);null!=g?I.insertBefore(Q,g.nextSibling):I.appendChild(Q);for(g=0;null!=c.replies&&g<c.replies.length;g++)F=c.replies[g],F.isResolved=c.isResolved,n(F,c.replies,null,k+1,p);null!=y&&(y.comment.id==c.id?(p=c.content,c.content=y.comment.content,d(c,Q,y.saveCallback,y.deleteOnCancel),c.content=p):null==y.comment.id&&y.comment.pCommentId==c.id&&(I.appendChild(y.div),d(y.comment,y.div,y.saveCallback,y.deleteOnCancel)));return Q}}
3770var u=!b.canComment(),v=b.canReplyToReplies(),y=null,x=document.createElement("div");x.className="geCommentsWin";x.style.background=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";var D=EditorUi.compactUi?"26px":"30px",I=document.createElement("div");I.className="geCommentsList";I.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";I.style.bottom=parseInt(D)+7+"px";x.appendChild(I);var B=document.createElement("span");B.style.cssText="display:none;padding-top:10px;text-align:center;";
3771mxUtils.write(B,mxResources.get("noCommentsFound"));var F=document.createElement("div");F.className="geToolbarContainer geCommentsToolbar";F.style.height=D;F.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";F.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";D=document.createElement("a");D.className="geButton";if(!u){var M=D.cloneNode();M.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';M.setAttribute("title",mxResources.get("create")+
3772"...");mxEvent.addListener(M,"click",function(c){function e(){d(f,g,function(c){l(g);b.addComment(c,function(b){c.id=b;K.push(c);m(g)},function(c){q(g);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var f=b.newComment("",b.getCurrentUser()),g=n(f,K,null,0);e();c.preventDefault();mxEvent.consume(c)});F.appendChild(M)}M=D.cloneNode();M.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';M.setAttribute("title",mxResources.get("showResolved"));
3773var E=!1;Editor.isDarkMode()&&(M.style.filter="invert(100%)");mxEvent.addListener(M,"click",function(b){this.className=(E=!E)?"geButton geCheckedBtn":"geButton";C();b.preventDefault();mxEvent.consume(b)});F.appendChild(M);b.commentsRefreshNeeded()&&(M=D.cloneNode(),M.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',M.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(M.style.filter="invert(100%)"),mxEvent.addListener(M,"click",function(b){C();
3774b.preventDefault();mxEvent.consume(b)}),F.appendChild(M));b.commentsSaveNeeded()&&(D=D.cloneNode(),D.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',D.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(D.style.filter="invert(100%)"),mxEvent.addListener(D,"click",function(b){p();b.preventDefault();mxEvent.consume(b)}),F.appendChild(D));x.appendChild(F);var K=[],C=mxUtils.bind(this,function(){this.hasError=!1;if(null!=y)try{y.div=y.div.cloneNode(!0);
3775var c=y.div.querySelector(".geCommentEditTxtArea"),e=y.div.querySelector(".geCommentEditBtns");y.comment.content=c.value;c.parentNode.removeChild(c);e.parentNode.removeChild(e)}catch(N){b.handleError(N)}I.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";v=b.canReplyToReplies();b.commentsSupported()?b.getComments(function(b){function c(b){if(null!=b){b.sort(function(b,c){return new Date(b.modifiedDate)-
3776new Date(c.modifiedDate)});for(var d=0;d<b.length;d++)c(b[d].replies)}}b.sort(function(b,c){return new Date(b.modifiedDate)-new Date(c.modifiedDate)});I.innerHTML="";I.appendChild(B);B.style.display="block";K=b;for(b=0;b<K.length;b++)c(K[b].replies),n(K[b],K,null,0,E);null!=y&&null==y.comment.id&&null==y.comment.pCommentId&&(I.appendChild(y.div),d(y.comment,y.div,y.saveCallback,y.deleteOnCancel))},mxUtils.bind(this,function(b){I.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(b&&b.message?
3777": "+b.message:""));this.hasError=!0})):I.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});C();this.refreshComments=C;F=mxUtils.bind(this,function(){function b(c){var e=d[c.id];if(null!=e)for(f(c,e),e=0;null!=c.replies&&e<c.replies.length;e++)b(c.replies[e])}if(this.window.isVisible()){for(var c=I.querySelectorAll(".geCommentDate"),d={},e=0;e<c.length;e++){var g=c[e];d[g.getAttribute("data-commentId")]=g}for(e=0;e<K.length;e++)b(K[e])}});setInterval(F,6E4);this.refreshCommentsTime=F;this.window=
3778new mxWindow(mxResources.get("comments"),x,c,e,k,g,!0,!0);this.window.minimumSize=new mxRectangle(0,0,300,200);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){this.window.fit()}));this.window.setLocation=function(b,c){var d=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;b=Math.max(0,Math.min(b,(window.innerWidth||
3779document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));c=Math.max(0,Math.min(c,d-this.table.clientHeight-48));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,arguments)};var L=mxUtils.bind(this,function(){var b=this.window.getX(),c=this.window.getY();this.window.setLocation(b,c)});mxEvent.addListener(window,"resize",L);this.destroy=function(){mxEvent.removeListener(window,"resize",L);this.window.destroy()}},ConfirmDialog=function(b,c,e,
3780k,g,p,t,d,f,l,q){var m=document.createElement("div");m.style.textAlign="center";q=null!=q?q:44;var n=document.createElement("div");n.style.padding="6px";n.style.overflow="auto";n.style.maxHeight=q+"px";n.style.lineHeight="1.2em";mxUtils.write(n,c);m.appendChild(n);null!=l&&(n=document.createElement("div"),n.style.padding="6px 0 6px 0",c=document.createElement("img"),c.setAttribute("src",l),n.appendChild(c),m.appendChild(n));l=document.createElement("div");l.style.textAlign="center";l.style.whiteSpace=
3781"nowrap";var u=document.createElement("input");u.setAttribute("type","checkbox");p=mxUtils.button(p||mxResources.get("cancel"),function(){b.hideDialog();null!=k&&k(u.checked)});p.className="geBtn";null!=d&&(p.innerHTML=d+"<br>"+p.innerHTML,p.style.paddingBottom="8px",p.style.paddingTop="8px",p.style.height="auto",p.style.width="40%");b.editor.cancelFirst&&l.appendChild(p);var v=mxUtils.button(g||mxResources.get("ok"),function(){b.hideDialog();null!=e&&e(u.checked)});l.appendChild(v);null!=t?(v.innerHTML=
3782t+"<br>"+v.innerHTML+"<br>",v.style.paddingBottom="8px",v.style.paddingTop="8px",v.style.height="auto",v.className="geBtn",v.style.width="40%"):v.className="geBtn gePrimaryBtn";b.editor.cancelFirst||l.appendChild(p);m.appendChild(l);f?(l.style.marginTop="10px",n=document.createElement("p"),n.style.marginTop="20px",n.style.marginBottom="0px",n.appendChild(u),g=document.createElement("span"),mxUtils.write(g," "+mxResources.get("rememberThisSetting")),n.appendChild(g),m.appendChild(n),mxEvent.addListener(g,
3783"click",function(b){u.checked=!u.checked;mxEvent.consume(b)})):l.style.marginTop="12px";this.init=function(){v.focus()};this.container=m};function DiagramPage(b,c){this.node=b;null!=c?this.node.setAttribute("id",c):null==this.getId()&&this.node.setAttribute("id",Editor.guid())}DiagramPage.prototype.node=null;DiagramPage.prototype.root=null;DiagramPage.prototype.viewState=null;DiagramPage.prototype.getId=function(){return this.node.getAttribute("id")};DiagramPage.prototype.getName=function(){return this.node.getAttribute("name")};
3784DiagramPage.prototype.setName=function(b){null==b?this.node.removeAttribute("name"):this.node.setAttribute("name",b)};function RenamePage(b,c,e){this.ui=b;this.page=c;this.previous=this.name=e}RenamePage.prototype.execute=function(){var b=this.page.getName();this.page.setName(this.previous);this.name=this.previous;this.previous=b;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageRenamed"))};
3785function MovePage(b,c,e){this.ui=b;this.oldIndex=c;this.newIndex=e}MovePage.prototype.execute=function(){this.ui.pages.splice(this.newIndex,0,this.ui.pages.splice(this.oldIndex,1)[0]);var b=this.oldIndex;this.oldIndex=this.newIndex;this.newIndex=b;this.ui.editor.graph.updatePlaceholders();this.ui.editor.fireEvent(new mxEventObject("pageMoved"))};
3786function SelectPage(b,c,e){this.ui=b;this.previousPage=this.page=c;this.neverShown=!0;null!=c&&(this.neverShown=null==c.viewState,this.ui.updatePageRoot(c),null!=e&&(c.viewState=e,this.neverShown=!1))}
3787SelectPage.prototype.execute=function(){var b=mxUtils.indexOf(this.ui.pages,this.previousPage);if(null!=this.page&&0<=b){var b=this.ui.currentPage,c=this.ui.editor,e=c.graph,k=Graph.compressNode(c.getGraphXml(!0));mxUtils.setTextContent(b.node,k);b.viewState=e.getViewState();b.root=e.model.root;null!=b.model&&b.model.rootChanged(b.root);e.view.clear(b.root,!0);e.clearSelection();this.ui.currentPage=this.previousPage;this.previousPage=b;b=this.ui.currentPage;e.model.prefix=Editor.guid()+"-";e.model.rootChanged(b.root);
3788e.setViewState(b.viewState);e.gridEnabled=e.gridEnabled&&(!this.ui.editor.isChromelessView()||"1"==urlParams.grid);c.updateGraphComponents();e.view.validate();e.blockMathRender=!0;e.sizeDidChange();e.blockMathRender=!1;this.neverShown&&(this.neverShown=!1,e.selectUnlockedLayer());c.graph.fireEvent(new mxEventObject(mxEvent.ROOT));c.fireEvent(new mxEventObject("pageSelected","change",this))}};
3789function ChangePage(b,c,e,k,g){SelectPage.call(this,b,e);this.relatedPage=c;this.index=k;this.previousIndex=null;this.noSelect=g}mxUtils.extend(ChangePage,SelectPage);
3790ChangePage.prototype.execute=function(){this.ui.editor.fireEvent(new mxEventObject("beforePageChange","change",this));this.previousIndex=this.index;if(null==this.index){var b=mxUtils.indexOf(this.ui.pages,this.relatedPage);this.ui.pages.splice(b,1);this.index=b}else this.ui.pages.splice(this.index,0,this.relatedPage),this.index=null;this.noSelect||SelectPage.prototype.execute.apply(this,arguments)};EditorUi.prototype.tabContainerHeight=38;EditorUi.prototype.getSelectedPageIndex=function(){return this.getPageIndex(this.currentPage)};
3791EditorUi.prototype.getPageIndex=function(b){var c=null;if(null!=this.pages&&null!=b)for(var e=0;e<this.pages.length;e++)if(this.pages[e]==b){c=e;break}return c};EditorUi.prototype.getPageById=function(b){if(null!=this.pages)for(var c=0;c<this.pages.length;c++)if(this.pages[c].getId()==b)return this.pages[c];return null};
3792EditorUi.prototype.createImageForPageLink=function(b,c,e){var k=b.indexOf(","),g=null;0<k&&(k=this.getPageById(b.substring(k+1)),null!=k&&k!=c&&(g=this.getImageForPage(k,c,e),g.originalSrc=b));null==g&&(g={originalSrc:b});return g};
3793EditorUi.prototype.getImageForPage=function(b,c,e){e=null!=e?e:this.editor.graph;var k=e.getGlobalVariable,g=this.createTemporaryGraph(e.getStylesheet());g.defaultPageBackgroundColor=e.defaultPageBackgroundColor;g.shapeBackgroundColor=e.shapeBackgroundColor;g.shapeForegroundColor=e.shapeForegroundColor;var p=this.getPageIndex(null!=c?c:this.currentPage);g.getGlobalVariable=function(b){return"pagenumber"==b?p+1:"page"==b&&null!=c?c.getName():k.apply(this,arguments)};document.body.appendChild(g.container);
3794this.updatePageRoot(b);g.model.setRoot(b.root);b=g.getSvg(null,null,null,null,null,null,null,null,null,null,null,!0);e=g.getGraphBounds();document.body.removeChild(g.container);return new mxImage(Editor.createSvgDataUri(mxUtils.getXml(b)),e.width,e.height,e.x,e.y)};
3795EditorUi.prototype.initPages=function(){if(!this.editor.graph.standalone){this.actions.addAction("previousPage",mxUtils.bind(this,function(){this.selectNextPage(!1)}));this.actions.addAction("nextPage",mxUtils.bind(this,function(){this.selectNextPage(!0)}));this.isPagesEnabled()&&(this.keyHandler.bindAction(33,!0,"previousPage",!0),this.keyHandler.bindAction(34,!0,"nextPage",!0));var b=this.editor.graph,c=b.view.validateBackground;b.view.validateBackground=mxUtils.bind(this,function(){if(null!=this.tabContainer){var e=
3796this.tabContainer.style.height;this.tabContainer.style.height=null==this.fileNode||null==this.pages||1==this.pages.length&&"0"==urlParams.pages?"0px":this.tabContainerHeight+"px";e!=this.tabContainer.style.height&&this.refresh(!1)}c.apply(b.view,arguments)});var e=null,k=mxUtils.bind(this,function(){this.updateTabContainer();var c=this.currentPage;null!=c&&c!=e&&(null==c.viewState||null==c.viewState.scrollLeft?(this.resetScrollbars(),b.isLightboxView()&&this.lightboxFit(),null!=this.chromelessResize&&
3797(b.container.scrollLeft=0,b.container.scrollTop=0,this.chromelessResize())):(b.container.scrollLeft=b.view.translate.x*b.view.scale+c.viewState.scrollLeft,b.container.scrollTop=b.view.translate.y*b.view.scale+c.viewState.scrollTop),e=c);null!=this.actions.layersWindow&&this.actions.layersWindow.refreshLayers();"undefined"!==typeof MathJax&&"undefined"!==typeof MathJax.Hub?1!=MathJax.Hub.queue.pending||null==this.editor||this.editor.graph.mathEnabled||MathJax.Hub.Queue(mxUtils.bind(this,function(){null!=
3798this.editor&&this.editor.graph.refresh()})):"undefined"===typeof Editor.MathJaxClear||null!=this.editor&&this.editor.graph.mathEnabled||Editor.MathJaxClear()});this.editor.graph.model.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(b,c){for(var e=c.getProperty("edit").changes,d=0;d<e.length;d++)if(e[d]instanceof SelectPage||e[d]instanceof RenamePage||e[d]instanceof MovePage||e[d]instanceof mxRootChange){k();break}}));null!=this.toolbar&&this.editor.addListener("pageSelected",this.toolbar.updateZoom)}};
3799EditorUi.prototype.restoreViewState=function(b,c,e){b=null!=b?this.getPageById(b.getId()):null;var k=this.editor.graph;null!=b&&null!=this.currentPage&&null!=this.pages&&(b!=this.currentPage?this.selectPage(b,!0,c):(k.setViewState(c),this.editor.updateGraphComponents(),k.view.revalidate(),k.sizeDidChange()),k.container.scrollLeft=k.view.translate.x*k.view.scale+c.scrollLeft,k.container.scrollTop=k.view.translate.y*k.view.scale+c.scrollTop,k.restoreSelection(e))};
3800Graph.prototype.createViewState=function(b){var c=b.getAttribute("page"),e=parseFloat(b.getAttribute("pageScale")),k=parseFloat(b.getAttribute("pageWidth")),g=parseFloat(b.getAttribute("pageHeight")),p=b.getAttribute("background"),t=this.parseBackgroundImage(b.getAttribute("backgroundImage")),d=b.getAttribute("extFonts");if(d)try{d=d.split("|").map(function(b){b=b.split("^");return{name:b[0],url:b[1]}})}catch(f){console.log("ExtFonts format error: "+f.message)}return{gridEnabled:"0"!=b.getAttribute("grid"),
3801gridSize:parseFloat(b.getAttribute("gridSize"))||mxGraph.prototype.gridSize,guidesEnabled:"0"!=b.getAttribute("guides"),foldingEnabled:"0"!=b.getAttribute("fold"),shadowVisible:"1"==b.getAttribute("shadow"),pageVisible:this.isLightboxView()?!1:null!=c?"0"!=c:this.defaultPageVisible,background:null!=p&&0<p.length?p:null,backgroundImage:t,pageScale:isNaN(e)?mxGraph.prototype.pageScale:e,pageFormat:isNaN(k)||isNaN(g)?"undefined"===typeof mxSettings||null!=this.defaultPageFormat?mxGraph.prototype.pageFormat:
3802mxSettings.getPageFormat():new mxRectangle(0,0,k,g),tooltips:"0"!=b.getAttribute("tooltips"),connect:"0"!=b.getAttribute("connect"),arrows:"0"!=b.getAttribute("arrows"),mathEnabled:"1"==b.getAttribute("math"),selectionCells:null,defaultParent:null,scrollbars:this.defaultScrollbars,scale:1,hiddenTags:[],extFonts:d||[]}};
3803Graph.prototype.saveViewState=function(b,c,e,k){e||(c.setAttribute("grid",null==b||b.gridEnabled?"1":"0"),c.setAttribute("gridSize",null!=b?b.gridSize:mxGraph.prototype.gridSize),c.setAttribute("guides",null==b||b.guidesEnabled?"1":"0"),c.setAttribute("tooltips",null==b||b.tooltips?"1":"0"),c.setAttribute("connect",null==b||b.connect?"1":"0"),c.setAttribute("arrows",null==b||b.arrows?"1":"0"),c.setAttribute("page",null==b&&this.defaultPageVisible||null!=b&&b.pageVisible?"1":"0"),c.setAttribute("fold",
3804null==b||b.foldingEnabled?"1":"0"));c.setAttribute("pageScale",null!=b&&null!=b.pageScale?b.pageScale:mxGraph.prototype.pageScale);e=null!=b?b.pageFormat:"undefined"===typeof mxSettings||null!=this.defaultPageFormat?mxGraph.prototype.pageFormat:mxSettings.getPageFormat();null!=e&&(c.setAttribute("pageWidth",e.width),c.setAttribute("pageHeight",e.height));null!=b&&(null!=b.background&&c.setAttribute("background",b.background),k=this.getBackgroundImageObject(b.backgroundImage,k),null!=k&&c.setAttribute("backgroundImage",
3805JSON.stringify(k)));c.setAttribute("math",null!=b&&b.mathEnabled?"1":"0");c.setAttribute("shadow",null!=b&&b.shadowVisible?"1":"0");null!=b&&null!=b.extFonts&&0<b.extFonts.length&&c.setAttribute("extFonts",b.extFonts.map(function(b){return b.name+"^"+b.url}).join("|"))};
3806Graph.prototype.getViewState=function(){return{defaultParent:this.defaultParent,currentRoot:this.view.currentRoot,gridEnabled:this.gridEnabled,gridSize:this.gridSize,guidesEnabled:this.graphHandler.guidesEnabled,foldingEnabled:this.foldingEnabled,shadowVisible:this.shadowVisible,scrollbars:this.scrollbars,pageVisible:this.pageVisible,background:this.background,backgroundImage:this.backgroundImage,pageScale:this.pageScale,pageFormat:this.pageFormat,tooltips:this.tooltipHandler.isEnabled(),connect:this.connectionHandler.isEnabled(),
3807arrows:this.connectionArrowsEnabled,scale:this.view.scale,scrollLeft:this.container.scrollLeft-this.view.translate.x*this.view.scale,scrollTop:this.container.scrollTop-this.view.translate.y*this.view.scale,translate:this.view.translate.clone(),lastPasteXml:this.lastPasteXml,pasteCounter:this.pasteCounter,mathEnabled:this.mathEnabled,hiddenTags:this.hiddenTags,extFonts:this.extFonts}};
3808Graph.prototype.setViewState=function(b,c){if(null!=b){this.lastPasteXml=b.lastPasteXml;this.pasteCounter=b.pasteCounter||0;this.mathEnabled=b.mathEnabled;this.gridEnabled=b.gridEnabled;this.gridSize=b.gridSize;this.graphHandler.guidesEnabled=b.guidesEnabled;this.foldingEnabled=b.foldingEnabled;this.setShadowVisible(b.shadowVisible,!1);this.scrollbars=b.scrollbars;this.pageVisible=!this.isViewer()&&b.pageVisible;this.background=b.background;this.pageScale=b.pageScale;this.pageFormat=b.pageFormat;
3809this.view.currentRoot=b.currentRoot;this.defaultParent=b.defaultParent;this.connectionArrowsEnabled=b.arrows;this.setTooltips(b.tooltips);this.setConnectable(b.connect);this.setBackgroundImage(b.backgroundImage);this.hiddenTags=b.hiddenTags;var e=this.extFonts;this.extFonts=b.extFonts||[];if(c&&null!=e)for(var k=0;k<e.length;k++){var g=document.getElementById("extFont_"+e[k].name);null!=g&&g.parentNode.removeChild(g)}for(k=0;k<this.extFonts.length;k++)this.addExtFont(this.extFonts[k].name,this.extFonts[k].url,
3810!0);this.view.scale=null!=b.scale?b.scale:1;null==this.view.currentRoot||this.model.contains(this.view.currentRoot)||(this.view.currentRoot=null);null==this.defaultParent||this.model.contains(this.defaultParent)||(this.setDefaultParent(null),this.selectUnlockedLayer());null!=b.translate&&(this.view.translate=b.translate)}else this.view.currentRoot=null,this.view.scale=1,this.gridEnabled=this.defaultGridEnabled,this.gridSize=mxGraph.prototype.gridSize,this.pageScale=mxGraph.prototype.pageScale,this.pageFormat=
3811"undefined"===typeof mxSettings||null!=this.defaultPageFormat?mxGraph.prototype.pageFormat:mxSettings.getPageFormat(),this.pageVisible=this.defaultPageVisible,this.backgroundImage=this.background=null,this.scrollbars=this.defaultScrollbars,this.foldingEnabled=this.graphHandler.guidesEnabled=!0,this.setShadowVisible(!1,!1),this.defaultParent=null,this.setTooltips(!0),this.setConnectable(!0),this.lastPasteXml=null,this.pasteCounter=0,this.mathEnabled=this.defaultMathEnabled,this.connectionArrowsEnabled=
3812!0,this.hiddenTags=[],this.extFonts=[];this.preferPageSize=this.pageBreaksVisible=this.pageVisible;this.fireEvent(new mxEventObject("viewStateChanged","state",b))};
3813Graph.prototype.addExtFont=function(b,c,e){if(b&&c){"1"!=urlParams["ext-fonts"]&&(Graph.recentCustomFonts[b.toLowerCase()]={name:b,url:c});var k="extFont_"+b;if(null==document.getElementById(k))if(0==c.indexOf(Editor.GOOGLE_FONTS))mxClient.link("stylesheet",c,null,k);else{document.getElementsByTagName("head");var g=document.createElement("style");g.appendChild(document.createTextNode('@font-face {\n\tfont-family: "'+b+'";\n\tsrc: url("'+c+'");\n}'));g.setAttribute("id",k);document.getElementsByTagName("head")[0].appendChild(g)}if(!e){null==
3814this.extFonts&&(this.extFonts=[]);e=this.extFonts;k=!0;for(g=0;g<e.length;g++)if(e[g].name==b){k=!1;break}k&&this.extFonts.push({name:b,url:c})}}};
3815EditorUi.prototype.updatePageRoot=function(b,c){if(null==b.root){var e=this.editor.extractGraphModel(b.node,null,c),k=Editor.extractParserError(e);if(k)throw Error(k);null!=e?(b.graphModelNode=e,b.viewState=this.editor.graph.createViewState(e),k=new mxCodec(e.ownerDocument),b.root=k.decode(e).root):b.root=this.editor.graph.model.createRoot()}else if(null==b.viewState){if(null==b.graphModelNode){e=this.editor.extractGraphModel(b.node);if(k=Editor.extractParserError(e))throw Error(k);null!=e&&(b.graphModelNode=
3816e)}null!=b.graphModelNode&&(b.viewState=this.editor.graph.createViewState(b.graphModelNode))}return b};
3817EditorUi.prototype.selectPage=function(b,c,e){try{if(b!=this.currentPage){this.editor.graph.isEditing()&&this.editor.graph.stopEditing(!1);c=null!=c?c:!1;this.editor.graph.isMouseDown=!1;this.editor.graph.reset();var k=this.editor.graph.model.createUndoableEdit();k.ignoreEdit=!0;var g=new SelectPage(this,b,e);g.execute();k.add(g);k.notify();this.editor.graph.tooltipHandler.hide();c||this.editor.graph.model.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",k))}}catch(p){this.handleError(p)}};
3818EditorUi.prototype.selectNextPage=function(b){var c=this.currentPage;null!=c&&null!=this.pages&&(c=mxUtils.indexOf(this.pages,c),b?this.selectPage(this.pages[mxUtils.mod(c+1,this.pages.length)]):b||this.selectPage(this.pages[mxUtils.mod(c-1,this.pages.length)]))};
3819EditorUi.prototype.insertPage=function(b,c){if(this.editor.graph.isEnabled()){this.editor.graph.isEditing()&&this.editor.graph.stopEditing(!1);b=null!=b?b:this.createPage(null,this.createPageId());c=null!=c?c:this.pages.length;var e=new ChangePage(this,b,b,c);this.editor.graph.model.execute(e)}return b};EditorUi.prototype.createPageId=function(){var b;do b=Editor.guid();while(null!=this.getPageById(b));return b};
3820EditorUi.prototype.createPage=function(b,c){var e=new DiagramPage(this.fileNode.ownerDocument.createElement("diagram"),c);e.setName(null!=b?b:this.createPageName());return e};EditorUi.prototype.createPageName=function(){for(var b={},c=0;c<this.pages.length;c++){var e=this.pages[c].getName();null!=e&&0<e.length&&(b[e]=e)}c=this.pages.length;do e=mxResources.get("pageWithNumber",[++c]);while(null!=b[e]);return e};
3821EditorUi.prototype.removePage=function(b){try{var c=this.editor.graph,e=mxUtils.indexOf(this.pages,b);if(c.isEnabled()&&0<=e){this.editor.graph.isEditing()&&this.editor.graph.stopEditing(!1);c.model.beginUpdate();try{var k=this.currentPage;k==b&&1<this.pages.length?(e==this.pages.length-1?e--:e++,k=this.pages[e]):1>=this.pages.length&&(k=this.insertPage(),c.model.execute(new RenamePage(this,k,mxResources.get("pageWithNumber",[1]))));c.model.execute(new ChangePage(this,b,k))}finally{c.model.endUpdate()}}}catch(g){this.handleError(g)}return b};
3822EditorUi.prototype.duplicatePage=function(b,c){var e=null;try{var k=this.editor.graph;if(k.isEnabled()){k.isEditing()&&k.stopEditing();var g=b.node.cloneNode(!1);g.removeAttribute("id");var p={},t=k.createCellLookup([k.model.root]),e=new DiagramPage(g);e.root=k.cloneCell(k.model.root,null,p);e.viewState=k.getViewState();e.viewState.scale=1;e.viewState.scrollLeft=null;e.viewState.scrollTop=null;e.viewState.currentRoot=null;e.viewState.defaultParent=null;e.setName(c);e=this.insertPage(e,mxUtils.indexOf(this.pages,
3823b)+1);k.updateCustomLinks(k.createCellMapping(p,t),[e.root])}}catch(d){this.handleError(d)}return e};EditorUi.prototype.renamePage=function(b){if(this.editor.graph.isEnabled()){var c=new FilenameDialog(this,b.getName(),mxResources.get("rename"),mxUtils.bind(this,function(c){null!=c&&0<c.length&&this.editor.graph.model.execute(new RenamePage(this,b,c))}),mxResources.get("rename"));this.showDialog(c.container,300,80,!0,!0);c.init()}return b};
3824EditorUi.prototype.movePage=function(b,c){this.editor.graph.model.execute(new MovePage(this,b,c))};EditorUi.prototype.createTabContainer=function(){var b=document.createElement("div");b.className="geTabContainer";b.style.position="absolute";b.style.whiteSpace="nowrap";b.style.overflow="hidden";b.style.height="0px";return b};
3825EditorUi.prototype.updateTabContainer=function(){if(null!=this.tabContainer&&null!=this.pages){var b=this.editor.graph,c=document.createElement("div");c.style.position="relative";c.style.display="inline-block";c.style.verticalAlign="top";c.style.height=this.tabContainer.style.height;c.style.whiteSpace="nowrap";c.style.overflow="hidden";c.style.fontSize="13px";c.style.marginLeft="30px";for(var e=this.editor.isChromelessView()?29:59,k=Math.min(140,Math.max(20,(this.tabContainer.clientWidth-e)/this.pages.length)+
38261),g=null,p=0;p<this.pages.length;p++)mxUtils.bind(this,function(d,e){this.pages[d]==this.currentPage?(e.className="geActivePage",e.style.backgroundColor=Editor.isDarkMode()?Editor.darkColor:"#fff"):e.className="geInactivePage";e.setAttribute("draggable","true");mxEvent.addListener(e,"dragstart",mxUtils.bind(this,function(c){b.isEnabled()?(mxClient.IS_FF&&c.dataTransfer.setData("Text","<diagram/>"),g=d):mxEvent.consume(c)}));mxEvent.addListener(e,"dragend",mxUtils.bind(this,function(b){g=null;b.stopPropagation();
3827b.preventDefault()}));mxEvent.addListener(e,"dragover",mxUtils.bind(this,function(b){null!=g&&(b.dataTransfer.dropEffect="move");b.stopPropagation();b.preventDefault()}));mxEvent.addListener(e,"drop",mxUtils.bind(this,function(b){null!=g&&d!=g&&this.movePage(g,d);b.stopPropagation();b.preventDefault()}));c.appendChild(e)})(p,this.createTabForPage(this.pages[p],k,this.pages[p]!=this.currentPage,p+1));this.tabContainer.innerHTML="";this.tabContainer.appendChild(c);k=this.createPageMenuTab();this.tabContainer.appendChild(k);
3828k=null;this.isPageInsertTabVisible()&&(k=this.createPageInsertTab(),this.tabContainer.appendChild(k));if(c.clientWidth>this.tabContainer.clientWidth-e){null!=k&&(k.style.position="absolute",k.style.right="0px",c.style.marginRight="30px");var t=this.createControlTab(4,"&nbsp;&#10094;&nbsp;");t.style.position="absolute";t.style.right=this.editor.chromeless?"29px":"55px";t.style.fontSize="13pt";this.tabContainer.appendChild(t);var d=this.createControlTab(4,"&nbsp;&#10095;");d.style.position="absolute";
3829d.style.right=this.editor.chromeless?"0px":"29px";d.style.fontSize="13pt";this.tabContainer.appendChild(d);var f=Math.max(0,this.tabContainer.clientWidth-(this.editor.chromeless?86:116));c.style.width=f+"px";mxEvent.addListener(t,"click",mxUtils.bind(this,function(b){c.scrollLeft-=Math.max(20,f-20);mxUtils.setOpacity(t,0<c.scrollLeft?100:50);mxUtils.setOpacity(d,c.scrollLeft<c.scrollWidth-c.clientWidth?100:50);mxEvent.consume(b)}));mxUtils.setOpacity(t,0<c.scrollLeft?100:50);mxUtils.setOpacity(d,
3830c.scrollLeft<c.scrollWidth-c.clientWidth?100:50);mxEvent.addListener(d,"click",mxUtils.bind(this,function(b){c.scrollLeft+=Math.max(20,f-20);mxUtils.setOpacity(t,0<c.scrollLeft?100:50);mxUtils.setOpacity(d,c.scrollLeft<c.scrollWidth-c.clientWidth?100:50);mxEvent.consume(b)}))}}};EditorUi.prototype.isPageInsertTabVisible=function(){return 1==urlParams.embed||null!=this.getCurrentFile()&&this.getCurrentFile().isEditable()};
3831EditorUi.prototype.createTab=function(b){var c=document.createElement("div");c.style.display="inline-block";c.style.whiteSpace="nowrap";c.style.boxSizing="border-box";c.style.position="relative";c.style.overflow="hidden";c.style.textAlign="center";c.style.marginLeft="-1px";c.style.height=this.tabContainer.clientHeight+"px";c.style.padding="12px 4px 8px 4px";c.style.border=Editor.isDarkMode()?"1px solid #505759":"1px solid #e8eaed";c.style.borderTopStyle="none";c.style.borderBottomStyle="none";c.style.backgroundColor=
3832this.tabContainer.style.backgroundColor;c.style.cursor="move";c.style.color="gray";b&&(mxEvent.addListener(c,"mouseenter",mxUtils.bind(this,function(b){this.editor.graph.isMouseDown||(c.style.backgroundColor=Editor.isDarkMode()?"black":"#e8eaed",mxEvent.consume(b))})),mxEvent.addListener(c,"mouseleave",mxUtils.bind(this,function(b){c.style.backgroundColor=this.tabContainer.style.backgroundColor;mxEvent.consume(b)})));return c};
3833EditorUi.prototype.createControlTab=function(b,c,e){e=this.createTab(null!=e?e:!0);e.style.lineHeight=this.tabContainerHeight+"px";e.style.paddingTop=b+"px";e.style.cursor="pointer";e.style.width="30px";e.innerHTML=c;null!=e.firstChild&&null!=e.firstChild.style&&mxUtils.setOpacity(e.firstChild,40);return e};
3834EditorUi.prototype.createPageMenuTab=function(b){b=this.createControlTab(3,'<div class="geSprite geSprite-dots"></div>',b);b.setAttribute("title",mxResources.get("pages"));b.style.position="absolute";b.style.marginLeft="0px";b.style.top="0px";b.style.left="1px";var c=b.getElementsByTagName("div")[0];c.style.display="inline-block";c.style.marginTop="5px";c.style.width="21px";c.style.height="21px";mxEvent.addListener(b,"click",mxUtils.bind(this,function(b){this.editor.graph.popupMenuHandler.hideMenu();
3835var c=new mxPopupMenu(mxUtils.bind(this,function(b,c){for(var d=0;d<this.pages.length;d++)mxUtils.bind(this,function(d){var e=b.addItem(this.pages[d].getName(),null,mxUtils.bind(this,function(){this.selectPage(this.pages[d])}),c),f=this.pages[d].getId();e.setAttribute("title",this.pages[d].getName()+(null!=f?" ("+f+")":"")+" ["+(d+1)+"]");this.pages[d]==this.currentPage&&b.addCheckmark(e,Editor.checkmarkImage)})(d);if(this.editor.graph.isEnabled()){b.addSeparator(c);b.addItem(mxResources.get("insertPage"),
3836null,mxUtils.bind(this,function(){this.insertPage()}),c);var e=this.currentPage;null!=e&&(b.addSeparator(c),d=e.getName(),b.addItem(mxResources.get("removeIt",[d]),null,mxUtils.bind(this,function(){this.removePage(e)}),c),b.addItem(mxResources.get("renameIt",[d]),null,mxUtils.bind(this,function(){this.renamePage(e,e.getName())}),c),b.addSeparator(c),b.addItem(mxResources.get("duplicateIt",[d]),null,mxUtils.bind(this,function(){this.duplicatePage(e,mxResources.get("copyOf",[e.getName()]))}),c))}}));
3837c.div.className+=" geMenubarMenu";c.smartSeparators=!0;c.showDisabled=!0;c.autoExpand=!0;c.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(c,arguments);c.destroy()});var e=mxEvent.getClientX(b),p=mxEvent.getClientY(b);c.popup(e,p,null,b);this.setCurrentMenu(c);mxEvent.consume(b)}));return b};
3838EditorUi.prototype.createPageInsertTab=function(){var b=this.createControlTab(4,'<div class="geSprite geSprite-plus"></div>');b.setAttribute("title",mxResources.get("insertPage"));mxEvent.addListener(b,"click",mxUtils.bind(this,function(b){this.insertPage();mxEvent.consume(b)}));var c=b.getElementsByTagName("div")[0];c.style.display="inline-block";c.style.width="21px";c.style.height="21px";return b};
3839EditorUi.prototype.createTabForPage=function(b,c,e,k){e=this.createTab(e);var g=b.getName()||mxResources.get("untitled"),p=b.getId();e.setAttribute("title",g+(null!=p?" ("+p+")":"")+" ["+k+"]");mxUtils.write(e,g);e.style.maxWidth=c+"px";e.style.width=c+"px";this.addTabListeners(b,e);42<c&&(e.style.textOverflow="ellipsis");return e};
3840EditorUi.prototype.addTabListeners=function(b,c){mxEvent.disableContextMenu(c);var e=this.editor.graph;mxEvent.addListener(c,"dblclick",mxUtils.bind(this,function(c){this.renamePage(b);mxEvent.consume(c)}));var k=!1,g=!1;mxEvent.addGestureListeners(c,mxUtils.bind(this,function(c){k=null!=this.currentMenu;g=b==this.currentPage;e.isMouseDown||g||this.selectPage(b)}),null,mxUtils.bind(this,function(p){if(e.isEnabled()&&!e.isMouseDown&&(mxEvent.isTouchEvent(p)&&g||mxEvent.isPopupTrigger(p))){e.popupMenuHandler.hideMenu();
3841this.hideCurrentMenu();if(!mxEvent.isTouchEvent(p)||!k){var t=new mxPopupMenu(this.createPageMenu(b));t.div.className+=" geMenubarMenu";t.smartSeparators=!0;t.showDisabled=!0;t.autoExpand=!0;t.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(t,arguments);this.resetCurrentMenu();t.destroy()});var d=mxEvent.getClientX(p),f=mxEvent.getClientY(p);t.popup(d,f,null,p);this.setCurrentMenu(t,c)}mxEvent.consume(p)}}))};
3842EditorUi.prototype.getLinkForPage=function(b,c,e){if(!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp){var k=this.getCurrentFile();if(null!=k&&k.constructor!=LocalFile&&"draw.io"==this.getServiceName()){var g=this.getSearch("create title mode url drive splash state clibs ui viewbox hide-pages".split(" ")),g=g+((0==g.length?"?":"&")+"page-id="+b.getId());null!=c&&(g+="&"+c.join("&"));return(e&&"1"!=urlParams.dev?EditorUi.lightboxHost:mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||!/.*\.draw\.io$/.test(window.location.hostname)?
3843EditorUi.drawHost:"https://"+window.location.host)+"/"+g+"#"+k.getHash()}}return null};
3844EditorUi.prototype.createPageMenu=function(b,c){return mxUtils.bind(this,function(e,k){var g=this.editor.graph;e.addItem(mxResources.get("insert"),null,mxUtils.bind(this,function(){this.insertPage(null,mxUtils.indexOf(this.pages,b)+1)}),k);e.addItem(mxResources.get("delete"),null,mxUtils.bind(this,function(){this.removePage(b)}),k);e.addItem(mxResources.get("rename"),null,mxUtils.bind(this,function(){this.renamePage(b,c)}),k);null!=this.getLinkForPage(b)&&(e.addSeparator(k),e.addItem(mxResources.get("link"),
3845null,mxUtils.bind(this,function(){this.showPublishLinkDialog(mxResources.get("url"),!0,null,null,mxUtils.bind(this,function(c,e,d,f,k,q){c=this.createUrlParameters(c,e,d,f,k,q);d||c.push("hide-pages=1");g.isSelectionEmpty()||(d=g.getBoundingBox(g.getSelectionCells()),e=g.view.translate,k=g.view.scale,d.width/=k,d.height/=k,d.x=d.x/k-e.x,d.y=d.y/k-e.y,c.push("viewbox="+encodeURIComponent(JSON.stringify({x:Math.round(d.x),y:Math.round(d.y),width:Math.round(d.width),height:Math.round(d.height),border:100}))));
3846f=new EmbedDialog(this,this.getLinkForPage(b,c,f));this.showDialog(f.container,450,240,!0,!0);f.init()}))})));e.addSeparator(k);e.addItem(mxResources.get("duplicate"),null,mxUtils.bind(this,function(){this.duplicatePage(b,mxResources.get("copyOf",[b.getName()]))}),k);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||"draw.io"!=this.getServiceName()||(e.addSeparator(k),e.addItem(mxResources.get("openInNewWindow"),null,mxUtils.bind(this,function(){this.editor.editAsNew(this.getFileData(!0,null,null,null,
3847!0,!0))}),k))})};(function(){var b=EditorUi.prototype.refresh;EditorUi.prototype.refresh=function(c){b.apply(this,arguments);this.updateTabContainer()}})();(function(){mxCodecRegistry.getCodec(ChangePageSetup).exclude.push("page")})();(function(){var b=new mxObjectCodec(new MovePage,["ui"]);b.beforeDecode=function(b,e,k){k.ui=b.ui;return e};b.afterDecode=function(b,e,k){b=k.oldIndex;k.oldIndex=k.newIndex;k.newIndex=b;return k};mxCodecRegistry.register(b)})();
3848(function(){var b=new mxObjectCodec(new RenamePage,["ui","page"]);b.beforeDecode=function(b,e,k){k.ui=b.ui;return e};b.afterDecode=function(b,e,k){b=k.previous;k.previous=k.name;k.name=b;return k};mxCodecRegistry.register(b)})();
3849(function(){var b=new mxObjectCodec(new ChangePage,"ui relatedPage index neverShown page previousPage".split(" ")),c="defaultParent currentRoot scrollLeft scrollTop scale translate lastPasteXml pasteCounter".split(" ");b.afterEncode=function(b,k,g){g.setAttribute("relatedPage",k.relatedPage.getId());null==k.index&&(g.setAttribute("name",k.relatedPage.getName()),null!=k.relatedPage.viewState&&g.setAttribute("viewState",JSON.stringify(k.relatedPage.viewState,function(b,e){return 0>mxUtils.indexOf(c,
3850b)?e:void 0})),null!=k.relatedPage.root&&b.encodeCell(k.relatedPage.root,g));return g};b.beforeDecode=function(b,c,g){g.ui=b.ui;g.relatedPage=g.ui.getPageById(c.getAttribute("relatedPage"));if(null==g.relatedPage){var e=c.ownerDocument.createElement("diagram");e.setAttribute("id",c.getAttribute("relatedPage"));e.setAttribute("name",c.getAttribute("name"));g.relatedPage=new DiagramPage(e);e=c.getAttribute("viewState");null!=e&&(g.relatedPage.viewState=JSON.parse(e),c.removeAttribute("viewState"));
3851c=c.cloneNode(!0);e=c.firstChild;if(null!=e)for(g.relatedPage.root=b.decodeCell(e,!1),g=e.nextSibling,e.parentNode.removeChild(e),e=g;null!=e;){g=e.nextSibling;if(e.nodeType==mxConstants.NODETYPE_ELEMENT){var k=e.getAttribute("id");null==b.lookup(k)&&b.decodeCell(e)}e.parentNode.removeChild(e);e=g}}return c};b.afterDecode=function(b,c,g){g.index=g.previousIndex;return g};mxCodecRegistry.register(b)})();(function(){EditorUi.prototype.altShiftActions[68]="selectDescendants";var b=Graph.prototype.foldCells;Graph.prototype.foldCells=function(c,e,p,t,d){e=null!=e?e:!1;null==p&&(p=this.getFoldableCells(this.getSelectionCells(),c));this.stopEditing();this.model.beginUpdate();try{for(var f=p.slice(),g=0;g<p.length;g++)"1"==mxUtils.getValue(this.getCurrentCellStyle(p[g]),"treeFolding","0")&&this.foldTreeCell(c,p[g]);p=f;p=b.apply(this,arguments)}finally{this.model.endUpdate()}return p};Graph.prototype.foldTreeCell=
3852function(b,c){this.model.beginUpdate();try{var e=[];this.traverse(c,!0,mxUtils.bind(this,function(b,f){var d=null!=f&&this.isTreeEdge(f);d&&e.push(f);b==c||null!=f&&!d||e.push(b);return(null==f||d)&&(b==c||!this.model.isCollapsed(b))}));this.model.setCollapsed(c,b);for(var g=0;g<e.length;g++)this.model.setVisible(e[g],!b)}finally{this.model.endUpdate()}};Graph.prototype.isTreeEdge=function(b){return!this.isEdgeIgnored(b)};Graph.prototype.getTreeEdges=function(b,c,e,t,d,f){return this.model.filterCells(this.getEdges(b,
3853c,e,t,d,f),mxUtils.bind(this,function(b){return this.isTreeEdge(b)}))};Graph.prototype.getIncomingTreeEdges=function(b,c){return this.getTreeEdges(b,c,!0,!1,!1)};Graph.prototype.getOutgoingTreeEdges=function(b,c){return this.getTreeEdges(b,c,!1,!0,!1)};var c=EditorUi.prototype.init;EditorUi.prototype.init=function(){c.apply(this,arguments);this.editor.isChromelessView()&&!this.editor.editable||this.addTrees()};EditorUi.prototype.addTrees=function(){function b(b){return y.isVertex(b)&&e(b)}function c(b){var c=
3854!1;null!=b&&(c="1"==v.getCurrentCellStyle(b).treeMoving);return c}function e(b){var c=!1;null!=b&&(b=y.getParent(b),c=v.view.getState(b),c="tree"==(null!=c?c.style:v.getCellStyle(b)).containerType);return c}function t(b){var c=!1;null!=b&&(b=y.getParent(b),c=v.view.getState(b),v.view.getState(b),c=null!=(null!=c?c.style:v.getCellStyle(b)).childLayout);return c}function d(b){b=v.view.getState(b);if(null!=b){var c=v.getIncomingTreeEdges(b.cell);if(0<c.length&&(c=v.view.getState(c[0]),null!=c&&(c=c.absolutePoints,
3855null!=c&&0<c.length&&(c=c[c.length-1],null!=c)))){if(c.y==b.y&&Math.abs(c.x-b.getCenterX())<b.width/2)return mxConstants.DIRECTION_SOUTH;if(c.y==b.y+b.height&&Math.abs(c.x-b.getCenterX())<b.width/2)return mxConstants.DIRECTION_NORTH;if(c.x>b.getCenterX())return mxConstants.DIRECTION_WEST}}return mxConstants.DIRECTION_EAST}function f(b,c){c=null!=c?c:!0;v.model.beginUpdate();try{var e=v.model.getParent(b),f=v.getIncomingTreeEdges(b),g=v.cloneCells([f[0],b]);v.model.setTerminal(g[0],v.model.getTerminal(f[0],
3856!0),!0);var k=d(b),l=e.geometry;k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH?g[1].geometry.x+=c?b.geometry.width+10:-g[1].geometry.width-10:g[1].geometry.y+=c?b.geometry.height+10:-g[1].geometry.height-10;v.view.currentRoot!=e&&(g[1].geometry.x-=l.x,g[1].geometry.y-=l.y);var m=v.view.getState(b),p=v.view.scale;if(null!=m){var n=mxRectangle.fromRectangle(m);k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH?n.x+=(c?b.geometry.width+10:-g[1].geometry.width-10)*p:n.y+=(c?
3857b.geometry.height+10:-g[1].geometry.height-10)*p;var q=v.getOutgoingTreeEdges(v.model.getTerminal(f[0],!0));if(null!=q){for(var t=k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH,u=l=f=0;u<q.length;u++){var C=v.model.getTerminal(q[u],!1);if(k==d(C)){var B=v.view.getState(C);C!=b&&null!=B&&(t&&c!=B.getCenterX()<m.getCenterX()||!t&&c!=B.getCenterY()<m.getCenterY())&&mxUtils.intersects(n,B)&&(f=10+Math.max(f,(Math.min(n.x+n.width,B.x+B.width)-Math.max(n.x,B.x))/p),l=10+Math.max(l,(Math.min(n.y+
3858n.height,B.y+B.height)-Math.max(n.y,B.y))/p))}}t?l=0:f=0;for(u=0;u<q.length;u++)if(C=v.model.getTerminal(q[u],!1),k==d(C)&&(B=v.view.getState(C),C!=b&&null!=B&&(t&&c!=B.getCenterX()<m.getCenterX()||!t&&c!=B.getCenterY()<m.getCenterY()))){var x=[];v.traverse(B.cell,!0,function(b,c){var d=null!=c&&v.isTreeEdge(c);d&&x.push(c);(null==c||d)&&x.push(b);return null==c||d});v.moveCells(x,(c?1:-1)*f,(c?1:-1)*l)}}}return v.addCells(g,e)}finally{v.model.endUpdate()}}function l(b){v.model.beginUpdate();try{var c=
3859d(b),e=v.getIncomingTreeEdges(b),f=v.cloneCells([e[0],b]);v.model.setTerminal(e[0],f[1],!1);v.model.setTerminal(f[0],f[1],!0);v.model.setTerminal(f[0],b,!1);var g=v.model.getParent(b),k=g.geometry,l=[];v.view.currentRoot!=g&&(f[1].geometry.x-=k.x,f[1].geometry.y-=k.y);v.traverse(b,!0,function(b,c){var d=null!=c&&v.isTreeEdge(c);d&&l.push(c);(null==c||d)&&l.push(b);return null==c||d});var m=b.geometry.width+40,n=b.geometry.height+40;c==mxConstants.DIRECTION_SOUTH?m=0:c==mxConstants.DIRECTION_NORTH?
3860(m=0,n=-n):c==mxConstants.DIRECTION_WEST?(m=-m,n=0):c==mxConstants.DIRECTION_EAST&&(n=0);v.moveCells(l,m,n);return v.addCells(f,g)}finally{v.model.endUpdate()}}function q(b,c){v.model.beginUpdate();try{var e=v.model.getParent(b),f=v.getIncomingTreeEdges(b),g=d(b);0==f.length&&(f=[v.createEdge(e,null,"",null,null,v.createCurrentEdgeStyle())],g=c);var k=v.cloneCells([f[0],b]);v.model.setTerminal(k[0],b,!0);if(null==v.model.getTerminal(k[0],!1)){v.model.setTerminal(k[0],k[1],!1);var l=v.getCellStyle(k[1]).newEdgeStyle;
3861if(null!=l)try{var m=JSON.parse(l),n;for(n in m)v.setCellStyles(n,m[n],[k[0]]),"edgeStyle"==n&&"elbowEdgeStyle"==m[n]&&v.setCellStyles("elbow",g==mxConstants.DIRECTION_SOUTH||g==mxConstants.DIRECTION_NOTH?"vertical":"horizontal",[k[0]])}catch(pa){}}var f=v.getOutgoingTreeEdges(b),p=e.geometry,l=[];v.view.currentRoot==e&&(p=new mxRectangle);for(m=0;m<f.length;m++){var q=v.model.getTerminal(f[m],!1);null!=q&&l.push(q)}var t=v.view.getBounds(l),u=v.view.translate,C=v.view.scale;g==mxConstants.DIRECTION_SOUTH?
3862(k[1].geometry.x=null==t?b.geometry.x+(b.geometry.width-k[1].geometry.width)/2:(t.x+t.width)/C-u.x-p.x+10,k[1].geometry.y+=k[1].geometry.height-p.y+40):g==mxConstants.DIRECTION_NORTH?(k[1].geometry.x=null==t?b.geometry.x+(b.geometry.width-k[1].geometry.width)/2:(t.x+t.width)/C-u.x+-p.x+10,k[1].geometry.y-=k[1].geometry.height+p.y+40):(k[1].geometry.x=g==mxConstants.DIRECTION_WEST?k[1].geometry.x-(k[1].geometry.width+p.x+40):k[1].geometry.x+(k[1].geometry.width-p.x+40),k[1].geometry.y=null==t?b.geometry.y+
3863(b.geometry.height-k[1].geometry.height)/2:(t.y+t.height)/C-u.y+-p.y+10);return v.addCells(k,e)}finally{v.model.endUpdate()}}function m(b,c,d){b=v.getOutgoingTreeEdges(b);d=v.view.getState(d);var e=[];if(null!=d&&null!=b){for(var f=0;f<b.length;f++){var g=v.view.getState(v.model.getTerminal(b[f],!1));null!=g&&(!c&&Math.min(g.x+g.width,d.x+d.width)>=Math.max(g.x,d.x)||c&&Math.min(g.y+g.height,d.y+d.height)>=Math.max(g.y,d.y))&&e.push(g)}e.sort(function(b,d){return c?b.x+b.width-d.x-d.width:b.y+b.height-
3864d.y-d.height})}return e}function n(b,c){var e=d(b),f=c==mxConstants.DIRECTION_EAST||c==mxConstants.DIRECTION_WEST;(e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST)==f&&e!=c?u.actions.get("selectParent").funct():e==c?(f=v.getOutgoingTreeEdges(b),null!=f&&0<f.length&&v.setSelectionCell(v.model.getTerminal(f[0],!1))):(e=v.getIncomingTreeEdges(b),null!=e&&0<e.length&&(f=m(v.model.getTerminal(e[0],!0),f,b),e=v.view.getState(b),null!=e&&(e=mxUtils.indexOf(f,e),0<=e&&(e+=c==mxConstants.DIRECTION_NORTH||
3865c==mxConstants.DIRECTION_WEST?-1:1,0<=e&&e<=f.length-1&&v.setSelectionCell(f[e].cell)))))}var u=this,v=u.editor.graph,y=v.getModel(),x=u.menus.createPopupMenu;u.menus.createPopupMenu=function(c,d,e){x.apply(this,arguments);if(1==v.getSelectionCount()){d=v.getSelectionCell();var f=v.getOutgoingTreeEdges(d);c.addSeparator();0<f.length&&(b(v.getSelectionCell())&&this.addMenuItems(c,["selectChildren"],null,e),this.addMenuItems(c,["selectDescendants"],null,e));b(v.getSelectionCell())?(c.addSeparator(),
38660<v.getIncomingTreeEdges(d).length&&this.addMenuItems(c,["selectSiblings","selectParent"],null,e)):0<v.model.getEdgeCount(d)&&this.addMenuItems(c,["selectConnections"],null,e)}};u.actions.addAction("selectChildren",function(){if(v.isEnabled()&&1==v.getSelectionCount()){var b=v.getSelectionCell(),b=v.getOutgoingTreeEdges(b);if(null!=b){for(var c=[],d=0;d<b.length;d++)c.push(v.model.getTerminal(b[d],!1));v.setSelectionCells(c)}}},null,null,"Alt+Shift+X");u.actions.addAction("selectSiblings",function(){if(v.isEnabled()&&
38671==v.getSelectionCount()){var b=v.getSelectionCell(),b=v.getIncomingTreeEdges(b);if(null!=b&&0<b.length&&(b=v.getOutgoingTreeEdges(v.model.getTerminal(b[0],!0)),null!=b)){for(var c=[],d=0;d<b.length;d++)c.push(v.model.getTerminal(b[d],!1));v.setSelectionCells(c)}}},null,null,"Alt+Shift+S");u.actions.addAction("selectParent",function(){if(v.isEnabled()&&1==v.getSelectionCount()){var b=v.getSelectionCell(),b=v.getIncomingTreeEdges(b);null!=b&&0<b.length&&v.setSelectionCell(v.model.getTerminal(b[0],
3868!0))}},null,null,"Alt+Shift+P");u.actions.addAction("selectDescendants",function(b,c){var d=v.getSelectionCell();if(v.isEnabled()&&v.model.isVertex(d)){if(null!=c&&mxEvent.isAltDown(c))v.setSelectionCells(v.model.getTreeEdges(d,null==c||!mxEvent.isShiftDown(c),null==c||!mxEvent.isControlDown(c)));else{var e=[];v.traverse(d,!0,function(b,d){var f=null!=d&&v.isTreeEdge(d);f&&e.push(d);null!=d&&!f||null!=c&&mxEvent.isShiftDown(c)||e.push(b);return null==d||f})}v.setSelectionCells(e)}},null,null,"Alt+Shift+D");
3869var D=v.removeCells;v.removeCells=function(c,d){d=null!=d?d:!0;null==c&&(c=this.getDeletableCells(this.getSelectionCells()));d&&(c=this.getDeletableCells(this.addAllEdges(c)));for(var f=[],g=0;g<c.length;g++){var k=c[g];y.isEdge(k)&&e(k)&&(f.push(k),k=y.getTerminal(k,!1));if(b(k)){var l=[];v.traverse(k,!0,function(b,c){var d=null!=c&&v.isTreeEdge(c);d&&l.push(c);(null==c||d)&&l.push(b);return null==c||d});0<l.length&&(f=f.concat(l),k=v.getIncomingTreeEdges(c[g]),c=c.concat(k))}else null!=k&&f.push(c[g])}c=
3870f;return D.apply(this,arguments)};u.hoverIcons.getStateAt=function(c,d,e){return b(c.cell)?null:this.graph.view.getState(this.graph.getCellAt(d,e))};var I=v.duplicateCells;v.duplicateCells=function(c,d){c=null!=c?c:this.getSelectionCells();for(var e=c.slice(0),f=0;f<e.length;f++){var g=v.view.getState(e[f]);if(null!=g&&b(g.cell))for(var k=v.getIncomingTreeEdges(g.cell),g=0;g<k.length;g++)mxUtils.remove(k[g],c)}this.model.beginUpdate();try{var l=I.call(this,c,d);if(l.length==c.length)for(f=0;f<c.length;f++)if(b(c[f])){var m=
3871v.getIncomingTreeEdges(l[f]),k=v.getIncomingTreeEdges(c[f]);if(0==m.length&&0<k.length){var n=this.cloneCell(k[0]);this.addEdge(n,v.getDefaultParent(),this.model.getTerminal(k[0],!0),l[f])}}}finally{this.model.endUpdate()}return l};var B=v.moveCells;v.moveCells=function(c,d,e,f,g,k,l){var m=null;this.model.beginUpdate();try{var n=g,p=this.getCurrentCellStyle(g);if(null!=c&&b(g)&&"1"==mxUtils.getValue(p,"treeFolding","0")){for(var q=0;q<c.length;q++)if(b(c[q])||v.model.isEdge(c[q])&&null==v.model.getTerminal(c[q],
3872!0)){g=v.model.getParent(c[q]);break}if(null!=n&&g!=n&&null!=this.view.getState(c[0])){var t=v.getIncomingTreeEdges(c[0]);if(0<t.length){var u=v.view.getState(v.model.getTerminal(t[0],!0));if(null!=u){var C=v.view.getState(n);null!=C&&(d=(C.getCenterX()-u.getCenterX())/v.view.scale,e=(C.getCenterY()-u.getCenterY())/v.view.scale)}}}}m=B.apply(this,arguments);if(null!=m&&null!=c&&m.length==c.length)for(q=0;q<m.length;q++)if(this.model.isEdge(m[q]))b(n)&&0>mxUtils.indexOf(m,this.model.getTerminal(m[q],
3873!0))&&this.model.setTerminal(m[q],n,!0);else if(b(c[q])&&(t=v.getIncomingTreeEdges(c[q]),0<t.length))if(!f)b(n)&&0>mxUtils.indexOf(c,this.model.getTerminal(t[0],!0))&&this.model.setTerminal(t[0],n,!0);else if(0==v.getIncomingTreeEdges(m[q]).length){p=n;if(null==p||p==v.model.getParent(c[q]))p=v.model.getTerminal(t[0],!0);f=this.cloneCell(t[0]);this.addEdge(f,v.getDefaultParent(),p,m[q])}}finally{this.model.endUpdate()}return m};if(null!=u.sidebar){var F=u.sidebar.dropAndConnect;u.sidebar.dropAndConnect=
3874function(c,d,e,f){var g=v.model,k=null;g.beginUpdate();try{if(k=F.apply(this,arguments),b(c))for(var l=0;l<k.length;l++)if(g.isEdge(k[l])&&null==g.getTerminal(k[l],!0)){g.setTerminal(k[l],c,!0);var m=v.getCellGeometry(k[l]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{g.endUpdate()}return k}}var M={88:u.actions.get("selectChildren"),84:u.actions.get("selectSubtree"),80:u.actions.get("selectParent"),83:u.actions.get("selectSiblings")},E=u.onKeyDown;u.onKeyDown=function(c){try{if(v.isEnabled()&&
3875!v.isEditing()&&b(v.getSelectionCell())&&1==v.getSelectionCount()){var d=null;0<v.getIncomingTreeEdges(v.getSelectionCell()).length&&(9==c.which?d=mxEvent.isShiftDown(c)?l(v.getSelectionCell()):q(v.getSelectionCell()):13==c.which&&(d=f(v.getSelectionCell(),!mxEvent.isShiftDown(c))));if(null!=d&&0<d.length)1==d.length&&v.model.isEdge(d[0])?v.setSelectionCell(v.model.getTerminal(d[0],!1)):v.setSelectionCell(d[d.length-1]),null!=u.hoverIcons&&u.hoverIcons.update(v.view.getState(v.getSelectionCell())),
3876v.startEditingAtCell(v.getSelectionCell()),mxEvent.consume(c);else if(mxEvent.isAltDown(c)&&mxEvent.isShiftDown(c)){var e=M[c.keyCode];null!=e&&(e.funct(c),mxEvent.consume(c))}else 37==c.keyCode?(n(v.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(c)):38==c.keyCode?(n(v.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(c)):39==c.keyCode?(n(v.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(c)):40==c.keyCode&&(n(v.getSelectionCell(),mxConstants.DIRECTION_SOUTH),
3877mxEvent.consume(c))}}catch(H){u.handleError(H)}mxEvent.isConsumed(c)||E.apply(this,arguments)};var K=v.connectVertex;v.connectVertex=function(c,e,g,k,m,n,p){var t=v.getIncomingTreeEdges(c);if(b(c)){var u=d(c),C=u==mxConstants.DIRECTION_EAST||u==mxConstants.DIRECTION_WEST,B=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST;return u==e||0==t.length?q(c,e):C==B?l(c):f(c,e!=mxConstants.DIRECTION_NORTH&&e!=mxConstants.DIRECTION_WEST)}return K.apply(this,arguments)};v.getSubtree=function(d){var e=
3878[d];!c(d)&&!b(d)||t(d)||v.traverse(d,!0,function(b,c){var d=null!=c&&v.isTreeEdge(c);d&&0>mxUtils.indexOf(e,c)&&e.push(c);(null==c||d)&&0>mxUtils.indexOf(e,b)&&e.push(b);return null==c||d});return e};var C=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){C.apply(this,arguments);(c(this.state.cell)||b(this.state.cell))&&!t(this.state.cell)&&0<this.graph.getOutgoingTreeEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(Editor.moveImage),this.moveHandle.setAttribute("title",
3879"Move Subtree"),this.moveHandle.style.position="absolute",this.moveHandle.style.cursor="pointer",this.moveHandle.style.width="24px",this.moveHandle.style.height="24px",this.graph.container.appendChild(this.moveHandle),mxEvent.addGestureListeners(this.moveHandle,mxUtils.bind(this,function(b){this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(b),mxEvent.getClientY(b),this.graph.getSubtree(this.state.cell));this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(b);
3880this.graph.isMouseDown=!0;u.hoverIcons.reset();mxEvent.consume(b)})))};var L=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){L.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.style.left=this.state.x+this.state.width+(40>this.state.width?10:0)+2+"px",this.moveHandle.style.top=this.state.y+this.state.height+(40>this.state.height?10:0)+2+"px")};var O=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){O.apply(this,
3881arguments);null!=this.moveHandle&&(this.moveHandle.style.display=b?"":"none")};var ea=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(b,c){ea.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var e=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var b=e.apply(this,arguments),c=this.graph;return b.concat([this.addEntry("tree container",
3882function(){var b=new mxCell("Tree Container",new mxGeometry(0,0,400,320),"swimlane;startSize=20;horizontal=1;containerType=tree;");b.vertex=!0;var c=new mxCell("Parent",new mxGeometry(140,60,120,40),'whiteSpace=wrap;html=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');c.vertex=!0;var d=new mxCell("Child",new mxGeometry(140,140,120,40),'whiteSpace=wrap;html=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');
3883d.vertex=!0;var e=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");e.geometry.relative=!0;e.edge=!0;c.insertEdge(e,!0);d.insertEdge(e,!1);b.insert(e);b.insert(c);b.insert(d);return sb.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,b.value)}),this.addEntry("tree mindmap mindmaps central idea branch topic",function(){var b=new mxCell("Mindmap",new mxGeometry(0,0,420,126),"swimlane;startSize=20;horizontal=1;containerType=tree;");
3884b.vertex=!0;var c=new mxCell("Central Idea",new mxGeometry(160,60,100,40),'ellipse;whiteSpace=wrap;html=1;align=center;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');c.vertex=!0;var d=new mxCell("Topic",new mxGeometry(320,40,80,20),'whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
3885d.vertex=!0;var e=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");e.geometry.relative=!0;e.edge=!0;c.insertEdge(e,!0);d.insertEdge(e,!1);var g=new mxCell("Branch",new mxGeometry(320,80,72,26),'whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;autosize=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
3886g.vertex=!0;var k=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");k.geometry.relative=!0;k.edge=!0;c.insertEdge(k,!0);g.insertEdge(k,!1);var m=new mxCell("Topic",new mxGeometry(20,40,80,20),'whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
3887m.vertex=!0;var n=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");n.geometry.relative=!0;n.edge=!0;c.insertEdge(n,!0);m.insertEdge(n,!1);var u=new mxCell("Branch",new mxGeometry(20,80,72,26),'whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;autosize=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
3888u.vertex=!0;var v=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");v.geometry.relative=!0;v.edge=!0;c.insertEdge(v,!0);u.insertEdge(v,!1);b.insert(e);b.insert(k);b.insert(n);b.insert(v);b.insert(c);b.insert(d);b.insert(g);b.insert(m);b.insert(u);return sb.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,b.value)}),this.addEntry("tree mindmap mindmaps central idea",function(){var b=new mxCell("Central Idea",
3889new mxGeometry(0,0,100,40),'ellipse;whiteSpace=wrap;html=1;align=center;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};treeFolding=1;treeMoving=1;');b.vertex=!0;return sb.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,b.value)}),this.addEntry("tree mindmap mindmaps branch",function(){var b=new mxCell("Branch",new mxGeometry(0,0,80,20),'whiteSpace=wrap;html=1;shape=partialRectangle;top=0;left=0;bottom=1;right=0;points=[[0,1],[1,1]];fillColor=none;align=center;verticalAlign=bottom;routingCenterY=0.5;snapToPoint=1;recursiveResize=0;autosize=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
3890b.vertex=!0;var c=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");c.geometry.setTerminalPoint(new mxPoint(-40,40),!0);c.geometry.relative=!0;c.edge=!0;b.insertEdge(c,!1);return sb.createVertexTemplateFromCells([b,c],b.geometry.width,b.geometry.height,b.value)}),this.addEntry("tree mindmap mindmaps sub topic",function(){var b=new mxCell("Sub Topic",new mxGeometry(0,0,72,26),'whiteSpace=wrap;html=1;rounded=1;arcSize=50;align=center;verticalAlign=middle;strokeWidth=1;autosize=1;spacing=4;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"entityRelationEdgeStyle","startArrow":"none","endArrow":"none","segment":10,"curved":1};');
3891b.vertex=!0;var c=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=entityRelationEdgeStyle;startArrow=none;endArrow=none;segment=10;curved=1;");c.geometry.setTerminalPoint(new mxPoint(-40,40),!0);c.geometry.relative=!0;c.edge=!0;b.insertEdge(c,!1);return sb.createVertexTemplateFromCells([b,c],b.geometry.width,b.geometry.height,b.value)}),this.addEntry("tree orgchart organization division",function(){var b=new mxCell("Orgchart",new mxGeometry(0,0,280,220),'swimlane;startSize=20;horizontal=1;containerType=tree;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');
3892b.vertex=!0;var e=new mxCell("Organization",new mxGeometry(80,40,120,60),'whiteSpace=wrap;html=1;align=center;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');c.setAttributeForCell(e,"treeRoot","1");e.vertex=!0;var d=new mxCell("Division",new mxGeometry(20,140,100,60),'whiteSpace=wrap;html=1;align=center;verticalAlign=middle;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');
3893d.vertex=!0;var f=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");f.geometry.relative=!0;f.edge=!0;e.insertEdge(f,!0);d.insertEdge(f,!1);var g=new mxCell("Division",new mxGeometry(160,140,100,60),'whiteSpace=wrap;html=1;align=center;verticalAlign=middle;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');g.vertex=!0;var k=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");
3894k.geometry.relative=!0;k.edge=!0;e.insertEdge(k,!0);g.insertEdge(k,!1);b.insert(f);b.insert(k);b.insert(e);b.insert(d);b.insert(g);return sb.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,b.value)}),this.addEntry("tree root",function(){var b=new mxCell("Organization",new mxGeometry(0,0,120,60),'whiteSpace=wrap;html=1;align=center;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');c.setAttributeForCell(b,"treeRoot",
3895"1");b.vertex=!0;return sb.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,b.value)}),this.addEntry("tree division",function(){var b=new mxCell("Division",new mxGeometry(20,40,100,60),'whiteSpace=wrap;html=1;align=center;verticalAlign=middle;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');b.vertex=!0;var c=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=elbowEdgeStyle;elbow=vertical;startArrow=none;endArrow=none;rounded=0;");
3896c.geometry.setTerminalPoint(new mxPoint(0,0),!0);c.geometry.relative=!0;c.edge=!0;b.insertEdge(c,!1);return sb.createVertexTemplateFromCells([b,c],b.geometry.width,b.geometry.height,b.value)}),this.addEntry("tree sub sections",function(){var b=new mxCell("Sub Section",new mxGeometry(0,0,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;treeFolding=1;treeMoving=1;");b.vertex=!0;var c=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");
3897c.geometry.setTerminalPoint(new mxPoint(110,-40),!0);c.geometry.relative=!0;c.edge=!0;b.insertEdge(c,!1);var d=new mxCell("Sub Section",new mxGeometry(120,0,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;treeFolding=1;treeMoving=1;");d.vertex=!0;var e=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");e.geometry.setTerminalPoint(new mxPoint(110,-40),!0);e.geometry.relative=
3898!0;e.edge=!0;d.insertEdge(e,!1);return sb.createVertexTemplateFromCells([c,e,b,d],220,60,"Sub Sections")})])}}})();EditorUi.initMinimalTheme=function(){function b(b,c){var d=b.editor.graph;d.popupMenuHandler.hideMenu();null==b.formatWindow?(b.formatWindow=new k(b,mxResources.get("format"),"1"==urlParams.sketch?Math.max(10,b.diagramContainer.clientWidth-241):Math.max(10,b.diagramContainer.clientWidth-248),60,240,Math.min(566,d.container.clientHeight-10),function(c){var d=b.createFormat(c);d.init();b.addListener("darkModeChanged",mxUtils.bind(this,function(){d.refresh()}));return d}),b.formatWindow.window.minimumSize=
3899new mxRectangle(0,0,240,80),b.formatWindow.window.setVisible(!0)):b.formatWindow.window.setVisible(null!=c?c:!b.formatWindow.window.isVisible());b.formatWindow.window.isVisible()&&"1"!=urlParams.sketch&&b.formatWindow.window.fit()}function c(b,c){var d=b.editor.graph;d.popupMenuHandler.hideMenu();new mxRectangle;if(null==b.sidebarWindow){var e=Math.min(d.container.clientWidth-10,218);b.sidebarWindow=new k(b,mxResources.get("shapes"),10,"1"==urlParams.sketch&&"1"!=urlParams.embedInline?15:56,e-6,Math.min(650,
3900d.container.clientHeight-30),function(c){function d(d,e){var g=b.menus.get(d),k=f.addMenu(e,mxUtils.bind(this,function(){g.funct.apply(this,arguments)}));k.style.cssText="position:absolute;border-top:1px solid lightgray;width:50%;height:24px;bottom:0px;text-align:center;cursor:pointer;padding:6px 0 0 0;cusor:pointer;";k.className="geTitle";c.appendChild(k);return k}var e=document.createElement("div");e.style.cssText="position:absolute;left:0;right:0;border-top:1px solid lightgray;height:24px;bottom:31px;text-align:center;cursor:pointer;padding:6px 0 0 0;";
3901e.className="geTitle";e.innerHTML='<span style="font-size:18px;margin-right:5px;">+</span>';mxUtils.write(e,mxResources.get("moreShapes"));c.appendChild(e);mxEvent.addListener(e,"click",function(){b.actions.get("shapes").funct()});var f=new Menubar(b,c);if(!Editor.enableCustomLibraries||"1"==urlParams.embed&&"1"!=urlParams.libraries)e.style.bottom="0";else if(null!=b.actions.get("newLibrary")){e=document.createElement("div");e.style.cssText="position:absolute;left:0px;width:50%;border-top:1px solid lightgray;height:30px;bottom:0px;text-align:center;cursor:pointer;padding:0px;";
3902e.className="geTitle";var g=document.createElement("span");g.style.cssText="position:relative;top:6px;";mxUtils.write(g,mxResources.get("newLibrary"));e.appendChild(g);c.appendChild(e);mxEvent.addListener(e,"click",b.actions.get("newLibrary").funct);e=document.createElement("div");e.style.cssText="position:absolute;left:50%;width:50%;border-top:1px solid lightgray;height:30px;bottom:0px;text-align:center;cursor:pointer;padding:0px;border-left: 1px solid lightgray;";e.className="geTitle";g=document.createElement("span");
3903g.style.cssText="position:relative;top:6px;";mxUtils.write(g,mxResources.get("openLibrary"));e.appendChild(g);c.appendChild(e);mxEvent.addListener(e,"click",b.actions.get("openLibrary").funct)}else e=d("newLibrary",mxResources.get("newLibrary")),e.style.boxSizing="border-box",e.style.paddingRight="6px",e.style.paddingLeft="6px",e.style.height="32px",e.style.left="0",e=d("openLibraryFrom",mxResources.get("openLibraryFrom")),e.style.borderLeft="1px solid lightgray",e.style.boxSizing="border-box",e.style.paddingRight=
3904"6px",e.style.paddingLeft="6px",e.style.height="32px",e.style.left="50%";c.appendChild(b.sidebar.container);c.style.overflow="hidden";return c});b.sidebarWindow.window.minimumSize=new mxRectangle(0,0,90,90);b.sidebarWindow.window.setVisible(!0);b.getLocalData("sidebar",function(c){b.sidebar.showEntries(c,null,!0)});b.restoreLibraries()}else b.sidebarWindow.window.setVisible(null!=c?c:!b.sidebarWindow.window.isVisible());b.sidebarWindow.window.isVisible()&&b.sidebarWindow.window.fit()}if("1"==urlParams.lightbox||
3905"0"==urlParams.chrome||"undefined"===typeof window.Format||"undefined"===typeof window.Menus)window.uiTheme=null;else{var e=0;try{e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth}catch(B){}var k=function(b,c,d,e,f,g,k){var l=document.createElement("div");l.className="geSidebarContainer";l.style.position="absolute";l.style.width="100%";l.style.height="100%";l.style.border="1px solid whiteSmoke";l.style.overflowX="hidden";l.style.overflowY="auto";k(l);this.window=
3906new mxWindow(c,l,d,e,f,g,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.setLocation=function(b,c){var d=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;b=Math.max(0,Math.min(b,(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)-this.table.clientWidth));c=Math.max(0,Math.min(c,d-this.table.clientHeight-("1"==urlParams.sketch?
39073:48)));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,arguments)};mxClient.IS_SF&&(this.window.div.onselectstart=mxUtils.bind(this,function(c){null==c&&(c=window.event);return null!=c&&b.isSelectionAllowed(c)}))};Editor.checkmarkImage=Graph.createSvgImage(22,18,'<path transform="translate(4 0)" d="M7.181,15.007a1,1,0,0,1-.793-0.391L3.222,10.5A1,1,0,1,1,4.808,9.274L7.132,12.3l6.044-8.86A1,1,0,1,1,14.83,4.569l-6.823,10a1,1,0,0,1-.8.437H7.181Z" fill="#29b6f2"/>').src;mxWindow.prototype.closeImage=
3908Graph.createSvgImage(18,10,'<path d="M 5 1 L 13 9 M 13 1 L 5 9" stroke="#C0C0C0" stroke-width="2"/>').src;mxWindow.prototype.minimizeImage=Graph.createSvgImage(14,10,'<path d="M 3 7 L 7 3 L 11 7" stroke="#C0C0C0" stroke-width="2" fill="none"/>').src;mxWindow.prototype.normalizeImage=Graph.createSvgImage(14,10,'<path d="M 3 3 L 7 7 L 11 3" stroke="#C0C0C0" stroke-width="2" fill="none"/>').src;mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke-width="2" style="stroke-opacity:0.4" stroke="#ffffff"/><path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="#29b6f2"/>');
3909mxOutline.prototype.sizerImage=null;mxConstants.VERTEX_SELECTION_COLOR="#C0C0C0";mxConstants.EDGE_SELECTION_COLOR="#C0C0C0";mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff";mxConstants.DEFAULT_VALID_COLOR="#29b6f2";mxConstants.GUIDE_COLOR="#C0C0C0";mxConstants.HIGHLIGHT_STROKEWIDTH=5;mxConstants.HIGHLIGHT_OPACITY=35;mxConstants.OUTLINE_COLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_FILLCOLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_STROKECOLOR="#fff";Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity=
3910"0.4";Graph.prototype.svgShadowSize="0.6";Graph.prototype.svgShadowBlur="1.2";Format.inactiveTabBackgroundColor="#f0f0f0";mxGraphHandler.prototype.previewColor="#C0C0C0";mxRubberband.prototype.defaultOpacity=50;HoverIcons.prototype.inactiveOpacity=25;Format.prototype.showCloseButton=!1;EditorUi.prototype.closableScratchpad=!1;EditorUi.prototype.toolbarHeight="1"==urlParams.sketch?1:46;EditorUi.prototype.footerHeight=0;Graph.prototype.editAfterInsert="1"!=urlParams.sketch&&!mxClient.IS_IOS&&!mxClient.IS_ANDROID;
3911EditorUi.prototype.setDarkMode=function(b){this.spinner.spin(document.body,mxResources.get("working")+"...")&&window.setTimeout(mxUtils.bind(this,function(){this.spinner.stop();this.doSetDarkMode(b);null==urlParams.dark&&(mxSettings.settings.darkMode=b,mxSettings.save());this.fireEvent(new mxEventObject("darkModeChanged"))}),0)};var g=document.createElement("link");g.setAttribute("rel","stylesheet");g.setAttribute("href",STYLE_PATH+"/dark.css");g.setAttribute("charset","UTF-8");g.setAttribute("type",
3912"text/css");EditorUi.prototype.doSetDarkMode=function(b){if(Editor.darkMode!=b){var c=this.editor.graph;Editor.darkMode=b;this.spinner.opts.color=Editor.isDarkMode()?"#c0c0c0":"#000";this.setGridColor(Editor.isDarkMode()?c.view.defaultDarkGridColor:c.view.defaultGridColor);c.defaultPageBackgroundColor="1"==urlParams.embedInline?"transparent":Editor.isDarkMode()?Editor.darkColor:"#ffffff";c.defaultPageBorderColor=Editor.isDarkMode()?"#505759":"#ffffff";c.shapeBackgroundColor=Editor.isDarkMode()?Editor.darkColor:
3913"#ffffff";c.shapeForegroundColor=Editor.isDarkMode()?Editor.lightColor:"#000000";c.defaultThemeName=Editor.isDarkMode()?"darkTheme":"default-style2";c.graphHandler.previewColor=Editor.isDarkMode()?"#cccccc":"black";document.body.style.backgroundColor="1"==urlParams.embedInline?"transparent":Editor.isDarkMode()?Editor.darkColor:"#ffffff";c.loadStylesheet();null!=this.actions.layersWindow&&(b=this.actions.layersWindow.window.isVisible(),this.actions.layersWindow.window.setVisible(!1),this.actions.layersWindow.destroy(),
3914this.actions.layersWindow=null,b&&window.setTimeout(this.actions.get("layers").funct,0));null!=this.menus.commentsWindow&&(this.menus.commentsWindow.window.setVisible(!1),this.menus.commentsWindow.destroy(),this.menus.commentsWindow=null);null!=this.ruler&&this.ruler.updateStyle();Graph.prototype.defaultPageBackgroundColor=c.defaultPageBackgroundColor;Graph.prototype.defaultPageBorderColor=c.defaultPageBorderColor;Graph.prototype.shapeBackgroundColor=c.shapeBackgroundColor;Graph.prototype.shapeForegroundColor=
3915c.shapeForegroundColor;Graph.prototype.defaultThemeName=c.defaultThemeName;StyleFormatPanel.prototype.defaultStrokeColor=Editor.isDarkMode()?"#cccccc":"black";BaseFormatPanel.prototype.buttonBackgroundColor=Editor.isDarkMode()?Editor.darkColor:"white";Format.inactiveTabBackgroundColor=Editor.isDarkMode()?"black":"#f0f0f0";Dialog.backdropColor=Editor.isDarkMode()?Editor.darkColor:"white";mxConstants.DROP_TARGET_COLOR=Editor.isDarkMode()?"#00ff00":"#0000FF";Editor.helpImage=Editor.isDarkMode()&&mxClient.IS_SVG?
3916Editor.darkHelpImage:Editor.lightHelpImage;Editor.checkmarkImage=Editor.isDarkMode()&&mxClient.IS_SVG?Editor.darkCheckmarkImage:Editor.lightCheckmarkImage;p.innerHTML=Editor.createMinimalCss();Editor.darkMode?null==g.parentNode&&document.getElementsByTagName("head")[0].appendChild(g):null!=g.parentNode&&g.parentNode.removeChild(g)}};Editor.createMinimalCss=function(){return"* { -webkit-font-smoothing: antialiased; }html body td.mxWindowTitle > div > img { padding: 8px 4px; }"+(Editor.isDarkMode()?
3917"html body td.mxWindowTitle > div > img { margin: -4px; }html body .geToolbarContainer .geMenuItem, html body .geToolbarContainer .geToolbarButton, html body .geMenubarContainer .geMenuItem .geMenuItem, html body .geMenubarContainer a.geMenuItem,html body .geMenubarContainer .geToolbarButton { filter: invert(1); }html body div.geToolbarContainer a.geInverted { filter: none; }html body .geMenubarContainer .geMenuItem .geMenuItem, html body .geMenubarContainer a.geMenuItem { color: #353535; }html > body > div > .geToolbarContainer { border: 1px solid #c0c0c0 !important; box-shadow: none !important; }html > body.geEditor > div > a.geItem { background-color: #2a2a2a; color: #cccccc; border-color: #505759; }html body .geTabContainer, html body .geTabContainer div, html body .geMenubarContainer { border-color: #505759 !important; }html body .mxCellEditor { color: #f0f0f0; }":
3918"html body div.geToolbarContainer a.geInverted { filter: invert(1); }html body.geEditor .geTabContainer div { border-color: #e5e5e5 !important; }")+'html > body > div > a.geItem { background-color: #ffffff; color: #707070; border-top: 1px solid lightgray; border-left: 1px solid lightgray; }html body .geMenubarContainer { border-bottom:1px solid lightgray;background-color:#ffffff; }html body .mxWindow button.geBtn { font-size:12px !important; margin-left: 0; }html body table.mxWindow td.mxWindowPane div.mxWindowPane *:not(svg *) { font-size:9pt; }table.mxWindow * :not(svg *) { font-size:13px; }html body .mxWindow { z-index: 3; }html body div.diagramContainer button, html body button.geBtn { font-size:14px; font-weight:700; border-radius: 5px; }html body button.geBtn:active { opacity: 0.6; }html body a.geMenuItem { opacity: 0.75; cursor: pointer; user-select: none; }html body a.geMenuItem[disabled] { opacity: 0.2; }html body a.geMenuItem[disabled]:active { opacity: 0.2; }html body div.geActivePage { opacity: 0.7; }html body a.geMenuItem:active { opacity: 0.2; }html body .geToolbarButton { opacity: 0.3; }html body .geToolbarButton:active { opacity: 0.15; }html body .geStatus:active { opacity: 0.5; }html body .geStatus { padding-top:3px !important; }html body .geMenubarContainer .geStatus { margin-top: 0px !important; }html table.mxPopupMenu tr.mxPopupMenuItemHover:active { opacity: 0.7; }html body .geDialog input, html body .geToolbarContainer input, html body .mxWindow input {padding: 2px; display: inline-block; }html body .mxWindow input[type="checkbox"] {padding: 0px; }div.geDialog { border-radius: 5px; }html body div.geDialog button.geBigButton { color: '+
3919(Editor.isDarkMode()?Editor.darkColor:"#fff")+" !important; border: none !important; }.mxWindow button, .geDialog select, .mxWindow select { display:inline-block; }html body .mxWindow .geColorBtn, html body .geDialog .geColorBtn { background: none; }html body div.diagramContainer button, html body .mxWindow button, html body .geDialog button { min-width: 0px; border-radius: 5px; color: "+(Editor.isDarkMode()?"#cccccc":"#353535")+" !important; border-style: solid; border-width: 1px; border-color: rgb(216, 216, 216); }html body div.diagramContainer button:hover, html body .mxWindow button:hover, html body .geDialog button:hover { border-color: rgb(177, 177, 177); }html body div.diagramContainer button:active, html body .mxWindow button:active, html body .geDialog button:active { opacity: 0.6; }div.diagramContainer button.geBtn, .mxWindow button.geBtn, .geDialog button.geBtn { min-width:72px; font-weight: 600; background: none; }div.diagramContainer button.gePrimaryBtn, .mxWindow button.gePrimaryBtn, .geDialog button.gePrimaryBtn, html body .gePrimaryBtn { background: #29b6f2; color: #fff !important; border: none; box-shadow: none; }html body .gePrimaryBtn:hover { background: #29b6f2; border: none; box-shadow: inherit; }html body button.gePrimaryBtn:hover { background: #29b6f2; border: none; }.geBtn button { min-width:72px !important; }div.geToolbarContainer a.geButton { margin:0px; padding: 0 2px 4px 2px; } html body div.geToolbarContainer a.geColorBtn { margin: 2px; } html body .mxWindow td.mxWindowPane input, html body .mxWindow td.mxWindowPane select, html body .mxWindow td.mxWindowPane textarea, html body .mxWindow td.mxWindowPane radio { padding: 0px; box-sizing: border-box; }.geDialog, .mxWindow td.mxWindowPane *, div.geSprite, td.mxWindowTitle, .geDiagramContainer { box-sizing:content-box; }.mxWindow div button.geStyleButton { box-sizing: border-box; }table.mxWindow td.mxWindowPane button.geColorBtn { padding:0px; box-sizing: border-box; }td.mxWindowPane .geSidebarContainer button { padding:2px; box-sizing: border-box; }html body .geMenuItem { font-size:14px; text-decoration: none; font-weight: normal; padding: 6px 10px 6px 10px; border: none; border-radius: 5px; color: #353535; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }.geTabContainer { border-bottom:1px solid lightgray; border-top:1px solid lightgray; background: "+
3920(Editor.isDarkMode()?Editor.darkColor:"#fff")+" !important; }.geToolbarContainer { background: "+(Editor.isDarkMode()?Editor.darkColor:"#fff")+"; }div.geSidebarContainer { background-color: "+(Editor.isDarkMode()?Editor.darkColor:"#fff")+"; }div.geSidebarContainer .geTitle { background-color: "+(Editor.isDarkMode()?Editor.darkColor:"#fdfdfd")+"; }div.mxWindow td.mxWindowPane button { background-image: none; float: none; }td.mxWindowTitle { height: 22px !important; background: none !important; font-size: 13px !important; text-align:center !important; border-bottom:1px solid lightgray; }div.mxWindow, div.mxWindowTitle { background-image: none !important; background-color:"+
3921(Editor.isDarkMode()?Editor.darkColor:"#fff")+" !important; }div.mxWindow { border-radius:5px; box-shadow: 0px 0px 2px #C0C0C0 !important;}div.mxWindow *:not(svg *) { font-family: inherit !important; }html div.geVerticalHandle { position:absolute;bottom:0px;left:50%;cursor:row-resize;width:11px;height:11px;background:white;margin-bottom:-6px; margin-left:-6px; border: none; border-radius: 6px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.11), inset 0 -1px 0 0 rgba(0,0,0,.08), 0 1px 2px 0 rgba(0,0,0,.04); }html div.geInactivePage { background: "+
3922(Editor.isDarkMode()?Editor.darkColor:"rgb(249, 249, 249)")+" !important; color: #A0A0A0 !important; } html div.geActivePage { background:  "+(Editor.isDarkMode()?Editor.darkColor:"#fff")+" !important;  "+(Editor.isDarkMode()?"":"color: #353535 !important; } ")+"html div.mxRubberband { border:1px solid; border-color: #29b6f2 !important; background:rgba(41,182,242,0.4) !important; } html body div.mxPopupMenu { border-radius:5px; border:1px solid #c0c0c0; padding:5px 0 5px 0; box-shadow: 0px 4px 17px -4px rgba(96,96,96,1); } html table.mxPopupMenu td.mxPopupMenuItem { color: "+
3923(Editor.isDarkMode()?"#cccccc":"#353535")+"; font-size: 14px; padding-top: 4px; padding-bottom: 4px; }html table.mxPopupMenu tr.mxPopupMenuItemHover { background-color: "+(Editor.isDarkMode()?"#000000":"#29b6f2")+"; }html tr.mxPopupMenuItemHover td.mxPopupMenuItem, html tr.mxPopupMenuItemHover td.mxPopupMenuItem span { color: "+(Editor.isDarkMode()?"#cccccc":"#ffffff")+" !important; }html tr.mxPopupMenuItem, html td.mxPopupMenuItem { transition-property: none !important; }html table.mxPopupMenu hr { height: 2px; background-color: rgba(0,0,0,.07); margin: 5px 0; }html body td.mxWindowTitle { padding-right: 14px; }html td.mxWindowTitle div { top: 0px !important; }"+
3924(mxClient.IS_IOS?"html input[type=checkbox], html input[type=radio] { height:12px; }":"")+("1"==urlParams.sketch?"a.geStatus > div { overflow: hidden; text-overflow: ellipsis; max-width: 100%; }":"")};var p=document.createElement("style");p.type="text/css";p.innerHTML=Editor.createMinimalCss();document.getElementsByTagName("head")[0].appendChild(p);Editor.prototype.isChromelessView=function(){return!1};Graph.prototype.isLightboxView=function(){return!1};var t=EditorUi.prototype.updateTabContainer;
3925EditorUi.prototype.updateTabContainer=function(){null!=this.tabContainer&&(this.tabContainer.style.right="70px",this.diagramContainer.style.bottom="1"==urlParams.sketch?"0px":this.tabContainerHeight+"px");t.apply(this,arguments)};var d=EditorUi.prototype.updateActionStates;EditorUi.prototype.updateActionStates=function(){d.apply(this,arguments);this.menus.get("save").setEnabled(null!=this.getCurrentFile()||"1"==urlParams.embed)};var f=Menus.prototype.addShortcut;Menus.prototype.addShortcut=function(b,
3926c){null!=c.shortcut&&900>e&&!mxClient.IS_IOS?b.firstChild.nextSibling.setAttribute("title",c.shortcut):f.apply(this,arguments)};var l=App.prototype.updateUserElement;App.prototype.updateUserElement=function(){l.apply(this,arguments);if(null!=this.userElement){var b=this.userElement;b.style.cssText="position:relative;margin-right:4px;cursor:pointer;display:"+b.style.display;b.className="geToolbarButton";b.innerHTML="";b.style.backgroundImage="url("+Editor.userImage+")";b.style.backgroundPosition="center center";
3927b.style.backgroundRepeat="no-repeat";b.style.backgroundSize="24px 24px";b.style.height="24px";b.style.width="24px";b.style.cssFloat="right";b.setAttribute("title",mxResources.get("changeUser"));"none"!=b.style.display&&(b.style.display="inline-block")}};var q=App.prototype.updateButtonContainer;App.prototype.updateButtonContainer=function(){q.apply(this,arguments);if(null!=this.shareButton){var b=this.shareButton;b.style.cssText="display:inline-block;position:relative;box-sizing:border-box;margin-right:4px;cursor:pointer;";
3928b.className="geToolbarButton";b.innerHTML="";b.style.backgroundImage="url("+Editor.shareImage+")";b.style.backgroundPosition="center center";b.style.backgroundRepeat="no-repeat";b.style.backgroundSize="24px 24px";b.style.height="24px";b.style.width="24px";"1"==urlParams.sketch&&(this.shareButton.style.display="none")}null!=this.buttonContainer&&(this.buttonContainer.style.marginTop="-2px",this.buttonContainer.style.paddingTop="4px")};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.buttonContainer&&
3929"1"!=urlParams.embedInline){var b=document.createElement("div");b.style.display="inline-block";b.style.position="relative";b.style.marginTop="6px";b.style.marginRight="4px";var c=document.createElement("a");c.className="geMenuItem gePrimaryBtn";c.style.marginLeft="8px";c.style.padding="6px";if("1"==urlParams.noSaveBtn){if("0"!=urlParams.saveAndExit){var d="1"==urlParams.publishClose?mxResources.get("publish"):mxResources.get("saveAndExit");mxUtils.write(c,d);c.setAttribute("title",d);mxEvent.addListener(c,
3930"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()}));b.appendChild(c)}}else mxUtils.write(c,mxResources.get("save")),c.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),b.appendChild(c),"1"==urlParams.saveAndExit&&(c=document.createElement("a"),mxUtils.write(c,mxResources.get("saveAndExit")),c.setAttribute("title",mxResources.get("saveAndExit")),c.className=
3931"geMenuItem",c.style.marginLeft="6px",c.style.padding="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),b.appendChild(c));"1"!=urlParams.noExitBtn&&(c=document.createElement("a"),d="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(c,d),c.setAttribute("title",d),c.className="geMenuItem",c.style.marginLeft="6px",c.style.padding="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),
3932b.appendChild(c));this.buttonContainer.appendChild(b);this.buttonContainer.style.top="6px";this.editor.fireEvent(new mxEventObject("statusChanged"))}};var m=Sidebar.prototype.getTooltipOffset;Sidebar.prototype.getTooltipOffset=function(b,c){if(null==this.editorUi.sidebarWindow||mxUtils.isAncestorNode(this.editorUi.picker,b)){var d=mxUtils.getOffset(this.editorUi.picker);d.x+=this.editorUi.picker.offsetWidth+4;d.y+=b.offsetTop-c.height/2+16;return d}var e=m.apply(this,arguments),d=mxUtils.getOffset(this.editorUi.sidebarWindow.window.div);
3933e.x+=d.x-16;e.y+=d.y;return e};var n=Menus.prototype.createPopupMenu;Menus.prototype.createPopupMenu=function(b,c,d){var e=this.editorUi.editor.graph;b.smartSeparators=!0;n.apply(this,arguments);"1"==urlParams.sketch?e.isEnabled()&&(b.addSeparator(),1==e.getSelectionCount()&&this.addMenuItems(b,["-","lockUnlock"],null,d)):1==e.getSelectionCount()?(e.isCellFoldable(e.getSelectionCell())&&this.addMenuItems(b,e.isCellCollapsed(c)?["expand"]:["collapse"],null,d),this.addMenuItems(b,["collapsible","-",
3934"lockUnlock","enterGroup"],null,d),b.addSeparator(),this.addSubmenu("layout",b)):e.isSelectionEmpty()&&e.isEnabled()?(b.addSeparator(),this.addMenuItems(b,["editData"],null,d),b.addSeparator(),this.addSubmenu("layout",b),this.addSubmenu("insert",b),this.addMenuItems(b,["-","exitGroup"],null,d)):e.isEnabled()&&this.addMenuItems(b,["-","lockUnlock"],null,d);e.isEnabled()&&e.isSelectionEmpty()&&(this.addMenuItems(b,["-","fullscreen"]),"1"==urlParams.embedInline||!Editor.isDarkMode()&&(mxClient.IS_IE||
3935mxClient.IS_IE11)||this.addMenuItems(b,["toggleDarkMode"]))};var u=Menus.prototype.addPopupMenuEditItems;Menus.prototype.addPopupMenuEditItems=function(b,c,d){u.apply(this,arguments);this.editorUi.editor.graph.isSelectionEmpty()&&this.addMenuItems(b,["copyAsImage"],null,d)};EditorUi.prototype.toggleFormatPanel=function(c){null!=this.formatWindow?this.formatWindow.window.setVisible(null!=c?c:!this.formatWindow.window.isVisible()):b(this)};DiagramFormatPanel.prototype.isMathOptionVisible=function(){return!0};
3936var v=EditorUi.prototype.destroy;EditorUi.prototype.destroy=function(){null!=this.sidebarWindow&&(this.sidebarWindow.window.setVisible(!1),this.sidebarWindow.window.destroy(),this.sidebarWindow=null);null!=this.formatWindow&&(this.formatWindow.window.setVisible(!1),this.formatWindow.window.destroy(),this.formatWindow=null);null!=this.actions.outlineWindow&&(this.actions.outlineWindow.window.setVisible(!1),this.actions.outlineWindow.window.destroy(),this.actions.outlineWindow=null);null!=this.actions.layersWindow&&
3937(this.actions.layersWindow.window.setVisible(!1),this.actions.layersWindow.destroy(),this.actions.layersWindow=null);null!=this.menus.tagsWindow&&(this.menus.tagsWindow.window.setVisible(!1),this.menus.tagsWindow.window.destroy(),this.menus.tagsWindow=null);null!=this.menus.findWindow&&(this.menus.findWindow.window.setVisible(!1),this.menus.findWindow.window.destroy(),this.menus.findWindow=null);null!=this.menus.findReplaceWindow&&(this.menus.findReplaceWindow.window.setVisible(!1),this.menus.findReplaceWindow.window.destroy(),
3938this.menus.findReplaceWindow=null);v.apply(this,arguments)};var y=EditorUi.prototype.setGraphEnabled;EditorUi.prototype.setGraphEnabled=function(b){y.apply(this,arguments);if(b){var c=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;1E3<=c&&null!=this.sidebarWindow&&"1"!=urlParams.sketch&&this.sidebarWindow.window.setVisible(!0);null!=this.formatWindow&&(1E3<=c||"1"==urlParams.sketch)&&this.formatWindow.window.setVisible(!0)}else null!=this.sidebarWindow&&this.sidebarWindow.window.setVisible(!1),
3939null!=this.formatWindow&&this.formatWindow.window.setVisible(!1)};EditorUi.prototype.chromelessWindowResize=function(){};var x=Menus.prototype.init;Menus.prototype.init=function(){x.apply(this,arguments);var d=this.editorUi,e=d.editor.graph;d.actions.get("editDiagram").label=mxResources.get("formatXml")+"...";d.actions.get("createShape").label=mxResources.get("shape")+"...";d.actions.get("outline").label=mxResources.get("outline")+"...";d.actions.get("layers").label=mxResources.get("layers")+"...";
3940d.actions.get("tags").label=mxResources.get("tags")+"...";d.actions.get("forkme").visible="1"!=urlParams.sketch;d.actions.get("downloadDesktop").visible="1"!=urlParams.sketch;var f=d.actions.put("toggleDarkMode",new Action(mxResources.get("dark"),function(b){d.setDarkMode(!Editor.darkMode)}));f.setToggleAction(!0);f.setSelectedCallback(function(){return Editor.isDarkMode()});f=d.actions.put("toggleSketchMode",new Action(mxResources.get("sketch"),function(b){d.setSketchMode(!Editor.sketchMode)}));
3941f.setToggleAction(!0);f.setSelectedCallback(function(){return Editor.sketchMode});f=d.actions.put("togglePagesVisible",new Action(mxResources.get("pages"),function(b){d.setPagesVisible(!Editor.pagesVisible)}));f.setToggleAction(!0);f.setSelectedCallback(function(){return Editor.pagesVisible});d.actions.put("importCsv",new Action(mxResources.get("csv")+"...",function(){e.popupMenuHandler.hideMenu();d.showImportCsvDialog()}));d.actions.put("importText",new Action(mxResources.get("text")+"...",function(){var b=
3942new ParseDialog(d,"Insert from Text");d.showDialog(b.container,620,420,!0,!1);b.init()}));d.actions.put("formatSql",new Action(mxResources.get("formatSql")+"...",function(){var b=new ParseDialog(d,"Insert from Text","formatSql");d.showDialog(b.container,620,420,!0,!1);b.init()}));d.actions.put("toggleShapes",new Action(mxResources.get("1"==urlParams.sketch?"moreShapes":"shapes")+"...",function(){c(d)},null,null,Editor.ctrlKey+"+Shift+K"));d.actions.put("toggleFormat",new Action(mxResources.get("format")+
3943"...",function(){b(d)})).shortcut=d.actions.get("formatPanel").shortcut;EditorUi.enablePlantUml&&!d.isOffline()&&d.actions.put("plantUml",new Action(mxResources.get("plantUml")+"...",function(){var b=new ParseDialog(d,mxResources.get("plantUml")+"...","plantUml");d.showDialog(b.container,620,420,!0,!1);b.init()}));d.actions.put("mermaid",new Action(mxResources.get("mermaid")+"...",function(){var b=new ParseDialog(d,mxResources.get("mermaid")+"...","mermaid");d.showDialog(b.container,620,420,!0,!1);
3944b.init()}));var g=this.addPopupMenuCellEditItems;this.put("editCell",new Menu(mxUtils.bind(this,function(b,c){var d=this.editorUi.editor.graph,e=d.getSelectionCell();g.call(this,b,e,null,c);this.addMenuItems(b,["editTooltip"],c);d.model.isVertex(e)&&this.addMenuItems(b,["editGeometry"],c);this.addMenuItems(b,["-","edit"],c)})));this.addPopupMenuCellEditItems=function(b,c,d,e){b.addSeparator();this.addSubmenu("editCell",b,e,mxResources.get("edit"))};this.put("diagram",new Menu(mxUtils.bind(this,function(b,
3945c){var e=d.getCurrentFile();d.menus.addSubmenu("extras",b,c,mxResources.get("preferences"));b.addSeparator(c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?d.menus.addMenuItems(b,"new open - synchronize - save saveAs -".split(" "),c):"1"==urlParams.embed?("1"!=urlParams.noSaveBtn&&"1"!=urlParams.embedInline&&d.menus.addMenuItems(b,["-","save"],c),("1"==urlParams.saveAndExit||"1"==urlParams.noSaveBtn&&"0"!=urlParams.saveAndExit)&&d.menus.addMenuItems(b,["saveAndExit"],c),b.addSeparator(c)):d.mode==
3946App.MODE_ATLAS?d.menus.addMenuItems(b,["save","synchronize","-"],c):"1"!=urlParams.noFileMenu&&(d.menus.addMenuItems(b,["new"],c),d.menus.addSubmenu("openFrom",b,c),isLocalStorage&&this.addSubmenu("openRecent",b,c),"1"!=urlParams.sketch&&(b.addSeparator(c),null!=e&&e.constructor==DriveFile&&d.menus.addMenuItems(b,["share"],c),mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null==e||e.constructor==LocalFile||d.menus.addMenuItems(b,["synchronize"],c)),b.addSeparator(c),d.menus.addSubmenu("save",b,c));
3947d.menus.addSubmenu("exportAs",b,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?d.menus.addMenuItems(b,["import"],c):"1"!=urlParams.noFileMenu&&d.menus.addSubmenu("importFrom",b,c);"1"!=urlParams.sketch&&(d.menus.addMenuItems(b,["-","outline"],c),d.commentsSupported()&&d.menus.addMenuItems(b,["comments"],c));d.menus.addMenuItems(b,["-","findReplace","layers","tags"],c);d.menus.addMenuItems(b,["-","pageSetup","pageScale"],c);"1"==urlParams.noFileMenu||mxClient.IS_IOS&&navigator.standalone||d.menus.addMenuItems(b,
3948["print"],c);null!=e&&null!=d.fileNode&&"1"!=urlParams.embedInline&&(e=null!=e.getTitle()?e.getTitle():d.defaultFilename,/(\.html)$/i.test(e)||/(\.svg)$/i.test(e)||this.addMenuItems(b,["-","properties"]));b.addSeparator(c);d.menus.addSubmenu("help",b,c);"1"==urlParams.embed?"1"!=urlParams.noExitBtn&&d.menus.addMenuItems(b,["-","exit"],c):"1"!=urlParams.noFileMenu&&d.menus.addMenuItems(b,["-","close"])})));this.put("save",new Menu(mxUtils.bind(this,function(b,c){var e=d.getCurrentFile();null!=e&&e.constructor==
3949DriveFile?d.menus.addMenuItems(b,["save","makeCopy","-","rename","moveToFolder"],c):(d.menus.addMenuItems(b,["save","saveAs","-","rename"],c),d.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&this.addMenuItems(b,["upload"],c):d.menus.addMenuItems(b,["makeCopy"],c));"1"!=urlParams.sketch||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null==e||e.constructor==LocalFile||d.menus.addMenuItems(b,["-","synchronize"],c);d.menus.addMenuItems(b,["-","autosave"],c);null!=e&&
3950e.isRevisionHistorySupported()&&d.menus.addMenuItems(b,["-","revisionHistory"],c)})));var k=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(b,c){k.funct(b,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||d.menus.addMenuItems(b,["publishLink"],c);d.mode!=App.MODE_ATLAS&&"1"!=urlParams.extAuth&&(b.addSeparator(c),d.menus.addSubmenu("embed",b,c))})));var l=this.get("language");this.put("table",new Menu(mxUtils.bind(this,function(b,c){d.menus.addInsertTableCellItem(b,c)})));
3951var m=this.get("importFrom");this.put("importFrom",new Menu(mxUtils.bind(this,function(b,c){m.funct(b,c);this.addMenuItems(b,["editDiagram"],c);"1"==urlParams.sketch&&(b.addSeparator(c),b.addItem(mxResources.get("csv")+"...",null,function(){d.showImportCsvDialog()},c,null,mxUtils.bind(e,e.isEnabled)),d.addInsertMenuItems(b,c,["formatSql","-","fromText","plantUml","mermaid"]))})));this.put("extras",new Menu(mxUtils.bind(this,function(b,c){"1"!=urlParams.embed&&"1"!=urlParams.extAuth&&d.menus.addSubmenu("theme",
3952b,c);null!=l&&d.menus.addSubmenu("language",b,c);d.menus.addSubmenu("units",b,c);b.addSeparator(c);d.menus.addMenuItems(b,"scrollbars tooltips ruler - copyConnect collapseExpand -".split(" "),c);"1"==urlParams.sketch&&this.addMenuItems(b,["toggleSketchMode"],c);"1"!=urlParams.embedInline&&((Editor.isDarkMode()||!mxClient.IS_IE&&!mxClient.IS_IE11)&&this.addMenuItems(b,["toggleDarkMode"],c),"1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&d.menus.addMenuItems(b,["-","showStartScreen",
3953"search","scratchpad"],c),"1"==urlParams.sketch&&null==urlParams.pages&&this.addMenuItems(b,["togglePagesVisible"],c));b.addSeparator(c);d.menus.addMenuItem(b,"configuration",c);!d.isOfflineApp()&&isLocalStorage&&d.menus.addMenuItem(b,"plugins",c);this.addMenuItems(b,["-","fullscreen"],c);b.addSeparator(c)})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(b,c){d.menus.addMenuItems(b,"importText plantUml mermaid - formatSql importCsv - createShape editDiagram".split(" "),c)})));mxUtils.bind(this,
3954function(){var b=this.get("insert"),c=b.funct;b.funct=function(b,e){"1"==urlParams.sketch?(d.menus.addMenuItems(b,["insertFreehand"],e),d.insertTemplateEnabled&&!d.isOffline()&&d.menus.addMenuItems(b,["insertTemplate"],e)):(c.apply(this,arguments),d.menus.addSubmenu("table",b,e),b.addSeparator(e));d.menus.addMenuItems(b,["-","toggleShapes"],e)}})();var n="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),p=function(b,c,e,f){b.addItem(e,null,mxUtils.bind(this,
3955function(){var b=new CreateGraphDialog(d,e,f);d.showDialog(b.container,620,420,!0,!1);b.init()}),c)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(b,c){for(var d=0;d<n.length;d++)"-"==n[d]?b.addSeparator(c):p(b,c,mxResources.get(n[d])+"...",n[d])})))};EditorUi.prototype.installFormatToolbar=function(b){var c=this.editor.graph,d=document.createElement("div");d.style.cssText="position:absolute;top:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;white-space:nowrap;background-color:#fff;transform:translate(-50%, 0);left:50%;";
3956c.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(e,f){0<c.getSelectionCount()?(b.appendChild(d),d.innerHTML="Selected: "+c.getSelectionCount()):null!=d.parentNode&&d.parentNode.removeChild(d)}))};var D=!1;EditorUi.prototype.initFormatWindow=function(){if(!D){D=!0;this.formatWindow.window.setClosable(!1);var b=this.formatWindow.window.toggleMinimized;this.formatWindow.window.toggleMinimized=function(){b.apply(this,arguments);this.minimized?(this.div.style.width="90px",this.table.style.width=
3957"90px",this.div.style.left=parseInt(this.div.style.left)+150+"px"):(this.div.style.width="240px",this.table.style.width="240px",this.div.style.left=Math.max(0,parseInt(this.div.style.left)-150)+"px");this.fit()};mxEvent.addListener(this.formatWindow.window.title,"dblclick",mxUtils.bind(this,function(b){mxEvent.getSource(b)==this.formatWindow.window.title&&this.formatWindow.window.toggleMinimized()}))}};var I=EditorUi.prototype.init;EditorUi.prototype.init=function(){function d(b,c,d){var e=m.menus.get(b),
3958f=t.addMenu(mxResources.get(b),mxUtils.bind(this,function(){e.funct.apply(this,arguments)}),q);f.className="1"==urlParams.sketch?"geToolbarButton":"geMenuItem";f.style.display="inline-block";f.style.boxSizing="border-box";f.style.top="6px";f.style.marginRight="6px";f.style.height="30px";f.style.paddingTop="6px";f.style.paddingBottom="6px";f.style.cursor="pointer";f.setAttribute("title",mxResources.get(b));m.menus.menuCreated(e,f,"geMenuItem");null!=d?(f.style.backgroundImage="url("+d+")",f.style.backgroundPosition=
3959"center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.width="34px",f.innerHTML=""):c||(f.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",f.style.backgroundPosition="right 6px center",f.style.backgroundRepeat="no-repeat",f.style.paddingRight="22px");return f}function f(b,c,d,e,f,g){var k=document.createElement("a");k.className="1"==urlParams.sketch?"geToolbarButton":"geMenuItem";k.style.display="inline-block";k.style.boxSizing="border-box";
3960k.style.height="30px";k.style.padding="6px";k.style.position="relative";k.style.verticalAlign="top";k.style.top="0px";"1"==urlParams.sketch&&(k.style.borderStyle="none",k.style.boxShadow="none",k.style.padding="6px",k.style.margin="0px");null!=m.statusContainer?p.insertBefore(k,m.statusContainer):p.appendChild(k);null!=g?(k.style.backgroundImage="url("+g+")",k.style.backgroundPosition="center center",k.style.backgroundRepeat="no-repeat",k.style.backgroundSize="24px 24px",k.style.width="34px"):mxUtils.write(k,
3961b);mxEvent.addListener(k,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(b){b.preventDefault()}));mxEvent.addListener(k,"click",function(b){"disabled"!=k.getAttribute("disabled")&&c(b);mxEvent.consume(b)});null==d&&(k.style.marginRight="4px");null!=e&&k.setAttribute("title",e);null!=f&&(b=function(){f.isEnabled()?(k.removeAttribute("disabled"),k.style.cursor="pointer"):(k.setAttribute("disabled","disabled"),k.style.cursor="default")},f.addListener("stateChanged",b),n.addListener("enabledChanged",
3962b),b());return k}function g(b,c,d){d=document.createElement("div");d.className="geMenuItem";d.style.display="inline-block";d.style.verticalAlign="top";d.style.marginRight="6px";d.style.padding="0 4px 0 4px";d.style.height="30px";d.style.position="relative";d.style.top="0px";"1"==urlParams.sketch&&(d.style.boxShadow="none");for(var e=0;e<b.length;e++)null!=b[e]&&("1"==urlParams.sketch&&(b[e].style.padding="10px 8px",b[e].style.width="30px"),b[e].style.margin="0px",b[e].style.boxShadow="none",d.appendChild(b[e]));
3963null!=c&&mxUtils.setOpacity(d,c);null!=m.statusContainer&&"1"!=urlParams.sketch?p.insertBefore(d,m.statusContainer):p.appendChild(d);return d}function k(){if("1"==urlParams.sketch)"1"!=urlParams.embedInline&&(W.style.left=58>G.offsetTop-G.offsetHeight/2?"70px":"10px");else{for(var b=p.firstChild;null!=b;){var c=b.nextSibling;"geMenuItem"!=b.className&&"geItem"!=b.className||b.parentNode.removeChild(b);b=c}q=p.firstChild;e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;
3964var b=1E3>e||"1"==urlParams.sketch,k=null;b||(k=d("diagram"));c=b?d("diagram",null,Editor.drawLogoImage):null;null!=c&&(k=c);g([k,f(mxResources.get("shapes"),m.actions.get("toggleShapes").funct,null,mxResources.get("shapes"),m.actions.get("image"),b?Editor.shapesImage:null),f(mxResources.get("format"),m.actions.get("toggleFormat").funct,null,mxResources.get("format")+" ("+m.actions.get("formatPanel").shortcut+")",m.actions.get("image"),b?Editor.formatImage:null)],b?60:null);c=d("insert",!0,b?A:null);
3965g([c,f(mxResources.get("delete"),m.actions.get("delete").funct,null,mxResources.get("delete"),m.actions.get("delete"),b?Editor.trashImage:null)],b?60:null);411<=e&&(g([ga,ja],60),520<=e&&g([wa,640<=e?f("",ra.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",ra,Editor.zoomInImage):null,640<=e?f("",V.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",V,Editor.zoomOutImage):null],60))}null!=k&&(mxEvent.disableContextMenu(k),mxEvent.addGestureListeners(k,mxUtils.bind(this,function(b){(mxEvent.isShiftDown(b)||
3966mxEvent.isAltDown(b)||mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&m.appIconClicked(b)}),null,null));c=m.menus.get("language");null!=c&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&600<=e&&"1"!=urlParams.sketch?(null==qa&&(c=t.addMenu("",c.funct),c.setAttribute("title",mxResources.get("language")),c.className="geToolbarButton",c.style.backgroundImage="url("+Editor.globeImage+")",c.style.backgroundPosition="center center",c.style.backgroundRepeat="no-repeat",c.style.backgroundSize=
3967"24px 24px",c.style.position="absolute",c.style.height="24px",c.style.width="24px",c.style.zIndex="1",c.style.right="8px",c.style.cursor="pointer",c.style.top="1"==urlParams.embed?"12px":"11px",p.appendChild(c),qa=c),m.buttonContainer.style.paddingRight="34px"):(m.buttonContainer.style.paddingRight="4px",null!=qa&&(qa.parentNode.removeChild(qa),qa=null))}I.apply(this,arguments);"1"!=urlParams.embedInline&&this.doSetDarkMode(null!=urlParams.dark?1==urlParams.dark&&!mxClient.IS_IE&&!mxClient.IS_IE11:
3968null!=mxSettings.settings.darkMode?mxSettings.settings.darkMode:window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches);var l=document.createElement("div");l.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";l.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=this.createSidebar(l);"1"==urlParams.sketch&&this.toggleScratchpad();if("1"!=urlParams.sketch&&1E3<=e||null!=urlParams.clibs||null!=urlParams.libs||
3969null!=urlParams["search-shapes"])c(this,!0),null!=this.sidebar&&null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes&&(this.sidebar.searchShapes(urlParams["search-shapes"]),this.sidebar.showEntries("search"));var m=this;mxWindow.prototype.fit=function(){if(Editor.inlineFullscreen||null==m.embedViewport)mxUtils.fit(this.div);else{var b=parseInt(this.div.offsetLeft),c=parseInt(this.div.offsetWidth);this.div.style.left=Math.max(m.embedViewport.x,Math.min(b,m.embedViewport.x+m.embedViewport.width-
3970c))+"px";b=parseInt(this.div.offsetTop);c=parseInt(this.div.offsetHeight);this.div.style.top=Math.max(m.embedViewport.y,Math.min(b,m.embedViewport.y+m.embedViewport.height-c))+"px"}};this.keyHandler.bindAction(75,!0,"toggleShapes",!0);("1"==urlParams.sketch||1E3<=e)&&"1"!=urlParams.embedInline&&(b(this,!0),"1"==urlParams.sketch&&(this.initFormatWindow(),this.formatWindow.window.toggleMinimized()));var m=this,n=m.editor.graph;m.toolbar=this.createToolbar(m.createDiv("geToolbar"));m.defaultLibraryName=
3971mxResources.get("untitledLibrary");var p=document.createElement("div");p.className="geMenubarContainer";var q=null,t=new Menubar(m,p);m.statusContainer=m.createStatusContainer();m.statusContainer.style.position="relative";m.statusContainer.style.maxWidth="";m.statusContainer.style.marginTop="7px";m.statusContainer.style.marginLeft="6px";m.statusContainer.style.color="gray";m.statusContainer.style.cursor="default";var u=m.hideCurrentMenu;m.hideCurrentMenu=function(){u.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};
3972var v=m.descriptorChanged;m.descriptorChanged=function(){v.apply(this,arguments);var b=m.getCurrentFile();if(null!=b&&null!=b.getTitle()){var c=b.getMode();"google"==c?c="googleDrive":"github"==c?c="gitHub":"gitlab"==c?c="gitLab":"onedrive"==c&&(c="oneDrive");c=mxResources.get(c);p.setAttribute("title",b.getTitle()+(null!=c?" ("+c+")":""))}else p.removeAttribute("title")};m.setStatusText(m.editor.getStatus());p.appendChild(m.statusContainer);m.buttonContainer=document.createElement("div");m.buttonContainer.style.cssText=
3973"position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";p.appendChild(m.buttonContainer);m.menubarContainer=m.buttonContainer;m.tabContainer=document.createElement("div");m.tabContainer.className="geTabContainer";m.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";var l=m.diagramContainer.parentNode,x=document.createElement("div");x.style.cssText=
3974"position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";m.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";var y=m.menus.get("viewZoom"),A="1"!=urlParams.sketch?Editor.plusImage:Editor.shapesImage,D="1"==urlParams.sketch?document.createElement("div"):null,G="1"==urlParams.sketch?document.createElement("div"):null,W="1"==urlParams.sketch?document.createElement("div"):null,aa=mxUtils.bind(this,function(){null!=this.sidebar&&(this.sidebar.graph.stylesheet.styles=mxUtils.clone(n.stylesheet.styles),
3975this.sidebar.container.innerHTML="",this.sidebar.palettes={},this.sidebar.init(),"1"==urlParams.sketch&&(this.scratchpad=null,this.toggleScratchpad()));n.refresh();n.view.validateBackground()});m.addListener("darkModeChanged",aa);m.addListener("sketchModeChanged",aa);var oa=mxUtils.bind(this,function(){if(Editor.inlineFullscreen)W.style.left="10px",W.style.top="10px",G.style.left="10px",G.style.top="60px",D.style.top="10px",D.style.right="12px",D.style.left="",m.diagramContainer.setAttribute("data-bounds",
3976m.diagramContainer.style.top+" "+m.diagramContainer.style.left+" "+m.diagramContainer.style.width+" "+m.diagramContainer.style.height),m.diagramContainer.style.top="0px",m.diagramContainer.style.left="0px",m.diagramContainer.style.bottom="0px",m.diagramContainer.style.right="0px",m.diagramContainer.style.width="",m.diagramContainer.style.height="";else{var b=m.diagramContainer.getAttribute("data-bounds");if(null!=b){m.diagramContainer.style.background="transparent";m.diagramContainer.removeAttribute("data-bounds");
3977var c=n.getGraphBounds(),b=b.split(" ");m.diagramContainer.style.top=b[0];m.diagramContainer.style.left=b[1];m.diagramContainer.style.width=c.width+50+"px";m.diagramContainer.style.height=c.height+46+"px";m.diagramContainer.style.bottom="";m.diagramContainer.style.right="";(window.opener||window.parent).postMessage(JSON.stringify({event:"resize",rect:m.diagramContainer.getBoundingClientRect()}),"*");m.refresh()}W.style.left=m.diagramContainer.offsetLeft+"px";W.style.top=m.diagramContainer.offsetTop-
3978W.offsetHeight-4+"px";G.style.display="";G.style.left=m.diagramContainer.offsetLeft-G.offsetWidth-4+"px";G.style.top=m.diagramContainer.offsetTop+"px";D.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-D.offsetWidth+"px";D.style.top=W.style.top;D.style.right="";m.bottomResizer.style.left=m.diagramContainer.offsetLeft+(m.diagramContainer.offsetWidth-m.bottomResizer.offsetWidth)/2+"px";m.bottomResizer.style.top=m.diagramContainer.offsetTop+m.diagramContainer.offsetHeight-m.bottomResizer.offsetHeight/
39792-1+"px";m.rightResizer.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-m.rightResizer.offsetWidth/2-1+"px";m.rightResizer.style.top=m.diagramContainer.offsetTop+(m.diagramContainer.offsetHeight-m.bottomResizer.offsetHeight)/2+"px"}m.bottomResizer.style.visibility=Editor.inlineFullscreen?"hidden":"";m.rightResizer.style.visibility=m.bottomResizer.style.visibility;p.style.display="none";W.style.visibility="";D.style.visibility=""}),ha=mxUtils.bind(this,function(){ca.style.backgroundImage=
3980"url("+(Editor.inlineFullscreen?Editor.fullscreenExitImage:Editor.fullscreenImage)+")";this.diagramContainer.style.background=Editor.inlineFullscreen?Editor.isDarkMode()?Editor.darkColor:"#ffffff":"transparent";oa()}),aa=mxUtils.bind(this,function(){ha();b(m,!0);m.initFormatWindow();var c=this.diagramContainer.getBoundingClientRect();this.formatWindow.window.setLocation(c.x+c.width+4,c.y)});m.addListener("inlineFullscreenChanged",ha);m.addListener("editInlineStart",aa);"1"==urlParams.embedInline&&
3981m.addListener("darkModeChanged",aa);m.addListener("editInlineStop",mxUtils.bind(this,function(b){m.diagramContainer.style.width="10px";m.diagramContainer.style.height="10px";m.diagramContainer.style.border="";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";W.style.visibility="hidden";D.style.visibility="hidden";G.style.display="none"}));Graph.touchStyle&&(n.panningHandler.isPanningTrigger=function(b){var c=b.getEvent();return null==b.getState()&&!mxEvent.isMouseEvent(c)&&
3982!n.freehand.isDrawing()||mxEvent.isPopupTrigger(c)&&(null==b.getState()||mxEvent.isControlDown(c)||mxEvent.isShiftDown(c))});if(null!=m.hoverIcons){var ka=m.hoverIcons.update;m.hoverIcons.update=function(){n.freehand.isDrawing()||ka.apply(this,arguments)}}if(null!=n.freehand){var na=n.freehand.createStyle;n.freehand.createStyle=function(b){return na.apply(this,arguments)+"sketch=0;"}}if("1"==urlParams.sketch){G.className="geToolbarContainer";D.className="geToolbarContainer";W.className="geToolbarContainer";
3983p.className="geToolbarContainer";m.picker=G;var pa=!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){pa||(m.statusContainer.style.display="none")});var la=mxUtils.bind(this,function(b){null!=m.notificationBtn&&(null!=b?m.notificationBtn.setAttribute("title",b):m.notificationBtn.removeAttribute("title"))});"1"!=urlParams.embed?(p.style.visibility=14>p.clientWidth?"hidden":"",m.editor.addListener("statusChanged",
3984mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus());if(0==m.statusContainer.children.length||1==m.statusContainer.children.length&&"function"===typeof m.statusContainer.firstChild.getAttribute&&null==m.statusContainer.firstChild.getAttribute("class")){var b=null!=m.statusContainer.firstChild&&"function"===typeof m.statusContainer.firstChild.getAttribute?m.statusContainer.firstChild.getAttribute("title"):m.editor.getStatus();la(b);var c=m.getCurrentFile(),c=null!=c?c.savingStatusKey:
3985DrawioFile.prototype.savingStatusKey;b==mxResources.get(c)+"..."?(m.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(c))+'..."src="'+Editor.tailSpin+'">',m.statusContainer.style.display="inline-block",pa=!0):6<m.buttonContainer.clientWidth&&(m.statusContainer.style.display="none",pa=!1)}else m.statusContainer.style.display="inline-block",la(null),pa=!0;p.style.visibility=12<p.clientWidth?"":"hidden"}))):m.editor.addListener("statusChanged",mxUtils.bind(this,function(){p.style.visibility=
398616<p.clientWidth?"":"hidden"}));P=d("diagram",null,Editor.menuImage);P.style.boxShadow="none";P.style.padding="6px";P.style.margin="0px";W.appendChild(P);mxEvent.disableContextMenu(P);mxEvent.addGestureListeners(P,mxUtils.bind(this,function(b){(mxEvent.isShiftDown(b)||mxEvent.isAltDown(b)||mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&this.appIconClicked(b)}),null,null);m.statusContainer.style.position="";m.statusContainer.style.display="none";m.statusContainer.style.margin=
3987"0px";m.statusContainer.style.padding="6px 0px";m.statusContainer.style.maxWidth=Math.min(e-240,280)+"px";m.statusContainer.style.display="inline-block";m.statusContainer.style.textOverflow="ellipsis";m.buttonContainer.style.position="";m.buttonContainer.style.paddingRight="0px";m.buttonContainer.style.display="inline-block";var Y=document.createElement("a");Y.style.padding="0px";Y.style.boxShadow="none";Y.className="geMenuItem";Y.style.display="inline-block";Y.style.width="40px";Y.style.height="12px";
3988Y.style.marginBottom="-2px";Y.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";Y.style.backgroundPosition="top center";Y.style.backgroundRepeat="no-repeat";Y.setAttribute("title","Minimize");var ba=!1,R=mxUtils.bind(this,function(){G.innerHTML="";if(!ba){var b=function(b,d,e){b=f("",b.funct,null,d,b,e);b.style.width="40px";b.style.opacity="0.7";return c(b,null,"pointer")},c=function(b,c,d){null!=c&&b.setAttribute("title",c);b.style.cursor=null!=d?d:"default";b.style.margin="2px 0px";
3989G.appendChild(b);mxUtils.br(G);return b};c(m.sidebar.createVertexTemplate("text;strokeColor=none;fillColor=none;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;",60,30,"Text",mxResources.get("text"),!0,!1,null,!0,!0),mxResources.get("text")+" ("+Editor.ctrlKey+"+Shift+X)");c(m.sidebar.createVertexTemplate("shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;fontColor=#000000;darkOpacity=0.05;fillColor=#FFF9B2;strokeColor=none;fillStyle=solid;direction=west;gradientDirection=north;gradientColor=#FFF2A1;shadow=1;size=20;pointerEvents=1;",
3990140,160,"",mxResources.get("note"),!0,!1,null,!0),mxResources.get("note"));c(m.sidebar.createVertexTemplate("rounded=0;whiteSpace=wrap;html=1;",160,80,"",mxResources.get("rectangle"),!0,!1,null,!0),mxResources.get("rectangle")+" ("+Editor.ctrlKey+"+K)");c(m.sidebar.createVertexTemplate("ellipse;whiteSpace=wrap;html=1;",160,100,"",mxResources.get("ellipse"),!0,!1,null,!0),mxResources.get("ellipse"));(function(){var b=new mxCell("",new mxGeometry(0,0,n.defaultEdgeLength,0),"edgeStyle=none;orthogonalLoop=1;jettySize=auto;html=1;");
3991b.geometry.setTerminalPoint(new mxPoint(0,0),!0);b.geometry.setTerminalPoint(new mxPoint(b.geometry.width,0),!1);b.geometry.points=[];b.geometry.relative=!0;b.edge=!0;c(m.sidebar.createEdgeTemplateFromCells([b],b.geometry.width,b.geometry.height,mxResources.get("line"),!0,null,!0,!1),mxResources.get("line"));b=b.clone();b.style="edgeStyle=none;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;rounded=1;startSize=8;endSize=8;";b.geometry.width=n.defaultEdgeLength+20;b.geometry.setTerminalPoint(new mxPoint(0,
399220),!0);b.geometry.setTerminalPoint(new mxPoint(b.geometry.width,20),!1);b=c(m.sidebar.createEdgeTemplateFromCells([b],b.geometry.width,40,mxResources.get("arrow"),!0,null,!0,!1),mxResources.get("arrow"));b.style.borderBottom="1px solid "+(Editor.isDarkMode()?"#505050":"lightgray");b.style.paddingBottom="14px";b.style.marginBottom="14px"})();b(m.actions.get("insertFreehand"),mxResources.get("freehand"),Editor.freehandImage);var e=m.actions.get("toggleShapes");b(e,mxResources.get("shapes")+" ("+e.shortcut+
3993")",A);P=d("table",null,Editor.tableImage);P.style.boxShadow="none";P.style.opacity="0.7";P.style.padding="6px";P.style.margin="0px";P.style.width="37px";c(P,null,"pointer");b(m.actions.get("insertTemplate"),mxResources.get("template"),Editor.templateImage)}"1"!=urlParams.embedInline&&G.appendChild(Y)});mxEvent.addListener(Y,"click",mxUtils.bind(this,function(){ba?(mxUtils.setPrefixedStyle(G.style,"transform","translate(0, -50%)"),G.style.padding="8px 6px 4px",G.style.top="50%",G.style.bottom="",
3994G.style.height="",Y.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",Y.style.width="40px",Y.style.height="12px",Y.setAttribute("title","Minimize"),ba=!1,R()):(G.innerHTML="",G.appendChild(Y),mxUtils.setPrefixedStyle(G.style,"transform","translate(0, 0)"),G.style.top="",G.style.bottom="12px",G.style.padding="0px",G.style.height="24px",Y.style.height="24px",Y.style.backgroundImage="url("+Editor.plusImage+")",Y.setAttribute("title",mxResources.get("insert")),Y.style.width="24px",ba=
3995!0)}));R();m.addListener("darkModeChanged",R);m.addListener("sketchModeChanged",R)}else m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus())}));if(null!=y){var aa=function(b){n.popupMenuHandler.hideMenu();mxEvent.isAltDown(b)?m.actions.get("customZoom").funct():m.actions.get("smartFit").funct()},ra=m.actions.get("zoomIn"),V=m.actions.get("zoomOut"),U=m.actions.get("resetView"),ma=m.actions.get("fullscreen");m.actions.get("toggleDarkMode");var ta=
3996m.actions.get("undo"),S=m.actions.get("redo"),ga=f("",ta.funct,null,mxResources.get("undo")+" ("+ta.shortcut+")",ta,Editor.undoImage),ja=f("",S.funct,null,mxResources.get("redo")+" ("+S.shortcut+")",S,Editor.redoImage),ca=f("",ma.funct,null,mxResources.get("fullscreen"),ma,Editor.fullscreenImage);if(null!=D){y=function(){fa.style.display=null!=m.pages&&("1"==urlParams.pages||1<m.pages.length||Editor.pagesVisible)?"inline-block":"none"};ca.parentNode.removeChild(ca);var ua=m.actions.get("delete"),
3997Ca=f("",ua.funct,null,mxResources.get("delete"),ua,Editor.trashImage);Ca.style.opacity="0.1";W.appendChild(Ca);ua.addListener("stateChanged",function(){Ca.style.opacity=ua.enabled?"":"0.1"});U=function(){ga.style.display=0<m.editor.undoManager.history.length||n.isEditing()?"inline-block":"none";ja.style.display=ga.style.display;ga.style.opacity=ta.enabled?"":"0.1";ja.style.opacity=S.enabled?"":"0.1"};W.appendChild(ga);W.appendChild(ja);ta.addListener("stateChanged",U);S.addListener("stateChanged",
3998U);U();null!=urlParams.layers&&(U=m.actions.get("layers"),U=f("",U.funct,null,mxResources.get("layers"),U,Editor.layersImage),U.style.opacity="0.4",D.appendChild(U));null!=urlParams.tags&&(U=m.actions.get("tags"),U=f("",U.funct,null,mxResources.get("tags"),U,Editor.tagsImage),U.style.opacity="0.4",D.appendChild(U));U=m.actions.get("outline");U=f("",U.funct,null,mxResources.get("outline"),U,Editor.outlineImage);D.appendChild(U);U=f("",V.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",
3999V,Editor.zoomOutImage);D.appendChild(U);var P=document.createElement("div");P.innerHTML="100%";P.setAttribute("title",mxResources.get("fitWindow")+"/"+mxResources.get("resetView")+" (Enter)");P.style.display="inline-block";P.style.cursor="pointer";P.style.textAlign="center";P.style.whiteSpace="nowrap";P.style.paddingRight="10px";P.style.textDecoration="none";P.style.verticalAlign="top";P.style.padding="6px 0";P.style.fontSize="14px";P.style.width="40px";P.style.opacity="0.4";D.appendChild(P);mxEvent.addListener(P,
4000"click",aa);aa=f("",ra.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",ra,Editor.zoomInImage);D.appendChild(aa);"1"==urlParams.embedInline&&(D.appendChild(ca),aa=m.actions.get("exit"),D.appendChild(f("",aa.funct,null,mxResources.get("exit"),aa,Editor.closeImage)));var fa=this.createPageMenuTab(!1);fa.style.display="none";fa.style.position="";fa.style.marginLeft="";fa.style.top="";fa.style.left="";fa.style.height="100%";fa.style.lineHeight="";fa.style.borderStyle="none";
4001fa.style.padding="3px 0";fa.style.margin="0px";fa.style.background="";fa.style.border="";fa.style.boxShadow="none";fa.style.verticalAlign="top";fa.firstChild.style.height="100%";fa.firstChild.style.opacity="0.6";fa.firstChild.style.margin="0px";D.appendChild(fa);m.addListener("fileDescriptorChanged",y);m.addListener("pagesVisibleChanged",y);y();m.tabContainer.style.visibility="hidden";p.style.cssText="position:absolute;right:12px;top:10px;height:30px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px 0px 6px 6px;border-bottom:1px solid lightgray;text-align:right;white-space:nowrap;overflow:hidden;user-select:none;";
4002W.style.cssText="position:absolute;left:10px;top:10px;height:30px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;border-bottom:1px solid lightgray;text-align:right;white-space:nowrap;overflow:hidden;user-select:none;";D.style.cssText="position:absolute;right:12px;bottom:12px;height:28px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px;white-space:nowrap;user-select:none;";x.appendChild(W);x.appendChild(D);G.style.cssText="position:absolute;left:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px 6px 4px 6px;white-space:nowrap;transform:translate(0, -50%);top:50%;user-select:none;";
4003x.appendChild(G);window.setTimeout(function(){mxUtils.setPrefixedStyle(G.style,"transition","transform .3s ease-out")},0);"1"==urlParams["format-toolbar"]&&this.installFormatToolbar(x)}else{var wa=f("",aa,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",U,Editor.zoomFitImage);p.style.cssText="position:absolute;left:0px;right:0px;top:0px;height:30px;padding:8px;text-align:left;white-space:nowrap;";this.tabContainer.style.right="70px";P=t.addMenu("100%",y.funct);P.setAttribute("title",mxResources.get("zoom")+
4004" (Alt+Mousewheel)");P.style.whiteSpace="nowrap";P.style.paddingRight="10px";P.style.textDecoration="none";P.style.textDecoration="none";P.style.overflow="hidden";P.style.visibility="hidden";P.style.textAlign="center";P.style.cursor="pointer";P.style.height=parseInt(m.tabContainerHeight)-1+"px";P.style.lineHeight=parseInt(m.tabContainerHeight)+1+"px";P.style.position="absolute";P.style.display="block";P.style.fontSize="12px";P.style.width="59px";P.style.right="0px";P.style.bottom="0px";P.style.backgroundImage=
4005"url("+mxWindow.prototype.minimizeImage+")";P.style.backgroundPosition="right 6px center";P.style.backgroundRepeat="no-repeat";x.appendChild(P)}(function(b){var c=mxUtils.bind(this,function(){b.innerHTML=Math.round(100*m.editor.graph.view.scale)+"%"});m.editor.graph.view.addListener(mxEvent.EVENT_SCALE,c);m.editor.addListener("resetGraphView",c);m.editor.addListener("pageSelected",c)})(P);var xa=m.setGraphEnabled;m.setGraphEnabled=function(){xa.apply(this,arguments);null!=this.tabContainer&&(P.style.visibility=
4006this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility&&null==D?this.tabContainerHeight+"px":"0px")}}x.appendChild(p);x.appendChild(m.diagramContainer);l.appendChild(x);m.updateTabContainer();null==D&&x.appendChild(m.tabContainer);var qa=null;k();mxEvent.addListener(window,"resize",function(){k();null!=m.sidebarWindow&&m.sidebarWindow.window.fit();null!=m.formatWindow&&m.formatWindow.window.fit();null!=m.actions.outlineWindow&&m.actions.outlineWindow.window.fit();
4007null!=m.actions.layersWindow&&m.actions.layersWindow.window.fit();null!=m.menus.tagsWindow&&m.menus.tagsWindow.window.fit();null!=m.menus.findWindow&&m.menus.findWindow.window.fit();null!=m.menus.findReplaceWindow&&m.menus.findReplaceWindow.window.fit()});if("1"==urlParams.embedInline){document.body.style.cursor="text";G.style.transform="";mxEvent.addGestureListeners(m.diagramContainer.parentNode,function(b){mxEvent.getSource(b)==m.diagramContainer.parentNode&&(m.embedExitPoint=new mxPoint(mxEvent.getClientX(b),
4008mxEvent.getClientY(b)),m.sendEmbeddedSvgExport())});l=document.createElement("div");l.style.position="absolute";l.style.width="10px";l.style.height="10px";l.style.borderRadius="5px";l.style.border="1px solid gray";l.style.background="#ffffff";l.style.cursor="row-resize";m.diagramContainer.parentNode.appendChild(l);m.bottomResizer=l;var za=null,Aa=null,Da=null,Ea=null;mxEvent.addGestureListeners(l,function(b){Ea=parseInt(m.diagramContainer.style.height);Aa=mxEvent.getClientY(b);n.popupMenuHandler.hideMenu();
4009mxEvent.consume(b)});l=l.cloneNode(!1);l.style.cursor="col-resize";m.diagramContainer.parentNode.appendChild(l);m.rightResizer=l;mxEvent.addGestureListeners(l,function(b){Da=parseInt(m.diagramContainer.style.width);za=mxEvent.getClientX(b);n.popupMenuHandler.hideMenu();mxEvent.consume(b)});mxEvent.addGestureListeners(document.body,null,function(b){var c=!1;null!=za&&(m.diagramContainer.style.width=Math.max(20,Da+mxEvent.getClientX(b)-za)+"px",c=!0);null!=Aa&&(m.diagramContainer.style.height=Math.max(20,
4010Ea+mxEvent.getClientY(b)-Aa)+"px",c=!0);c&&((window.opener||window.parent).postMessage(JSON.stringify({event:"resize",fullscreen:Editor.inlineFullscreen,rect:m.diagramContainer.getBoundingClientRect()}),"*"),oa(),m.refresh())},function(b){null==za&&null==Aa||mxEvent.consume(b);Aa=za=null});this.diagramContainer.style.borderRadius="4px";document.body.style.backgroundColor="transparent";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";W.style.visibility="hidden";D.style.visibility=
4011"hidden";G.style.display="none"}"1"==urlParams.prefetchFonts&&m.editor.loadFonts()}}};(function(){var b=!1;"min"!=uiTheme||b||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),b=!0);var c=EditorUi.initTheme;EditorUi.initTheme=function(){c.apply(this,arguments);"min"!=uiTheme||b||(this.initMinimalTheme(),b=!0)}})();DrawioComment=function(b,c,e,k,g,p,t){this.file=b;this.id=c;this.content=e;this.modifiedDate=k;this.createdDate=g;this.isResolved=p;this.user=t;this.replies=[]};DrawioComment.prototype.addReplyDirect=function(b){null!=b&&this.replies.push(b)};DrawioComment.prototype.addReply=function(b,c,e,k,g){c()};DrawioComment.prototype.editComment=function(b,c,e){c()};DrawioComment.prototype.deleteComment=function(b,c){b()};DrawioUser=function(b,c,e,k,g){this.id=b;this.email=c;this.displayName=e;this.pictureUrl=k;this.locale=g};mxResources.parse('# *DO NOT DIRECTLY EDIT THIS FILE, IT IS AUTOMATICALLY GENERATED AND IT IS BASED ON:*\n# https://docs.google.com/spreadsheet/ccc?key=0AmQEO36liL4FdDJLWVNMaVV2UmRKSnpXU09MYkdGbEE\nabout=About \naboutDrawio=About draw.io\naccessDenied=Access Denied\naction=Action\nactualSize=Actual Size\nadd=Add\naddAccount=Add account\naddedFile=Added {1}\naddImages=Add Images\naddImageUrl=Add Image URL\naddLayer=Add Layer\naddProperty=Add Property\naddress=Address\naddToExistingDrawing=Add to Existing Drawing\naddWaypoint=Add Waypoint\nadjustTo=Adjust to\nadvanced=Advanced\nalign=Align\nalignment=Alignment\nallChangesLost=All changes will be lost!\nallPages=All Pages\nallProjects=All Projects\nallSpaces=All Spaces\nallTags=All Tags\nanchor=Anchor\nandroid=Android\nangle=Angle\narc=Arc\nareYouSure=Are you sure?\nensureDataSaved=Please ensure your data is saved before closing.\nallChangesSaved=All changes saved\nallChangesSavedInDrive=All changes saved in Drive\nallowPopups=Allow pop-ups to avoid this dialog.\nallowRelativeUrl=Allow relative URL\nalreadyConnected=Nodes already connected\napply=Apply\narchiMate21=ArchiMate 2.1\narrange=Arrange\narrow=Arrow\narrows=Arrows\nasNew=As New\natlas=Atlas\nauthor=Author\nauthorizationRequired=Authorization required\nauthorizeThisAppIn=Authorize this app in {1}:\nauthorize=Authorize\nauthorizing=Authorizing\nautomatic=Automatic\nautosave=Autosave\nautosize=Autosize\nattachments=Attachments\naws=AWS\naws3d=AWS 3D\nazure=Azure\nback=Back\nbackground=Background\nbackgroundColor=Background Color\nbackgroundImage=Background Image\nbasic=Basic\nblankDrawing=Blank Drawing\nblankDiagram=Blank Diagram\nblock=Block\nblockquote=Blockquote\nblog=Blog\nbold=Bold\nbootstrap=Bootstrap\nborder=Border\nborderColor=Border Color\nborderWidth=Border Width\nbottom=Bottom\nbottomAlign=Bottom Align\nbottomLeft=Bottom Left\nbottomRight=Bottom Right\nbpmn=BPMN\nbringForward=Bring Forward\nbrowser=Browser\nbulletedList=Bulleted List\nbusiness=Business\nbusy=Operation in progress\ncabinets=Cabinets\ncancel=Cancel\ncenter=Center\ncannotLoad=Load attempts failed. Please try again later.\ncannotLogin=Log in attempts failed. Please try again later.\ncannotOpenFile=Cannot open file\nchange=Change\nchangeOrientation=Change Orientation\nchangeUser=Change user\nchangeStorage=Change storage\nchangesNotSaved=Changes have not been saved\nclassDiagram=Class Diagram\nuserJoined={1} has joined\nuserLeft={1} has left\nchatWindowTitle=Chat\nchooseAnOption=Choose an option\nchromeApp=Chrome App\ncollaborativeEditingNotice=Important Notice for Collaborative Editing\ncompare=Compare\ncompressed=Compressed\ncommitMessage=Commit Message\nconfigLinkWarn=This link configures draw.io. Only click OK if you trust whoever gave you it!\nconfigLinkConfirm=Click OK to configure and restart draw.io.\ncontainer=Container\ncsv=CSV\ndark=Dark\ndiagramXmlDesc=XML File\ndiagramHtmlDesc=HTML File\ndiagramPngDesc=Editable Bitmap Image\ndiagramSvgDesc=Editable Vector Image\ndidYouMeanToExportToPdf=Did you mean to export to PDF?\ndraftFound=A draft for \'{1}\' has been found. Load it into the editor or discard it to continue.\ndraftRevisionMismatch=There is a different version of this diagram on a shared draft of this page. Please edit the diagram from the draft to ensure you are working with the latest version.\nselectDraft=Select a draft to continue editing:\ndragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?\ndropboxCharsNotAllowed=The following characters are not allowed:  / : ? * " |\ncheck=Check\nchecksum=Checksum\ncircle=Circle\ncisco=Cisco\nclassic=Classic\nclearDefaultStyle=Clear Default Style\nclearWaypoints=Clear Waypoints\nclipart=Clipart\nclose=Close\nclosingFile=Closing file\ncollaborator=Collaborator\ncollaborators=Collaborators\ncollapse=Collapse\ncollapseExpand=Collapse/Expand\ncollapse-expand=Click to collapse/expand\nShift-click to move neighbors \nAlt-click to protect group size\ncollapsible=Collapsible\ncomic=Comic\ncomment=Comment\ncommentsNotes=Comments/Notes\ncompress=Compress\nconfiguration=Configuration\nconnect=Connect\nconnecting=Connecting\nconnectWithDrive=Connect with Google Drive\nconnection=Connection\nconnectionArrows=Connection Arrows\nconnectionPoints=Connection Points\nconstrainProportions=Constrain Proportions\ncontainsValidationErrors=Contains validation errors\ncopiedToClipboard=Copied to clipboard\ncopy=Copy\ncopyConnect=Copy on connect\ncopyCreated=A copy of the file was created.\ncopyData=Copy Data\ncopyOf=Copy of {1}\ncopyOfDrawing=Copy of Drawing\ncopySize=Copy Size\ncopyStyle=Copy Style\ncreate=Create\ncreateNewDiagram=Create New Diagram\ncreateRevision=Create Revision\ncreateShape=Create Shape\ncrop=Crop\ncurved=Curved\ncustom=Custom\ncurrent=Current\ncurrentPage=Current page\ncut=Cut\ndashed=Dashed\ndecideLater=Decide later\ndefault=Default\ndelete=Delete\ndeleteColumn=Delete Column\ndeleteLibrary401=Insufficient permissions to delete this library\ndeleteLibrary404=Selected library could not be found\ndeleteLibrary500=Error deleting library\ndeleteLibraryConfirm=You are about to permanently delete this library. Are you sure you want to do this?\ndeleteRow=Delete Row\ndescription=Description\ndevice=Device\ndiagram=Diagram\ndiagramContent=Diagram Content\ndiagramLocked=Diagram has been locked to prevent further data loss.\ndiagramLockedBySince=The diagram is locked by {1} since {2} ago\ndiagramName=Diagram Name\ndiagramIsPublic=Diagram is public\ndiagramIsNotPublic=Diagram is not public\ndiamond=Diamond\ndiamondThin=Diamond (thin)\ndidYouKnow=Did you know...\ndirection=Direction\ndiscard=Discard\ndiscardChangesAndReconnect=Discard Changes and Reconnect\ngoogleDriveMissingClickHere=Google Drive missing? Click here!\ndiscardChanges=Discard Changes\ndisconnected=Disconnected\ndistribute=Distribute\ndone=Done\ndoNotShowAgain=Do not show again\ndotted=Dotted\ndoubleClickOrientation=Doubleclick to change orientation\ndoubleClickTooltip=Doubleclick to insert text\ndoubleClickChangeProperty=Doubleclick to change property name\ndownload=Download\ndownloadDesktop=Get Desktop\ndownloadAs=Download as\nclickHereToSave=Click here to save.\ndpi=DPI\ndraftDiscarded=Draft discarded\ndraftSaved=Draft saved\ndragElementsHere=Drag elements here\ndragImagesHere=Drag images or URLs here\ndragUrlsHere=Drag URLs here\ndraw.io=draw.io\ndrawing=Drawing{1}\ndrawingEmpty=Drawing is empty\ndrawingTooLarge=Drawing is too large\ndrawioForWork=Draw.io for GSuite\ndropbox=Dropbox\nduplicate=Duplicate\nduplicateIt=Duplicate {1}\ndivider=Divider\ndx=Dx\ndy=Dy\neast=East\nedit=Edit\neditData=Edit Data\neditDiagram=Edit Diagram\neditGeometry=Edit Geometry\neditImage=Edit Image\neditImageUrl=Edit Image URL\neditLink=Edit Link\neditShape=Edit Shape\neditStyle=Edit Style\neditText=Edit Text\neditTooltip=Edit Tooltip\nglass=Glass\ngoogleImages=Google Images\nimageSearch=Image Search\neip=EIP\nembed=Embed\nembedFonts=Embed Fonts\nembedImages=Embed Images\nmainEmbedNotice=Paste this into the page\nelectrical=Electrical\nellipse=Ellipse\nembedNotice=Paste this once at the end of the page\nenterGroup=Enter Group\nenterName=Enter Name\nenterPropertyName=Enter Property Name\nenterValue=Enter Value\nentityRelation=Entity Relation\nentityRelationshipDiagram=Entity Relationship Diagram\nerror=Error\nerrorDeletingFile=Error deleting file\nerrorLoadingFile=Error loading file\nerrorRenamingFile=Error renaming file\nerrorRenamingFileNotFound=Error renaming file. File was not found.\nerrorRenamingFileForbidden=Error renaming file. Insufficient access rights.\nerrorSavingDraft=Error saving draft\nerrorSavingFile=Error saving file\nerrorSavingFileUnknown=Error authorizing with Google\'s servers. Please refresh the page to re-attempt.\nerrorSavingFileForbidden=Error saving file. Insufficient access rights.\nerrorSavingFileNameConflict=Could not save diagram. Current page already contains file named \'{1}\'.\nerrorSavingFileNotFound=Error saving file. File was not found.\nerrorSavingFileReadOnlyMode=Could not save diagram while read-only mode is active.\nerrorSavingFileSessionTimeout=Your session has ended. Please <a target=\'_blank\' href=\'{1}\'>{2}</a> and return to this tab to try to save again.\nerrorSendingFeedback=Error sending feedback.\nerrorUpdatingPreview=Error updating preview.\nexit=Exit\nexitGroup=Exit Group\nexpand=Expand\nexport=Export\nexporting=Exporting\nexportAs=Export as\nexportOptionsDisabled=Export options disabled\nexportOptionsDisabledDetails=The owner has disabled options to download, print or copy for commenters and viewers on this file.\nexternalChanges=External Changes\nextras=Extras\nfacebook=Facebook\nfailedToSaveTryReconnect=Failed to save, trying to reconnect\nfeatureRequest=Feature Request\nfeedback=Feedback\nfeedbackSent=Feedback successfully sent.\nfloorplans=Floorplans\nfile=File\nfileChangedOverwriteDialog=The file has been modified. Do you want to save the file and overwrite those changes?\nfileChangedSyncDialog=The file has been modified. Click \'Yes\' to merge changes or \'No\' to overwrite.\nfileChangedSync=The file has been modified. Click here to synchronize.\noverwrite=Overwrite\nsynchronize=Synchronize\nfilename=Filename\nfileExists=File already exists\nfileMovedToTrash=File was moved to trash\nfileNearlyFullSeeFaq=File nearly full, please see FAQ\nfileNotFound=File not found\nrepositoryNotFound=Repository not found\nfileNotFoundOrDenied=The file was not found. It does not exist or you do not have access.\nfileNotLoaded=File not loaded\nfileNotSaved=File not saved\nfileOpenLocation=How would you like to open these file(s)?\nfiletypeHtml=.html causes file to save as HTML with redirect to cloud URL\nfiletypePng=.png causes file to save as PNG with embedded data\nfiletypeSvg=.svg causes file to save as SVG with embedded data\nfileWillBeSavedInAppFolder={1} will be saved in the app folder.\nfill=Fill\nfillColor=Fill Color\nfilterCards=Filter Cards\nfind=Find\nfit=Fit\nfitContainer=Resize Container\nfitIntoContainer=Fit into Container\nfitPage=Fit Page\nfitPageWidth=Fit Page Width\nfitTo=Fit to\nfitToSheetsAcross=sheet(s) across\nfitToBy=by\nfitToSheetsDown=sheet(s) down\nfitTwoPages=Two Pages\nfitWindow=Fit Window\nflip=Flip\nflipH=Flip Horizontal\nflipV=Flip Vertical\nflowchart=Flowchart\nfolder=Folder\nfont=Font\nfontColor=Font Color\nfontFamily=Font Family\nfontSize=Font Size\nforbidden=You are not authorized to access this file\nformat=Format\nformatPanel=Format Panel\nformatted=Formatted\nformattedText=Formatted Text\nformatPng=PNG\nformatGif=GIF\nformatJpg=JPEG\nformatPdf=PDF\nformatSql=SQL\nformatSvg=SVG\nformatHtmlEmbedded=HTML\nformatSvgEmbedded=SVG (with XML)\nformatVsdx=VSDX\nformatVssx=VSSX\nformatXmlPlain=XML (Plain)\nformatXml=XML\nforum=Discussion/Help Forums\nfreehand=Freehand\nfromTemplate=From Template\nfromTemplateUrl=From Template URL\nfromText=From Text\nfromUrl=From URL\nfromThisPage=From this page\nfullscreen=Fullscreen\ngap=Gap\ngcp=GCP\ngeneral=General\ngithub=GitHub\ngitlab=GitLab\ngliffy=Gliffy\nglobal=Global\ngoogleDocs=Google Docs\ngoogleDrive=Google Drive\ngoogleGadget=Google Gadget\ngooglePlus=Google+\ngoogleSharingNotAvailable=Sharing is only available via Google Drive. Please click Open below and share from the more actions menu:\ngoogleSlides=Google Slides\ngoogleSites=Google Sites\ngoogleSheets=Google Sheets\ngradient=Gradient\ngradientColor=Color\ngrid=Grid\ngridColor=Grid Color\ngridSize=Grid Size\ngroup=Group\nguides=Guides\nhateApp=I hate draw.io\nheading=Heading\nheight=Height\nhelp=Help\nhelpTranslate=Help us translate this application\nhide=Hide\nhideIt=Hide {1}\nhidden=Hidden\nhome=Home\nhorizontal=Horizontal\nhorizontalFlow=Horizontal Flow\nhorizontalTree=Horizontal Tree\nhowTranslate=How good is the translation in your language?\nhtml=HTML\nhtmlText=HTML Text\nid=ID\niframe=IFrame\nignore=Ignore\nimage=Image\nimageUrl=Image URL\nimages=Images\nimagePreviewError=This image couldn\'t be loaded for preview. Please check the URL.\nimageTooBig=Image too big\nimgur=Imgur\nimport=Import\nimportFrom=Import from\nincludeCopyOfMyDiagram=Include a copy of my diagram\nincreaseIndent=Increase Indent\ndecreaseIndent=Decrease Indent\ninsert=Insert\ninsertColumnBefore=Insert Column Left\ninsertColumnAfter=Insert Column Right\ninsertEllipse=Insert Ellipse\ninsertImage=Insert Image\ninsertHorizontalRule=Insert Horizontal Rule\ninsertLink=Insert Link\ninsertPage=Insert Page\ninsertRectangle=Insert Rectangle\ninsertRhombus=Insert Rhombus\ninsertRowBefore=Insert Row Above\ninsertRowAfter=Insert Row After\ninsertText=Insert Text\ninserting=Inserting\ninstallApp=Install App\ninvalidFilename=Diagram names must not contain the following characters:  / | : ; { } < > & + ? = "\ninvalidLicenseSeeThisPage=Your license is invalid, please see this <a target="_blank" href="https://support.draw.io/display/DFCS/Licensing+your+draw.io+plugin">page</a>.\ninvalidInput=Invalid input\ninvalidName=Invalid name\ninvalidOrMissingFile=Invalid or missing file\ninvalidPublicUrl=Invalid public URL\nisometric=Isometric\nios=iOS\nitalic=Italic\nkennedy=Kennedy\nkeyboardShortcuts=Keyboard Shortcuts\nlayers=Layers\nlandscape=Landscape\nlanguage=Language\nleanMapping=Lean Mapping\nlastChange=Last change {1} ago\nlessThanAMinute=less than a minute\nlicensingError=Licensing Error\nlicenseHasExpired=The license for {1} has expired on {2}. Click here.\nlicenseRequired=This feature requires draw.io to be licensed.\nlicenseWillExpire=The license for {1} will expire on {2}. Click here.\nlineJumps=Line jumps\nlinkAccountRequired=If the diagram is not public a Google account is required to view the link.\nlinkText=Link Text\nlist=List\nminute=minute\nminutes=minutes\nhours=hours\ndays=days\nmonths=months\nyears=years\nrestartForChangeRequired=Changes will take effect after a restart of the application.\nlaneColor=Lanecolor\nlastModified=Last modified\nlayout=Layout\nleft=Left\nleftAlign=Left Align\nleftToRight=Left to right\nlibraryTooltip=Drag and drop shapes here or click + to insert. Double click to edit.\nlightbox=Lightbox\nline=Line\nlineend=Line end\nlineheight=Line Height\nlinestart=Line start\nlinewidth=Linewidth\nlink=Link\nlinks=Links\nloading=Loading\nlockUnlock=Lock/Unlock\nloggedOut=Logged Out\nlogIn=log in\nloveIt=I love {1}\nlucidchart=Lucidchart\nmaps=Maps\nmathematicalTypesetting=Mathematical Typesetting\nmakeCopy=Make a Copy\nmanual=Manual\nmerge=Merge\nmermaid=Mermaid\nmicrosoftOffice=Microsoft Office\nmicrosoftExcel=Microsoft Excel\nmicrosoftPowerPoint=Microsoft PowerPoint\nmicrosoftWord=Microsoft Word\nmiddle=Middle\nminimal=Minimal\nmisc=Misc\nmockups=Mockups\nmodificationDate=Modification date\nmodifiedBy=Modified by\nmore=More\nmoreResults=More Results\nmoreShapes=More Shapes\nmove=Move\nmoveToFolder=Move to Folder\nmoving=Moving\nmoveSelectionTo=Move selection to {1}\nname=Name\nnavigation=Navigation\nnetwork=Network\nnetworking=Networking\nnew=New\nnewLibrary=New Library\nnextPage=Next Page\nno=No\nnoPickFolder=No, pick folder\nnoAttachments=No attachments found\nnoColor=No Color\nnoFiles=No Files\nnoFileSelected=No file selected\nnoLibraries=No libraries found\nnoMoreResults=No more results\nnone=None\nnoOtherViewers=No other viewers\nnoPlugins=No plugins\nnoPreview=No preview\nnoResponse=No response from server\nnoResultsFor=No results for \'{1}\'\nnoRevisions=No revisions\nnoSearchResults=No search results found\nnoPageContentOrNotSaved=No anchors found on this page or it hasn\'t been saved yet\nnormal=Normal\nnorth=North\nnotADiagramFile=Not a diagram file\nnotALibraryFile=Not a library file\nnotAvailable=Not available\nnotAUtf8File=Not a UTF-8 file\nnotConnected=Not connected\nnote=Note\nnotion=Notion\nnotSatisfiedWithImport=Not satisfied with the import?\nnotUsingService=Not using {1}?\nnumberedList=Numbered list\noffline=Offline\nok=OK\noneDrive=OneDrive\nonline=Online\nopacity=Opacity\nopen=Open\nopenArrow=Open Arrow\nopenExistingDiagram=Open Existing Diagram\nopenFile=Open File\nopenFrom=Open from\nopenLibrary=Open Library\nopenLibraryFrom=Open Library from\nopenLink=Open Link\nopenInNewWindow=Open in New Window\nopenInThisWindow=Open in This Window\nopenIt=Open {1}\nopenRecent=Open Recent\nopenSupported=Supported formats are files saved from this software (.xml), .vsdx and .gliffy\noptions=Options\norganic=Organic\norgChart=Org Chart\northogonal=Orthogonal\notherViewer=other viewer\notherViewers=other viewers\noutline=Outline\noval=Oval\npage=Page\npageContent=Page Content\npageNotFound=Page not found\npageWithNumber=Page-{1}\npages=Pages\npageView=Page View\npageSetup=Page Setup\npageScale=Page Scale\npan=Pan\npanTooltip=Space+Drag to pan\npaperSize=Paper Size\npattern=Pattern\nparallels=Parallels\npaste=Paste\npasteData=Paste Data\npasteHere=Paste here\npasteSize=Paste Size\npasteStyle=Paste Style\nperimeter=Perimeter\npermissionAnyone=Anyone can edit\npermissionAuthor=Owner and admins can edit\npickFolder=Pick a folder\npickLibraryDialogTitle=Select Library\npublicDiagramUrl=Public URL of the diagram\nplaceholders=Placeholders\nplantUml=PlantUML\nplugins=Plugins\npluginUrl=Plugin URL\npluginWarning=The page has requested to load the following plugin(s):\n \n {1}\n \n Would you like to load these plugin(s) now?\n \n NOTE : Only allow plugins to run if you fully understand the security implications of doing so.\n\nplusTooltip=Click to connect and clone (ctrl+click to clone, shift+click to connect). Drag to connect (ctrl+drag to clone).\nportrait=Portrait\nposition=Position\nposterPrint=Poster Print\npreferences=Preferences\npreview=Preview\npreviousPage=Previous Page\nprint=Print\nprintAllPages=Print All Pages\nprocEng=Proc. Eng.\nproject=Project\npriority=Priority\nproperties=Properties\npublish=Publish\nquickStart=Quick Start Video\nrack=Rack\nradial=Radial\nradialTree=Radial Tree\nreadOnly=Read-only\nreconnecting=Reconnecting\nrecentlyUpdated=Recently Updated\nrecentlyViewed=Recently Viewed\nrectangle=Rectangle\nredirectToNewApp=This file was created or modified in a newer version of this app. You will be redirected now.\nrealtimeTimeout=It looks like you\'ve made a few changes while offline. We\'re sorry, these changes cannot be saved.\nredo=Redo\nrefresh=Refresh\nregularExpression=Regular Expression\nrelative=Relative\nrelativeUrlNotAllowed=Relative URL not allowed\nrememberMe=Remember me\nrememberThisSetting=Remember this setting\nremoveFormat=Clear Formatting\nremoveFromGroup=Remove from Group\nremoveIt=Remove {1}\nremoveWaypoint=Remove Waypoint\nrename=Rename\nrenamed=Renamed\nrenameIt=Rename {1}\nrenaming=Renaming\nreplace=Replace\nreplaceIt={1} already exists. Do you want to replace it?\nreplaceExistingDrawing=Replace existing drawing\nrequired=required\nreset=Reset\nresetView=Reset View\nresize=Resize\nresizeLargeImages=Do you want to resize large images to make the application run faster?\nretina=Retina\nresponsive=Responsive\nrestore=Restore\nrestoring=Restoring\nretryingIn=Retrying in {1} second(s)\nretryingLoad=Load failed. Retrying...\nretryingLogin=Login time out. Retrying...\nreverse=Reverse\nrevision=Revision\nrevisionHistory=Revision History\nrhombus=Rhombus\nright=Right\nrightAlign=Right Align\nrightToLeft=Right to left\nrotate=Rotate\nrotateTooltip=Click and drag to rotate, click to turn shape only by 90 degrees\nrotation=Rotation\nrounded=Rounded\nsave=Save\nsaveAndExit=Save & Exit\nsaveAs=Save as\nsaveAsXmlFile=Save as XML file?\nsaved=Saved\nsaveDiagramFirst=Please save the diagram first\nsaveDiagramsTo=Save diagrams to\nsaveLibrary403=Insufficient permissions to edit this library\nsaveLibrary500=There was an error while saving the library\nsaveLibraryReadOnly=Could not save library while read-only mode is active\nsaving=Saving\nscratchpad=Scratchpad\nscrollbars=Scrollbars\nsearch=Search\nsearchShapes=Search Shapes\nselectAll=Select All\nselectionOnly=Selection Only\nselectCard=Select Card\nselectEdges=Select Edges\nselectFile=Select File\nselectFolder=Select Folder\nselectFont=Select Font\nselectNone=Select None\nselectTemplate=Select Template\nselectVertices=Select Vertices\nsendBackward=Send Backward\nsendMessage=Send\nsendYourFeedback=Send your feedback\nserviceUnavailableOrBlocked=Service unavailable or blocked\nsessionExpired=Your session has expired. Please refresh the browser window.\nsessionTimeoutOnSave=Your session has timed out and you have been disconnected from the Google Drive. Press OK to login and save. \nsetAsDefaultStyle=Set as Default Style\nshadow=Shadow\nshape=Shape\nshapes=Shapes\nshare=Share\nshareLink=Link for shared editing\nsharingAvailable=Sharing available for Google Drive and OneDrive files.\nsharp=Sharp\nshow=Show\nshowStartScreen=Show Start Screen\nsidebarTooltip=Click to expand. Drag and drop shapes into the diagram. Shift+click to change selection. Alt+click to insert and connect.\nsigns=Signs\nsignOut=Sign out\nsimple=Simple\nsimpleArrow=Simple Arrow\nsimpleViewer=Simple Viewer\nsize=Size\nsketch=Sketch\nsolid=Solid\nsourceSpacing=Source Spacing\nsouth=South\nsoftware=Software\nspace=Space\nspacing=Spacing\nspecialLink=Special Link\nstandard=Standard\nstartDrawing=Start drawing\nstopDrawing=Stop drawing\nstarting=Starting\nstraight=Straight\nstrikethrough=Strikethrough\nstrokeColor=Line Color\nstyle=Style\nsubscript=Subscript\nsummary=Summary\nsuperscript=Superscript\nsupport=Support\nswimlaneDiagram=Swimlane Diagram\nsysml=SysML\ntags=Tags\ntable=Table\ntables=Tables\ntakeOver=Take Over\ntargetSpacing=Target Spacing\ntemplate=Template\ntemplates=Templates\ntext=Text\ntextAlignment=Text Alignment\ntextOpacity=Text Opacity\ntheme=Theme\ntimeout=Timeout\ntitle=Title\nto=to\ntoBack=To Back\ntoFront=To Front\ntooLargeUseDownload=Too large, use download instead.\ntoolbar=Toolbar\ntooltips=Tooltips\ntop=Top\ntopAlign=Top Align\ntopLeft=Top Left\ntopRight=Top Right\ntransparent=Transparent\ntransparentBackground=Transparent Background\ntrello=Trello\ntryAgain=Try again\ntryOpeningViaThisPage=Try opening via this page\nturn=Rotate shape only by 90°\ntype=Type\ntwitter=Twitter\numl=UML\nunderline=Underline\nundo=Undo\nungroup=Ungroup\nunsavedChanges=Unsaved changes\nunsavedChangesClickHereToSave=Unsaved changes. Click here to save.\nuntitled=Untitled\nuntitledDiagram=Untitled Diagram\nuntitledLayer=Untitled Layer\nuntitledLibrary=Untitled Library\nunknownError=Unknown error\nupdateFile=Update {1}\nupdatingDocument=Updating Document. Please wait...\nupdatingPreview=Updating Preview. Please wait...\nupdatingSelection=Updating Selection. Please wait...\nupload=Upload\nurl=URL\nuseOffline=Use Offline\nuseRootFolder=Use root folder?\nuserManual=User Manual\nvertical=Vertical\nverticalFlow=Vertical Flow\nverticalTree=Vertical Tree\nview=View\nviewerSettings=Viewer Settings\nviewUrl=Link to view: {1}\nvoiceAssistant=Voice Assistant (beta)\nwarning=Warning\nwaypoints=Waypoints\nwest=West\nwidth=Width\nwiki=Wiki\nwordWrap=Word Wrap\nwritingDirection=Writing Direction\nyes=Yes\nyourEmailAddress=Your email address\nzoom=Zoom\nzoomIn=Zoom In\nzoomOut=Zoom Out\nbasic=Basic\nbusinessprocess=Business Processes\ncharts=Charts\nengineering=Engineering\nflowcharts=Flowcharts\ngmdl=Material Design\nmindmaps=Mindmaps\nmockups=Mockups\nnetworkdiagrams=Network Diagrams\nnothingIsSelected=Nothing is selected\nother=Other\nsoftwaredesign=Software Design\nvenndiagrams=Venn Diagrams\nwebEmailOrOther=Web, email or any other internet address\nwebLink=Web Link\nwireframes=Wireframes\nproperty=Property\nvalue=Value\nshowMore=Show More\nshowLess=Show Less\nmyDiagrams=My Diagrams\nallDiagrams=All Diagrams\nrecentlyUsed=Recently used\nlistView=List view\ngridView=Grid view\nresultsFor=Results for \'{1}\'\noneDriveCharsNotAllowed=The following characters are not allowed: ~ " # %  * : < > ? /  { | }\noneDriveInvalidDeviceName=The specified device name is invalid\nofficeNotLoggedOD=You are not logged in to OneDrive. Please open draw.io task pane and login first.\nofficeSelectSingleDiag=Please select a single draw.io diagram only without other contents.\nofficeSelectDiag=Please select a draw.io diagram.\nofficeCannotFindDiagram=Cannot find a draw.io diagram in the selection\nnoDiagrams=No diagrams found\nauthFailed=Authentication failed\nofficeFailedAuthMsg=Unable to successfully authenticate user or authorize application.\nconvertingDiagramFailed=Converting diagram failed\nofficeCopyImgErrMsg=Due to some limitations in the host application, the image could not be inserted. Please manually copy the image then paste it to the document.\ninsertingImageFailed=Inserting image failed\nofficeCopyImgInst=Instructions: Right-click the image below. Select "Copy image" from the context menu. Then, in the document, right-click and select "Paste" from the context menu.\nfolderEmpty=Folder is empty\nrecent=Recent\nsharedWithMe=Shared With Me\nsharepointSites=Sharepoint Sites\nerrorFetchingFolder=Error fetching folder items\nerrorAuthOD=Error authenticating to OneDrive\nofficeMainHeader=Adds draw.io diagrams to your document.\nofficeStepsHeader=This add-in performs the following steps:\nofficeStep1=Connects to Microsoft OneDrive, Google Drive or your device.\nofficeStep2=Select a draw.io diagram.\nofficeStep3=Insert the diagram into the document.\nofficeAuthPopupInfo=Please complete the authentication in the pop-up window.\nofficeSelDiag=Select draw.io Diagram:\nfiles=Files\nshared=Shared\nsharepoint=Sharepoint\nofficeManualUpdateInst=Instructions: Copy draw.io diagram from the document. Then, in the box below, right-click and select "Paste" from the context menu.\nofficeClickToEdit=Click icon to start editing:\npasteDiagram=Paste draw.io diagram here\nconnectOD=Connect to OneDrive\nselectChildren=Select Children\nselectSiblings=Select Siblings\nselectParent=Select Parent\nselectDescendants=Select Descendants\nlastSaved=Last saved {1} ago\nresolve=Resolve\nreopen=Re-open\nshowResolved=Show Resolved\nreply=Reply\nobjectNotFound=Object not found\nreOpened=Re-opened\nmarkedAsResolved=Marked as resolved\nnoCommentsFound=No comments found\ncomments=Comments\ntimeAgo={1} ago\nconfluenceCloud=Confluence Cloud\nlibraries=Libraries\nconfAnchor=Confluence Page Anchor\nconfTimeout=The connection has timed out\nconfSrvTakeTooLong=The server at {1} is taking too long to respond.\nconfCannotInsertNew=Cannot insert draw.io diagram to a new Confluence page\nconfSaveTry=Please save the page and try again.\nconfCannotGetID=Unable to determine page ID\nconfContactAdmin=Please contact your Confluence administrator.\nreadErr=Read Error\neditingErr=Editing Error\nconfExtEditNotPossible=This diagram cannot be edited externally. Please try editing it while editing the page\nconfEditedExt=Diagram/Page edited externally\ndiagNotFound=Diagram Not Found\nconfEditedExtRefresh=Diagram/Page is edited externally. Please refresh the page.\nconfCannotEditDraftDelOrExt=Cannot edit diagrams in a draft page, diagram is deleted from the page, or diagram is edited externally. Please check the page.\nretBack=Return back\nconfDiagNotPublished=The diagram does not belong to a published page\ncreatedByDraw=Created by draw.io\nfilenameShort=Filename too short\ninvalidChars=Invalid characters\nalreadyExst={1} already exists\ndraftReadErr=Draft Read Error\ndiagCantLoad=Diagram cannot be loaded\ndraftWriteErr=Draft Write Error\ndraftCantCreate=Draft could not be created\nconfDuplName=Duplicate diagram name detected. Please pick another name.\nconfSessionExpired=Looks like your session expired. Log in again to keep working.\nlogin=Login\ndrawPrev=draw.io preview\ndrawDiag=draw.io diagram\ninvalidCallFnNotFound=Invalid Call: {1} not found\ninvalidCallErrOccured=Invalid Call: An error occurred, {1}\nanonymous=Anonymous\nconfGotoPage=Go to containing page\nshowComments=Show Comments\nconfError=Error: {1}\ngliffyImport=Gliffy Import\ngliffyImportInst1=Click the "Start Import" button to import all Gliffy diagrams to draw.io.\ngliffyImportInst2=Please note that the import procedure will take some time and the browser window must remain open until the import is completed.\nstartImport=Start Import\ndrawConfig=draw.io Configuration\ncustomLib=Custom Libraries\ncustomTemp=Custom Templates\npageIdsExp=Page IDs Export\ndrawReindex=draw.io re-indexing (beta)\nworking=Working\ndrawConfigNotFoundInst=draw.io Configuration Space (DRAWIOCONFIG) does not exist. This space is needed to store draw.io configuration files and custom libraries/templates.\ncreateConfSp=Create Config Space\nunexpErrRefresh=Unexpected error, please refresh the page and try again.\nconfigJSONInst=Write draw.io JSON configuration in the editor below then click save. If you need help, please refer to\nthisPage=this page\ncurCustLib=Current Custom Libraries\nlibName=Library Name\naction=Action\ndrawConfID=draw.io Config ID\naddLibInst=Click the "Add Library" button to upload a new library.\naddLib=Add Library\ncustomTempInst1=Custom templates are draw.io diagrams saved in children pages of\ncustomTempInst2=For more details, please refer to\ntempsPage=Templates page\npageIdsExpInst1=Select export target, then click the "Start Export" button to export all pages IDs.\npageIdsExpInst2=Please note that the export procedure will take some time and the browser window must remain open until the export is completed.\nstartExp=Start Export\nrefreshDrawIndex=Refresh draw.io Diagrams Index\nreindexInst1=Click the "Start Indexing" button to refresh draw.io diagrams index.\nreindexInst2=Please note that the indexing procedure will take some time and the browser window must remain open until the indexing is completed.\nstartIndexing=Start Indexing\nconfAPageFoundFetch=Page "{1}" found. Fetching\nconfAAllDiagDone=All {1} diagrams processed. Process finished.\nconfAStartedProcessing=Started processing page "{1}"\nconfAAllDiagInPageDone=All {1} diagrams in page "{2}" processed successfully.\nconfAPartialDiagDone={1} out of {2} {3} diagrams in page "{4}" processed successfully.\nconfAUpdatePageFailed=Updating page "{1}" failed.\nconfANoDiagFoundInPage=No {1} diagrams found in page "{2}".\nconfAFetchPageFailed=Fetching the page failed.\nconfANoDiagFound=No {1} diagrams found. Process finished.\nconfASearchFailed=Searching for {1} diagrams failed. Please try again later.\nconfAGliffyDiagFound={2} diagram "{1}" found. Importing\nconfAGliffyDiagImported={2} diagram "{1}" imported successfully.\nconfASavingImpGliffyFailed=Saving imported {2} diagram "{1}" failed.\nconfAImportedFromByDraw=Imported from "{1}" by draw.io\nconfAImportGliffyFailed=Importing {2} diagram "{1}" failed.\nconfAFetchGliffyFailed=Fetching {2} diagram "{1}" failed.\nconfACheckBrokenDiagLnk=Checking for broken diagrams links.\nconfADelDiagLinkOf=Deleting diagram link of "{1}"\nconfADupLnk=(duplicate link)\nconfADelDiagLnkFailed=Deleting diagram link of "{1}" failed.\nconfAUnexpErrProcessPage=Unexpected error during processing the page with id: {1}\nconfADiagFoundIndex=Diagram "{1}" found. Indexing\nconfADiagIndexSucc=Diagram "{1}" indexed successfully.\nconfAIndexDiagFailed=Indexing diagram "{1}" failed.\nconfASkipDiagOtherPage=Skipped "{1}" as it belongs to another page!\nconfADiagUptoDate=Diagram "{1}" is up to date.\nconfACheckPagesWDraw=Checking pages having draw.io diagrams.\nconfAErrOccured=An error occurred!\nsavedSucc=Saved successfully\nconfASaveFailedErr=Saving Failed (Unexpected Error)\ncharacter=Character\nconfAConfPageDesc=This page contains draw.io configuration file (configuration.json) as attachment\nconfALibPageDesc=This page contains draw.io custom libraries as attachments\nconfATempPageDesc=This page contains draw.io custom templates as attachments\nworking=Working\nconfAConfSpaceDesc=This space is used to store draw.io configuration files and custom libraries/templates\nconfANoCustLib=No Custom Libraries\ndelFailed=Delete failed!\nshowID=Show ID\nconfAIncorrectLibFileType=Incorrect file type. Libraries should be XML files.\nuploading=Uploading\nconfALibExist=This library already exists\nconfAUploadSucc=Uploaded successfully\nconfAUploadFailErr=Upload Failed (Unexpected Error)\nhiResPreview=High Res Preview\nofficeNotLoggedGD=You are not logged in to Google Drive. Please open draw.io task pane and login first.\nofficePopupInfo=Please complete the process in the pop-up window.\npickODFile=Pick OneDrive File\npickGDriveFile=Pick Google Drive File\npickDeviceFile=Pick Device File\nvsdNoConfig="vsdurl" is not configured\nruler=Ruler\nunits=Units\npoints=Points\ninches=Inches\nmillimeters=Millimeters\nconfEditDraftDelOrExt=This diagram is in a draft page, is deleted from the page, or is edited externally. It will be saved as a new attachment version and may not be reflected in the page.\nconfDiagEditedExt=Diagram is edited in another session. It will be saved as a new attachment version but the page will show other session\'s modifications.\nmacroNotFound=Macro Not Found\nconfAInvalidPageIdsFormat=Incorrect Page IDs file format\nconfACollectingCurPages=Collecting current pages\nconfABuildingPagesMap=Building pages mapping\nconfAProcessDrawDiag=Started processing imported draw.io diagrams\nconfAProcessDrawDiagDone=Finished processing imported draw.io diagrams\nconfAProcessImpPages=Started processing imported pages\nconfAErrPrcsDiagInPage=Error processing draw.io diagrams in page "{1}"\nconfAPrcsDiagInPage=Processing draw.io diagrams in page "{1}"\nconfAImpDiagram=Importing diagram "{1}"\nconfAImpDiagramFailed=Importing diagram "{1}" failed. Cannot find its new page ID. Maybe it points to a page that is not imported. \nconfAImpDiagramError=Error importing diagram "{1}". Cannot fetch or save the diagram. Cannot fix this diagram links.\nconfAUpdateDgrmCCFailed=Updating link to diagram "{1}" failed.\nconfImpDiagramSuccess=Updating diagram "{1}" done successfully.\nconfANoLnksInDrgm=No links to update in: {1}\nconfAUpdateLnkToPg=Updated link to page: "{1}" in diagram: "{2}"\nconfAUpdateLBLnkToPg=Updated lightbox link to page: "{1}" in diagram: "{2}"\nconfAUpdateLnkBase=Updated base URL from: "{1}" to: "{2}" in diagram: "{3}"\nconfAPageIdsImpDone=Page IDs Import finished\nconfAPrcsMacrosInPage=Processing draw.io macros in page "{1}"\nconfAErrFetchPage=Error fetching page "{1}"\nconfAFixingMacro=Fixing macro of diagram "{1}"\nconfAErrReadingExpFile=Error reading export file\nconfAPrcsDiagInPageDone=Processing draw.io diagrams in page "{1}" finished\nconfAFixingMacroSkipped=Fixing macro of diagram "{1}" failed. Cannot find its new page ID. Maybe it points to a page that is not imported. \npageIdsExpTrg=Export target\nconfALucidDiagImgImported={2} diagram "{1}" image extracted successfully\nconfASavingLucidDiagImgFailed=Extracting {2} diagram "{1}" image failed\nconfGetInfoFailed=Fetching file info from {1} failed.\nconfCheckCacheFailed=Cannot get cached file info.\nconfReadFileErr=Cannot read "{1}" file from {2}.\nconfSaveCacheFailed=Unexpected error. Cannot save cached file\norgChartType=Org Chart Type\nlinear=Linear\nhanger2=Hanger 2\nhanger4=Hanger 4\nfishbone1=Fishbone 1\nfishbone2=Fishbone 2\n1ColumnLeft=Single Column Left\n1ColumnRight=Single Column Right\nsmart=Smart\nparentChildSpacing=Parent Child Spacing\nsiblingSpacing=Sibling Spacing\nconfNoPermErr=Sorry, you don\'t have enough permissions to view this embedded diagram from page {1}\ncopyAsImage=Copy as Image\nlucidImport=Lucidchart Import\nlucidImportInst1=Click the "Start Import" button to import all Lucidchart diagrams.\ninstallFirst=Please install {1} first\ndrawioChromeExt=draw.io Chrome Extension\nloginFirstThen=Please login to {1} first, then {2}\nerrFetchDocList=Error: Couldn\'t fetch documents list\nbuiltinPlugins=Built-in Plugins\nextPlugins=External Plugins\nbackupFound=Backup file found\nchromeOnly=This feature only works in Google Chrome\nmsgDeleted=This message has been deleted\nconfAErrFetchDrawList=Error fetching diagrams list. Some diagrams are skipped.\nconfAErrCheckDrawDiag=Cannot check diagram {1}\nconfAErrFetchPageList=Error fetching pages list\nconfADiagImportIncom={1} diagram "{2}" is imported partially and may have missing shapes\ninvalidSel=Invalid selection\ndiagNameEmptyErr=Diagram name cannot be empty\nopenDiagram=Open Diagram\nnewDiagram=New diagram\neditable=Editable\nconfAReimportStarted=Re-import {1} diagrams started...\nspaceFilter=Filter by spaces\ncurViewState=Current Viewer State\npageLayers=Page and Layers\ncustomize=Customize\nfirstPage=First Page (All Layers)\ncurEditorState=Current Editor State\nnoAnchorsFound=No anchors found \nattachment=Attachment\ncurDiagram=Current Diagram\nrecentDiags=Recent Diagrams\ncsvImport=CSV Import\nchooseFile=Choose a file...\nchoose=Choose\ngdriveFname=Google Drive filename\nwidthOfViewer=Width of the viewer (px)\nheightOfViewer=Height of the viewer (px)\nautoSetViewerSize=Automatically set the size of the viewer\nthumbnail=Thumbnail\nprevInDraw=Preview in draw.io\nonedriveFname=OneDrive filename\ndiagFname=Diagram filename\ndiagUrl=Diagram URL\nshowDiag=Show Diagram\ndiagPreview=Diagram Preview\ncsvFileUrl=CSV File URL\ngenerate=Generate\nselectDiag2Insert=Please select a diagram to insert it.\nerrShowingDiag=Unexpected error. Cannot show diagram\nnoRecentDiags=No recent diagrams found\nfetchingRecentFailed=Failed to fetch recent diagrams\nuseSrch2FindDiags=Use the search box to find draw.io diagrams\ncantReadChckPerms=Cannot read the specified diagram. Please check you have read permission on that file.\ncantFetchChckPerms=Cannot fetch diagram info. Please check you have read permission on that file.\nsearchFailed=Searching failed. Please try again later.\nplsTypeStr=Please type a search string.\nunsupportedFileChckUrl=Unsupported file. Please check the specified URL\ndiagNotFoundChckUrl=Diagram not found or cannot be accessed. Please check the specified URL\ncsvNotFoundChckUrl=CSV file not found or cannot be accessed. Please check the specified URL\ncantReadUpload=Cannot read the uploaded diagram\nselect=Select\nerrCantGetIdType=Unexpected Error: Cannot get content id or type.\nerrGAuthWinBlocked=Error: Google Authentication window blocked\nauthDrawAccess=Authorize draw.io to access {1}\nconnTimeout=The connection has timed out\nerrAuthSrvc=Error authenticating to {1}\nplsSelectFile=Please select a file\nmustBgtZ={1} must be greater than zero\ncantLoadPrev=Cannot load file preview.\nerrAccessFile=Error: Access Denied. You do not have permission to access "{1}".\nnoPrevAvail=No preview is available.\npersonalAccNotSup=Personal accounts are not supported.\nerrSavingTryLater=Error occurred during saving, please try again later.\nplsEnterFld=Please enter {1}\ninvalidDiagUrl=Invalid Diagram URL\nunsupportedVsdx=Unsupported vsdx file\nunsupportedImg=Unsupported image file\nunsupportedFormat=Unsupported file format\nplsSelectSingleFile=Please select a single file only\nattCorrupt=Attachment file "{1}" is corrupted\nloadAttFailed=Failed to load attachment "{1}"\nembedDrawDiag=Embed draw.io Diagram\naddDiagram=Add Diagram\nembedDiagram=Embed Diagram\neditOwningPg=Edit owning page\ndeepIndexing=Deep Indexing (Index diagrams that aren\'t used in any page also)\nconfADeepIndexStarted=Deep Indexing Started\nconfADeepIndexDone=Deep Indexing Done\nofficeNoDiagramsSelected=No diagrams found in the selection\nofficeNoDiagramsInDoc=No diagrams found in the document\nofficeNotSupported=This feature is not supported in this host application\nsomeImagesFailed={1} out of {2} failed due to the following errors\nimportingNoUsedDiagrams=Importing {1} Diagrams not used in pages\nimportingDrafts=Importing {1} Diagrams in drafts\nprocessingDrafts=Processing drafts\nupdatingDrafts=Updating drafts\nupdateDrafts=Update drafts\nnotifications=Notifications\ndrawioImp=draw.io Import\nconfALibsImp=Importing draw.io Libraries\nconfALibsImpFailed=Importing {1} library failed\ncontributors=Contributors\ndrawDiagrams=draw.io Diagrams\nerrFileNotFoundOrNoPer=Error: Access Denied. File not found or you do not have permission to access "{1}" on {2}.\nconfACheckPagesWEmbed=Checking pages having embedded draw.io diagrams.\nconfADelBrokenEmbedDiagLnk=Removing broken embedded diagram links\nreplaceWith=Replace with\nreplaceAll=Replace All\nconfASkipDiagModified=Skipped "{1}" as it was modified after initial import\nreplFind=Replace/Find\nmatchesRepl={1} matches replaced\ndraftErrDataLoss=An error occurred while reading the draft file. The diagram cannot be edited now to prevent any possible data loss. Please try again later or contact support.\nibm=IBM\nlinkToDiagramHint=Add a link to this diagram. The diagram can only be edited from the page that owns it.\nlinkToDiagram=Link to Diagram\nchangedBy=Changed By\nlastModifiedOn=Last modified on\nsearchResults=Search Results\nshowAllTemps=Show all templates\nnotionToken=Notion Token\nselectDB=Select Database\nnoDBs=No Databases\ndiagramEdited={1} diagram "{2}" edited\nconfDraftPermissionErr=Draft cannot be written. Do you have attachment write/read permission on this page?\nconfDraftTooBigErr=Draft size is too large. Pease check "Attachment Maximum Size" of "Attachment Settings" in Confluence Configuration?\nowner=Owner\nrepository=Repository\nbranch=Branch\nmeters=Meters\nteamsNoEditingMsg=Editor functionality is only available in Desktop environment (in MS Teams App or a web browser)\ncontactOwner=Contact Owner\nviewerOnlyMsg=You cannot edit the diagrams in the mobile platform, please use the desktop client or a web browser.\nwebsite=Website \ncheck4Updates=Check for updates\n');Graph.prototype.defaultThemes["default-style2"]=mxUtils.parseXml('<mxStylesheet><add as="defaultVertex"><add as="shape" value="label"/><add as="perimeter" value="rectanglePerimeter"/><add as="fontSize" value="12"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="fillColor" value="default"/><add as="strokeColor" value="default"/><add as="fontColor" value="default"/></add><add as="defaultEdge"><add as="shape" value="connector"/><add as="labelBackgroundColor" value="default"/><add as="endArrow" value="classic"/><add as="fontSize" value="11"/><add as="fontFamily" value="Helvetica"/><add as="align" value="center"/><add as="verticalAlign" value="middle"/><add as="rounded" value="1"/><add as="strokeColor" value="default"/><add as="fontColor" value="default"/></add><add as="text"><add as="fillColor" value="none"/><add as="gradientColor" value="none"/><add as="strokeColor" value="none"/><add as="align" value="left"/><add as="verticalAlign" value="top"/></add><add as="edgeLabel" extend="text"><add as="labelBackgroundColor" value="default"/><add as="fontSize" value="11"/></add><add as="label"><add as="fontStyle" value="1"/><add as="align" value="left"/><add as="verticalAlign" value="middle"/><add as="spacing" value="2"/><add as="spacingLeft" value="52"/><add as="imageWidth" value="42"/><add as="imageHeight" value="42"/><add as="rounded" value="1"/></add><add as="icon" extend="label"><add as="align" value="center"/><add as="imageAlign" value="center"/><add as="verticalLabelPosition" value="bottom"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="4"/><add as="labelBackgroundColor" value="default"/><add as="spacing" value="0"/><add as="spacingLeft" value="0"/><add as="spacingTop" value="6"/><add as="fontStyle" value="0"/><add as="imageWidth" value="48"/><add as="imageHeight" value="48"/></add><add as="swimlane"><add as="shape" value="swimlane"/><add as="fontSize" value="12"/><add as="fontStyle" value="1"/><add as="startSize" value="23"/></add><add as="group"><add as="verticalAlign" value="top"/><add as="fillColor" value="none"/><add as="strokeColor" value="none"/><add as="gradientColor" value="none"/><add as="pointerEvents" value="0"/></add><add as="ellipse"><add as="shape" value="ellipse"/><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombus"><add as="shape" value="rhombus"/><add as="perimeter" value="rhombusPerimeter"/></add><add as="triangle"><add as="shape" value="triangle"/><add as="perimeter" value="trianglePerimeter"/></add><add as="line"><add as="shape" value="line"/><add as="strokeWidth" value="4"/><add as="labelBackgroundColor" value="default"/><add as="verticalAlign" value="top"/><add as="spacingTop" value="8"/></add><add as="image"><add as="shape" value="image"/><add as="labelBackgroundColor" value="default"/><add as="verticalAlign" value="top"/><add as="verticalLabelPosition" value="bottom"/></add><add as="roundImage" extend="image"><add as="perimeter" value="ellipsePerimeter"/></add><add as="rhombusImage" extend="image"><add as="perimeter" value="rhombusPerimeter"/></add><add as="arrow"><add as="shape" value="arrow"/><add as="edgeStyle" value="none"/><add as="fillColor" value="default"/></add><add as="fancy"><add as="shadow" value="1"/><add as="glass" value="1"/></add><add as="gray" extend="fancy"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="blue" extend="fancy"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="green" extend="fancy"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="turquoise" extend="fancy"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="yellow" extend="fancy"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="orange" extend="fancy"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="red" extend="fancy"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="pink" extend="fancy"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="purple" extend="fancy"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add><add as="plain-gray"><add as="gradientColor" value="#B3B3B3"/><add as="fillColor" value="#F5F5F5"/><add as="strokeColor" value="#666666"/></add><add as="plain-blue"><add as="gradientColor" value="#7EA6E0"/><add as="fillColor" value="#DAE8FC"/><add as="strokeColor" value="#6C8EBF"/></add><add as="plain-green"><add as="gradientColor" value="#97D077"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#82B366"/></add><add as="plain-turquoise"><add as="gradientColor" value="#67AB9F"/><add as="fillColor" value="#D5E8D4"/><add as="strokeColor" value="#6A9153"/></add><add as="plain-yellow"><add as="gradientColor" value="#FFD966"/><add as="fillColor" value="#FFF2CC"/><add as="strokeColor" value="#D6B656"/></add><add as="plain-orange"><add as="gradientColor" value="#FFA500"/><add as="fillColor" value="#FFCD28"/><add as="strokeColor" value="#D79B00"/></add><add as="plain-red"><add as="gradientColor" value="#EA6B66"/><add as="fillColor" value="#F8CECC"/><add as="strokeColor" value="#B85450"/></add><add as="plain-pink"><add as="gradientColor" value="#B5739D"/><add as="fillColor" value="#E6D0DE"/><add as="strokeColor" value="#996185"/></add><add as="plain-purple"><add as="gradientColor" value="#8C6C9C"/><add as="fillColor" value="#E1D5E7"/><add as="strokeColor" value="#9673A6"/></add></mxStylesheet>').documentElement;
4012Graph.prototype.defaultThemes.darkTheme=Graph.prototype.defaultThemes["default-style2"];GraphViewer=function(b,c,e){this.init(b,c,e)};mxUtils.extend(GraphViewer,mxEventSource);GraphViewer.prototype.editBlankUrl="https://app.diagrams.net/";GraphViewer.prototype.imageBaseUrl="https://viewer.diagrams.net/";GraphViewer.prototype.toolbarHeight="BackCompat"==document.compatMode?24:26;GraphViewer.prototype.lightboxChrome=!0;GraphViewer.prototype.lightboxZIndex=999;GraphViewer.prototype.toolbarZIndex=999;GraphViewer.prototype.autoFit=!1;GraphViewer.prototype.autoCrop=!1;
4013GraphViewer.prototype.autoOrigin=!0;GraphViewer.prototype.center=!1;GraphViewer.prototype.forceCenter=!1;GraphViewer.prototype.allowZoomIn=!1;GraphViewer.prototype.allowZoomOut=!0;GraphViewer.prototype.showTitleAsTooltip=!1;GraphViewer.prototype.checkVisibleState=!0;GraphViewer.prototype.minHeight=28;GraphViewer.prototype.minWidth=100;GraphViewer.prototype.responsive=!1;
4014GraphViewer.prototype.init=function(b,c,e){this.graphConfig=null!=e?e:{};this.autoFit=null!=this.graphConfig["auto-fit"]?this.graphConfig["auto-fit"]:this.autoFit;this.autoCrop=null!=this.graphConfig["auto-crop"]?this.graphConfig["auto-crop"]:this.autoCrop;this.autoOrigin=null!=this.graphConfig["auto-origin"]?this.graphConfig["auto-origin"]:this.autoOrigin;this.allowZoomOut=null!=this.graphConfig["allow-zoom-out"]?this.graphConfig["allow-zoom-out"]:this.allowZoomOut;this.allowZoomIn=null!=this.graphConfig["allow-zoom-in"]?
4015this.graphConfig["allow-zoom-in"]:this.allowZoomIn;this.forceCenter=null!=this.graphConfig.forceCenter?this.graphConfig.forceCenter:this.forceCenter;this.center=null!=this.graphConfig.center?this.graphConfig.center:this.center||this.forceCenter;this.checkVisibleState=null!=this.graphConfig["check-visible-state"]?this.graphConfig["check-visible-state"]:this.checkVisibleState;this.toolbarItems=null!=this.graphConfig.toolbar?this.graphConfig.toolbar.split(" "):[];this.zoomEnabled=0<=mxUtils.indexOf(this.toolbarItems,
4016"zoom");this.layersEnabled=0<=mxUtils.indexOf(this.toolbarItems,"layers");this.tagsEnabled=0<=mxUtils.indexOf(this.toolbarItems,"tags");this.lightboxEnabled=0<=mxUtils.indexOf(this.toolbarItems,"lightbox");this.lightboxClickEnabled=0!=this.graphConfig.lightbox;this.initialWidth=null!=b?b.style.width:null;this.widthIsEmpty=null!=this.initialWidth?""==this.initialWidth:!0;this.currentPage=parseInt(this.graphConfig.page)||0;this.responsive=(null!=this.graphConfig.responsive?this.graphConfig.responsive:
4017this.responsive)&&!this.zoomEnabled&&!mxClient.NO_FO&&!mxClient.IS_SF;this.pageId=this.graphConfig.pageId;this.editor=null;"inline"==this.graphConfig["toolbar-position"]&&(this.minHeight+=this.toolbarHeight);if(null!=c&&(this.xmlDocument=c.ownerDocument,this.xmlNode=c,this.xml=mxUtils.getXml(c),null!=b)){var k=mxUtils.bind(this,function(){this.graph=new Graph(b);this.graph.enableFlowAnimation=!0;this.graph.defaultPageBackgroundColor="transparent";this.graph.transparentBackground=!1;if(this.responsive&&
4018this.graph.dialect==mxConstants.DIALECT_SVG){var e=this.graph.view.getDrawPane().ownerSVGElement;this.graph.view.getCanvas();null!=this.graphConfig.border?e.style.padding=this.graphConfig.border+"px":""==b.style.padding&&(e.style.padding="8px");e.style.boxSizing="border-box";e.style.overflow="visible";this.graph.fit=function(){};this.graph.sizeDidChange=function(){var b=this.view.graphBounds,c=this.view.translate;e.setAttribute("viewBox",b.x+c.x-this.panDx+" "+(b.y+c.y-this.panDy)+" "+(b.width+1)+
4019" "+(b.height+1));this.container.style.backgroundColor=e.style.backgroundColor;this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",b))}}this.graphConfig.move&&(this.graph.isMoveCellsEvent=function(b){return!0});this.lightboxClickEnabled&&(b.style.cursor="pointer");this.editor=new Editor(!0,null,null,this.graph);this.editor.editBlankUrl=this.editBlankUrl;this.graph.lightbox=!0;this.graph.centerZoom=!1;this.graph.autoExtend=!1;this.graph.autoScroll=!1;this.graph.setEnabled(!1);1==this.graphConfig["toolbar-nohide"]&&
4020(this.editor.defaultGraphOverflow="visible");this.xmlNode=this.editor.extractGraphModel(this.xmlNode,!0);this.xmlNode!=c&&(this.xml=mxUtils.getXml(this.xmlNode),this.xmlDocument=this.xmlNode.ownerDocument);var d=this;this.graph.getImageFromBundles=function(b){return d.getImageUrl(b)};mxClient.IS_SVG&&this.graph.addSvgShadow(this.graph.view.canvas.ownerSVGElement,null,!0);if("mxfile"==this.xmlNode.nodeName){var f=this.xmlNode.getElementsByTagName("diagram");if(0<f.length){if(null!=this.pageId)for(var g=
40210;g<f.length;g++)if(this.pageId==f[g].getAttribute("id")){this.currentPage=g;break}var k=this.graph.getGlobalVariable,d=this;this.graph.getGlobalVariable=function(b){var c=f[d.currentPage];return"page"==b?c.getAttribute("name")||"Page-"+(d.currentPage+1):"pagenumber"==b?d.currentPage+1:"pagecount"==b?f.length:k.apply(this,arguments)}}}this.diagrams=[];var m=null;this.selectPage=function(b){this.handlingResize||(this.currentPage=mxUtils.mod(b,this.diagrams.length),this.updateGraphXml(Editor.parseDiagramNode(this.diagrams[this.currentPage])))};
4022this.selectPageById=function(b){b=this.getIndexById(b);var c=0<=b;c&&this.selectPage(b);return c};var g=mxUtils.bind(this,function(){if(null==this.xmlNode||"mxfile"!=this.xmlNode.nodeName)this.diagrams=[];this.xmlNode!=m&&(this.diagrams=this.xmlNode.getElementsByTagName("diagram"),m=this.xmlNode)}),n=this.graph.setBackgroundImage;this.graph.setBackgroundImage=function(b){if(null!=b&&Graph.isPageLink(b.src)){var c=b.src,e=c.indexOf(",");0<e&&(e=d.getIndexById(c.substring(e+1)),0<=e&&(b=d.getImageForGraphModel(Editor.parseDiagramNode(d.diagrams[e])),
4023b.originalSrc=c))}n.apply(this,arguments)};var p=this.graph.getGraphBounds;this.graph.getGraphBounds=function(b){var c=p.apply(this,arguments);b=this.backgroundImage;if(null!=b){var d=this.view.translate,e=this.view.scale,c=mxRectangle.fromRectangle(c);c.add(new mxRectangle((d.x+b.x)*e,(d.y+b.y)*e,b.width*e,b.height*e))}return c};this.addListener("xmlNodeChanged",g);g();urlParams.page=d.currentPage;g=null;this.graph.getModel().beginUpdate();try{urlParams.nav=0!=this.graphConfig.nav?"1":"0",this.editor.setGraphXml(this.xmlNode),
4024this.graph.view.scale=this.graphConfig.zoom||1,g=this.setLayersVisible(),this.responsive||(this.graph.border=null!=this.graphConfig.border?this.graphConfig.border:8)}finally{this.graph.getModel().endUpdate()}this.responsive||(this.graph.panningHandler.isForcePanningEvent=function(b){return!mxEvent.isPopupTrigger(b.getEvent())&&"auto"==this.graph.container.style.overflow},this.graph.panningHandler.useLeftButtonForPanning=!0,this.graph.panningHandler.ignoreCell=!0,this.graph.panningHandler.usePopupTrigger=
4025!1,this.graph.panningHandler.pinchEnabled=!1);this.graph.setPanning(!1);null!=this.graphConfig.toolbar?this.addToolbar():null!=this.graphConfig.title&&this.showTitleAsTooltip&&b.setAttribute("title",this.graphConfig.title);this.responsive||this.addSizeHandler();!this.showLayers(this.graph)||this.forceCenter||this.layersEnabled&&!this.autoCrop||this.crop();this.addClickHandler(this.graph);this.graph.setTooltips(0!=this.graphConfig.tooltips);this.graph.initialViewState={translate:this.graph.view.translate.clone(),
4026scale:this.graph.view.scale};null!=g&&this.setLayersVisible(g);this.graph.customLinkClicked=function(b){if(Graph.isPageLink(b)){var c=b.indexOf(",");d.selectPageById(b.substring(c+1))||alert(mxResources.get("pageNotFound")||"Page not found")}else this.handleCustomLink(b);return!0};var v=this.graph.foldTreeCell;this.graph.foldTreeCell=mxUtils.bind(this,function(){this.treeCellFolded=!0;return v.apply(this.graph,arguments)});this.fireEvent(new mxEventObject("render"))});e=window.MutationObserver||window.WebKitMutationObserver||
4027window.MozMutationObserver;if(this.checkVisibleState&&0==b.offsetWidth&&"undefined"!==typeof e){var g=this.getObservableParent(b),p=new e(mxUtils.bind(this,function(c){0<b.offsetWidth&&(p.disconnect(),k())}));p.observe(g,{attributes:!0})}else k()}};GraphViewer.prototype.getObservableParent=function(b){for(b=b.parentNode;b!=document.body&&null!=b.parentNode&&"none"!==mxUtils.getCurrentStyle(b).display;)b=b.parentNode;return b};
4028GraphViewer.prototype.getImageUrl=function(b){null!=b&&"http://"!=b.substring(0,7)&&"https://"!=b.substring(0,8)&&"data:image"!=b.substring(0,10)&&("/"==b.charAt(0)&&(b=b.substring(1,b.length)),b=this.imageBaseUrl+b);return b};
4029GraphViewer.prototype.getImageForGraphModel=function(b){var c=Graph.createOffscreenGraph(this.graph.getStylesheet());c.getGlobalVariable=this.graph.getGlobalVariable;document.body.appendChild(c.container);b=(new mxCodec(b.ownerDocument)).decode(b).root;c.model.setRoot(b);b=c.getSvg();var e=c.getGraphBounds();document.body.removeChild(c.container);return new mxImage(Editor.createSvgDataUri(mxUtils.getXml(b)),e.width,e.height,e.x,e.y)};
4030GraphViewer.prototype.getIndexById=function(b){if(null!=this.diagrams)for(var c=0;c<this.diagrams.length;c++)if(this.diagrams[c].getAttribute("id")==b)return c;return-1};GraphViewer.prototype.setXmlNode=function(b){b=this.editor.extractGraphModel(b,!0);this.xmlDocument=b.ownerDocument;this.xml=mxUtils.getXml(b);this.xmlNode=b;this.updateGraphXml(b);this.fireEvent(new mxEventObject("xmlNodeChanged"))};
4031GraphViewer.prototype.setFileNode=function(b){null==this.xmlNode&&(this.xmlDocument=b.ownerDocument,this.xml=mxUtils.getXml(b),this.xmlNode=b);this.setGraphXml(b)};GraphViewer.prototype.updateGraphXml=function(b){this.setGraphXml(b);this.fireEvent(new mxEventObject("graphChanged"))};
4032GraphViewer.prototype.setLayersVisible=function(b){var c=!0;if(!this.autoOrigin){var e=[],k=this.graph.getModel();k.beginUpdate();try{for(var g=0;g<k.getChildCount(k.root);g++){var p=k.getChildAt(k.root,g),c=c&&k.isVisible(p);e.push(k.isVisible(p));k.setVisible(p,null!=b?b[g]:!0)}}finally{k.endUpdate()}}return c?null:e};
4033GraphViewer.prototype.setGraphXml=function(b){if(null!=this.graph){this.graph.view.translate=new mxPoint;this.graph.view.scale=1;var c=null;this.graph.getModel().beginUpdate();try{this.graph.getModel().clear(),this.editor.setGraphXml(b),c=this.setLayersVisible(!0)}finally{this.graph.getModel().endUpdate()}this.responsive||(this.widthIsEmpty?(this.graph.container.style.width="",this.graph.container.style.height=""):this.graph.container.style.width=this.initialWidth,this.positionGraph());this.graph.initialViewState=
4034{translate:this.graph.view.translate.clone(),scale:this.graph.view.scale};c&&this.setLayersVisible(c)}};
4035GraphViewer.prototype.addSizeHandler=function(){var b=this.graph.container,c=this.graph.getGraphBounds(),e=!1;b.style.overflow=1!=this.graphConfig["toolbar-nohide"]?"hidden":"visible";var k=mxUtils.bind(this,function(){if(!e){e=!0;var c=this.graph.getGraphBounds();b.style.overflow=1!=this.graphConfig["toolbar-nohide"]?c.width+2*this.graph.border>b.offsetWidth-2?"auto":"hidden":"visible";if(null!=this.toolbar&&1!=this.graphConfig["toolbar-nohide"]){var c=b.getBoundingClientRect(),f=mxUtils.getScrollOrigin(document.body),
4036f="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-f.x,top:-f.y},c={left:c.left-f.left,top:c.top-f.top,bottom:c.bottom-f.top,right:c.right-f.left};this.toolbar.style.left=c.left+"px";"bottom"==this.graphConfig["toolbar-position"]?this.toolbar.style.top=c.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(this.toolbar.style.width=Math.max(this.minToolbarWidth,b.offsetWidth)+"px",this.toolbar.style.top=c.top+1+"px"):this.toolbar.style.top=c.top+"px"}else null!=
4037this.toolbar&&(this.toolbar.style.width=Math.max(this.minToolbarWidth,b.offsetWidth)+"px");this.treeCellFolded&&(this.treeCellFolded=!1,this.positionGraph(this.graph.view.translate),this.graph.initialViewState.translate=this.graph.view.translate.clone());e=!1}}),g=null;this.handlingResize=!1;this.fitGraph=mxUtils.bind(this,function(c){var d=b.offsetWidth;d==g||this.handlingResize||(this.handlingResize=!0,"auto"==b.style.overflow&&(b.style.overflow="hidden"),this.graph.maxFitScale=null!=c?c:this.graphConfig.zoom||
4038(this.allowZoomIn?null:1),this.graph.fit(null,null,null,null,null,!0),(this.center||0==this.graphConfig.resize&&""!=b.style.height)&&this.graph.center(),this.graph.maxFitScale=null,0==this.graphConfig.resize&&""!=b.style.height||this.updateContainerHeight(b,Math.max(this.minHeight,this.graph.getGraphBounds().height+2*this.graph.border+1)),this.graph.initialViewState={translate:this.graph.view.translate.clone(),scale:this.graph.view.scale},g=d,window.setTimeout(mxUtils.bind(this,function(){this.handlingResize=
4039!1}),0))});GraphViewer.useResizeSensor&&(9>=document.documentMode?(mxEvent.addListener(window,"resize",k),this.graph.addListener("size",k)):new ResizeSensor(this.graph.container,k));if(this.graphConfig.resize||(this.zoomEnabled||!this.autoFit)&&0!=this.graphConfig.resize)this.graph.minimumContainerSize=new mxRectangle(0,0,this.minWidth,this.minHeight),this.graph.resizeContainer=!0;else if(!this.widthIsEmpty||""!=b.style.height&&this.autoFit||this.updateContainerWidth(b,c.width+2*this.graph.border),
40400==this.graphConfig.resize&&""!=b.style.height||this.updateContainerHeight(b,Math.max(this.minHeight,c.height+2*this.graph.border+1)),!this.zoomEnabled&&this.autoFit){var p=g=null,k=mxUtils.bind(this,function(){window.clearTimeout(p);this.handlingResize||(p=window.setTimeout(mxUtils.bind(this,this.fitGraph),100))});GraphViewer.useResizeSensor&&(9>=document.documentMode?mxEvent.addListener(window,"resize",k):new ResizeSensor(this.graph.container,k))}else 9>=document.documentMode||this.graph.addListener("size",
4041k);var t=mxUtils.bind(this,function(d){var e=b.style.minWidth;this.widthIsEmpty&&(b.style.minWidth="100%");var k=null!=this.graphConfig["max-height"]?this.graphConfig["max-height"]:""!=b.style.height&&this.autoFit?b.offsetHeight:void 0;0<b.offsetWidth&&null==d&&this.allowZoomOut&&(this.allowZoomIn||c.width+2*this.graph.border>b.offsetWidth||c.height+2*this.graph.border>k)?(d=null,null!=k&&c.height+2*this.graph.border>k-2&&(d=(k-2*this.graph.border-2)/c.height),this.fitGraph(d)):this.widthIsEmpty||
4042null!=d||0!=this.graphConfig.resize||""==b.style.height?(d=null!=d?d:new mxPoint,this.graph.view.setTranslate(Math.floor(this.graph.border-c.x/this.graph.view.scale)+d.x,Math.floor(this.graph.border-c.y/this.graph.view.scale)+d.y),g=b.offsetWidth):this.graph.center((!this.widthIsEmpty||c.width<this.minWidth)&&1!=this.graphConfig.resize);b.style.minWidth=e});8==document.documentMode?window.setTimeout(t,0):t();this.positionGraph=function(b){c=this.graph.getGraphBounds();g=null;t(b)}};
4043GraphViewer.prototype.crop=function(){var b=this.graph,c=b.getGraphBounds(),e=b.border,k=b.view.scale;b.view.setTranslate(null!=c.x?Math.floor(b.view.translate.x-c.x/k+e):e,null!=c.y?Math.floor(b.view.translate.y-c.y/k+e):e)};GraphViewer.prototype.updateContainerWidth=function(b,c){b.style.width=c+"px"};GraphViewer.prototype.updateContainerHeight=function(b,c){if(this.forceCenter||this.zoomEnabled||!this.autoFit||"BackCompat"==document.compatMode||8==document.documentMode)b.style.height=c+"px"};
4044GraphViewer.prototype.showLayers=function(b,c){var e=this.graphConfig.layers,e=null!=e&&0<e.length?e.split(" "):[],k=this.graphConfig.layerIds,g=null!=k&&0<k.length,p=!1;if(0<e.length||g||null!=c){var t=null!=c?c.getModel():null,p=b.getModel();p.beginUpdate();try{var d=p.getChildCount(p.root);if(null==t){var t=!1,f={};if(g)for(var l=0;l<k.length;l++){var q=p.getCell(k[l]);null!=q&&(t=!0,f[q.id]=!0)}else for(l=0;l<e.length;l++)q=p.getChildAt(p.root,parseInt(e[l])),null!=q&&(t=!0,f[q.id]=!0);for(l=
40450;t&&l<d;l++)q=p.getChildAt(p.root,l),p.setVisible(q,f[q.id]||!1)}else for(l=0;l<d;l++)p.setVisible(p.getChildAt(p.root,l),t.isVisible(t.getChildAt(t.root,l)))}finally{p.endUpdate()}p=!0}return p};
4046GraphViewer.prototype.addToolbar=function(){function b(b,c,d,f){var g=document.createElement("div");g.style.borderRight="1px solid #d0d0d0";g.style.padding="3px 6px 3px 6px";mxEvent.addListener(g,"click",b);null!=d&&g.setAttribute("title",d);g.style.display="inline-block";b=document.createElement("img");b.setAttribute("border","0");b.setAttribute("src",c);b.style.width="18px";null==f||f?(mxEvent.addListener(g,"mouseenter",function(){g.style.backgroundColor="#ddd"}),mxEvent.addListener(g,"mouseleave",
4047function(){g.style.backgroundColor="#eee"}),mxUtils.setOpacity(b,60),g.style.cursor="pointer"):mxUtils.setOpacity(g,30);g.appendChild(b);e.appendChild(g);q++;return g}var c=this.graph.container;"bottom"==this.graphConfig["toolbar-position"]?c.style.marginBottom=this.toolbarHeight+"px":"inline"!=this.graphConfig["toolbar-position"]&&(c.style.marginTop=this.toolbarHeight+"px");var e=c.ownerDocument.createElement("div");e.style.position="absolute";e.style.overflow="hidden";e.style.boxSizing="border-box";
4048e.style.whiteSpace="nowrap";e.style.textAlign="left";e.style.zIndex=this.toolbarZIndex;e.style.backgroundColor="#eee";e.style.height=this.toolbarHeight+"px";this.toolbar=e;if("inline"==this.graphConfig["toolbar-position"]){mxUtils.setPrefixedStyle(e.style,"transition","opacity 100ms ease-in-out");mxUtils.setOpacity(e,30);var k=null,g=null,p=mxUtils.bind(this,function(b){null!=k&&(window.clearTimeout(k),fadeThead=null);null!=g&&(window.clearTimeout(g),fadeThead2=null);k=window.setTimeout(mxUtils.bind(this,
4049function(){mxUtils.setOpacity(e,0);k=null;g=window.setTimeout(mxUtils.bind(this,function(){e.style.display="none";g=null}),100)}),b||200)}),t=mxUtils.bind(this,function(b){null!=k&&(window.clearTimeout(k),fadeThead=null);null!=g&&(window.clearTimeout(g),fadeThead2=null);e.style.display="";mxUtils.setOpacity(e,b||30)});mxEvent.addListener(this.graph.container,mxClient.IS_POINTER?"pointermove":"mousemove",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||(t(30),p())}));mxEvent.addListener(e,mxClient.IS_POINTER?
4050"pointermove":"mousemove",function(b){mxEvent.consume(b)});mxEvent.addListener(e,"mouseenter",mxUtils.bind(this,function(b){t(100)}));mxEvent.addListener(e,"mousemove",mxUtils.bind(this,function(b){t(100);mxEvent.consume(b)}));mxEvent.addListener(e,"mouseleave",mxUtils.bind(this,function(b){mxEvent.isTouchEvent(b)||t(30)}));var d=this.graph,f=d.getTolerance();d.addMouseListener({startX:0,startY:0,scrollLeft:0,scrollTop:0,mouseDown:function(b,c){this.startX=c.getGraphX();this.startY=c.getGraphY();
4051this.scrollLeft=d.container.scrollLeft;this.scrollTop=d.container.scrollTop},mouseMove:function(b,c){},mouseUp:function(b,c){mxEvent.isTouchEvent(c.getEvent())&&Math.abs(this.scrollLeft-d.container.scrollLeft)<f&&Math.abs(this.scrollTop-d.container.scrollTop)<f&&Math.abs(this.startX-c.getGraphX())<f&&Math.abs(this.startY-c.getGraphY())<f&&(0<parseFloat(e.style.opacity||0)?p():t(30))}})}for(var l=this.toolbarItems,q=0,m=null,n=null,u=null,v=null,y=0;y<l.length;y++){var x=l[y];if("pages"==x){v=c.ownerDocument.createElement("div");
4052v.style.cssText="display:inline-block;position:relative;top:5px;padding:0 4px 0 4px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;;cursor:default;";mxUtils.setOpacity(v,70);var D=b(mxUtils.bind(this,function(){this.selectPage(this.currentPage-1)}),Editor.previousImage,mxResources.get("previousPage")||"Previous Page");D.style.borderRightStyle="none";D.style.paddingLeft="0px";D.style.paddingRight="0px";e.appendChild(v);var I=b(mxUtils.bind(this,function(){this.selectPage(this.currentPage+
40531)}),Editor.nextImage,mxResources.get("nextPage")||"Next Page");I.style.paddingLeft="0px";I.style.paddingRight="0px";x=mxUtils.bind(this,function(){v.innerHTML="";mxUtils.write(v,this.currentPage+1+" / "+this.diagrams.length);v.style.display=1<this.diagrams.length?"inline-block":"none";D.style.display=v.style.display;I.style.display=v.style.display});this.addListener("graphChanged",x);x()}else if("zoom"==x)this.zoomEnabled&&(b(mxUtils.bind(this,function(){this.graph.zoomOut()}),Editor.zoomOutImage,
4054mxResources.get("zoomOut")||"Zoom Out"),b(mxUtils.bind(this,function(){this.graph.zoomIn()}),Editor.zoomInImage,mxResources.get("zoomIn")||"Zoom In"),b(mxUtils.bind(this,function(){this.graph.view.scaleAndTranslate(this.graph.initialViewState.scale,this.graph.initialViewState.translate.x,this.graph.initialViewState.translate.y)}),Editor.zoomFitImage,mxResources.get("fit")||"Fit"));else if("layers"==x){if(this.layersEnabled){var B=this.graph.getModel(),F=b(mxUtils.bind(this,function(b){if(null!=m)m.parentNode.removeChild(m),
4055m=null;else{m=this.graph.createLayersDialog(mxUtils.bind(this,function(){if(this.autoCrop)this.crop();else if(this.autoOrigin){var b=this.graph.getGraphBounds(),c=this.graph.view;0>b.x||0>b.y?(this.crop(),this.graph.originalViewState=this.graph.initialViewState,this.graph.initialViewState={translate:c.translate.clone(),scale:c.scale}):null!=this.graph.originalViewState&&0<b.x/c.scale+this.graph.originalViewState.translate.x-c.translate.x&&0<b.y/c.scale+this.graph.originalViewState.translate.y-c.translate.y&&
4056(c.setTranslate(this.graph.originalViewState.translate.x,this.graph.originalViewState.translate.y),this.graph.originalViewState=null,this.graph.initialViewState={translate:c.translate.clone(),scale:c.scale})}}));mxEvent.addListener(m,"mouseleave",function(){m.parentNode.removeChild(m);m=null});b=F.getBoundingClientRect();m.style.width="140px";m.style.padding="2px 0px 2px 0px";m.style.border="1px solid #d0d0d0";m.style.backgroundColor="#eee";m.style.fontFamily=Editor.defaultHtmlFont;m.style.fontSize=
4057"11px";m.style.zIndex=this.toolbarZIndex+1;mxUtils.setOpacity(m,80);var c=mxUtils.getDocumentScrollOrigin(document);m.style.left=c.x+b.left-1+"px";m.style.top=c.y+b.bottom-2+"px";document.body.appendChild(m)}}),Editor.layersImage,mxResources.get("layers")||"Layers");B.addListener(mxEvent.CHANGE,function(){F.style.display=1<B.getChildCount(B.root)?"inline-block":"none"});F.style.display=1<B.getChildCount(B.root)?"inline-block":"none"}}else if("tags"==x){if(this.tagsEnabled){var M=b(mxUtils.bind(this,
4058function(b){null==n&&(n=this.graph.createTagsDialog(mxUtils.bind(this,function(){return!0})),n.div.getElementsByTagName("div")[0].style.position="",n.div.style.maxHeight="160px",n.div.style.maxWidth="120px",n.div.style.padding="2px",n.div.style.overflow="auto",n.div.style.height="auto",n.div.style.position="fixed",n.div.style.fontFamily=Editor.defaultHtmlFont,n.div.style.fontSize="11px",n.div.style.backgroundColor="#eee",n.div.style.color="#000",n.div.style.border="1px solid #d0d0d0",n.div.style.zIndex=
4059this.toolbarZIndex+1,mxUtils.setOpacity(n.div,80));if(null!=u)u.parentNode.removeChild(u),u=null;else{u=n.div;mxEvent.addListener(u,"mouseleave",function(){u.parentNode.removeChild(u);u=null});b=M.getBoundingClientRect();var c=mxUtils.getDocumentScrollOrigin(document);u.style.left=c.x+b.left-1+"px";u.style.top=c.y+b.bottom-2+"px";document.body.appendChild(u);n.refresh()}}),Editor.tagsImage,mxResources.get("tags")||"Tags");B.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){M.style.display=0<
4060this.graph.getAllTags().length?"inline-block":"none"}));M.style.display=0<this.graph.getAllTags().length?"inline-block":"none"}}else"lightbox"==x?this.lightboxEnabled&&b(mxUtils.bind(this,function(){this.showLightbox()}),Editor.fullscreenImage,mxResources.get("fullscreen")||"Fullscreen"):null!=this.graphConfig["toolbar-buttons"]&&(x=this.graphConfig["toolbar-buttons"][x],null!=x&&(x.elem=b(null==x.enabled||x.enabled?x.handler:function(){},x.image,x.title,x.enabled)))}null!=this.graph.minimumContainerSize&&
4061(this.graph.minimumContainerSize.width=34*q);null!=this.graphConfig.title&&(l=c.ownerDocument.createElement("div"),l.style.cssText="display:inline-block;position:relative;padding:3px 6px 0 6px;vertical-align:top;font-family:Helvetica,Arial;font-size:12px;top:4px;cursor:default;",l.setAttribute("title",this.graphConfig.title),mxUtils.write(l,this.graphConfig.title),mxUtils.setOpacity(l,70),e.appendChild(l),this.filename=l);this.minToolbarWidth=34*q;var E=c.style.border,K=mxUtils.bind(this,function(){e.style.width=
4062"inline"==this.graphConfig["toolbar-position"]?"auto":Math.max(this.minToolbarWidth,c.offsetWidth)+"px";e.style.border="1px solid #d0d0d0";if(1!=this.graphConfig["toolbar-nohide"]){var b=c.getBoundingClientRect(),d=mxUtils.getScrollOrigin(document.body),d="relative"===document.body.style.position?document.body.getBoundingClientRect():{left:-d.x,top:-d.y},b={left:b.left-d.left,top:b.top-d.top,bottom:b.bottom-d.top,right:b.right-d.left};e.style.left=b.left+"px";"bottom"==this.graphConfig["toolbar-position"]?
4063e.style.top=b.bottom-1+"px":"inline"!=this.graphConfig["toolbar-position"]?(e.style.marginTop=-this.toolbarHeight+"px",e.style.top=b.top+1+"px"):e.style.top=b.top+"px";"1px solid transparent"==E&&(c.style.border="1px solid #d0d0d0");document.body.appendChild(e);var f=mxUtils.bind(this,function(){null!=e.parentNode&&e.parentNode.removeChild(e);null!=m&&(m.parentNode.removeChild(m),m=null);c.style.border=E});mxEvent.addListener(document,"mousemove",function(b){for(b=mxEvent.getSource(b);null!=b;){if(b==
4064c||b==e||b==m)return;b=b.parentNode}f()});mxEvent.addListener(document.body,"mouseleave",function(b){f()})}else e.style.top=-this.toolbarHeight+"px",c.appendChild(e)});1!=this.graphConfig["toolbar-nohide"]?mxEvent.addListener(c,"mouseenter",K):K();this.responsive&&"undefined"!==typeof ResizeObserver&&(new ResizeObserver(function(){null!=e.parentNode&&K()})).observe(c)};
4065GraphViewer.prototype.disableButton=function(b){var c=this.graphConfig["toolbar-buttons"][b];null!=c&&(mxUtils.setOpacity(c.elem,30),mxEvent.removeListener(c.elem,"click",c.handler),mxEvent.addListener(c.elem,"mouseenter",function(){c.elem.style.backgroundColor="#eee"}))};
4066GraphViewer.prototype.addClickHandler=function(b,c){b.linkPolicy=this.graphConfig.target||b.linkPolicy;b.addClickHandler(this.graphConfig.highlight,mxUtils.bind(this,function(e,k){if(null==k)for(var g=mxEvent.getSource(e);g!=b.container&&null!=g&&null==k;)"a"==g.nodeName.toLowerCase()&&(k=g.getAttribute("href")),g=g.parentNode;null!=c?null==k||b.isCustomLink(k)?mxEvent.consume(e):b.isExternalProtocol(k)||b.isBlankLink(k)||window.setTimeout(function(){c.destroy()},0):null!=k&&null==c&&b.isCustomLink(k)&&
4067(mxEvent.isTouchEvent(e)||!mxEvent.isPopupTrigger(e))&&b.customLinkClicked(k)&&(mxUtils.clearSelection(),mxEvent.consume(e))}),mxUtils.bind(this,function(b){null!=c||!this.lightboxClickEnabled||mxEvent.isTouchEvent(b)&&0!=this.toolbarItems.length||this.showLightbox()}))};
4068GraphViewer.prototype.showLightbox=function(b,c,e){if("open"==this.graphConfig.lightbox||window.self!==window.top)if(null==this.lightboxWindow||this.lightboxWindow.closed){b=null!=b?b:null!=this.graphConfig.editable?this.graphConfig.editable:!0;e={client:1,target:null!=e?e:"blank"};b&&(e.edit=this.graphConfig.edit||"_blank");if(null!=c?c:1)e.close=1;this.layersEnabled&&(e.layers=1);this.tagsEnabled&&(e.tags={});null!=this.graphConfig&&0!=this.graphConfig.nav&&(e.nav=1);null!=this.graphConfig&&null!=
4069this.graphConfig.highlight&&(e.highlight=this.graphConfig.highlight.substring(1));null!=this.currentPage&&0<this.currentPage&&(e.page=this.currentPage);"undefined"!==typeof window.postMessage&&(null==document.documentMode||10<=document.documentMode)?null==this.lightboxWindow&&mxEvent.addListener(window,"message",mxUtils.bind(this,function(b){"ready"==b.data&&b.source==this.lightboxWindow&&this.lightboxWindow.postMessage(this.xml,"*")})):e.data=encodeURIComponent(this.xml);"1"==urlParams.dev&&(e.dev=
4070"1");this.lightboxWindow=window.open(("1"!=urlParams.dev?EditorUi.lightboxHost:"https://test.draw.io")+"/#P"+encodeURIComponent(JSON.stringify(e)))}else this.lightboxWindow.focus();else this.showLocalLightbox()};
4071GraphViewer.prototype.showLocalLightbox=function(){mxUtils.getDocumentScrollOrigin(document);var b=document.createElement("div");b.style.cssText="position:fixed;top:0;left:0;bottom:0;right:0;";b.style.zIndex=this.lightboxZIndex;b.style.backgroundColor="#000000";mxUtils.setOpacity(b,70);document.body.appendChild(b);var c=document.createElement("img");c.setAttribute("border","0");c.setAttribute("src",Editor.closeBlackImage);c.style.cssText="position:fixed;top:32px;right:32px;";c.style.cursor="pointer";
4072mxEvent.addListener(c,"click",function(){k.destroy()});urlParams.pages="1";urlParams.page=this.currentPage;urlParams["page-id"]=this.graphConfig.pageId;urlParams["layer-ids"]=null!=this.graphConfig.layerIds&&0<this.graphConfig.layerIds.length?this.graphConfig.layerIds.join(" "):null;urlParams.nav=0!=this.graphConfig.nav?"1":"0";urlParams.layers=this.layersEnabled?"1":"0";this.tagsEnabled&&(urlParams.tags="{}");if(null==document.documentMode||10<=document.documentMode)Editor.prototype.editButtonLink=
4073this.graphConfig.edit,Editor.prototype.editButtonFunc=this.graphConfig.editFunc;EditorUi.prototype.updateActionStates=function(){};EditorUi.prototype.addBeforeUnloadListener=function(){};EditorUi.prototype.addChromelessClickHandler=function(){};var e=Graph.prototype.shadowId;Graph.prototype.shadowId="lightboxDropShadow";var k=new EditorUi(new Editor(!0),document.createElement("div"),!0);k.editor.editBlankUrl=this.editBlankUrl;k.editor.graph.shadowId="lightboxDropShadow";Graph.prototype.shadowId=e;
4074k.refresh=function(){};var g=mxUtils.bind(this,function(b){27==b.keyCode&&k.destroy()}),p=k.destroy;k.destroy=function(){mxEvent.removeListener(document.documentElement,"keydown",g);document.body.removeChild(b);document.body.removeChild(c);document.body.style.overflow="auto";GraphViewer.resizeSensorEnabled=!0;p.apply(this,arguments)};var t=k.editor.graph,d=t.container;d.style.overflow="hidden";this.lightboxChrome?(d.style.border="1px solid #c0c0c0",d.style.margin="40px",mxEvent.addListener(document.documentElement,
4075"keydown",g)):(b.style.display="none",c.style.display="none");var f=this;t.getImageFromBundles=function(b){return f.getImageUrl(b)};var l=k.createTemporaryGraph;k.createTemporaryGraph=function(){var b=l.apply(this,arguments);b.getImageFromBundles=function(b){return f.getImageUrl(b)};return b};this.graphConfig.move&&(t.isMoveCellsEvent=function(b){return!0});mxUtils.setPrefixedStyle(d.style,"border-radius","4px");d.style.position="fixed";GraphViewer.resizeSensorEnabled=!1;document.body.style.overflow=
4076"hidden";mxClient.IS_SF||mxClient.IS_EDGE||(mxUtils.setPrefixedStyle(d.style,"transform","rotateY(90deg)"),mxUtils.setPrefixedStyle(d.style,"transition","all .25s ease-in-out"));this.addClickHandler(t,k);window.setTimeout(mxUtils.bind(this,function(){d.style.outline="none";d.style.zIndex=this.lightboxZIndex;c.style.zIndex=this.lightboxZIndex;document.body.appendChild(d);document.body.appendChild(c);k.setFileData(this.xml);mxUtils.setPrefixedStyle(d.style,"transform","rotateY(0deg)");k.chromelessToolbar.style.bottom=
4077"60px";k.chromelessToolbar.style.zIndex=this.lightboxZIndex;document.body.appendChild(k.chromelessToolbar);k.getEditBlankXml=mxUtils.bind(this,function(){return this.xml});k.lightboxFit();k.chromelessResize();this.showLayers(t,this.graph);mxEvent.addListener(b,"click",function(){k.destroy()})}),0);return k};
4078GraphViewer.prototype.updateTitle=function(b){b=b||"";this.showTitleAsTooltip&&null!=this.graph&&null!=this.graph.container&&this.graph.container.setAttribute("title",b);null!=this.filename&&(this.filename.innerHTML="",mxUtils.write(this.filename,b),this.filename.setAttribute("title",b))};
4079GraphViewer.processElements=function(b){mxUtils.forEach(GraphViewer.getElementsByClassName(b||"mxgraph"),function(b){try{b.innerHTML="",GraphViewer.createViewerForElement(b)}catch(e){b.innerHTML=e.message,null!=window.console&&console.error(e)}})};
4080GraphViewer.getElementsByClassName=function(b){if(document.getElementsByClassName){var c=document.getElementsByClassName(b);b=[];for(var e=0;e<c.length;e++)b.push(c[e]);return b}for(var k=document.getElementsByTagName("*"),c=[],e=0;e<k.length;e++){var g=k[e].className;null!=g&&0<g.length&&(g=g.split(" "),0<=mxUtils.indexOf(g,b)&&c.push(k[e]))}return c};
4081GraphViewer.createViewerForElement=function(b,c){var e=b.getAttribute("data-mxgraph");if(null!=e){var k=JSON.parse(e),g=function(e){e=mxUtils.parseXml(e);e=new GraphViewer(b,e.documentElement,k);null!=c&&c(e)};null!=k.url?GraphViewer.getUrl(k.url,function(b){g(b)}):g(k.xml)}};
4082GraphViewer.initCss=function(){try{var b=document.createElement("style");b.type="text/css";b.innerHTML="div.mxTooltip {\n-webkit-box-shadow: 3px 3px 12px #C0C0C0;\n-moz-box-shadow: 3px 3px 12px #C0C0C0;\nbox-shadow: 3px 3px 12px #C0C0C0;\nbackground: #FFFFCC;\nborder-style: solid;\nborder-width: 1px;\nborder-color: black;\nfont-family: Arial;\nfont-size: 8pt;\nposition: absolute;\ncursor: default;\npadding: 4px;\ncolor: black;}\ntd.mxPopupMenuIcon div {\nwidth:16px;\nheight:16px;}\nhtml div.mxPopupMenu {\n-webkit-box-shadow:2px 2px 3px #d5d5d5;\n-moz-box-shadow:2px 2px 3px #d5d5d5;\nbox-shadow:2px 2px 3px #d5d5d5;\n_filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=2, OffY=2, Color='#d0d0d0',Positive='true');\nbackground:white;\nposition:absolute;\nborder:3px solid #e7e7e7;\npadding:3px;}\nhtml table.mxPopupMenu {\nborder-collapse:collapse;\nmargin:0px;}\nhtml td.mxPopupMenuItem {\npadding:7px 30px 7px 30px;\nfont-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;\nfont-size:10pt;}\nhtml td.mxPopupMenuIcon {\nbackground-color:white;\npadding:0px;}\ntd.mxPopupMenuIcon .geIcon {\npadding:2px;\npadding-bottom:4px;\nmargin:2px;\nborder:1px solid transparent;\nopacity:0.5;\n_width:26px;\n_height:26px;}\ntd.mxPopupMenuIcon .geIcon:hover {\nborder:1px solid gray;\nborder-radius:2px;\nopacity:1;}\nhtml tr.mxPopupMenuItemHover {\nbackground-color: #eeeeee;\ncolor: black;}\ntable.mxPopupMenu hr {\ncolor:#cccccc;\nbackground-color:#cccccc;\nborder:none;\nheight:1px;}\ntable.mxPopupMenu tr {\tfont-size:4pt;}\n.geDialog { font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;\nfont-size:10pt;\nborder:none;\nmargin:0px;}\n.geDialog {\tposition:absolute;\tbackground:white;\toverflow:hidden;\tpadding:30px;\tborder:1px solid #acacac;\t-webkit-box-shadow:0px 0px 2px 2px #d5d5d5;\t-moz-box-shadow:0px 0px 2px 2px #d5d5d5;\tbox-shadow:0px 0px 2px 2px #d5d5d5;\t_filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=2, OffY=2, Color='#d5d5d5', Positive='true');\tz-index: 2;}.geDialogClose {\tposition:absolute;\twidth:9px;\theight:9px;\topacity:0.5;\tcursor:pointer;\t_filter:alpha(opacity=50);}.geDialogClose:hover {\topacity:1;}.geDialogTitle {\tbox-sizing:border-box;\twhite-space:nowrap;\tbackground:rgb(229, 229, 229);\tborder-bottom:1px solid rgb(192, 192, 192);\tfont-size:15px;\tfont-weight:bold;\ttext-align:center;\tcolor:rgb(35, 86, 149);}.geDialogFooter {\tbackground:whiteSmoke;\twhite-space:nowrap;\ttext-align:right;\tbox-sizing:border-box;\tborder-top:1px solid #e5e5e5;\tcolor:darkGray;}\n.geBtn {\tbackground-color: #f5f5f5;\tborder-radius: 2px;\tborder: 1px solid #d8d8d8;\tcolor: #333;\tcursor: default;\tfont-size: 11px;\tfont-weight: bold;\theight: 29px;\tline-height: 27px;\tmargin: 0 0 0 8px;\tmin-width: 72px;\toutline: 0;\tpadding: 0 8px;\tcursor: pointer;}.geBtn:hover, .geBtn:focus {\t-webkit-box-shadow: 0px 1px 1px rgba(0,0,0,0.1);\t-moz-box-shadow: 0px 1px 1px rgba(0,0,0,0.1);\tbox-shadow: 0px 1px 1px rgba(0,0,0,0.1);\tborder: 1px solid #c6c6c6;\tbackground-color: #f8f8f8;\tbackground-image: linear-gradient(#f8f8f8 0px,#f1f1f1 100%);\tcolor: #111;}.geBtn:disabled {\topacity: .5;}.gePrimaryBtn {\tbackground-color: #4d90fe;\tbackground-image: linear-gradient(#4d90fe 0px,#4787ed 100%);\tborder: 1px solid #3079ed;\tcolor: #fff;}.gePrimaryBtn:hover, .gePrimaryBtn:focus {\tbackground-color: #357ae8;\tbackground-image: linear-gradient(#4d90fe 0px,#357ae8 100%);\tborder: 1px solid #2f5bb7;\tcolor: #fff;}.gePrimaryBtn:disabled {\topacity: .5;}";document.getElementsByTagName("head")[0].appendChild(b)}catch(c){}};
4083GraphViewer.cachedUrls={};GraphViewer.getUrl=function(b,c,e){if(null!=GraphViewer.cachedUrls[b])c(GraphViewer.cachedUrls[b]);else{var k=null!=navigator.userAgent&&0<navigator.userAgent.indexOf("MSIE 9")?new XDomainRequest:new XMLHttpRequest;k.open("GET",b);k.onload=function(){c(null!=k.getText?k.getText():k.responseText)};k.onerror=e;k.send()}};GraphViewer.resizeSensorEnabled=!0;GraphViewer.useResizeSensor=!0;
4084(function(){var b=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(b){return window.setTimeout(b,20)},c=function(e,k){function g(){this.q=[];this.add=function(b){this.q.push(b)};var b,c;this.call=function(){b=0;for(c=this.q.length;b<c;b++)this.q[b].call()}}function p(b,c){return b.currentStyle?b.currentStyle[c]:window.getComputedStyle?window.getComputedStyle(b,null).getPropertyValue(c):b.style[c]}function t(c,d){if(!c.resizedAttached)c.resizedAttached=
4085new g,c.resizedAttached.add(d);else if(c.resizedAttached){c.resizedAttached.add(d);return}c.resizeSensor=document.createElement("div");c.resizeSensor.className="resize-sensor";c.resizeSensor.style.cssText="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;";c.resizeSensor.innerHTML='<div class="resize-sensor-expand" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s;"></div></div><div class="resize-sensor-shrink" style="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;"><div style="position: absolute; left: 0; top: 0; transition: 0s; width: 200%; height: 200%"></div></div>';
4086c.appendChild(c.resizeSensor);"static"==p(c,"position")&&(c.style.position="relative");var e=c.resizeSensor.childNodes[0],f=e.childNodes[0],k=c.resizeSensor.childNodes[1],l=function(){f.style.width="100000px";f.style.height="100000px";e.scrollLeft=1E5;e.scrollTop=1E5;k.scrollLeft=1E5;k.scrollTop=1E5};l();var m=!1,n=function(){c.resizedAttached&&(m&&(c.resizedAttached.call(),m=!1),b(n))};b(n);var q,t,M,E,K=function(){if((M=c.offsetWidth)!=q||(E=c.offsetHeight)!=t)m=!0,q=M,t=E;l()},C=function(b,c,d){b.attachEvent?
4087b.attachEvent("on"+c,d):b.addEventListener(c,d)};C(e,"scroll",K);C(k,"scroll",K)}var d=function(){GraphViewer.resizeSensorEnabled&&k()},f=Object.prototype.toString.call(e),l="[object Array]"===f||"[object NodeList]"===f||"[object HTMLCollection]"===f||"undefined"!==typeof jQuery&&e instanceof jQuery||"undefined"!==typeof Elements&&e instanceof Elements;if(l)for(var f=0,q=e.length;f<q;f++)t(e[f],d);else t(e,d);this.detach=function(){if(l)for(var b=0,d=e.length;b<d;b++)c.detach(e[b]);else c.detach(e)}};
4088c.detach=function(b){b.resizeSensor&&(b.removeChild(b.resizeSensor),delete b.resizeSensor,delete b.resizedAttached)};window.ResizeSensor=c})();
4089function mxBpmnShape(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxBpmnShape,mxShape);
4090mxBpmnShape.prototype.customProperties=[{name:"symbol",dispName:"Event",type:"enum",defVal:"general",enumList:[{val:"general",dispName:"General"},{val:"message",dispName:"Message"},{val:"timer",dispName:"Timer"},{val:"escalation",dispName:"Escalation"},{val:"conditional",dispName:"Conditional"},{val:"link",dispName:"Link"},{val:"error",dispName:"Error"},{val:"cancel",dispName:"Cancel"},{val:"compensation",dispName:"Compensation"},{val:"signal",dispName:"Signal"},{val:"multiple",dispName:"Multiple"},
4091{val:"parallelMultiple",dispName:"Parallel Multiple"},{val:"terminate",dispName:"Terminate"},{val:"exclusiveGw",dispName:"Exclusive Gw"},{val:"parallelGw",dispName:"Parallel Gw"},{val:"complexGw",dispName:"Complex Gw"}]},{name:"outline",dispName:"Event Type",type:"enum",defVal:"standard",enumList:[{val:"standard",dispName:"Standard"},{val:"eventInt",dispName:"Interrupting"},{val:"eventNonint",dispName:"Non-Interrupting"},{val:"catching",dispName:"Catching"},{val:"boundInt",dispName:"Bound Interrupting"},
4092{val:"boundNonint",dispName:"Bound Non-Interrupting"},{val:"throwing",dispName:"Throwing"},{val:"end",dispName:"End"},{val:"none",dispName:"None"}]},{name:"background",dispName:"Background",type:"enum",defVal:"none",enumList:[{val:"gateway",dispName:"Gateway"},{val:"none",dispName:"None"}]}];
4093mxBpmnShape.prototype.eventTypeEnum={START_STANDARD:"standard",EVENT_SP_INT:"eventInt",EVENT_SP_NONINT:"eventNonint",CATCHING:"catching",BOUND_INT:"boundInt",BOUND_NONINT:"boundNonint",THROWING:"throwing",END:"end",NONE:"none",GATEWAY:"gateway"};
4094mxBpmnShape.prototype.eventEnum={GENERAL:"general",MESSAGE:"message",TIMER:"timer",ESCALATION:"escalation",CONDITIONAL:"conditional",LINK:"link",ERROR:"error",CANCEL:"cancel",COMPENSATION:"compensation",SIGNAL:"signal",MULTIPLE:"multiple",PAR_MULTI:"parallelMultiple",TERMINATE:"terminate",GW_EXCLUSIVE:"exclusiveGw",GW_PARALLEL:"parallelGw",GW_COMPLEX:"complexGw"};mxBpmnShape.prototype.miscEnum={OUTLINE:"outline",BACKGROUND:"background",SYMBOL:"symbol",GATEWAY:"gateway"};
4095mxBpmnShape.prototype.paintVertexShape=function(a,d,e,b,c){this.redrawPath(a,d,e,b,c,mxBpmnShape.prototype.miscEnum.BACKGROUND);mxUtils.getValue(this.style,mxBpmnShape.prototype.miscEnum.BACKGROUND,mxBpmnShape.prototype.eventTypeEnum.NONE)===mxBpmnShape.prototype.eventTypeEnum.GATEWAY&&a.setShadow(!1);this.redrawPath(a,d,e,b,c,mxBpmnShape.prototype.miscEnum.OUTLINE);this.redrawPath(a,d,e,b,c,mxBpmnShape.prototype.miscEnum.SYMBOL)};
4096mxBpmnShape.prototype.redrawPath=function(a,d,e,b,c,f){var g=mxUtils.getValue(this.style,mxBpmnShape.prototype.miscEnum.BACKGROUND,mxBpmnShape.prototype.eventTypeEnum.NONE);if(f==mxBpmnShape.prototype.miscEnum.BACKGROUND){if(null!=g){var h=this.backgrounds[g];null!=h&&(a.translate(d,e),h.call(this,a,d,e,b,c,f))}}else if(f==mxBpmnShape.prototype.miscEnum.OUTLINE){g===mxBpmnShape.prototype.eventTypeEnum.GATEWAY?(a.translate(b/4,c/4),c/=2,b/=2,this.constraints=[new mxConnectionConstraint(new mxPoint(.5,
40970),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.25,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.75),!1),new mxConnectionConstraint(new mxPoint(.75,.25),!1),new mxConnectionConstraint(new mxPoint(.75,.75),!1)]):this.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,
4098.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.145,.145),!1),new mxConnectionConstraint(new mxPoint(.145,.855),!1),new mxConnectionConstraint(new mxPoint(.855,.145),!1),new mxConnectionConstraint(new mxPoint(.855,.855),!1)];var k=mxUtils.getValue(this.style,mxBpmnShape.prototype.miscEnum.OUTLINE,mxBpmnShape.prototype.eventTypeEnum.NONE);null!=k&&(h=this.outlines[k],null!=h&&h.call(this,a,d,e,b,c,g===mxBpmnShape.prototype.eventTypeEnum.GATEWAY))}else if(f==
4099mxBpmnShape.prototype.miscEnum.SYMBOL&&(g===mxBpmnShape.prototype.eventTypeEnum.GATEWAY&&(c/=2,b/=2),g=mxUtils.getValue(this.style,mxBpmnShape.prototype.miscEnum.SYMBOL,null),null!=g&&(h=this.symbols[g],null!=h))){var l=a.state.strokeColor,m=a.state.fillColor,k=mxUtils.getValue(this.style,mxBpmnShape.prototype.miscEnum.OUTLINE,mxBpmnShape.prototype.eventTypeEnum.NONE);g===mxBpmnShape.prototype.eventEnum.MESSAGE?(a.translate(.15*b,.3*c),b*=.7,c*=.4):g===mxBpmnShape.prototype.eventEnum.TIMER?(a.translate(.11*
4100b,.11*c),b*=.78,c*=.78):g===mxBpmnShape.prototype.eventEnum.ESCALATION?(a.translate(.19*b,.15*c),b*=.62,c*=.57):g===mxBpmnShape.prototype.eventEnum.CONDITIONAL?(a.translate(.3*b,.16*c),b*=.4,c*=.68):g===mxBpmnShape.prototype.eventEnum.LINK?(a.translate(.27*b,.33*c),b*=.46,c*=.34):g===mxBpmnShape.prototype.eventEnum.ERROR?(a.translate(.212*b,.243*c),b*=.58,c*=.507):g===mxBpmnShape.prototype.eventEnum.CANCEL?(a.translate(.22*b,.22*c),b*=.56,c*=.56):g===mxBpmnShape.prototype.eventEnum.COMPENSATION?(a.translate(.28*
4101b,.35*c),b*=.44,c*=.3):g===mxBpmnShape.prototype.eventEnum.SIGNAL?(a.translate(.19*b,.15*c),b*=.62,c*=.57):g===mxBpmnShape.prototype.eventEnum.MULTIPLE?(a.translate(.2*b,.19*c),b*=.6,c*=.565):g===mxBpmnShape.prototype.eventEnum.PAR_MULTI?(a.translate(.2*b,.2*c),b*=.6,c*=.6):g===mxBpmnShape.prototype.eventEnum.TERMINATE?(a.translate(.05*b,.05*c),b*=.9,c*=.9):g===mxBpmnShape.prototype.eventEnum.GW_EXCLUSIVE&&(a.translate(.12*b,0),b*=.76);var n=!1;if("star"===g)a.setFillColor(l);else if(k===mxBpmnShape.prototype.eventTypeEnum.THROWING||
4102k===mxBpmnShape.prototype.eventTypeEnum.END)a.setStrokeColor(m),a.setFillColor(l),n=!0;h.call(this,a,d,e,b,c,f,n);if("star"===g)a.setFillColor(m);else if(k===mxBpmnShape.prototype.eventTypeEnum.THROWING||k===mxBpmnShape.prototype.eventTypeEnum.END)a.setStrokeColor(l),a.setFillColor(m)}};mxBpmnShape.prototype.backgrounds={none:function(a,d,e,b,c){},gateway:function(a,d,e,b,c){a.begin();a.moveTo(b/2,0);a.lineTo(b,c/2);a.lineTo(b/2,c);a.lineTo(0,c/2);a.close();a.fillAndStroke()}};
4103mxBpmnShape.prototype.outlines={none:function(a,d,e,b,c,f){f||a.setShadow(!1)},standard:function(a,d,e,b,c,f){a.ellipse(0,0,b,c);a.fillAndStroke();f||a.setShadow(!1)},eventInt:function(a,d,e,b,c,f){a.ellipse(0,0,b,c);a.fillAndStroke();f||a.setShadow(!1)},eventNonint:function(a,d,e,b,c,f){d=a.state.dashed;a.setDashed(!0);a.ellipse(0,0,b,c);a.fillAndStroke();a.setDashed(d);f||a.setShadow(!1)},catching:function(a,d,e,b,c,f){a.ellipse(0,0,b,c);a.fillAndStroke();f||a.setShadow(!1);a.ellipse(2,2,b-4,c-
41044);a.stroke()},boundInt:function(a,d,e,b,c,f){a.ellipse(0,0,b,c);a.fillAndStroke();f||a.setShadow(!1);a.ellipse(2,2,b-4,c-4);a.stroke()},boundNonint:function(a,d,e,b,c,f){d=a.state.dashed;a.setDashed(!0);a.ellipse(0,0,b,c);a.fillAndStroke();f||a.setShadow(!1);a.ellipse(2,2,b-4,c-4);a.stroke();a.setDashed(d)},throwing:function(a,d,e,b,c,f){a.ellipse(0,0,b,c);a.fillAndStroke();f||a.setShadow(!1);a.ellipse(.02*b+2,.02*c+2,.96*b-4,.96*c-4);a.stroke()},end:function(a,d,e,b,c,f){d=a.state.strokeWidth;a.setStrokeWidth(3*
4105d);a.ellipse(0,0,b,c);a.fillAndStroke();a.setStrokeWidth(d);f||a.setShadow(!1)}};
4106mxBpmnShape.prototype.symbols={general:function(a,d,e,b,c){},message:function(a,d,e,b,c,f,g){a.rect(0,0,b,c);a.fillAndStroke();"none"===mxUtils.getValue(this.style,"fillColor","none")&&g&&a.setStrokeColor("#ffffff");a.begin();a.moveTo(0,0);a.lineTo(.5*b,.5*c);a.lineTo(b,0);a.stroke()},timer:function(a,d,e,b,c){a.ellipse(0,0,b,c);a.fillAndStroke();a.begin();a.moveTo(.5*b,0);a.lineTo(.5*b,.0642*c);a.moveTo(.7484*b,.0654*c);a.lineTo(.7126*b,.1281*c);a.moveTo(.93*b,.2471*c);a.lineTo(.8673*b,.2854*c);
4107a.moveTo(b,.5*c);a.lineTo(.9338*b,.5*c);a.moveTo(.93*b,.7509*c);a.lineTo(.8673*b,.7126*c);a.moveTo(.7484*b,.9326*c);a.lineTo(.7126*b,.8699*c);a.moveTo(.5*b,.9338*c);a.lineTo(.5*b,c);a.moveTo(.2496*b,.9325*c);a.lineTo(.2854*b,.8699*c);a.moveTo(.068*b,.7509*c);a.lineTo(.1307*b,.7126*c);a.moveTo(0,.5*c);a.lineTo(.0642*b,.5*c);a.moveTo(.068*b,.2471*c);a.lineTo(.1307*b,.2854*c);a.moveTo(.2496*b,.0654*c);a.lineTo(.2854*b,.1281*c);a.moveTo(.5246*b,.0706*c);a.lineTo(.5*b,.5*c);a.lineTo(.7804*b,.5118*c);a.stroke()},
4108escalation:function(a,d,e,b,c){a.begin();a.moveTo(0,c);a.lineTo(.5*b,0);a.lineTo(b,c);a.lineTo(.5*b,.5*c);a.close();a.fillAndStroke()},conditional:function(a,d,e,b,c){a.rect(0,0,b,c);a.fillAndStroke();a.begin();a.moveTo(0,.1027*c);a.lineTo(.798*b,.1027*c);a.moveTo(0,.3669*c);a.lineTo(.798*b,.3669*c);a.moveTo(0,.6311*c);a.lineTo(.798*b,.6311*c);a.moveTo(0,.8953*c);a.lineTo(.798*b,.8953*c);a.stroke()},link:function(a,d,e,b,c){a.begin();a.moveTo(0,.76*c);a.lineTo(0,.24*c);a.lineTo(.63*b,.24*c);a.lineTo(.63*
4109b,0);a.lineTo(b,.5*c);a.lineTo(.63*b,c);a.lineTo(.63*b,.76*c);a.close();a.fillAndStroke()},error:function(a,d,e,b,c,f,g){a.begin();a.moveTo(0,c);a.lineTo(.3287*b,.123*c);a.lineTo(.6194*b,.6342*c);a.lineTo(b,0);a.lineTo(.6625*b,.939*c);a.lineTo(.3717*b,.5064*c);a.close();g?a.fill():a.fillAndStroke()},cancel:function(a,d,e,b,c){a.begin();a.moveTo(.1051*b,0);a.lineTo(.5*b,.3738*c);a.lineTo(.8909*b,0);a.lineTo(b,.1054*c);a.lineTo(.623*b,.5*c);a.lineTo(b,.8926*c);a.lineTo(.8909*b,c);a.lineTo(.5*b,.6242*
4110c);a.lineTo(.1051*b,c);a.lineTo(0,.8926*c);a.lineTo(.373*b,.5*c);a.lineTo(0,.1054*c);a.close();a.fillAndStroke()},compensation:function(a,d,e,b,c){a.begin();a.moveTo(0,.5*c);a.lineTo(.5*b,0);a.lineTo(.5*b,c);a.close();a.moveTo(.5*b,.5*c);a.lineTo(b,0);a.lineTo(b,c);a.close();a.fillAndStroke()},signal:function(a,d,e,b,c){a.begin();a.moveTo(0,c);a.lineTo(.5*b,0);a.lineTo(b,c);a.close();a.fillAndStroke()},multiple:function(a,d,e,b,c){a.begin();a.moveTo(0,.39*c);a.lineTo(.5*b,0);a.lineTo(b,.39*c);a.lineTo(.815*
4111b,c);a.lineTo(.185*b,c);a.close();a.fillAndStroke()},parallelMultiple:function(a,d,e,b,c){a.begin();a.moveTo(.38*b,0);a.lineTo(.62*b,0);a.lineTo(.62*b,.38*c);a.lineTo(b,.38*c);a.lineTo(b,.62*c);a.lineTo(.62*b,.62*c);a.lineTo(.62*b,c);a.lineTo(.38*b,c);a.lineTo(.38*b,.62*c);a.lineTo(0,.62*c);a.lineTo(0,.38*c);a.lineTo(.38*b,.38*c);a.close();a.fillAndStroke()},terminate:function(a,d,e,b,c){a.ellipse(0,0,b,c);a.fillAndStroke()},exclusiveGw:function(a,d,e,b,c){d=a.state.strokeColor;e=a.state.fillColor;
4112a.setStrokeColor(e);a.setFillColor(d);a.begin();a.moveTo(.105*b,0);a.lineTo(.5*b,.38*c);a.lineTo(.895*b,0*c);a.lineTo(b,.11*c);a.lineTo(.6172*b,.5*c);a.lineTo(b,.89*c);a.lineTo(.895*b,c);a.lineTo(.5*b,.62*c);a.lineTo(.105*b,c);a.lineTo(0,.89*c);a.lineTo(.3808*b,.5*c);a.lineTo(0,.11*c);a.close();a.fillAndStroke();a.setStrokeColor(d);a.setFillColor(e)},parallelGw:function(a,d,e,b,c){d=a.state.strokeColor;e=a.state.fillColor;a.setStrokeColor(e);a.setFillColor(d);a.begin();a.moveTo(.38*b,0);a.lineTo(.62*
4113b,0);a.lineTo(.62*b,.38*c);a.lineTo(b,.38*c);a.lineTo(b,.62*c);a.lineTo(.62*b,.62*c);a.lineTo(.62*b,c);a.lineTo(.38*b,c);a.lineTo(.38*b,.62*c);a.lineTo(0,.62*c);a.lineTo(0,.38*c);a.lineTo(.38*b,.38*c);a.close();a.fillAndStroke();a.setStrokeColor(d);a.setFillColor(e)},complexGw:function(a,d,e,b,c){d=a.state.strokeColor;e=a.state.fillColor;a.setStrokeColor(e);a.setFillColor(d);a.begin();a.moveTo(0,.44*c);a.lineTo(.36*b,.44*c);a.lineTo(.1*b,.18*c);a.lineTo(.18*b,.1*c);a.lineTo(.44*b,.36*c);a.lineTo(.44*
4114b,0);a.lineTo(.56*b,0);a.lineTo(.56*b,.36*c);a.lineTo(.82*b,.1*c);a.lineTo(.9*b,.18*c);a.lineTo(.64*b,.44*c);a.lineTo(b,.44*c);a.lineTo(b,.56*c);a.lineTo(.64*b,.56*c);a.lineTo(.9*b,.82*c);a.lineTo(.82*b,.9*c);a.lineTo(.56*b,.64*c);a.lineTo(.56*b,c);a.lineTo(.44*b,c);a.lineTo(.44*b,.64*c);a.lineTo(.18*b,.9*c);a.lineTo(.1*b,.82*c);a.lineTo(.36*b,.56*c);a.lineTo(0,.56*c);a.close();a.fillAndStroke();a.setStrokeColor(d);a.setFillColor(e)},star:function(a,d,e,b,c){a.translate(b/5,c/6);c*=2/3;b*=.6;a.begin();
4115a.moveTo(0,c/4);a.lineTo(b/3,c/4);a.lineTo(b/2,0);a.lineTo(2*b/3,c/4);a.lineTo(b,c/4);a.lineTo(5*b/6,c/2);a.lineTo(b,3*c/4);a.lineTo(2*b/3,3*c/4);a.lineTo(b/2,c);a.lineTo(b/3,3*c/4);a.lineTo(0,3*c/4);a.lineTo(b/6,c/2);a.close();a.fillAndStroke()}};mxCellRenderer.registerShape("mxgraph.bpmn.shape",mxBpmnShape);function mxShapeBpmn2SendMarker(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=this.dy=.5;this.notch=0}
4116mxUtils.extend(mxShapeBpmn2SendMarker,mxActor);mxShapeBpmn2SendMarker.prototype.cst={SEND:"mxgraph.bpmn.sendMarker"};mxShapeBpmn2SendMarker.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.rect(0,0,b,c);a.fillAndStroke();a.setShadow(!1);a.begin();a.moveTo(0,0);a.lineTo(.5*b,.5*c);a.lineTo(b,0);a.stroke()};mxCellRenderer.registerShape(mxShapeBpmn2SendMarker.prototype.cst.SEND,mxShapeBpmn2SendMarker);
4117function mxShapeBpmnEvent(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeBpmnEvent,mxShape);mxShapeBpmnEvent.prototype.eventTypeEnum={START_STANDARD:"standard",EVENT_SP_INT:"eventInt",EVENT_SP_NONINT:"eventNonint",CATCHING:"catching",BOUND_INT:"boundInt",BOUND_NONINT:"boundNonint",THROWING:"throwing",END:"end",NONE:"none"};
4118mxShapeBpmnEvent.prototype.eventEnum={GENERAL:"general",MESSAGE:"message",TIMER:"timer",ESCALATION:"escalation",CONDITIONAL:"conditional",LINK:"link",ERROR:"error",CANCEL:"cancel",COMPENSATION:"compensation",SIGNAL:"signal",MULTIPLE:"multiple",PAR_MULTI:"parallelMultiple",TERMINATE:"terminate"};mxShapeBpmnEvent.prototype.miscEnum={OUTLINE:"outline",SYMBOL:"symbol"};
4119mxShapeBpmnEvent.prototype.customProperties=[{name:mxShapeBpmnEvent.prototype.miscEnum.SYMBOL,dispName:"Event",type:"enum",defVal:mxShapeBpmnEvent.prototype.eventEnum.GENERAL,enumList:[{val:mxShapeBpmnEvent.prototype.eventEnum.GENERAL,dispName:"General"},{val:mxShapeBpmnEvent.prototype.eventEnum.MESSAGE,dispName:"Message"},{val:mxShapeBpmnEvent.prototype.eventEnum.TIMER,dispName:"Timer"},{val:mxShapeBpmnEvent.prototype.eventEnum.ESCALATION,dispName:"Escalation"},{val:mxShapeBpmnEvent.prototype.eventEnum.CONDITIONAL,
4120dispName:"Conditional"},{val:mxShapeBpmnEvent.prototype.eventEnum.LINK,dispName:"Link"},{val:mxShapeBpmnEvent.prototype.eventEnum.ERROR,dispName:"Error"},{val:mxShapeBpmnEvent.prototype.eventEnum.CANCEL,dispName:"Cancel"},{val:mxShapeBpmnEvent.prototype.eventEnum.COMPENSATION,dispName:"Compensation"},{val:mxShapeBpmnEvent.prototype.eventEnum.SIGNAL,dispName:"Signal"},{val:mxShapeBpmnEvent.prototype.eventEnum.MULTIPLE,dispName:"Multiple"},{val:mxShapeBpmnEvent.prototype.eventEnum.PAR_MULTI,dispName:"Parallel Multiple"},
4121{val:mxShapeBpmnEvent.prototype.eventEnum.TERMINATE,dispName:"Terminate"}]},{name:mxShapeBpmnEvent.prototype.miscEnum.OUTLINE,dispName:"Event Type",type:"enum",defVal:mxShapeBpmnEvent.prototype.eventTypeEnum.START_STANDARD,enumList:[{val:mxShapeBpmnEvent.prototype.eventTypeEnum.START_STANDARD,dispName:"Standard"},{val:mxShapeBpmnEvent.prototype.eventTypeEnum.EVENT_SP_INT,dispName:"Interrupting"},{val:mxShapeBpmnEvent.prototype.eventTypeEnum.EVENT_SP_NONINT,dispName:"Non-Interrupting"},{val:mxShapeBpmnEvent.prototype.eventTypeEnum.CATCHING,
4122dispName:"Catching"},{val:mxShapeBpmnEvent.prototype.eventTypeEnum.BOUND_INT,dispName:"Bound Interrupting"},{val:mxShapeBpmnEvent.prototype.eventTypeEnum.BOUND_NONINT,dispName:"Bound Non-Interrupting"},{val:mxShapeBpmnEvent.prototype.eventTypeEnum.THROWING,dispName:"Throwing"},{val:mxShapeBpmnEvent.prototype.eventTypeEnum.END,dispName:"End"},{val:mxShapeBpmnEvent.prototype.eventTypeEnum.NONE,dispName:"None"}]}];
4123mxShapeBpmnEvent.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.strictDrawShape(a,0,0,b,c,null)};
4124mxShapeBpmnEvent.prototype.strictDrawShape=function(a,d,e,b,c,f,g){null==f&&(f=mxUtils.getValue(this.style,this.miscEnum.OUTLINE,this.eventTypeEnum.NONE));if(null!=f){var h=mxShapeBpmnEvent.prototype.outlines[f];null!=h&&(a.translate(d,e),h.call(this,a,d,e,b,c))}null==g&&(g=mxUtils.getValue(this.style,this.miscEnum.SYMBOL,null));if(null!=g&&(h=mxShapeBpmnEvent.prototype.symbols[g],null!=h)){var k=a.state.strokeColor,l=a.state.fillColor;g===this.eventEnum.MESSAGE?(a.translate(.15*b,.3*c),b*=.7,c*=
4125.4):g===this.eventEnum.TIMER?(a.translate(.11*b,.11*c),b*=.78,c*=.78):g===this.eventEnum.ESCALATION?(a.translate(.19*b,.15*c),b*=.62,c*=.57):g===this.eventEnum.CONDITIONAL?(a.translate(.3*b,.16*c),b*=.4,c*=.68):g===this.eventEnum.LINK?(a.translate(.27*b,.33*c),b*=.46,c*=.34):g===this.eventEnum.ERROR?(a.translate(.212*b,.243*c),b*=.58,c*=.507):g===this.eventEnum.CANCEL?(a.translate(.22*b,.22*c),b*=.56,c*=.56):g===this.eventEnum.COMPENSATION?(a.translate(.28*b,.35*c),b*=.44,c*=.3):g===this.eventEnum.SIGNAL?
4126(a.translate(.19*b,.15*c),b*=.62,c*=.57):g===this.eventEnum.MULTIPLE?(a.translate(.2*b,.19*c),b*=.6,c*=.565):g===this.eventEnum.PAR_MULTI?(a.translate(.2*b,.2*c),b*=.6,c*=.6):g===this.eventEnum.TERMINATE?(a.translate(.05*b,.05*c),b*=.9,c*=.9):g===this.eventEnum.GW_EXCLUSIVE&&(a.translate(.12*b,0),b*=.76);var m=!1;if("star"===g)a.setFillColor(k);else if(f===this.eventTypeEnum.THROWING||f===this.eventTypeEnum.END)a.setStrokeColor(l),a.setFillColor(k),m=!0;h.call(this,a,d,e,b,c,m);if("star"===g)a.setFillColor(l);
4127else if(f===this.eventTypeEnum.THROWING||f===this.eventTypeEnum.END)a.setStrokeColor(k),a.setFillColor(l)}};
4128mxShapeBpmnEvent.prototype.outlines={none:function(a,d,e,b,c){a.setShadow(!1)},standard:function(a,d,e,b,c){a.ellipse(0,0,b,c);a.fillAndStroke();a.setShadow(!1)},eventInt:function(a,d,e,b,c){a.ellipse(0,0,b,c);a.fillAndStroke();a.setShadow(!1)},eventNonint:function(a,d,e,b,c){d=a.state.dashed;a.setDashed(!0);a.ellipse(0,0,b,c);a.fillAndStroke();a.setDashed(d);a.setShadow(!1)},catching:function(a,d,e,b,c){a.ellipse(0,0,b,c);a.fillAndStroke();a.setShadow(!1);a.ellipse(2,2,b-4,c-4);a.stroke()},boundInt:function(a,
4129d,e,b,c){a.ellipse(0,0,b,c);a.fillAndStroke();a.setShadow(!1);a.ellipse(2,2,b-4,c-4);a.stroke()},boundNonint:function(a,d,e,b,c){d=a.state.dashed;a.setDashed(!0);a.ellipse(0,0,b,c);a.fillAndStroke();a.setShadow(!1);a.ellipse(2,2,b-4,c-4);a.stroke();a.setDashed(d)},throwing:function(a,d,e,b,c){a.ellipse(0,0,b,c);a.fillAndStroke();a.setShadow(!1);a.ellipse(.02*b+2,.02*c+2,.96*b-4,.96*c-4);a.stroke()},end:function(a,d,e,b,c){d=a.state.strokeWidth;a.setStrokeWidth(3*d);a.ellipse(0,0,b,c);a.fillAndStroke();
4130a.setStrokeWidth(d);a.setShadow(!1)}};
4131mxShapeBpmnEvent.prototype.symbols={general:function(a,d,e,b,c,f){},message:function(a,d,e,b,c,f){a.rect(0,0,b,c);a.fillAndStroke();"none"===mxUtils.getValue(this.style,"fillColor","none")&&f&&a.setStrokeColor("#ffffff");a.begin();a.moveTo(0,0);a.lineTo(.5*b,.5*c);a.lineTo(b,0);a.stroke()},timer:function(a,d,e,b,c,f){a.ellipse(0,0,b,c);a.fillAndStroke();a.begin();a.moveTo(.5*b,0);a.lineTo(.5*b,.0642*c);a.moveTo(.7484*b,.0654*c);a.lineTo(.7126*b,.1281*c);a.moveTo(.93*b,.2471*c);a.lineTo(.8673*b,.2854*
4132c);a.moveTo(b,.5*c);a.lineTo(.9338*b,.5*c);a.moveTo(.93*b,.7509*c);a.lineTo(.8673*b,.7126*c);a.moveTo(.7484*b,.9326*c);a.lineTo(.7126*b,.8699*c);a.moveTo(.5*b,.9338*c);a.lineTo(.5*b,c);a.moveTo(.2496*b,.9325*c);a.lineTo(.2854*b,.8699*c);a.moveTo(.068*b,.7509*c);a.lineTo(.1307*b,.7126*c);a.moveTo(0,.5*c);a.lineTo(.0642*b,.5*c);a.moveTo(.068*b,.2471*c);a.lineTo(.1307*b,.2854*c);a.moveTo(.2496*b,.0654*c);a.lineTo(.2854*b,.1281*c);a.moveTo(.5246*b,.0706*c);a.lineTo(.5*b,.5*c);a.lineTo(.7804*b,.5118*c);
4133a.stroke()},escalation:function(a,d,e,b,c,f){a.setMiterLimit(6);a.begin();a.moveTo(0,c);a.lineTo(.5*b,0);a.lineTo(b,c);a.lineTo(.5*b,.5*c);a.close();f?a.fill():a.fillAndStroke()},conditional:function(a,d,e,b,c,f){a.rect(0,0,b,c);a.fillAndStroke();a.begin();a.moveTo(0,.1027*c);a.lineTo(.798*b,.1027*c);a.moveTo(0,.3669*c);a.lineTo(.798*b,.3669*c);a.moveTo(0,.6311*c);a.lineTo(.798*b,.6311*c);a.moveTo(0,.8953*c);a.lineTo(.798*b,.8953*c);a.stroke()},link:function(a,d,e,b,c,f){a.begin();a.moveTo(0,.76*
4134c);a.lineTo(0,.24*c);a.lineTo(.63*b,.24*c);a.lineTo(.63*b,0);a.lineTo(b,.5*c);a.lineTo(.63*b,c);a.lineTo(.63*b,.76*c);a.close();f?a.fill():a.fillAndStroke()},error:function(a,d,e,b,c,f){a.setMiterLimit(7);a.begin();a.moveTo(0,c);a.lineTo(.3287*b,.123*c);a.lineTo(.6194*b,.6342*c);a.lineTo(b,0);a.lineTo(.6625*b,.939*c);a.lineTo(.3717*b,.5064*c);a.close();f?a.fill():a.fillAndStroke()},cancel:function(a,d,e,b,c,f){a.begin();a.moveTo(.1051*b,0);a.lineTo(.5*b,.3738*c);a.lineTo(.8909*b,0);a.lineTo(b,.1054*
4135c);a.lineTo(.623*b,.5*c);a.lineTo(b,.8926*c);a.lineTo(.8909*b,c);a.lineTo(.5*b,.6242*c);a.lineTo(.1051*b,c);a.lineTo(0,.8926*c);a.lineTo(.373*b,.5*c);a.lineTo(0,.1054*c);a.close();f?a.fill():a.fillAndStroke()},compensation:function(a,d,e,b,c,f){a.setMiterLimit(1);a.begin();a.moveTo(0,.5*c);a.lineTo(.5*b,0);a.lineTo(.5*b,c);a.close();a.moveTo(.5*b,.5*c);a.lineTo(b,0);a.lineTo(b,c);a.close();f?a.fill():a.fillAndStroke()},signal:function(a,d,e,b,c,f){a.begin();a.moveTo(0,c);a.lineTo(.5*b,0);a.lineTo(b,
4136c);a.close();f?a.fill():a.fillAndStroke()},multiple:function(a,d,e,b,c,f){a.begin();a.moveTo(0,.39*c);a.lineTo(.5*b,0);a.lineTo(b,.39*c);a.lineTo(.815*b,c);a.lineTo(.185*b,c);a.close();f?a.fill():a.fillAndStroke()},parallelMultiple:function(a,d,e,b,c,f){a.begin();a.moveTo(.38*b,0);a.lineTo(.62*b,0);a.lineTo(.62*b,.38*c);a.lineTo(b,.38*c);a.lineTo(b,.62*c);a.lineTo(.62*b,.62*c);a.lineTo(.62*b,c);a.lineTo(.38*b,c);a.lineTo(.38*b,.62*c);a.lineTo(0,.62*c);a.lineTo(0,.38*c);a.lineTo(.38*b,.38*c);a.close();
4137f?a.fill():a.fillAndStroke()},terminate:function(a,d,e,b,c,f){a.ellipse(0,0,b,c);a.fillAndStroke()},star:function(a,d,e,b,c,f){a.translate(b/5,c/6);c*=2/3;b*=.6;a.begin();a.moveTo(0,c/4);a.lineTo(b/3,c/4);a.lineTo(b/2,0);a.lineTo(2*b/3,c/4);a.lineTo(b,c/4);a.lineTo(5*b/6,c/2);a.lineTo(b,3*c/4);a.lineTo(2*b/3,3*c/4);a.lineTo(b/2,c);a.lineTo(b/3,3*c/4);a.lineTo(0,3*c/4);a.lineTo(b/6,c/2);a.close();a.fillAndStroke()}};mxCellRenderer.registerShape("mxgraph.bpmn.event",mxShapeBpmnEvent);
4138function mxShapeBpmnGateway(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeBpmnGateway,mxShape);mxShapeBpmnGateway.prototype.customProperties=mxShapeBpmnEvent.prototype.customProperties;mxShapeBpmnGateway.prototype.eventTypeEnum=mxShapeBpmnEvent.prototype.eventTypeEnum;mxShapeBpmnGateway.prototype.eventEnum=mxShapeBpmnEvent.prototype.eventEnum;mxShapeBpmnGateway.prototype.miscEnum=mxShapeBpmnEvent.prototype.miscEnum;
4139mxShapeBpmnGateway.prototype.customProperties=mxShapeBpmnGateway.prototype.customProperties.concat({name:"gwType",dispName:"Gateway type",type:"enum",defVal:"event",enumList:[{val:"event",dispName:"Event-based"},{val:"exclusive",dispName:"Exclusive"},{val:"parallel",dispName:"Parallel"},{val:"complex",dispName:"Complex"}]});
4140mxShapeBpmnGateway.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(.5*b,0);a.lineTo(b,.5*c);a.lineTo(.5*b,c);a.lineTo(0,.5*c);a.close();a.fillAndStroke();a.setShadow(!1);var f=.6*b,g=.6*c,h=mxUtils.getValue(this.style,"gwType","event"),k=mxUtils.getValue(this.style,"outline","none"),l=mxUtils.getValue(this.style,"symbol","standard");d=.5*b;e=.5*c;"event"===h&&null!==k&&"none"!==k?mxShapeBpmnEvent.prototype.strictDrawShape.call(this,a,.5*(b-f),.5*(c-g),f,g,k,l):"exclusive"==
4141h?(a.translate(.31*b,.25*c),d*=.76,b=a.state.strokeColor,c=a.state.fillColor,a.setFillColor(b),a.begin(),a.moveTo(.105*d,0),a.lineTo(.5*d,.38*e),a.lineTo(.895*d,0*e),a.lineTo(d,.11*e),a.lineTo(.6172*d,.5*e),a.lineTo(d,.89*e),a.lineTo(.895*d,e),a.lineTo(.5*d,.62*e),a.lineTo(.105*d,e),a.lineTo(0,.89*e),a.lineTo(.3808*d,.5*e),a.lineTo(0,.11*e),a.close(),a.fillAndStroke(),a.setFillColor(c),a.translate(.12*-d,0)):"parallel"==h?(a.translate(.25*b,.25*c),b=a.state.strokeColor,c=a.state.fillColor,a.setFillColor(b),
4142a.begin(),a.moveTo(.38*d,0),a.lineTo(.62*d,0),a.lineTo(.62*d,.38*e),a.lineTo(d,.38*e),a.lineTo(d,.62*e),a.lineTo(.62*d,.62*e),a.lineTo(.62*d,e),a.lineTo(.38*d,e),a.lineTo(.38*d,.62*e),a.lineTo(0,.62*e),a.lineTo(0,.38*e),a.lineTo(.38*d,.38*e),a.close(),a.fillAndStroke(),a.setFillColor(c)):"complex"==h&&(a.translate(.25*b,.25*c),b=a.state.strokeColor,c=a.state.fillColor,a.setFillColor(b),a.begin(),a.moveTo(0,.44*e),a.lineTo(.36*d,.44*e),a.lineTo(.1*d,.18*e),a.lineTo(.18*d,.1*e),a.lineTo(.44*d,.36*e),
4143a.lineTo(.44*d,0),a.lineTo(.56*d,0),a.lineTo(.56*d,.36*e),a.lineTo(.82*d,.1*e),a.lineTo(.9*d,.18*e),a.lineTo(.64*d,.44*e),a.lineTo(d,.44*e),a.lineTo(d,.56*e),a.lineTo(.64*d,.56*e),a.lineTo(.9*d,.82*e),a.lineTo(.82*d,.9*e),a.lineTo(.56*d,.64*e),a.lineTo(.56*d,e),a.lineTo(.44*d,e),a.lineTo(.44*d,.64*e),a.lineTo(.18*d,.9*e),a.lineTo(.1*d,.82*e),a.lineTo(.36*d,.56*e),a.lineTo(0,.56*e),a.close(),a.fillAndStroke(),a.setFillColor(c))};mxCellRenderer.registerShape("mxgraph.bpmn.gateway2",mxShapeBpmnGateway);
4144function mxShapeBpmn2Task(a,d,e,b){mxCellRenderer.prototype.getShape("mxgraph.basic.rect").call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=this.dy=.5;this.notch=0}mxUtils.extend(mxShapeBpmn2Task,mxCellRenderer.prototype.getShape("mxgraph.basic.rect"));
4145mxShapeBpmn2Task.prototype.customProperties=[{name:"bpmnShapeType",dispName:"Type",defVal:"task",type:"enum",enumList:[{val:"task",dispName:"Task"},{val:"transaction",dispName:"Transaction"},{val:"call",dispName:"Call"},{val:"subprocess",dispName:"Sub-Process"}]},{name:"taskMarker",dispName:"Task Marker",defVal:"abstract",type:"enum",enumList:[{val:"abstract",dispName:"Abstract"},{val:"service",dispName:"Service"},{val:"send",dispName:"Send"},{val:"receive",dispName:"Receive"},{val:"user",dispName:"User"},
4146{val:"nime",dispName:"Non-Interrupting Message Event"},{val:"manual",dispName:"Manual"},{val:"businessRule",dispName:"Business Rule"},{val:"script",dispName:"Script"}]},{name:"isLoopSub",dispName:"Subprocess",type:"bool"},{name:"isLoopStandard",dispName:"Standard Loop",type:"bool"},{name:"isLoopMultiParallel",dispName:"Multi-Instance Parallel Loop",type:"bool"},{name:"isLoopMultiSeq",dispName:"Multi-Instance Sequential Loop",type:"bool"},{name:"isLoopComp",dispName:"Compensation Loop",type:"bool"},
4147{name:"isAdHoc",dispName:"Ad Hoc",type:"bool"}];mxShapeBpmn2Task.prototype.customProperties=mxShapeBpmn2Task.prototype.customProperties.concat(mxShapeBpmnEvent.prototype.customProperties);mxShapeBpmn2Task.prototype.customProperties=mxShapeBpmn2Task.prototype.customProperties.concat(mxCellRenderer.prototype.getShape("mxgraph.basic.rect").prototype.customProperties);mxShapeBpmn2Task.prototype.eventTypeEnum=mxShapeBpmnEvent.prototype.eventTypeEnum;mxShapeBpmn2Task.prototype.eventEnum=mxShapeBpmnEvent.prototype.eventEnum;
4148mxShapeBpmn2Task.prototype.miscEnum=mxShapeBpmnEvent.prototype.miscEnum;mxShapeBpmn2Task.prototype.cst={TASK:"mxgraph.bpmn.task"};
4149mxShapeBpmn2Task.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,"bpmnShapeType","task"),g=mxUtils.getValue(this.style,"taskMarker","abstract"),h=mxUtils.getValue(this.style,"strokeWidth",1),k=mxUtils.getValue(this.style,"dashed",!1),l=mxUtils.getValue(this.style,"indent",3),m=14;mxUtils.getValue(this.style,"rectOutline","single");a.translate(d,e);d=mxCellRenderer.prototype.getShape("mxgraph.basic.rect");e={};"transaction"==f?(m+=l,e.rectOutline="double",e.indent=
41503):"subprocess"==f?e.dashed=!0:"call"==f&&(e.strokeWidth=4);d.prototype.strictDrawShape.call(this,a,0,0,b,c,e);a.setStrokeWidth(h);a.setDashed(k);"call"==f&&a.setStrokeWidth(h);a.setDashed(!1);a.setShadow(!1);var h=mxUtils.getValue(this.style,"isLoopSub",!1),n=mxUtils.getValue(this.style,"isLoopStandard",!1),k=mxUtils.getValue(this.style,"isLoopMultiParallel",!1),l=mxUtils.getValue(this.style,"isLoopMultiSeq",!1);d=mxUtils.getValue(this.style,"isLoopComp",!1);e=mxUtils.getValue(this.style,"isAdHoc",
4151!1);f=0;n&&f++;k&&f++;l&&f++;d&&f++;h&&f++;e&&f++;f*=-7;n&&(n=mxStencilRegistry.getStencil("mxgraph.bpmn.loop"),null!=n&&(n.drawShape(a,this,.5*b+f+1,c-m+1,12,12),f+=14));k&&(a.translate(.5*b+f+1,c-m+1),a.begin(),a.moveTo(2.4,0),a.lineTo(2.4,12),a.moveTo(6,0),a.lineTo(6,12),a.moveTo(9.6,0),a.lineTo(9.6,12),a.stroke(),a.translate(.5*-b-f-1,m-1-c),f+=14);l&&(a.translate(.5*b+f+1,c-m+1),a.begin(),a.moveTo(0,2.4),a.lineTo(12,2.4),a.moveTo(0,6),a.lineTo(12,6),a.moveTo(0,9.6),a.lineTo(12,9.6),a.stroke(),
4152a.translate(.5*-b-f-1,m-1-c),f+=14);d&&(n=mxStencilRegistry.getStencil("mxgraph.bpmn.compensation"),null!=n&&(n.drawShape(a,this,.5*b+f,c-m+1,14,12),f+=14));h&&(a.translate(.5*b+f,c-m),a.rect(0,0,14,14),a.stroke(),a.begin(),a.moveTo(4,7),a.lineTo(10,7),a.moveTo(7,4),a.lineTo(7,10),a.stroke(),a.translate(.5*-b-f,m-c),f+=14);e&&(n=mxStencilRegistry.getStencil("mxgraph.bpmn.ad_hoc"),null!=n&&(h=mxUtils.getValue(this.style,"strokeColor","#000000"),k=mxUtils.getValue(this.style,"fillColor","#ffffff"),
4153a.setStrokeColor("none"),a.setFillColor(h),n.drawShape(a,this,.5*b+f+1,c-m+4,12,6),a.setStrokeColor(h),a.setFillColor(k)));switch(g){case "service":n=mxStencilRegistry.getStencil("mxgraph.bpmn.service_task");null!=n&&n.drawShape(a,this,2,2,16,16);break;case "send":h=mxUtils.getValue(this.style,"strokeColor","#000000");k=mxUtils.getValue(this.style,"fillColor","#ffffff");a.setStrokeColor(k);a.setFillColor(h);mxShapeBpmn2SendMarker.prototype.paintVertexShape(a,4,4,18,13);break;case "receive":mxShapeBpmn2SendMarker.prototype.paintVertexShape(a,
41544,4,18,13);break;case "user":n=mxStencilRegistry.getStencil("mxgraph.bpmn.user_task");null!=n&&n.drawShape(a,this,2,2,16,16);break;case "manual":n=mxStencilRegistry.getStencil("mxgraph.bpmn.manual_task");null!=n&&n.drawShape(a,this,3,3,18,14);break;case "businessRule":n=mxStencilRegistry.getStencil("mxgraph.bpmn.business_rule_task");null!=n&&n.drawShape(a,this,4,4,18,14);break;case "script":n=mxStencilRegistry.getStencil("mxgraph.bpmn.script_task"),null!=n&&n.drawShape(a,this,3,3,19,18)}b=mxUtils.getValue(this.style,
4155"outline","none");c=mxUtils.getValue(this.style,"symbol","standard");mxShapeBpmnEvent.prototype.strictDrawShape.call(this,a,0,0,20,20,b,c)};mxCellRenderer.registerShape(mxShapeBpmn2Task.prototype.cst.TASK,mxShapeBpmn2Task);function mxShapeBpmn2Data(a,d,e,b){mxCellRenderer.prototype.getShape("note").call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=this.dy=.5;this.notch=0}mxUtils.extend(mxShapeBpmn2Data,mxCellRenderer.prototype.getShape("note"));
4156mxShapeBpmn2Data.prototype.cst={DATA:"mxgraph.bpmn.data"};mxShapeBpmn2Data.prototype.customProperties=[{name:"bpmnTransferType",dispName:"Transfer Type",defVal:"none",type:"enum",enumList:[{val:"none",dispName:"None"},{val:"input",dispName:"Input"},{val:"output",dispName:"Output"}]},{name:"isCollection",dispName:"Collection",type:"bool"}];
4157mxShapeBpmn2Data.prototype.paintVertexShape=function(a,d,e,b,c){mxCellRenderer.prototype.getShape("note").prototype.paintVertexShape.call(this,a,d,e,b,c);e=mxUtils.getValue(this.style,"bpmnTransferType","none");d=mxUtils.getValue(this.style,"isCollection",!1);a.setShadow(!1);if("input"===e||"output"===e)if(a.translate(3,3),a.begin(),a.moveTo(0,12*.3),a.lineTo(14*.55,12*.3),a.lineTo(14*.55,0),a.lineTo(14,6),a.lineTo(14*.55,12),a.lineTo(14*.55,12*.7),a.lineTo(0,12*.7),a.close(),a.translate(-3,-3),"input"===
4158e)a.stroke();else{e=mxUtils.getValue(this.style,"fillColor","#ffffff");var f=mxUtils.getValue(this.style,"strokeColor","#000000");a.setFillColor(f);a.fillAndStroke();a.setFillColor(e)}d&&(a.translate(.5*b-6,c-12),a.begin(),a.moveTo(2.4,0),a.lineTo(2.4,12),a.moveTo(6,0),a.lineTo(6,12),a.moveTo(9.6,0),a.lineTo(9.6,12),a.stroke(),a.translate(.5*-b+6,-c+12))};mxCellRenderer.registerShape(mxShapeBpmn2Data.prototype.cst.DATA,mxShapeBpmn2Data);Graph.handleFactory[mxShapeBpmn2Data.prototype.cst.DATA]=Graph.handleFactory.note;
4159function mxShapeBpmn2Swimlane(a,d,e,b){mxCellRenderer.prototype.getShape("note").call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=this.dy=.5;this.notch=0}mxUtils.extend(mxShapeBpmn2Swimlane,mxSwimlane);mxShapeBpmn2Swimlane.prototype.cst={SWIMLANE:"mxgraph.bpmn.swimlane"};mxShapeBpmn2Swimlane.prototype.customProperties=[{name:"isCollection",dispName:"Collection",type:"bool"}];
4160mxShapeBpmn2Swimlane.prototype.paintVertexShape=function(a,d,e,b,c){mxSwimlane.prototype.paintVertexShape.call(this,a,d,e,b,c);d=mxUtils.getValue(this.style,"isCollection",!1);a.setShadow(!1);d&&(a.translate(.5*b-6,c-12),a.begin(),a.moveTo(2.4,0),a.lineTo(2.4,12),a.moveTo(6,0),a.lineTo(6,12),a.moveTo(9.6,0),a.lineTo(9.6,12),a.stroke(),a.translate(.5*-b+6,-c+12))};mxCellRenderer.registerShape(mxShapeBpmn2Swimlane.prototype.cst.SWIMLANE,mxShapeBpmn2Swimlane);
4161Graph.handleFactory[mxShapeBpmn2Swimlane.prototype.cst.SWIMLANE]=Graph.handleFactory.swimlane;function mxShapeBpmn2Conversation(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeBpmn2Conversation,mxHexagon);
4162mxShapeBpmn2Conversation.prototype.customProperties=[{name:"bpmnConversationType",dispName:"Type",defVal:"conv",type:"enum",enumList:[{val:"conv",dispName:"Conversation"},{val:"call",dispName:"Call"}]},{name:"isLoopSub",dispName:"Subprocess",type:"bool"}];mxShapeBpmn2Conversation.prototype.cst={CONVERSATION:"mxgraph.bpmn.conversation"};
4163mxShapeBpmn2Conversation.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,"bpmnConversationType","conv"),g=mxUtils.getValue(this.style,"strokeWidth",1);"call"==f&&a.setStrokeWidth(4*g);a.translate(d,e);a.begin();a.moveTo(0,.5*c);a.lineTo(.25*b,0);a.lineTo(.75*b,0);a.lineTo(b,.5*c);a.lineTo(.75*b,c);a.lineTo(.25*b,c);a.close();a.fillAndStroke();"call"==f&&a.setStrokeWidth(g);mxUtils.getValue(this.style,"isLoopSub",!1)&&(a.translate(.5*b-7,c-14),a.rect(0,0,14,14),a.stroke(),
4164a.begin(),a.moveTo(4,7),a.lineTo(10,7),a.moveTo(7,4),a.lineTo(7,10),a.stroke())};mxCellRenderer.registerShape(mxShapeBpmn2Conversation.prototype.cst.CONVERSATION,mxShapeBpmn2Conversation);function mxShapeEREntity(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeEREntity,mxShape);
4165mxShapeEREntity.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,"buttonText","Entity"),g=mxUtils.getValue(this.style,"textColor","#666666"),h=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17");a.translate(d,e);b=Math.max(b,20);c=Math.max(c,20);this.background(a,d,e,b,c,10,g);a.setShadow(!1);this.mainText(a,d,e,b,c,f,h,g)};
4166mxShapeEREntity.prototype.background=function(a,d,e,b,c,f,g){d=mxUtils.getValue(this.style,"buttonStyle","round").toString();"round"===d?(a.begin(),a.moveTo(0,f),a.arcTo(f,f,0,0,1,f,0),a.lineTo(b-f,0),a.arcTo(f,f,0,0,1,b,f),a.lineTo(b,c-f),a.arcTo(f,f,0,0,1,b-f,c),a.lineTo(f,c),a.arcTo(f,f,0,0,1,0,c-f),a.close(),a.fillAndStroke()):"rect"===d?(a.begin(),a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,c),a.lineTo(0,c),a.close(),a.fillAndStroke()):"dblFrame"===d&&(f=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,
4167"#ffffff"),a.setFillColor(f),a.begin(),a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,c),a.lineTo(0,c),a.close(),a.fillAndStroke(),f=Math.min(b,c),a.begin(),a.moveTo(.1*f,.1*f),a.lineTo(b-.1*f,.1*f),a.lineTo(b-.1*f,c-.1*f),a.lineTo(.1*f,c-.1*f),a.close(),a.stroke())};mxShapeEREntity.prototype.mainText=function(a,d,e,b,c,f,g,h){a.begin();a.setFontSize(g);a.setFontColor(h);a.text(.5*b,.5*c,0,0,f,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};
4168mxCellRenderer.registerShape("mxgraph.er.entity",mxShapeEREntity);
4169mxShapeEREntity.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,
41701),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];function mxShapeEREntityExt(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeEREntityExt,mxShape);
4171mxShapeEREntityExt.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,"buttonText","Entity"),g=mxUtils.getValue(this.style,"subText","+ attribute 1,+ attribute 2,+ attribute 3").toString().split(","),h=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#666666"),k=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17"),l=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#008cff"),m=mxUtils.getValue(this.style,"fillColor2","#ffffff"),n=0;a.translate(d,
4172e);for(var p=1.25*k,q=0;q<g.length;q++){var t=mxUtils.getSizeForString(g[q],k,mxConstants.DEFAULT_FONTFAMILY).width;t>n&&(n=t)}b=Math.max(b,20,n+10);c=Math.max(c,20,(g.length+1)*p);this.background(a,d,e,b,c,10);a.setShadow(!1);this.shapes(a,d,e,b,c,k,l,m,10,p);this.mainText(a,d,e,b,c,f,k,m);this.attrText(a,d,e,b,c,g,k,h,p,10)};
4173mxShapeEREntityExt.prototype.background=function(a,d,e,b,c,f){d=mxUtils.getValue(this.style,"buttonStyle","round").toString();a.begin();"round"===d?(a.moveTo(0,f),a.arcTo(f,f,0,0,1,f,0),a.lineTo(b-f,0),a.arcTo(f,f,0,0,1,b,f),a.lineTo(b,c-f),a.arcTo(f,f,0,0,1,b-f,c),a.lineTo(f,c),a.arcTo(f,f,0,0,1,0,c-f)):"rect"===d&&(a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,c),a.lineTo(0,c));a.close();a.fillAndStroke()};
4174mxShapeEREntityExt.prototype.mainText=function(a,d,e,b,c,f,g,h){a.begin();a.setFontSize(g);a.setFontColor(h);a.text(.5*b,.5*g,0,0,f,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};
4175mxShapeEREntityExt.prototype.shapes=function(a,d,e,b,c,f,g,h,k,l){d=mxUtils.getValue(this.style,"buttonStyle","round").toString();"round"===d?(a.begin(),a.moveTo(0,k),a.arcTo(k,k,0,0,1,k,0),a.lineTo(b-k,0),a.arcTo(k,k,0,0,1,b,k),a.lineTo(b,l),a.lineTo(0,l),a.close(),a.fill(),a.setFillColor(h),a.begin(),a.moveTo(b,l),a.lineTo(b,c-k),a.arcTo(k,k,0,0,1,b-k,c),a.lineTo(k,c),a.arcTo(k,k,0,0,1,0,c-k),a.lineTo(0,l),a.close(),a.fill()):"rect"===d&&(a.begin(),a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,l),a.lineTo(0,
4176l),a.close(),a.fill(),a.setFillColor(h),a.begin(),a.moveTo(0,l),a.lineTo(b,l),a.lineTo(b,c),a.lineTo(0,c),a.close(),a.fill());a.begin();"round"===d?(a.moveTo(0,k),a.arcTo(k,k,0,0,1,k,0),a.lineTo(b-k,0),a.arcTo(k,k,0,0,1,b,k),a.lineTo(b,c-k),a.arcTo(k,k,0,0,1,b-k,c),a.lineTo(k,c),a.arcTo(k,k,0,0,1,0,c-k)):"rect"===d&&(a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,c),a.lineTo(0,c));a.close();a.stroke()};
4177mxShapeEREntityExt.prototype.attrText=function(a,d,e,b,c,f,g,h,k,l){for(d=0;d<f.length;d++)a.begin(),a.setFontSize(g),a.setFontColor(h),a.text(.5*l,(d+1.5)*k,0,0,f[d],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape("mxgraph.er.entityExt",mxShapeEREntityExt);
4178mxShapeEREntityExt.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,
41791),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];function mxShapeERAttribute(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeERAttribute,mxShape);
4180mxShapeERAttribute.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,"buttonText","Entity"),g=mxUtils.getValue(this.style,"textColor","#666666"),h=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17");a.translate(d,e);b=Math.max(b,20);c=Math.max(c,20);this.background(a,d,e,b,c,10,g);a.setShadow(!1);this.mainText(a,d,e,b,c,f,h,g)};
4181mxShapeERAttribute.prototype.background=function(a,d,e,b,c,f,g){d=mxUtils.getValue(this.style,"buttonStyle","simple").toString();"simple"===d?(a.begin(),a.ellipse(0,0,b,c),a.fillAndStroke()):"dblFrame"===d&&(d=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#666666"),a.setFillColor(d),a.begin(),a.ellipse(0,0,b,c),a.fillAndStroke(),f=Math.min(b,c),a.begin(),a.ellipse(.1*f,.1*f,b-.2*f,c-.2*f),a.stroke())};
4182mxShapeERAttribute.prototype.mainText=function(a,d,e,b,c,f,g,h){a.begin();a.setFontSize(g);a.setFontColor(h);a.text(.5*b,.5*c,0,0,f,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape("mxgraph.er.attribute",mxShapeERAttribute);
4183mxShapeERAttribute.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.144,.144),!1),new mxConnectionConstraint(new mxPoint(.856,.144),!1),new mxConnectionConstraint(new mxPoint(.856,.856),!1),new mxConnectionConstraint(new mxPoint(.144,.856),!1),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0)];
4184function mxShapeERHas(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeERHas,mxShape);
4185mxShapeERHas.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,"buttonText","Entity"),g=mxUtils.getValue(this.style,"textColor","#666666"),h=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17");a.translate(d,e);b=Math.max(b,20);c=Math.max(c,20);this.background(a,d,e,b,c,10,g);a.setShadow(!1);this.mainText(a,d,e,b,c,f,h,g)};
4186mxShapeERHas.prototype.background=function(a,d,e,b,c,f,g){d=mxUtils.getValue(this.style,"buttonStyle","rhombus").toString();"rhombus"===d?(a.begin(),a.moveTo(0,.5*c),a.lineTo(.5*b,0),a.lineTo(b,.5*c),a.lineTo(.5*b,c),a.close(),a.fillAndStroke()):"dblFrame"===d&&(d=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#666666"),a.setFillColor(d),a.begin(),a.moveTo(0,.5*c),a.lineTo(.5*b,0),a.lineTo(b,.5*c),a.lineTo(.5*b,c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.1*b,.5*c),a.lineTo(.5*b,.1*
4187c),a.lineTo(.9*b,.5*c),a.lineTo(.5*b,.9*c),a.close(),a.stroke())};mxShapeERHas.prototype.mainText=function(a,d,e,b,c,f,g,h){a.begin();a.setFontSize(g);a.setFontColor(h);a.text(.5*b,.5*c,0,0,f,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape("mxgraph.er.has",mxShapeERHas);
4188mxShapeERHas.prototype.constraints=[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),!0),new mxConnectionConstraint(new mxPoint(.25,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.75),!1),new mxConnectionConstraint(new mxPoint(.75,.25),!1),new mxConnectionConstraint(new mxPoint(.75,.75),!1)];
4189function mxShapeERCloud(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeERCloud,mxShape);
4190mxShapeERCloud.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,"buttonText","Entity"),g=mxUtils.getValue(this.style,"textColor","#666666"),h=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17");a.translate(d,e);b=Math.max(b,20);c=Math.max(c,20);this.background(a,d,e,b,c,10,g);a.setShadow(!1);this.mainText(a,d,e,b,c,f,h,g)};
4191mxShapeERCloud.prototype.background=function(a,d,e,b,c,f,g){a.begin();a.moveTo(.25*b,.25*c);a.curveTo(.05*b,.25*c,0,.5*c,.16*b,.55*c);a.curveTo(0,.66*c,.18*b,.9*c,.31*b,.8*c);a.curveTo(.4*b,c,.7*b,c,.8*b,.8*c);a.curveTo(b,.8*c,b,.6*c,.875*b,.5*c);a.curveTo(b,.3*c,.8*b,.1*c,.625*b,.2*c);a.curveTo(.5*b,.05*c,.3*b,.05*c,.25*b,.25*c);a.fillAndStroke()};
4192mxShapeERCloud.prototype.mainText=function(a,d,e,b,c,f,g,h){a.begin();a.setFontSize(g);a.setFontColor(h);a.text(.5*b,.5*c,0,0,f,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape("mxgraph.er.cloud",mxShapeERCloud);
4193mxShapeERCloud.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.08,.5),!1),new mxConnectionConstraint(new mxPoint(.9,.5),!1),new mxConnectionConstraint(new mxPoint(.5,.1),!1),new mxConnectionConstraint(new mxPoint(.5,.92),!1),new mxConnectionConstraint(new mxPoint(.24,.24),!1),new mxConnectionConstraint(new mxPoint(.22,.8),!1),new mxConnectionConstraint(new mxPoint(.81,.2),!1),new mxConnectionConstraint(new mxPoint(.78,.78),!1)];
4194function mxShapeERHierarchy(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeERHierarchy,mxShape);
4195mxShapeERHierarchy.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,"buttonText","main").toString().split(","),g=mxUtils.getValue(this.style,"subText","sub").toString().split(","),h=mxUtils.getValue(this.style,"textColor","#666666"),k=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17");a.translate(d,e);b=Math.max(b,20);c=Math.max(c,20);this.background(a,d,e,b,c,10,h);a.setShadow(!1);this.shapeText(a,d,e,b,c,f,g,k,h)};
4196mxShapeERHierarchy.prototype.background=function(a,d,e,b,c,f,g){d=mxUtils.getValue(this.style,"buttonStyle","round").toString();"round"===d?(a.begin(),a.moveTo(0,f),a.arcTo(f,f,0,0,1,f,0),a.lineTo(b-f,0),a.arcTo(f,f,0,0,1,b,f),a.lineTo(b,c-f),a.arcTo(f,f,0,0,1,b-f,c),a.lineTo(f,c),a.arcTo(f,f,0,0,1,0,c-f),a.close(),a.fillAndStroke()):"rect"===d?(a.begin(),a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,c),a.lineTo(0,c),a.close(),a.fillAndStroke()):"dblFrame"===d&&(f=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,
4197"#666666"),a.setFillColor(f),a.begin(),a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,c),a.lineTo(0,c),a.close(),a.fillAndStroke(),f=Math.min(b,c),a.begin(),a.moveTo(.1*f,.1*f),a.lineTo(b-.1*f,.1*f),a.lineTo(b-.1*f,c-.1*f),a.lineTo(.1*f,c-.1*f),a.close(),a.stroke());g=e=0;"round"===d?(e=.5*b,g=f,a.translate(e,g),b=.5*b-f,c-=2*f,a.begin(),a.moveTo(0,f),a.arcTo(f,f,0,0,1,f,0),a.lineTo(b-f,0),a.arcTo(f,f,0,0,1,b,f),a.lineTo(b,c-f),a.arcTo(f,f,0,0,1,b-f,c),a.lineTo(f,c),a.arcTo(f,f,0,0,1,0,c-f),a.close(),a.fillAndStroke()):
4198"rect"===d?(e=.5*b,g=f,a.translate(e,g),b=.5*b-f,c-=2*f,a.begin(),a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,c),a.lineTo(0,c),a.close(),a.fillAndStroke()):"dblFrame"===d&&(e=.5*b,g=.15*f,a.translate(e,g),b=.5*b-.15*f,c-=.3*f,f=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#666666"),a.setFillColor(f),a.begin(),a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,c),a.lineTo(0,c),a.close(),a.fillAndStroke(),f=Math.min(b,c),a.begin(),a.moveTo(.1*f,.1*f),a.lineTo(b-.1*f,.1*f),a.lineTo(b-.1*f,c-.1*f),a.lineTo(.1*
4199f,c-.1*f),a.close(),a.stroke());a.translate(-e,-g)};
4200mxShapeERHierarchy.prototype.shapeText=function(a,d,e,b,c,f,g,h,k,l){a.begin();a.setFontSize(h);a.setFontColor(k);a.text(.25*b,.5*(c-h),0,0,f[0],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.25*b,.5*(c+h),0,0,f[1],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.7*b,.5*(c-h),0,0,g[0],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.7*b,.5*(c+h),0,0,g[1],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};
4201mxCellRenderer.registerShape("mxgraph.er.hierarchy",mxShapeERHierarchy);
4202mxShapeERHierarchy.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,
42031),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];function mxShapeERNote(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeERNote,mxShape);
4204mxShapeERNote.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,"buttonText","Entity"),g=mxUtils.getValue(this.style,"textColor","#666666"),h=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17"),k=mxUtils.getValue(this.style,"fillColor2","#ffffff");a.translate(d,e);b=Math.max(b,40);c=Math.max(c,40);this.background(a,d,e,b,c,20);a.setShadow(!1);this.flipShape(a,d,e,b,c,20,k);this.mainText(a,d,e,b,c,f,h,g)};
4205mxShapeERNote.prototype.background=function(a,d,e,b,c,f){a.begin();a.moveTo(0,0);a.lineTo(b-f,0);a.lineTo(b,f);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fillAndStroke()};mxShapeERNote.prototype.flipShape=function(a,d,e,b,c,f,g){a.setLineJoin("round");a.setFillColor(g);a.begin();a.moveTo(b-f,0);a.lineTo(b,f);a.lineTo(b-f,f);a.close();a.fillAndStroke()};
4206mxShapeERNote.prototype.mainText=function(a,d,e,b,c,f,g,h){a.begin();a.setFontSize(g);a.setFontColor(h);a.text(.5*b,.5*c,0,0,f,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape("mxgraph.er.note",mxShapeERNote);
4207mxShapeERNote.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,
4208.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)];function mxShapeERChen(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeERChen,mxShape);
4209mxShapeERChen.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,"textColor","#666666"),g=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17");a.translate(d,e);b=Math.max(b,40);c=Math.max(c,40);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c,g,f)};mxShapeERChen.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fillAndStroke()};
4210mxShapeERChen.prototype.foreground=function(a,d,e,b,c,f,g){a.begin();a.moveTo(0,.25*c);a.lineTo(b,.25*c);a.moveTo(0,.5*c);a.lineTo(b,.5*c);a.moveTo(0,.75*c);a.lineTo(b,.75*c);a.moveTo(.25*b,.5*c);a.lineTo(.25*b,c);a.moveTo(.5*b,.25*c);a.lineTo(.5*b,c);a.moveTo(.75*b,.5*c);a.lineTo(.75*b,c);a.stroke();a.begin();a.setFontSize(f);a.setFontColor(g);a.text(.5*b,.125*c,0,0,"ERD Peter Chen's Notation",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.setFontSize(.85*f);a.text(.25*b,.375*
4211c,0,0,"Cardinality",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.75*b,.375*c,0,0,"Optionality",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.setFontSize(.7*f);a.text(.125*b,.625*c,0,0,"1",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.375*b,.625*c,0,0,"One",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.625*b,.625*c,0,0,"0",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.875*b,
4212.625*c,0,0,"Optional",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.125*b,.875*c,0,0,"N",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.375*b,.875*c,0,0,"Many",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.625*b,.875*c,0,0,"1",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.875*b,.875*c,0,0,"Mandatory",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};
4213mxCellRenderer.registerShape("mxgraph.er.chens",mxShapeERChen);
4214mxShapeERChen.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(.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,
4215.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)];function mxShapeERBachman(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeERBachman,mxShape);
4216mxShapeERBachman.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,"textColor","#666666"),g=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17");a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c,g,f)};mxShapeERBachman.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fillAndStroke()};
4217mxShapeERBachman.prototype.foreground=function(a,d,e,b,c,f,g){a.begin();a.moveTo(0,.125*c);a.lineTo(b,.125*c);a.moveTo(0,.25*c);a.lineTo(b,.25*c);a.moveTo(0,.375*c);a.lineTo(b,.375*c);a.moveTo(0,.5*c);a.lineTo(b,.5*c);a.moveTo(0,.625*c);a.lineTo(b,.625*c);a.moveTo(0,.75*c);a.lineTo(b,.75*c);a.moveTo(0,.875*c);a.lineTo(b,.875*c);a.moveTo(.5*b,.125*c);a.lineTo(.5*b,c);a.stroke();a.begin();a.setFontSize(f);a.setFontColor(g);a.text(.5*b,.0625*c,0,0,"ERD Bachman's Notation",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,
42180,null,0,0,0);a.setFontSize(.85*f);a.text(.52*b,.1875*c,0,0,"Relationship",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.52*b,.3125*c,0,0,"Cardinality (One)",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.52*b,.4375*c,0,0,"Cardinality (Many)",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.52*b,.5625*c,0,0,"Mandatory, One",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.52*b,.6875*c,0,0,"Mandatory, Many",mxConstants.ALIGN_LEFT,
4219mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.52*b,.8125*c,0,0,"Optional, One",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.52*b,.9375*c,0,0,"Optional, Many",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);d=mxUtils.getSizeForString("has/forms",f,mxConstants.DEFAULT_FONTFAMILY).width;a.begin();a.moveTo(.04*b,.1875*c);a.lineTo(.25*b-.5*d,.1875*c);a.moveTo(.25*b+.5*d,.1875*c);a.lineTo(.46*b,.1875*c);a.text(.25*b,.1875*c,0,0,"has/forms",mxConstants.ALIGN_CENTER,
4220mxConstants.ALIGN_MIDDLE,0,null,!0,0,0);a.moveTo(.04*b,.3125*c);a.lineTo(.46*b,.3125*c);a.moveTo(.04*b,.4375*c);a.lineTo(.46*b,.4375*c);a.moveTo(.46*b,.405*c);a.lineTo(.4*b,.4375*c);a.lineTo(.46*b,.47*c);a.moveTo(.04*b,.5625*c);a.lineTo(.46*b,.5625*c);a.moveTo(.38*b,.53*c);a.lineTo(.38*b,.595*c);a.moveTo(.04*b,.6875*c);a.lineTo(.46*b,.6875*c);a.moveTo(.46*b,.655*c);a.lineTo(.4*b,.6875*c);a.lineTo(.46*b,.72*c);a.moveTo(.38*b,.655*c);a.lineTo(.38*b,.72*c);a.moveTo(.04*b,.8125*c);a.lineTo(.46*b,.8125*
4221c);a.moveTo(.04*b,.9375*c);a.lineTo(.46*b,.9375*c);a.moveTo(.46*b,.905*c);a.lineTo(.4*b,.9375*c);a.lineTo(.46*b,.97*c);a.stroke();d=c/15;a.begin();a.ellipse(.46*b-d,.8125*c-.5*d,d,d);a.fillAndStroke();a.begin();a.ellipse(.4*b-d,.9375*c-.5*d,d,d);a.fillAndStroke()};mxCellRenderer.registerShape("mxgraph.er.bachmans",mxShapeERBachman);
4222mxShapeERBachman.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(.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,
4223.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)];function mxShapeERInfEng(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeERInfEng,mxShape);
4224mxShapeERInfEng.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,"textColor","#666666"),g=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17");a.translate(d,e);b=Math.max(b,c/1.5);c=Math.max(c,5*g);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c,g,f)};mxShapeERInfEng.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fillAndStroke()};
4225mxShapeERInfEng.prototype.foreground=function(a,d,e,b,c,f,g){a.begin();a.moveTo(0,.2*c);a.lineTo(b,.2*c);a.moveTo(0,.4*c);a.lineTo(b,.4*c);a.moveTo(0,.6*c);a.lineTo(b,.6*c);a.moveTo(0,.8*c);a.lineTo(b,.8*c);a.moveTo(.5*b,.2*c);a.lineTo(.5*b,c);a.stroke();a.begin();a.setFontSize(f);a.setFontColor(g);a.text(.5*b,.1*c,0,0,"ERD Information Engineering Notation",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.setFontSize(.85*f);a.text(.52*b,.3*c,0,0,"Zero or one",mxConstants.ALIGN_LEFT,
4226mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.52*b,.5*c,0,0,"One only",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.52*b,.7*c,0,0,"Zero or more",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.52*b,.9*c,0,0,"One or more",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);d=c/12;a.begin();a.moveTo(.04*b,.3*c);a.lineTo(.46*b,.3*c);a.moveTo(.46*b-d,.25*c);a.lineTo(.46*b-d,.35*c);a.moveTo(.04*b,.5*c);a.lineTo(.46*b,.5*c);a.moveTo(.46*b-2*d,.45*
4227c);a.lineTo(.46*b-2*d,.55*c);a.moveTo(.46*b-2.5*d,.45*c);a.lineTo(.46*b-2.5*d,.55*c);a.moveTo(.04*b,.7*c);a.lineTo(.46*b,.7*c);a.moveTo(.46*b,.65*c);a.lineTo(.46*b-2*d,.7*c);a.lineTo(.46*b,.75*c);a.stroke();a.moveTo(.04*b,.9*c);a.lineTo(.46*b,.9*c);a.moveTo(.46*b,.85*c);a.lineTo(.46*b-2*d,.9*c);a.lineTo(.46*b,.95*c);a.moveTo(.46*b-2.5*d,.85*c);a.lineTo(.46*b-2.5*d,.95*c);a.stroke();a.begin();a.ellipse(.46*b-3*d,.3*c-.5*d,d,d);a.fillAndStroke();a.begin();a.ellipse(.46*b-3*d,.7*c-.5*d,d,d);a.fillAndStroke()};
4228mxCellRenderer.registerShape("mxgraph.er.ie",mxShapeERInfEng);
4229mxShapeERInfEng.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(.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,
4230.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)];mxMarker.addMarker("ERone",function(a,d,e,b,c,f,g,h,k,l){var m=c*(g+k+1),n=f*(g+k+1);return function(){a.begin();a.moveTo(b.x-m/2-n/2,b.y-n/2+m/2);a.lineTo(b.x-m/2+n/2,b.y-n/2-m/2);a.stroke()}});
4231mxMarker.addMarker("ERmandOne",function(a,d,e,b,c,f,g,h,k,l){var m=c*(g+k+1),n=f*(g+k+1);return function(){a.begin();a.moveTo(b.x-m/2-n/2,b.y-n/2+m/2);a.lineTo(b.x-m/2+n/2,b.y-n/2-m/2);a.moveTo(b.x-m-n/2,b.y-n+m/2);a.lineTo(b.x-m+n/2,b.y-n-m/2);a.stroke()}});mxMarker.addMarker("ERmany",function(a,d,e,b,c,f,g,h,k,l){var m=c*(g+k+1),n=f*(g+k+1);return function(){a.begin();a.moveTo(b.x+n/2,b.y-m/2);a.lineTo(b.x-m,b.y-n);a.lineTo(b.x-n/2,b.y+m/2);a.stroke()}});
4232mxMarker.addMarker("ERoneToMany",function(a,d,e,b,c,f,g,h,k,l){var m=c*(g+k+1),n=f*(g+k+1);return function(){a.begin();a.moveTo(b.x-m-n/2,b.y-n+m/2);a.lineTo(b.x-m+n/2,b.y-n-m/2);a.moveTo(b.x+n/2,b.y-m/2);a.lineTo(b.x-m,b.y-n);a.lineTo(b.x-n/2,b.y+m/2);a.stroke()}});
4233mxMarker.addMarker("ERzeroToMany",function(a,d,e,b,c,f,g,h,k,l){var m=c*(g+k+1),n=f*(g+k+1),p=g/2,q=b.x,t=b.y;l||(b.x-=2*m-c*k/2,b.y-=2*n-f*k/2);return function(){a.begin();a.ellipse(q-1.5*m-p,t-1.5*n-p,2*p,2*p);if(l){var b=mxUtils.getValue(d.style,mxConstants.STYLE_STROKECOLOR,"#666666");a.setFillColor("#ffffff");a.fillAndStroke();a.setFillColor(b)}else a.stroke();a.begin();a.moveTo(q+n/2,t-m/2);a.lineTo(q-m,t-n);a.lineTo(q-n/2,t+m/2);l||(a.moveTo(q-m,t-n),a.lineTo(q,t));a.stroke()}});
4234mxMarker.addMarker("ERzeroToOne",function(a,d,e,b,c,f,g,h,k,l){var m=c*(g+k+1),n=f*(g+k+1),p=g/2,q=b.x,t=b.y;l||(b.x-=2*m-c*k/2,b.y-=2*n-f*k/2);return function(){a.begin();a.ellipse(q-1.5*m-p,t-1.5*n-p,2*p,2*p);if(l){var b=mxUtils.getValue(d.style,mxConstants.STYLE_STROKECOLOR,"#666666");a.setFillColor("#ffffff");a.fillAndStroke();a.setFillColor(b)}else a.stroke();a.begin();a.moveTo(q-m/2-n/2,t-n/2+m/2);a.lineTo(q-m/2+n/2,t-n/2-m/2);l||(a.moveTo(q-m-c*k/2,t-n-f*k/2),a.lineTo(q,t));a.stroke()}});
4235function mxShapeERRRect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeERRRect,mxShape);mxShapeERRRect.prototype.cst={RRECT:"mxgraph.er.rrect",R_SIZE:"rSize"};mxShapeERRRect.prototype.customProperties=[{name:"rSize",dispName:"Rounding Size",type:"float"}];
4236mxShapeERRRect.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeERRRect.prototype.cst.R_SIZE,"10"));a.roundrect(0,0,b,c,d);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeERRRect.prototype.cst.RRECT,mxShapeERRRect);
4237mxShapeERRRect.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,
42381),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];function mxShapeERAnchor(a,d,e,b){mxShape.call(this);this.bounds=a}mxUtils.extend(mxShapeERAnchor,mxShape);mxShapeERAnchor.prototype.cst={ANCHOR:"mxgraph.er.anchor"};mxShapeERAnchor.prototype.paintVertexShape=function(a,d,e,b,c){};mxCellRenderer.registerShape(mxShapeERAnchor.prototype.cst.ANCHOR,mxShapeERAnchor);
4239var mxIOS7C={MAIN_TEXT:"mainText",SUB_TEXT:"subText",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize",BAR_POS:"barPos",BUTTON_TEXT:"buttonText",BUTTON_STATE:"buttonState",SELECTED:"+",STATE_ON:"on",STATE_OFF:"off",GRID_SIZE:"gridSize",SHAPE_IOS7_APP_BAR:"mxgraph.ios7ui.appBar",SHAPE_IOS7_ON_OFF_BUTTON:"mxgraph.ios7ui.onOffButton",SHAPE_IOS7_SLIDER:"mxgraph.ios7ui.slider",SHAPE_IOS7_DOWNLOAD_BAR:"mxgraph.ios7ui.downloadBar",SHAPE_IOS7_ICON:"mxgraph.ios7ui.icon",SHAPE_IOS7_HOR_BUTTON_BAR:"mxgraph.ios7ui.horButtonBar",
4240SHAPE_IOS7_PAGE_CONTROL:"mxgraph.ios7ui.pageControl",SHAPE_IOS7_EXPAND:"mxgraph.ios7ui.expand",SHAPE_IOS7_ICON_GRID:"mxgraph.ios7ui.iconGrid",SHAPE_IOS7_PHONE:"mxgraph.ios7ui.phone",SHAPE_IOS7_SEARCH_BOX:"mxgraph.ios7ui.searchBox",SHAPE_IOS7_URL:"mxgraph.ios7ui.url",SHAPE_IOS7_ACTION_DIALOG:"mxgraph.ios7ui.actionDialog",STYLE_FILLCOLOR2:"fillColor2",STYLE_FILLCOLOR3:"fillColor3",STYLE_TEXTCOLOR:"textColor",STYLE_TEXTCOLOR2:"textColor2",STYLE_STROKECOLOR2:"strokeColor2",STYLE_STROKECOLOR3:"strokeColor3",
4241STYLE_TEXTSIZE:"textSize"};function mxShapeIOS7AppBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeIOS7AppBar,mxShape);mxShapeIOS7AppBar.prototype.customProperties=[{name:"fillColor2",dispName:"Fill Color 2",type:"color"}];mxShapeIOS7AppBar.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};
4242mxShapeIOS7AppBar.prototype.background=function(a,d,e,b,c){a.rect(0,0,b,c);a.fill()};
4243mxShapeIOS7AppBar.prototype.foreground=function(a,d,e,b,c){a.setFillColor(mxUtils.getValue(this.style,mxIOS7C.STYLE_FILLCOLOR2,"#222222"));a.ellipse(5,.5*c-1.5,3,3);a.fill();a.ellipse(9,.5*c-1.5,3,3);a.fill();a.ellipse(13,.5*c-1.5,3,3);a.fill();a.ellipse(17,.5*c-1.5,3,3);a.fill();a.ellipse(21,.5*c-1.5,3,3);a.fill();a.ellipse(54,.5*c+2,2,2);a.fillAndStroke();a.setStrokeWidth(2);a.begin();a.moveTo(52,.5*c+1);a.arcTo(3.5,3.5,0,0,1,58,.5*c+1);a.stroke();a.begin();a.moveTo(50,.5*c-1);a.arcTo(6,6,0,0,1,
424460,.5*c-1);a.stroke();a.begin();a.moveTo(b-19,.5*c-2);a.lineTo(b-6,.5*c-2);a.lineTo(b-6,.5*c+2);a.lineTo(b-19,.5*c+2);a.close();a.fill();a.setStrokeWidth(1);a.begin();a.moveTo(b-44,.5*c-2.5);a.lineTo(b-36,.5*c+2.5);a.lineTo(b-40,.5*c+5);a.lineTo(b-40,.5*c-5);a.lineTo(b-36,.5*c-2.5);a.lineTo(b-44,.5*c+2.5);a.stroke();a.begin();a.moveTo(b-20,.5*c-3);a.lineTo(b-5,.5*c-3);a.lineTo(b-5,.5*c-1);a.lineTo(b-3.5,.5*c-1);a.lineTo(b-3.5,.5*c+1);a.lineTo(b-5,.5*c+1);a.lineTo(b-5,.5*c+3);a.lineTo(b-20,.5*c+3);
4245a.close();a.stroke()};mxCellRenderer.registerShape(mxIOS7C.SHAPE_IOS7_APP_BAR,mxShapeIOS7AppBar);function mxShapeIOS7OnOffButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeIOS7OnOffButton,mxShape);
4246mxShapeIOS7OnOffButton.prototype.customProperties=[{name:"buttonState",dispName:"Button State",type:"enum",enumList:[{val:"on",dispName:"On"},{val:"off",dispName:"Off"}]},{name:"strokeColor2",dispName:"Stroke Color 2",type:"color"},{name:"fillColor2",dispName:"Fill Color 2",type:"color"}];
4247mxShapeIOS7OnOffButton.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);b=Math.max(b,2*c);var f=mxUtils.getValue(this.style,mxIOS7C.BUTTON_STATE,mxIOS7C.STATE_ON);this.background(a,d,e,b,c,f);a.setShadow(!1);this.foreground(a,d,e,b,c,f)};
4248mxShapeIOS7OnOffButton.prototype.background=function(a,d,e,b,c,f){f===mxIOS7C.STATE_ON?(a.roundrect(0,0,b,c,.5*c,.5*c),a.fillAndStroke()):f===mxIOS7C.STATE_OFF&&(a.setStrokeColor(mxUtils.getValue(this.style,mxIOS7C.STYLE_STROKECOLOR2,"#aaaaaa")),a.setFillColor(mxUtils.getValue(this.style,mxIOS7C.STYLE_FILLCOLOR2,"#ffffff")),a.roundrect(0,0,b,c,.5*c,.5*c),a.fillAndStroke())};
4249mxShapeIOS7OnOffButton.prototype.foreground=function(a,d,e,b,c,f){a.setFillColor("#ffffff");f===mxIOS7C.STATE_ON?(a.ellipse(b-c+1,1,c-2,c-2),a.fill()):(a.ellipse(0,0,c,c),a.stroke())};mxCellRenderer.registerShape(mxIOS7C.SHAPE_IOS7_ON_OFF_BUTTON,mxShapeIOS7OnOffButton);function mxShapeIOS7Slider(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.barPos=80}mxUtils.extend(mxShapeIOS7Slider,mxShape);
4250mxShapeIOS7Slider.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.setShadow(!1);this.foreground(a,b,c)};mxShapeIOS7Slider.prototype.foreground=function(a,d,e){a.setStrokeWidth(2);a.begin();a.moveTo(0,.5*e);a.lineTo(d,.5*e);a.stroke();var b=mxUtils.getValue(this.style,mxIOS7C.BAR_POS,"80"),b=Math.min(b,100),b=Math.max(b,0);d=0+(d-0)*b/100;a.setStrokeColor(mxUtils.getValue(this.style,mxIOS7C.STYLE_STROKECOLOR2,"#a0a0a0"));a.ellipse(d-5,.5*e-5,10,10);a.fillAndStroke()};
4251mxCellRenderer.registerShape(mxIOS7C.SHAPE_IOS7_SLIDER,mxShapeIOS7Slider);Graph.handleFactory[mxIOS7C.SHAPE_IOS7_SLIDER]=function(a){return[Graph.createHandle(a,["barPos"],function(a){var d=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"barPos",this.barPos))));return new mxPoint(a.x+d/100*a.width,a.y+a.height/2)},function(a,e){this.state.style.barPos=Math.round(1E3*Math.max(0,Math.min(100,100*(e.x-a.x)/a.width)))/1E3})]};
4252function mxShapeIOS7DownloadBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.barPos=80}mxUtils.extend(mxShapeIOS7DownloadBar,mxShape);mxShapeIOS7DownloadBar.prototype.customProperties=[{name:"barPos",dispName:"Handle Position",type:"float",min:0,max:1,defVal:30},{name:"strokeColor2",dispName:"Stroke Color 2",type:"color"}];mxShapeIOS7DownloadBar.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.foreground(a,b,c)};
4253mxShapeIOS7DownloadBar.prototype.foreground=function(a,d,e){var b=mxUtils.getValue(this.style,mxIOS7C.BUTTON_TEXT,"");a.setFontStyle(mxConstants.FONT_BOLD);a.text(.5*d,.2*e,0,0,b,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);b=mxUtils.getValue(this.style,mxIOS7C.BAR_POS,"80");b=Math.min(b,100);b=Math.max(b,0);b=d*b/100;a.setStrokeWidth(2);a.setStrokeColor(mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,""));a.begin();a.moveTo(0,.5*e);a.lineTo(d,.5*e);a.stroke();a.setStrokeColor(mxUtils.getValue(this.style,
4254mxConstants.STYLE_STROKECOLOR,""));a.begin();a.moveTo(0,.5*e);a.lineTo(b,.5*e);a.stroke()};mxCellRenderer.registerShape(mxIOS7C.SHAPE_IOS7_DOWNLOAD_BAR,mxShapeIOS7DownloadBar);
4255Graph.handleFactory[mxIOS7C.SHAPE_IOS7_DOWNLOAD_BAR]=function(a){return[Graph.createHandle(a,["barPos"],function(a){var d=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"barPos",this.barPos))));return new mxPoint(a.x+d/100*a.width,a.y+a.height/2)},function(a,e){this.state.style.barPos=Math.round(1E3*Math.max(0,Math.min(100,100*(e.x-a.x)/a.width)))/1E3})]};
4256function mxShapeIOS7Icon(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeIOS7Icon,mxShape);mxShapeIOS7Icon.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.foreground(a,b,c)};
4257mxShapeIOS7Icon.prototype.foreground=function(a,d,e){a.setGradient("#00D0F0","#0080F0",.325*d,0,.675*d,.5*e,mxConstants.DIRECTION_SOUTH,1,1);a.roundrect(0,0,d,e,.1*d,.1*e);a.fill();var b=mxUtils.getValue(this.style,mxIOS7C.BUTTON_TEXT,"");a.setFontColor("#ffffff");a.setFontStyle(mxConstants.FONT_BOLD);a.setFontSize(8);a.text(.5*d,.5*e,0,0,b,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape(mxIOS7C.SHAPE_IOS7_ICON,mxShapeIOS7Icon);
4258function mxShapeIOS7horButtonBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeIOS7horButtonBar,mxShape);
4259mxShapeIOS7horButtonBar.prototype.paintVertexShape=function(a,d,e,b,c){for(var f=mxUtils.getValue(this.style,mxIOS7C.BUTTON_TEXT,"+Button 1, Button 2, Button 3").toString().split(","),g=mxUtils.getValue(this.style,mxIOS7C.STYLE_TEXTCOLOR,"#666666"),h=mxUtils.getValue(this.style,mxIOS7C.STYLE_TEXTCOLOR2,"#ffffff"),k=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"8.5").toString(),l=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#666666"),m=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,
4260"#ffffff"),n=mxUtils.getValue(this.style,mxIOS7C.STYLE_FILLCOLOR2,"#008cff"),p=f.length,q=Array(p),t=0,u=-1,v=0;v<p;v++){var r=f[v];r.charAt(0)===mxIOS7C.SELECTED&&(r=f[v].substring(1),u=v);q[v]=mxUtils.getSizeForString(r,k,mxConstants.DEFAULT_FONTFAMILY).width;t+=q[v]}c=Math.max(c,1.5*k,10);t=5*p+t;b=Math.max(b,t);a.translate(d,e);this.background(a,b,c,2.5,p,q,2.5,t,l,m,n,u);a.setShadow(!1);for(v=d=0;v<p;v++)v===u?a.setFontColor(h):a.setFontColor(g),d+=2.5,this.buttonText(a,d,c,f[v],q[v],k,t,b),
4261d=d+q[v]+2.5};
4262mxShapeIOS7horButtonBar.prototype.background=function(a,d,e,b,c,f,g,h,k,l,m,n){a.begin();a.setStrokeColor(k);a.setFillColor(l);a.moveTo(0,b);a.arcTo(b,b,0,0,1,b,0);a.lineTo(d-b,0);a.arcTo(b,b,0,0,1,d,b);a.lineTo(d,e-b);a.arcTo(b,b,0,0,1,d-b,e);a.lineTo(b,e);a.arcTo(b,b,0,0,1,0,e-b);a.close();a.fillAndStroke();a.setStrokeColor(k);a.begin();for(m=1;m<c;m++)if(m!==n&&m!==n+1){for(var p=0,q=0;q<m;q++)p+=f[q]+2*g;p=p*d/h;a.moveTo(p,0);a.lineTo(p,e)}a.stroke();p=0;a.setStrokeColor(mxConstants.NONE);for(m=
42630;m<n;m++)p+=f[m]+2*g;p=p*d/h;f=(f[n]+2*g)*d/h;f+=p;a.setFillColor("#0080F0");0===n?(a.begin(),a.moveTo(0,b),a.arcTo(b,b,0,0,1,b,0),a.lineTo(f,0),a.lineTo(f,e),a.lineTo(b,e),a.arcTo(b,b,0,0,1,0,e-b),a.close(),a.fill()):n===c-1?(a.begin(),a.moveTo(p,0),a.lineTo(f-b,0),a.arcTo(b,b,0,0,1,f,b),a.lineTo(f,e-b),a.arcTo(b,b,0,0,1,f-b,e),a.lineTo(p,e),a.close(),a.fill()):-1!==n&&(a.begin(),a.moveTo(p,0),a.lineTo(f,0),a.lineTo(f,e),a.lineTo(p,e),a.close(),a.fill());a.setStrokeColor(k);a.setFillColor(l);a.begin();
4264a.moveTo(0,b);a.arcTo(b,b,0,0,1,b,0);a.lineTo(d-b,0);a.arcTo(b,b,0,0,1,d,b);a.lineTo(d,e-b);a.arcTo(b,b,0,0,1,d-b,e);a.lineTo(b,e);a.arcTo(b,b,0,0,1,0,e-b);a.close();a.stroke()};mxShapeIOS7horButtonBar.prototype.buttonText=function(a,d,e,b,c,f,g,h){b.charAt(0)===mxIOS7C.SELECTED&&(b=b.substring(1));a.begin();a.setFontSize(f);a.text((d+.5*c)*h/g,.5*e,0,0,b,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape(mxIOS7C.SHAPE_IOS7_HOR_BUTTON_BAR,mxShapeIOS7horButtonBar);
4265function mxShapeIOS7pageControl(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeIOS7pageControl,mxShape);
4266mxShapeIOS7pageControl.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#000000");e=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");var f=Math.min(.5*c,.05*b);a.setFillColor(e);a.ellipse(0,.5*c-f,2*f,2*f);a.fill();a.ellipse(.25*b-.5*f,.5*c-f,2*f,2*f);a.fill();a.ellipse(.5*b-f,.5*c-f,2*f,2*f);a.fill();a.ellipse(.75*b-1.5*f,.5*c-f,2*f,2*f);a.fill();a.setFillColor(d);a.ellipse(b-2*f,.5*c-f,2*f,2*f);a.fill()};
4267mxCellRenderer.registerShape(mxIOS7C.SHAPE_IOS7_PAGE_CONTROL,mxShapeIOS7pageControl);function mxShapeIOS7iconGrid(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeIOS7iconGrid,mxShape);mxShapeIOS7iconGrid.prototype.customProperties=[{name:"gridSize",dispName:"Grid Size",type:"String"}];
4268mxShapeIOS7iconGrid.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=mxUtils.getValue(this.style,mxIOS7C.GRID_SIZE,"4,7").toString().split(",");b/=parseInt(d[0],10)+.1*(d[0]-1);c/=parseInt(d[1],10)+.1*(d[1]-1);for(e=0;e<d[0];e++)for(var f=0;f<d[1];f++)a.rect(1.1*b*e,1.1*c*f,b,c),a.fill()};mxCellRenderer.registerShape(mxIOS7C.SHAPE_IOS7_ICON_GRID,mxShapeIOS7iconGrid);
4269function mxShapeIOS7phone(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeIOS7phone,mxShape);mxShapeIOS7phone.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.roundrect(0,0,b,c,25,25);a.fillAndStroke();a.setShadow(!1);this.foreground(a,d,e,b,c,25)};
4270mxShapeIOS7phone.prototype.foreground=function(a,d,e,b,c,f){a.rect(.0625*b,.15*c,.875*b,.7*c);a.stroke();a.ellipse(.4875*b,.04125*c,.025*b,.0125*c);a.stroke();a.roundrect(.375*b,.075*c,.25*b,.01875*c,.02*b,.01*c);a.stroke();a.ellipse(.4*b,.875*c,.2*b,.1*c);a.stroke();a.roundrect(.4575*b,.905*c,.085*b,.04375*c,.00625*c,.00625*c);a.stroke()};mxCellRenderer.registerShape(mxIOS7C.SHAPE_IOS7_PHONE,mxShapeIOS7phone);
4271function mxShapeIOS7searchBox(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeIOS7searchBox,mxShape);mxShapeIOS7searchBox.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c)};mxShapeIOS7searchBox.prototype.background=function(a,d,e){a.rect(0,0,d,e);a.fill()};
4272mxShapeIOS7searchBox.prototype.foreground=function(a,d,e){var b=mxUtils.getValue(this.style,mxIOS7C.BUTTON_TEXT,"Search"),c=mxUtils.getValue(this.style,mxIOS7C.STYLE_TEXTCOLOR,"#666666"),f=mxUtils.getValue(this.style,mxIOS7C.STYLE_STROKECOLOR2,"#008cff");mxUtils.getValue(this.style,mxIOS7C.STYLE_TEXTSIZE,"17");var g=.1*Math.min(d,e);a.setFillColor("#ffffff");a.roundrect(.05*d,.15*e,.5*d,.7*e,g,g);a.fillAndStroke();a.setFontColor(c);a.setFontSize(Math.min(.7*e,.1*d));a.text(5,.5*e,0,0,b,mxConstants.ALIGN_LEFT,
4273mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.setStrokeColor(f);a.ellipse(.05*d+3,.5*e-3,4,4);a.stroke();a.begin();a.moveTo(.05*d+8,.5*e+3.5);a.lineTo(.05*d+6,.5*e+.5);a.stroke()};mxCellRenderer.registerShape(mxIOS7C.SHAPE_IOS7_SEARCH_BOX,mxShapeIOS7searchBox);function mxShapeIOS7URL(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeIOS7URL,mxShape);
4274mxShapeIOS7URL.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c)};mxShapeIOS7URL.prototype.background=function(a,d,e){a.rect(0,0,d,e);a.fill()};
4275mxShapeIOS7URL.prototype.foreground=function(a,d,e){var b=mxUtils.getValue(this.style,mxIOS7C.BUTTON_TEXT,"draw.io"),c=mxUtils.getValue(this.style,mxIOS7C.STYLE_TEXTCOLOR,"#666666"),f=mxUtils.getValue(this.style,mxIOS7C.STYLE_STROKECOLOR2,"#008cff");mxUtils.getValue(this.style,mxIOS7C.STYLE_TEXTSIZE,"17");var g=.1*Math.min(d,e);a.setFillColor("#d8d8d8");a.roundrect(.05*d,.15*e,.9*d,.7*e,g,g);a.fill();a.setFontColor(c);a.setFontSize(Math.min(.7*e,.1*d));a.text(.5*d,.5*e,0,0,b,mxConstants.ALIGN_LEFT,
4276mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.setStrokeColor(f);a.begin();a.moveTo(.95*d-5,.5*e);a.arcTo(3,3,0,1,1,.95*d-8,.5*e-3);a.stroke();a.setFillColor(f);a.begin();a.moveTo(.95*d-8,.5*e-4);a.lineTo(.95*d-6,.5*e-3);a.lineTo(.95*d-8,.5*e-2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxIOS7C.SHAPE_IOS7_URL,mxShapeIOS7URL);function mxShapeIOS7Actiondialog(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
4277mxUtils.extend(mxShapeIOS7Actiondialog,mxShape);
4278mxShapeIOS7Actiondialog.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxIOS7C.MAIN_TEXT,"Main Text"),g=mxUtils.getValue(this.style,mxIOS7C.SUB_TEXT,"Sub Text"),h=mxUtils.getValue(this.style,mxIOS7C.STYLE_TEXTCOLOR,"#666666"),k=mxUtils.getValue(this.style,mxIOS7C.STYLE_TEXTSIZE,"17");a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);a.setFillColor("#e0e0e0");a.roundrect(.05*b,.1*c,.9*b,.35*c,.025*b,.05*c);a.fill();a.roundrect(.05*b,.55*c,.9*b,.35*c,.025*
4279b,.05*c);a.fill();a.setFontStyle(mxConstants.FONT_BOLD);this.mainText(a,d,e,b,c,f,k,h);this.subText(a,d,e,b,c,g,k/1.4,h)};mxShapeIOS7Actiondialog.prototype.background=function(a,d,e,b,c){a.rect(0,0,b,c);a.fill()};mxShapeIOS7Actiondialog.prototype.mainText=function(a,d,e,b,c,f,g,h){a.begin();a.setFontSize(g);a.setFontColor(h);a.text(.5*b,.4*c,0,0,f,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};
4280mxShapeIOS7Actiondialog.prototype.subText=function(a,d,e,b,c,f,g,h){a.begin();a.setFontSize(g);a.text(.5*b,.7*c,0,0,f,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape(mxIOS7C.SHAPE_IOS7_ACTION_DIALOG,mxShapeIOS7Actiondialog);function mxShapeIOS7Anchor(a,d,e,b){mxShape.call(this);this.bounds=a}mxUtils.extend(mxShapeIOS7Anchor,mxShape);mxShapeIOS7Anchor.prototype.cst={ANCHOR:"mxgraph.ios7ui.anchor"};
4281mxShapeIOS7Anchor.prototype.paintVertexShape=function(a,d,e,b,c){};mxCellRenderer.registerShape(mxShapeIOS7Anchor.prototype.cst.ANCHOR,mxShapeIOS7Anchor);function mxShapeIOS7RRect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeIOS7RRect,mxShape);mxShapeIOS7RRect.prototype.cst={RRECT:"mxgraph.ios7ui.rrect",R_SIZE:"rSize"};mxShapeIOS7RRect.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:3}];
4282mxShapeIOS7RRect.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeIOS7RRect.prototype.cst.R_SIZE,"10"));a.roundrect(0,0,b,c,d);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeIOS7RRect.prototype.cst.RRECT,mxShapeIOS7RRect);function mxShapeIOS7LeftButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeIOS7LeftButton,mxShape);
4283mxShapeIOS7LeftButton.prototype.cst={LEFT_BUTTON:"mxgraph.ios7ui.leftButton",R_SIZE:"rSize"};mxShapeIOS7LeftButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:3}];
4284mxShapeIOS7LeftButton.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeIOS7LeftButton.prototype.cst.R_SIZE,"10"));a.begin();a.moveTo(b,0);a.lineTo(b,c);a.lineTo(d,c);a.arcTo(d,d,0,0,1,0,c-d);a.lineTo(0,d);a.arcTo(d,d,0,0,1,d,0);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeIOS7LeftButton.prototype.cst.LEFT_BUTTON,mxShapeIOS7LeftButton);
4285function mxShapeIOS7RightButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeIOS7RightButton,mxShape);mxShapeIOS7RightButton.prototype.cst={RIGHT_BUTTON:"mxgraph.ios7ui.rightButton",R_SIZE:"rSize"};mxShapeIOS7RightButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:3}];
4286mxShapeIOS7RightButton.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeIOS7RightButton.prototype.cst.R_SIZE,"10"));a.begin();a.moveTo(0,0);a.lineTo(b-d,0);a.arcTo(d,d,0,0,1,b,d);a.lineTo(b,c-d);a.arcTo(d,d,0,0,1,b-d,c);a.lineTo(0,c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeIOS7RightButton.prototype.cst.RIGHT_BUTTON,mxShapeIOS7RightButton);
4287function mxShapeIOS7TopButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeIOS7TopButton,mxShape);mxShapeIOS7TopButton.prototype.cst={TOP_BUTTON:"mxgraph.ios7ui.topButton",R_SIZE:"rSize"};mxShapeIOS7TopButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:3}];
4288mxShapeIOS7TopButton.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeIOS7TopButton.prototype.cst.R_SIZE,"10"));a.begin();a.moveTo(b,c);a.lineTo(0,c);a.lineTo(0,d);a.arcTo(d,d,0,0,1,d,0);a.lineTo(b-d,0);a.arcTo(d,d,0,0,1,b,d);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeIOS7TopButton.prototype.cst.TOP_BUTTON,mxShapeIOS7TopButton);
4289function mxShapeIOS7BottomButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeIOS7BottomButton,mxShape);mxShapeIOS7BottomButton.prototype.cst={BOTTOM_BUTTON:"mxgraph.ios7ui.bottomButton",R_SIZE:"rSize"};mxShapeIOS7BottomButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:3}];
4290mxShapeIOS7BottomButton.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeIOS7BottomButton.prototype.cst.R_SIZE,"10"));a.begin();a.moveTo(b,0);a.lineTo(0,0);a.lineTo(0,c-d);a.arcTo(d,d,0,0,0,d,c);a.lineTo(b-d,c);a.arcTo(d,d,0,0,0,b,c-d);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeIOS7BottomButton.prototype.cst.BOTTOM_BUTTON,mxShapeIOS7BottomButton);
4291function mxShapeIOS7HorLines(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeIOS7HorLines,mxShape);mxShapeIOS7HorLines.prototype.cst={HOR_LINES:"mxgraph.ios7ui.horLines"};mxShapeIOS7HorLines.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.rect(0,0,b,c);a.fill();a.begin();a.moveTo(0,0);a.lineTo(b,0);a.moveTo(0,c);a.lineTo(b,c);a.stroke()};
4292mxCellRenderer.registerShape(mxShapeIOS7HorLines.prototype.cst.HOR_LINES,mxShapeIOS7HorLines);function mxShapeIOS7MarginRect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeIOS7MarginRect,mxShape);
4293mxShapeIOS7MarginRect.prototype.customProperties=[{name:"rx",dispName:"Hor. Rounding Size",type:"float",min:0,defVal:3},{name:"ry",dispName:"Ver. Rounding Size",type:"float",min:0,defVal:3},{name:"rectMargin",dispName:"Global Margin",type:"float",min:0,defVal:5},{name:"rectMarginTop",dispName:"Top Margin",type:"float",min:0,defVal:0},{name:"rectMarginLeft",dispName:"Left Margin",type:"float",min:0,defVal:0},{name:"rectMarginBottom",dispName:"Bottom Margin",type:"float",min:0,defVal:0},{name:"rectMarginRight",
4294dispName:"Right Margin",type:"float",min:0,defVal:0}];mxShapeIOS7MarginRect.prototype.cst={SHAPE_MARGIN_RECT:"mxgraph.ios7ui.marginRect",MARGIN:"rectMargin",RX:"rx",RY:"ry",MARGIN_TOP:"rectMarginTop",MARGIN_LEFT:"rectMarginLeft",MARGIN_BOTTOM:"rectMarginBottom",MARGIN_RIGHT:"rectMarginRight"};mxShapeIOS7MarginRect.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};
4295mxShapeIOS7MarginRect.prototype.background=function(a,d,e,b,c,f){f=parseFloat(mxUtils.getValue(this.style,mxShapeIOS7MarginRect.prototype.cst.MARGIN,"0"));var g=parseFloat(mxUtils.getValue(this.style,mxShapeIOS7MarginRect.prototype.cst.MARGIN_TOP,"0")),h=parseFloat(mxUtils.getValue(this.style,mxShapeIOS7MarginRect.prototype.cst.MARGIN_LEFT,"0")),k=parseFloat(mxUtils.getValue(this.style,mxShapeIOS7MarginRect.prototype.cst.MARGIN_BOTTOM,"0")),l=parseFloat(mxUtils.getValue(this.style,mxShapeIOS7MarginRect.prototype.cst.MARGIN_RIGHT,
4296"0"));d=parseFloat(mxUtils.getValue(this.style,mxShapeIOS7MarginRect.prototype.cst.RX,"0"));e=parseFloat(mxUtils.getValue(this.style,mxShapeIOS7MarginRect.prototype.cst.RY,"0"));h=f+h;g=f+g;b=b-l-h-f;c=c-k-g-f;0<b&&0<c&&(a.begin(),a.roundrect(h,g,b,c,d,e),a.fillAndStroke())};mxCellRenderer.registerShape(mxShapeIOS7MarginRect.prototype.cst.SHAPE_MARGIN_RECT,mxShapeIOS7MarginRect);
4297function mxShapeIOS7Callout(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeIOS7Callout,mxShape);mxShapeIOS7Callout.prototype.cst={SHAPE_CALLOUT:"mxgraph.ios7ui.callout"};mxShapeIOS7Callout.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};
4298mxShapeIOS7Callout.prototype.background=function(a,d,e,b,c,f){30<=b&&20<=c&&(a.begin(),a.moveTo(15,c-3),a.arcTo(20,10,0,0,1,0,c),a.arcTo(15,15,0,0,0,10,c-10),a.lineTo(10,10),a.arcTo(10,10,0,0,1,20,0),a.lineTo(b-10,0),a.arcTo(10,10,0,0,1,b,10),a.lineTo(b,c-10),a.arcTo(10,10,0,0,1,b-10,c),a.lineTo(20,c),a.arcTo(10,10,0,0,1,15,c-3),a.close(),a.fillAndStroke())};mxCellRenderer.registerShape(mxShapeIOS7Callout.prototype.cst.SHAPE_CALLOUT,mxShapeIOS7Callout);
4299function mxShapeIOS7SelectBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=this.dy=.5;this.dx2=70;this.size=10}mxUtils.extend(mxShapeIOS7SelectBar,mxActor);mxShapeIOS7SelectBar.prototype.cst={SELECT_BAR:"mxgraph.ios7ui.selectBar"};
4300mxShapeIOS7SelectBar.prototype.customProperties=[{name:"dx",dispName:"Callout Position",type:"float",min:0,defVal:120},{name:"dx2",dispName:"Field Size",type:"float",min:0,defVal:75},{name:"size",dispName:"Rounding size",type:"float",min:0,defVal:5},{name:"dy",dispName:"Callout Size",type:"float",min:0,defVal:5}];
4301mxShapeIOS7SelectBar.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);var f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2))));e=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var g=Math.max(0,Math.min(c,(b-Math.max(20,e)-e)/2,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));e=Math.min(c/2,b/2,e);f=Math.max(e+g,f);f=Math.min(b-e-g,b-
430220-g,f);a.begin();a.moveTo(f-g,c);a.lineTo(e,c);a.arcTo(e,e,0,0,1,0,c-e);a.lineTo(0,e);a.arcTo(e,e,0,0,1,e,0);a.lineTo(b-e,0);a.arcTo(e,e,0,0,1,b,e);a.lineTo(b,c-e);a.arcTo(e,e,0,0,1,b-e,c);a.lineTo(f+g,c);a.lineTo(f,c+g);a.close();a.fillAndStroke();a.setShadow(!1);a.begin();a.moveTo(b-Math.max(20,e),0);a.lineTo(b-Math.max(20,e),c);a.stroke();f=d;for(a.begin();f<b-Math.max(20,e);)a.moveTo(f,0),a.lineTo(f,c),f+=d;a.stroke();d=Math.min(Math.max(20,e),c);b-=.5*d;c*=.5;a.setFillColor(mxUtils.getValue(this.style,
4303mxConstants.STYLE_STROKECOLOR,""));a.begin();a.moveTo(b-.15*d,c-.225*d);a.lineTo(b+.25*d,c);a.lineTo(b-.15*d,c+.225*d);a.close();a.fill()};mxCellRenderer.registerShape(mxShapeIOS7SelectBar.prototype.cst.SELECT_BAR,mxShapeIOS7SelectBar);mxShapeIOS7SelectBar.prototype.constraints=null;
4304Graph.handleFactory[mxShapeIOS7SelectBar.prototype.cst.SELECT_BAR]=function(a){var d=[Graph.createHandle(a,["dx"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+b,a.y+a.height)},function(a,c){var b=.6*parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy));this.state.style.dx=Math.round(100*Math.max(b,Math.min(a.width-b,c.x-a.x)))/100})],e=Graph.createHandle(a,["dy"],function(a){var b=Math.max(0,Math.min(a.height,
4305parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)),a.y+a.height+b)},function(a,c){this.state.style.dy=Math.round(100*Math.max(0,Math.min(a.height,c.y-a.y-a.height)))/100});d.push(e);e=Graph.createHandle(a,["size"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"size",this.size))));return new mxPoint(a.x+a.width-b,a.y+10)},function(a,c){this.state.style.size=Math.round(100*
4306Math.max(0,Math.min(a.width/2,a.height/2,a.x+a.width-c.x)))/100});d.push(e);a=Graph.createHandle(a,["dx2"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx2))));return new mxPoint(a.x+b,a.y+a.height/2)},function(a,c){this.state.style.dx2=Math.round(100*Math.max(0,Math.min(a.width,c.x-a.x)))/100});d.push(a);return d};function mxShapeIOS7Slider2(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
4307mxUtils.extend(mxShapeIOS7Slider2,mxShape);mxShapeIOS7Slider2.prototype.cst={SHAPE_SLIDER:"mxgraph.ios7ui.slider",BAR_POS:"barPos",HANDLE_SIZE:"handleSize"};mxShapeIOS7Slider2.prototype.customProperties=[{name:"barPos",dispName:"Handle Position",type:"float",min:0,max:1,defVal:20},{name:"handleSize",dispName:"Handle Size",type:"float",min:0,defVal:10}];mxShapeIOS7Slider2.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!0)};
4308mxShapeIOS7Slider2.prototype.background=function(a,d,e,b,c){d=parseFloat(mxUtils.getValue(this.style,mxShapeIOS7Slider2.prototype.cst.HANDLE_SIZE,"10"));e=parseFloat(mxUtils.getValue(this.style,mxShapeIOS7Slider2.prototype.cst.BAR_POS,"40"))/100;e=Math.max(0,Math.min(1,e));a.save();a.setStrokeColor("#bbbbbb");a.begin();a.moveTo(0,.5*c);a.lineTo(b,.5*c);a.fillAndStroke();a.restore();a.begin();a.moveTo(0,.5*c);a.lineTo(e*b,.5*c);a.fillAndStroke();a.setStrokeColor("#bbbbbb");a.begin();a.ellipse(e*b-
4309.5*d,.5*c-.5*d,d,d);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeIOS7Slider2.prototype.cst.SHAPE_SLIDER,mxShapeIOS7Slider2);mxShapeIOS7Slider2.prototype.constraints=null;
4310Graph.handleFactory[mxShapeIOS7Slider2.prototype.cst.SHAPE_SLIDER]=function(a){return[Graph.createHandle(a,["barPos"],function(a){var d=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"barPos",.4))));return new mxPoint(a.x+d*a.width/100,a.y+a.height/2)},function(a,e){this.state.style.barPos=Math.round(100*Math.max(0,Math.min(100,100*(e.x-a.x)/a.width)))/100})]};
4311function mxShapeMockupMultiButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupMultiButton,mxShape);mxShapeMockupMultiButton.prototype.cst={MAIN_TEXT:"mainText",SHAPE_MULTILINE_BUTTON:"mxgraph.mockup.buttons.multiButton",SUB_TEXT:"subText",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize",BUTTON_STYLE:"buttonStyle",ROUND:"round",CHEVRON:"chevron"};
4312mxShapeMockupMultiButton.prototype.customProperties=[{name:"buttonStyle",dispName:"Style",type:"enum",defVal:"round",enumList:[{val:"round",dispName:"Round"},{val:"chevron",dispName:"Chevron"}]}];
4313mxShapeMockupMultiButton.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxShapeMockupMultiButton.prototype.cst.MAIN_TEXT,"Main Text"),g=mxUtils.getValue(this.style,mxShapeMockupMultiButton.prototype.cst.SUB_TEXT,"Sub Text"),h=mxUtils.getValue(this.style,mxShapeMockupMultiButton.prototype.cst.TEXT_COLOR,"#666666"),k=mxUtils.getValue(this.style,mxShapeMockupMultiButton.prototype.cst.TEXT_SIZE,"17");a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);a.setFontStyle(mxConstants.FONT_BOLD);
4314this.mainText(a,d,e,b,c,f,k,h);this.subText(a,d,e,b,c,g,k/1.4,h)};
4315mxShapeMockupMultiButton.prototype.background=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxShapeMockupMultiButton.prototype.cst.BUTTON_STYLE,mxShapeMockupMultiButton.prototype.cst.ROUND).toString();a.begin();d===mxShapeMockupMultiButton.prototype.cst.ROUND?(a.moveTo(0,10),a.arcTo(10,10,0,0,1,10,0),a.lineTo(b-10,0),a.arcTo(10,10,0,0,1,b,10),a.lineTo(b,c-10),a.arcTo(10,10,0,0,1,b-10,c),a.lineTo(10,c),a.arcTo(10,10,0,0,1,0,c-10)):d===mxShapeMockupMultiButton.prototype.cst.CHEVRON&&(a.moveTo(0,
4316.1*c),a.arcTo(.0372*b,.1111*c,0,0,1,.0334*b,0),a.lineTo(.768*b,0),a.arcTo(.0722*b,.216*c,0,0,1,.8014*b,.0399*c),a.lineTo(.99*b,.4585*c),a.arcTo(.09*b,.1*c,0,0,1,.99*b,.5415*c),a.lineTo(.8014*b,.9568*c),a.arcTo(.0722*b,.216*c,0,0,1,.768*b,c),a.lineTo(.0334*b,c),a.arcTo(.0372*b,.1111*c,0,0,1,0,.9*c));a.close();a.fillAndStroke()};
4317mxShapeMockupMultiButton.prototype.mainText=function(a,d,e,b,c,f,g,h){a.begin();a.setFontSize(g);a.setFontColor(h);a.text(.5*b,.4*c,0,0,f,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxShapeMockupMultiButton.prototype.subText=function(a,d,e,b,c,f,g,h){a.begin();a.setFontSize(g);a.text(.5*b,.7*c,0,0,f,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape(mxShapeMockupMultiButton.prototype.cst.SHAPE_MULTILINE_BUTTON,mxShapeMockupMultiButton);
4318function mxShapeMockupButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupButton,mxShape);mxShapeMockupButton.prototype.cst={MAIN_TEXT:"mainText",SHAPE_BUTTON:"mxgraph.mockup.buttons.button",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize",BUTTON_STYLE:"buttonStyle",ROUND:"round",CHEVRON:"chevron"};
4319mxShapeMockupButton.prototype.customProperties=[{name:"buttonStyle",dispName:"Style",type:"enum",defVal:"round",enumList:[{val:"round",dispName:"Round"},{val:"chevron",dispName:"Chevron"}]}];
4320mxShapeMockupButton.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxShapeMockupButton.prototype.cst.MAIN_TEXT,"Main Text"),g=mxUtils.getValue(this.style,mxShapeMockupButton.prototype.cst.TEXT_COLOR,"#666666").toString(),h=mxUtils.getValue(this.style,mxShapeMockupButton.prototype.cst.TEXT_SIZE,"17").toString();a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.mainText(a,d,e,b,c,f,h,g)};
4321mxShapeMockupButton.prototype.background=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxShapeMockupButton.prototype.cst.BUTTON_STYLE,mxShapeMockupButton.prototype.cst.ROUND).toString();a.begin();d===mxShapeMockupButton.prototype.cst.ROUND?(a.moveTo(0,10),a.arcTo(10,10,0,0,1,10,0),a.lineTo(b-10,0),a.arcTo(10,10,0,0,1,b,10),a.lineTo(b,c-10),a.arcTo(10,10,0,0,1,b-10,c),a.lineTo(10,c),a.arcTo(10,10,0,0,1,0,c-10)):d===mxShapeMockupButton.prototype.cst.CHEVRON&&(a.moveTo(0,.1*c),a.arcTo(.0372*b,.1111*
4322c,0,0,1,.0334*b,0),a.lineTo(.768*b,0),a.arcTo(.0722*b,.216*c,0,0,1,.8014*b,.0399*c),a.lineTo(.99*b,.4585*c),a.arcTo(.09*b,.1*c,0,0,1,.99*b,.5415*c),a.lineTo(.8014*b,.9568*c),a.arcTo(.0722*b,.216*c,0,0,1,.768*b,c),a.lineTo(.0334*b,c),a.arcTo(.0372*b,.1111*c,0,0,1,0,.9*c));a.close();a.fillAndStroke()};
4323mxShapeMockupButton.prototype.mainText=function(a,d,e,b,c,f,g,h){a.begin();a.setFontSize(g);a.setFontColor(h);a.setFontStyle(mxConstants.FONT_BOLD);a.text(b/2,c/2,0,0,f,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape(mxShapeMockupButton.prototype.cst.SHAPE_BUTTON,mxShapeMockupButton);function mxShapeMockupHorButtonBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
4324mxUtils.extend(mxShapeMockupHorButtonBar,mxShape);mxShapeMockupHorButtonBar.prototype.cst={MAIN_TEXT:"mainText",SHAPE_HOR_BUTTON_BAR:"mxgraph.mockup.buttons.horButtonBar",TEXT_COLOR:"textColor",TEXT_COLOR2:"textColor2",STROKE_COLOR2:"strokeColor2",FILL_COLOR2:"fillColor2",SELECTED:"+",TEXT_SIZE:"textSize"};
4325mxShapeMockupHorButtonBar.prototype.paintVertexShape=function(a,d,e,b,c){for(var f=mxUtils.getValue(this.style,mxShapeMockupHorButtonBar.prototype.cst.MAIN_TEXT,"+Button 1, Button 2, Button 3").toString().split(","),g=mxUtils.getValue(this.style,mxShapeMockupHorButtonBar.prototype.cst.TEXT_COLOR,"#666666"),h=mxUtils.getValue(this.style,mxShapeMockupHorButtonBar.prototype.cst.TEXT_COLOR2,"#ffffff"),k=mxUtils.getValue(this.style,mxShapeMockupHorButtonBar.prototype.cst.TEXT_SIZE,"17").toString(),l=mxUtils.getValue(this.style,
4326mxConstants.STYLE_STROKECOLOR,"#666666"),m=mxUtils.getValue(this.style,mxShapeMockupHorButtonBar.prototype.cst.STROKE_COLOR2,"#c4c4c4"),n=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),p=mxUtils.getValue(this.style,mxShapeMockupHorButtonBar.prototype.cst.FILL_COLOR2,"#008cff"),q=f.length,t=Array(q),u=0,v=-1,r=0;r<q;r++){var w=f[r];w.charAt(0)===mxShapeMockupHorButtonBar.prototype.cst.SELECTED&&(w=f[r].substring(1),v=r);t[r]=mxUtils.getSizeForString(w,k,mxConstants.DEFAULT_FONTFAMILY).width;
4327u+=t[r]}c=Math.max(c,1.5*k,20);u=10*q+u;b=Math.max(b,u);a.translate(d,e);this.background(a,b,c,10,q,t,5,u,l,m,n,p,v);a.setShadow(!1);a.setFontStyle(mxConstants.FONT_BOLD);for(r=d=0;r<q;r++)r===v?a.setFontColor(h):a.setFontColor(g),d+=5,this.buttonText(a,d,c,f[r],t[r],k,u,b),d=d+t[r]+5};
4328mxShapeMockupHorButtonBar.prototype.background=function(a,d,e,b,c,f,g,h,k,l,m,n,p){a.begin();a.setStrokeColor(k);a.setFillColor(m);a.moveTo(0,b);a.arcTo(b,b,0,0,1,b,0);a.lineTo(d-b,0);a.arcTo(b,b,0,0,1,d,b);a.lineTo(d,e-b);a.arcTo(b,b,0,0,1,d-b,e);a.lineTo(b,e);a.arcTo(b,b,0,0,1,0,e-b);a.close();a.fillAndStroke();a.setStrokeColor(l);a.begin();for(l=1;l<c;l++)if(l!==p&&l!==p+1){for(var q=0,t=0;t<l;t++)q+=f[t]+2*g;q=q*d/h;a.moveTo(q,0);a.lineTo(q,e)}a.stroke();q=0;a.setFillColor(n);for(l=0;l<p;l++)q+=
4329f[l]+2*g;q=q*d/h;f=(f[p]+2*g)*d/h;f+=q;0===p?(a.begin(),a.moveTo(0,b),a.arcTo(b,b,0,0,1,b,0),a.lineTo(f,0),a.lineTo(f,e),a.lineTo(b,e),a.arcTo(b,b,0,0,1,0,e-b),a.close(),a.fill()):p===c-1?(a.begin(),a.moveTo(q,0),a.lineTo(f-b,0),a.arcTo(b,b,0,0,1,f,b),a.lineTo(f,e-b),a.arcTo(b,b,0,0,1,f-b,e),a.lineTo(q,e),a.close(),a.fill()):-1!==p&&(a.begin(),a.moveTo(q,0),a.lineTo(f,0),a.lineTo(f,e),a.lineTo(q,e),a.close(),a.fill());a.setStrokeColor(k);a.setFillColor(m);a.begin();a.moveTo(0,b);a.arcTo(b,b,0,0,1,
4330b,0);a.lineTo(d-b,0);a.arcTo(b,b,0,0,1,d,b);a.lineTo(d,e-b);a.arcTo(b,b,0,0,1,d-b,e);a.lineTo(b,e);a.arcTo(b,b,0,0,1,0,e-b);a.close();a.stroke()};mxShapeMockupHorButtonBar.prototype.buttonText=function(a,d,e,b,c,f,g,h){b.charAt(0)===mxShapeMockupHorButtonBar.prototype.cst.SELECTED&&(b=b.substring(1));a.begin();a.setFontSize(f);a.text((d+.5*c)*h/g,.5*e,0,0,b,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};
4331mxCellRenderer.registerShape(mxShapeMockupHorButtonBar.prototype.cst.SHAPE_HOR_BUTTON_BAR,mxShapeMockupHorButtonBar);function mxShapeMockupVerButtonBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupVerButtonBar,mxShape);
4332mxShapeMockupVerButtonBar.prototype.cst={MAIN_TEXT:"mainText",SHAPE_VER_BUTTON_BAR:"mxgraph.mockup.buttons.verButtonBar",TEXT_COLOR:"textColor",TEXT_COLOR2:"textColor2",STROKE_COLOR2:"strokeColor2",FILL_COLOR2:"fillColor2",SELECTED:"+",TEXT_SIZE:"textSize"};
4333mxShapeMockupVerButtonBar.prototype.paintVertexShape=function(a,d,e,b,c){for(var f=mxUtils.getValue(this.style,mxShapeMockupVerButtonBar.prototype.cst.MAIN_TEXT,"+Button 1, Button 2, Button 3").toString().split(","),g=mxUtils.getValue(this.style,mxShapeMockupVerButtonBar.prototype.cst.TEXT_COLOR,"#666666"),h=mxUtils.getValue(this.style,mxShapeMockupVerButtonBar.prototype.cst.TEXT_COLOR2,"#ffffff"),k=mxUtils.getValue(this.style,mxShapeMockupVerButtonBar.prototype.cst.TEXT_SIZE,"17").toString(),l=mxUtils.getValue(this.style,
4334mxConstants.STYLE_STROKECOLOR,"#666666"),m=mxUtils.getValue(this.style,mxShapeMockupVerButtonBar.prototype.cst.STROKE_COLOR2,"#c4c4c4"),n=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),p=mxUtils.getValue(this.style,mxShapeMockupVerButtonBar.prototype.cst.FILL_COLOR2,"#008cff"),q=f.length,t=0,u=-1,v=0;v<q;v++){var r=f[v];r.charAt(0)===mxShapeMockupVerButtonBar.prototype.cst.SELECTED&&(r=f[v].substring(1),u=v);r=mxUtils.getSizeForString(r,k,mxConstants.DEFAULT_FONTFAMILY).width;
4335r>t&&(t=r)}var w=1.5*k,x=q*w;c=Math.max(c,x);b=Math.max(b,10+t);a.translate(d,e);this.background(a,b,c,10,q,5,q*w,l,m,n,p,u,w);a.setShadow(!1);r=0;a.setFontStyle(mxConstants.FONT_BOLD);for(v=0;v<q;v++)v===u?a.setFontColor(h):a.setFontColor(g),r+=5,this.buttonText(a,b,(v*w+.5*w)*c/x,f[v],k)};
4336mxShapeMockupVerButtonBar.prototype.background=function(a,d,e,b,c,f,g,h,k,l,m,n,p){a.begin();a.setStrokeColor(h);a.setFillColor(l);a.moveTo(0,b);a.arcTo(b,b,0,0,1,b,0);a.lineTo(d-b,0);a.arcTo(b,b,0,0,1,d,b);a.lineTo(d,e-b);a.arcTo(b,b,0,0,1,d-b,e);a.lineTo(b,e);a.arcTo(b,b,0,0,1,0,e-b);a.close();a.fillAndStroke();a.setStrokeColor(k);a.begin();for(f=1;f<c;f++)f!==n&&f!==n+1&&(k=f*p*e/g,a.moveTo(0,k),a.lineTo(d,k));a.stroke();a.setFillColor(m);0===n?(a.begin(),g=p*e/g,a.moveTo(0,b),a.arcTo(b,b,0,0,
43371,b,0),a.lineTo(d-b,0),a.arcTo(b,b,0,0,1,d,b),a.lineTo(d,g),a.lineTo(0,g),a.close(),a.fill()):n===c-1?(a.begin(),c=e-p*e/g,a.moveTo(0,c),a.lineTo(d,c),a.lineTo(d,e-b),a.arcTo(b,b,0,0,1,d-b,e),a.lineTo(b,e),a.arcTo(b,b,0,0,1,0,e-b),a.close(),a.fill()):-1!==n&&(a.begin(),c=p*n*e/g,g=p*(n+1)*e/g,a.moveTo(0,c),a.lineTo(d,c),a.lineTo(d,g),a.lineTo(0,g),a.close(),a.fill());a.begin();a.setStrokeColor(h);a.setFillColor(l);a.moveTo(0,b);a.arcTo(b,b,0,0,1,b,0);a.lineTo(d-b,0);a.arcTo(b,b,0,0,1,d,b);a.lineTo(d,
4338e-b);a.arcTo(b,b,0,0,1,d-b,e);a.lineTo(b,e);a.arcTo(b,b,0,0,1,0,e-b);a.close();a.stroke()};mxShapeMockupVerButtonBar.prototype.buttonText=function(a,d,e,b,c){b.charAt(0)===mxShapeMockupVerButtonBar.prototype.cst.SELECTED&&(b=b.substring(1));a.begin();a.setFontSize(c);a.text(.5*d,e,0,0,b,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape(mxShapeMockupVerButtonBar.prototype.cst.SHAPE_VER_BUTTON_BAR,mxShapeMockupVerButtonBar);
4339function mxShapeMockupOnOffButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupOnOffButton,mxShape);mxShapeMockupOnOffButton.prototype.cst={SHAPE_ON_OFF_BUTTON:"mxgraph.mockup.buttons.onOffButton",BUTTON_STATE:"buttonState",STATE_ON:"on",STATE_OFF:"off",FILL_COLOR2:"fillColor2",MAIN_TEXT:"mainText",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize"};
4340mxShapeMockupOnOffButton.prototype.customProperties=[{name:"buttonState",dispName:"Button State",type:"enum",enumList:[{val:"on",dispName:"On"},{val:"off",dispName:"Off"}]}];mxShapeMockupOnOffButton.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);b=Math.max(b,10);c=Math.max(c,10);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};mxShapeMockupOnOffButton.prototype.background=function(a,d,e,b,c){a.roundrect(0,0,b,c,10,10);a.fillAndStroke()};
4341mxShapeMockupOnOffButton.prototype.foreground=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxShapeMockupOnOffButton.prototype.cst.BUTTON_STATE,mxShapeMockupOnOffButton.prototype.cst.STATE_ON);e=mxUtils.getValue(this.style,mxShapeMockupOnOffButton.prototype.cst.FILL_COLOR2,"#008cff");var f=mxUtils.getValue(this.style,mxShapeMockupOnOffButton.prototype.cst.TEXT_COLOR,"#ffffff,#999999").toString().split(","),g=mxUtils.getValue(this.style,mxShapeMockupOnOffButton.prototype.cst.MAIN_TEXT,"ON,OFF").toString().split(","),
4342h=mxUtils.getValue(this.style,mxShapeMockupOnOffButton.prototype.cst.TEXT_SIZE,"17");d===mxShapeMockupOnOffButton.prototype.cst.STATE_ON?(a.setFillColor(e),a.setFontColor(f[0]),a.roundrect(0,0,.75*b,c,10,10)):(a.setFontColor(f[1]),a.roundrect(.25*b,0,.75*b,c,10,10));a.fillAndStroke();a.setFontSize(h);a.setFontStyle(mxConstants.FONT_BOLD);d===mxShapeMockupOnOffButton.prototype.cst.STATE_ON?a.text(.375*b,.5*c,0,0,g[0],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):d===mxShapeMockupOnOffButton.prototype.cst.STATE_OFF&&
4343a.text(.625*b,.5*c,0,0,g[1],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape(mxShapeMockupOnOffButton.prototype.cst.SHAPE_ON_OFF_BUTTON,mxShapeMockupOnOffButton);function mxShapeMockupRRect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupRRect,mxShape);mxShapeMockupRRect.prototype.cst={RRECT:"mxgraph.mockup.rrect",R_SIZE:"rSize"};
4344mxShapeMockupRRect.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}];mxShapeMockupRRect.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeMockupRRect.prototype.cst.R_SIZE,"10"));a.roundrect(0,0,b,c,d);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeMockupRRect.prototype.cst.RRECT,mxShapeMockupRRect);function mxShapeMockupAnchor(a,d,e,b){mxShape.call(this);this.bounds=a}
4345mxUtils.extend(mxShapeMockupAnchor,mxShape);mxShapeMockupAnchor.prototype.cst={ANCHOR:"mxgraph.mockup.anchor"};mxShapeMockupAnchor.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}];mxShapeMockupAnchor.prototype.paintVertexShape=function(a,d,e,b,c){};mxCellRenderer.registerShape(mxShapeMockupAnchor.prototype.cst.ANCHOR,mxShapeMockupAnchor);
4346function mxShapeMockupTopButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupTopButton,mxShape);mxShapeMockupTopButton.prototype.cst={TOP_BUTTON:"mxgraph.mockup.topButton",R_SIZE:"rSize"};mxShapeMockupTopButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}];
4347mxShapeMockupTopButton.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeMockupTopButton.prototype.cst.R_SIZE,"10"));a.begin();a.moveTo(0,d);a.arcTo(d,d,0,0,1,d,0);a.lineTo(b-d,0);a.arcTo(d,d,0,0,1,b,d);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeMockupTopButton.prototype.cst.TOP_BUTTON,mxShapeMockupTopButton);
4348function mxShapeMockupBottomButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupBottomButton,mxShape);mxShapeMockupBottomButton.prototype.cst={BOTTOM_BUTTON:"mxgraph.mockup.bottomButton",R_SIZE:"rSize"};mxShapeMockupBottomButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}];
4349mxShapeMockupBottomButton.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeMockupBottomButton.prototype.cst.R_SIZE,"10"));a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,c-d);a.arcTo(d,d,0,0,1,b-d,c);a.lineTo(d,c);a.arcTo(d,d,0,0,1,0,c-d);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeMockupBottomButton.prototype.cst.BOTTOM_BUTTON,mxShapeMockupBottomButton);
4350function mxShapeMockupRightButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupRightButton,mxShape);mxShapeMockupRightButton.prototype.cst={RIGHT_BUTTON:"mxgraph.mockup.rightButton",R_SIZE:"rSize"};mxShapeMockupRightButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}];
4351mxShapeMockupRightButton.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeMockupRightButton.prototype.cst.R_SIZE,"10"));a.begin();a.moveTo(0,0);a.lineTo(b-d,0);a.arcTo(d,d,0,0,1,b,d);a.lineTo(b,c-d);a.arcTo(d,d,0,0,1,b-d,c);a.lineTo(0,c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeMockupRightButton.prototype.cst.RIGHT_BUTTON,mxShapeMockupRightButton);
4352function mxShapeMockupLeftButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupLeftButton,mxShape);mxShapeMockupLeftButton.prototype.cst={LEFT_BUTTON:"mxgraph.mockup.leftButton",R_SIZE:"rSize"};mxShapeMockupLeftButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}];
4353mxShapeMockupLeftButton.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeMockupLeftButton.prototype.cst.R_SIZE,"10"));a.begin();a.moveTo(b,0);a.lineTo(b,c);a.lineTo(d,c);a.arcTo(d,d,0,0,1,0,c-d);a.lineTo(0,d);a.arcTo(d,d,0,0,1,d,0);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeMockupLeftButton.prototype.cst.LEFT_BUTTON,mxShapeMockupLeftButton);
4354function mxShapeMockupVideoPlayer(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.barPos=20;this.barHeight=30}mxUtils.extend(mxShapeMockupVideoPlayer,mxShape);mxShapeMockupVideoPlayer.prototype.cst={FILL_COLOR2:"fillColor2",TEXT_COLOR:"textColor",STROKE_COLOR2:"strokeColor2",STROKE_COLOR3:"strokeColor3",SHAPE_VIDEO_PLAYER:"mxgraph.mockup.containers.videoPlayer",BAR_POS:"barPos",BAR_HEIGHT:"barHeight"};
4355mxShapeMockupVideoPlayer.prototype.customProperties=[{name:"fillColor2",dispName:"Fill2 Color",type:"color"},{name:"textColor",dispName:"Text Color",type:"color"},{name:"strokeColor2",dispName:"Stroke2 Color",type:"color"},{name:"strokeColor3",dispName:"Stroke3 Color",type:"color"},{name:"barPos",dispName:"Handle Position",type:"float",min:0,max:100,defVal:20},{name:"barHeight",dispName:"Video Bar Height",type:"float",min:0,defVal:30}];
4356mxShapeMockupVideoPlayer.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),g=mxUtils.getValue(this.style,mxShapeMockupVideoPlayer.prototype.cst.FILL_COLOR2,"#c4c4c4"),h=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#666666"),k=mxUtils.getValue(this.style,mxShapeMockupVideoPlayer.prototype.cst.STROKE_COLOR2,"#008cff"),l=mxUtils.getValue(this.style,mxShapeMockupVideoPlayer.prototype.cst.STROKE_COLOR3,"#c4c4c4"),m=mxUtils.getValue(this.style,
4357mxShapeMockupVideoPlayer.prototype.cst.BAR_HEIGHT,"30");b=Math.max(b,5*m);c=Math.max(c,m+10);a.translate(d,e);this.background(a,d,e,b,c,f,h);a.setShadow(!1);this.otherShapes(a,d,e,b,c,g,h,k,l,m)};mxShapeMockupVideoPlayer.prototype.background=function(a,d,e,b,c,f,g){a.setFillColor(f);a.setStrokeColor(g);a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fillAndStroke()};
4358mxShapeMockupVideoPlayer.prototype.otherShapes=function(a,d,e,b,c,f,g,h,k,l){var m=mxUtils.getValue(this.style,mxShapeMockupVideoPlayer.prototype.cst.BAR_POS,"20"),m=Math.max(0,m),m=Math.min(100,m);d=mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,"1");e=c-l;m=8+(b-8-8)*m/100;a.setStrokeColor(h);a.begin();a.moveTo(0,e);a.lineTo(m,e);a.stroke();a.setStrokeColor(k);a.begin();a.moveTo(m,e);a.lineTo(b,e);a.stroke();a.setStrokeColor(g);a.begin();a.ellipse(m-8,e-8,16,16);a.fillAndStroke();a.begin();
4359a.setStrokeWidth(d/2);a.ellipse(m-4,e-4,8,8);a.fillAndStroke();a.setStrokeWidth(d);g=.3*l;h=c-.5*(l+g);k=.3*l;a.setFillColor(f);a.setStrokeColor(f);a.begin();a.moveTo(k,h);a.lineTo(k+g,h+.5*g);a.lineTo(k,h+g);a.close();a.fillAndStroke();f=c-l;a.moveTo(l+.05*l,f+.4*l);a.lineTo(l+.15*l,f+.4*l);a.lineTo(l+.3*l,f+.25*l);a.lineTo(l+.3*l,f+.75*l);a.lineTo(l+.15*l,f+.6*l);a.lineTo(l+.05*l,f+.6*l);a.close();a.fillAndStroke();a.begin();a.moveTo(l+.4*l,f+.35*l);a.arcTo(.2*l,.3*l,0,0,1,l+.4*l,f+.65*l);a.moveTo(l+
4360.425*l,f+.25*l);a.arcTo(.225*l,.35*l,0,0,1,l+.425*l,f+.75*l);a.stroke();b-=1.3*l;a.begin();a.moveTo(b+.1*l,f+.4*l);a.lineTo(b+.1*l,f+.3*l);a.lineTo(b+.25*l,f+.3*l);a.moveTo(b+.1*l,f+.6*l);a.lineTo(b+.1*l,f+.7*l);a.lineTo(b+.25*l,f+.7*l);a.moveTo(b+.9*l,f+.4*l);a.lineTo(b+.9*l,f+.3*l);a.lineTo(b+.75*l,f+.3*l);a.moveTo(b+.9*l,f+.6*l);a.lineTo(b+.9*l,f+.7*l);a.lineTo(b+.75*l,f+.7*l);a.stroke();b=mxUtils.getValue(this.style,mxShapeMockupVideoPlayer.prototype.cst.TEXT_COLOR,"#666666");a.begin();a.setFontSize(.5*
4361l);a.setFontColor(b);a.text(1.9*l,c-.45*l,0,0,"0:00/3:53",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape(mxShapeMockupVideoPlayer.prototype.cst.SHAPE_VIDEO_PLAYER,mxShapeMockupVideoPlayer);
4362Graph.handleFactory[mxShapeMockupVideoPlayer.prototype.cst.SHAPE_VIDEO_PLAYER]=function(a){var d=[Graph.createHandle(a,["barPos"],function(a){var b=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"barPos",this.barPos)))),c=parseFloat(mxUtils.getValue(this.state.style,"barHeight",this.barHeight));return new mxPoint(a.x+(a.width-16)*b/a.width/100*a.width+8,a.y+a.height-c-20)},function(a,b){this.state.style.barPos=Math.round(1E3*Math.max(0,Math.min(100,100*(b.x-a.x)/a.width)))/1E3})];
4363a=Graph.createHandle(a,["barHeight"],function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"barHeight",this.barHeight))));return new mxPoint(a.x+a.width-20,a.y+a.height-b)},function(a,b){this.state.style.barHeight=Math.round(1E3*Math.max(0,Math.min(a.height,a.y+a.height-b.y)))/1E3});d.push(a);return d};function mxShapeMockupAccordion(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
4364mxUtils.extend(mxShapeMockupAccordion,mxShape);mxShapeMockupAccordion.prototype.cst={TEXT_COLOR:"textColor",TEXT_COLOR2:"textColor2",TEXT_SIZE:"textSize",SHAPE_ACCORDION:"mxgraph.mockup.containers.accordion",STROKE_COLOR2:"strokeColor2",FILL_COLOR2:"fillColor2",SELECTED:"+",MAIN_TEXT:"mainText"};
4365mxShapeMockupAccordion.prototype.paintVertexShape=function(a,d,e,b,c){for(var f=mxUtils.getValue(this.style,mxShapeMockupAccordion.prototype.cst.MAIN_TEXT,"+Group 1, Group 2, Group 3").toString().split(","),g=mxUtils.getValue(this.style,mxShapeMockupAccordion.prototype.cst.TEXT_COLOR,"#666666"),h=mxUtils.getValue(this.style,mxShapeMockupAccordion.prototype.cst.TEXT_COLOR2,"#ffffff"),k=mxUtils.getValue(this.style,mxShapeMockupAccordion.prototype.cst.TEXT_SIZE,"17").toString(),l=mxUtils.getValue(this.style,
4366mxConstants.STYLE_STROKECOLOR,"#666666"),m=mxUtils.getValue(this.style,mxShapeMockupAccordion.prototype.cst.STROKE_COLOR2,"#c4c4c4"),n=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),p=mxUtils.getValue(this.style,mxShapeMockupAccordion.prototype.cst.FILL_COLOR2,"#008cff"),q=f.length,t=0,u=-1,v=0;v<q;v++){var r=f[v];r.charAt(0)===mxShapeMockupAccordion.prototype.cst.SELECTED&&(r=f[v].substring(1),u=v);r=mxUtils.getSizeForString(r,k,mxConstants.DEFAULT_FONTFAMILY).width;r>t&&(t=r)}var w=
43671.5*k;c=Math.max(c,q*w);b=Math.max(b,10+t);a.translate(d,e);this.background(a,b,c,10,q,5,q*w,l,m,n,p,u,w);a.setShadow(!1);for(v=r=0;v<q;v++)v===u?a.setFontColor(h):a.setFontColor(g),r+=5,this.buttonText(a,b,-1===u||v<=u?v*w+.5*w:c-(q-v-.5)*w,f[v],k)};
4368mxShapeMockupAccordion.prototype.background=function(a,d,e,b,c,f,g,h,k,l,m,n,p){a.begin();a.setStrokeColor(h);a.setFillColor(l);a.moveTo(0,0);a.lineTo(d,0);a.lineTo(d,e);a.lineTo(0,e);a.close();a.fillAndStroke();a.setStrokeColor(k);a.begin();for(b=1;b<c;b++)b!==n&&(f=-1===n||b<n?b*p:e-(c-b)*p,a.moveTo(0,f),a.lineTo(d,f));a.stroke();a.setStrokeColor(mxConstants.NONE);a.setFillColor(m);-1!==n&&(a.begin(),c=p*n,n=p*(n+1),a.moveTo(0,c),a.lineTo(d,c),a.lineTo(d,n),a.lineTo(0,n),a.close(),a.fill());a.begin();
4369a.setStrokeColor(h);a.setFillColor(l);a.moveTo(0,0);a.lineTo(d,0);a.lineTo(d,e);a.lineTo(0,e);a.close();a.stroke()};mxShapeMockupAccordion.prototype.buttonText=function(a,d,e,b,c){b.charAt(0)===mxShapeMockupAccordion.prototype.cst.SELECTED&&(b=b.substring(1));a.begin();a.setFontSize(c);a.text(.5*d,e,0,0,b,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape(mxShapeMockupAccordion.prototype.cst.SHAPE_ACCORDION,mxShapeMockupAccordion);
4370function mxShapeMockupBrowserWindow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupBrowserWindow,mxShape);mxShapeMockupBrowserWindow.prototype.cst={STROKE_COLOR2:"strokeColor2",STROKE_COLOR3:"strokeColor3",MAIN_TEXT:"mainText",SHAPE_BROWSER_WINDOW:"mxgraph.mockup.containers.browserWindow"};
4371mxShapeMockupBrowserWindow.prototype.customProperties=[{name:"strokeColor2",dispName:"Stroke2 Color",type:"color"},{name:"strokeColor3",dispName:"Stroke3 Color",type:"color"}];
4372mxShapeMockupBrowserWindow.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),g=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#666666"),h=mxUtils.getValue(this.style,mxShapeMockupBrowserWindow.prototype.cst.STROKE_COLOR2,"#008cff"),k=mxUtils.getValue(this.style,mxShapeMockupBrowserWindow.prototype.cst.STROKE_COLOR3,"#c4c4c4");b=Math.max(b,260);c=Math.max(c,110);a.translate(d,e);this.background(a,d,e,b,c,f,g);a.setShadow(!1);
4373this.otherShapes(a,d,e,b,c,g,k,h)};mxShapeMockupBrowserWindow.prototype.background=function(a,d,e,b,c,f,g){a.setFillColor(f);a.setStrokeColor(g);a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fillAndStroke()};
4374mxShapeMockupBrowserWindow.prototype.otherShapes=function(a,d,e,b,c,f,g,h){d=mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,"1");e=mxUtils.getValue(this.style,mxShapeMockupBrowserWindow.prototype.cst.MAIN_TEXT,"http://www.draw.io,Page 1").toString().split(",");a.setStrokeColor(f);a.ellipse(b-75,5,20,20);a.stroke();a.ellipse(b-50,5,20,20);a.stroke();a.setStrokeColor(h);a.ellipse(b-25,5,20,20);a.stroke();a.setStrokeColor(g);a.begin();a.moveTo(0,40);a.lineTo(30,40);a.lineTo(30,15);a.arcTo(5,
43755,0,0,1,35,10);a.lineTo(170,10);a.arcTo(5,5,0,0,1,175,15);a.lineTo(175,40);a.lineTo(b,40);a.stroke();a.begin();a.moveTo(0,110);a.lineTo(b,110);a.stroke();a.begin();a.moveTo(100,60);a.arcTo(5,5,0,0,1,105,55);a.lineTo(b-15,55);a.arcTo(5,5,0,0,1,b-10,60);a.lineTo(b-10,85);a.arcTo(5,5,0,0,1,b-15,90);a.lineTo(105,90);a.arcTo(5,5,0,0,1,100,85);a.close();a.stroke();b=mxUtils.getValue(this.style,mxShapeMockupBrowserWindow.prototype.cst.TEXT_COLOR,"#666666");a.setFontColor(b);a.setFontSize(17);a.text(65,25,
43760,0,e[1],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(130,73,0,0,e[0],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.stroke();a.translate(37,17);a.begin();a.moveTo(0,0);a.lineTo(11,0);a.lineTo(15,4);a.lineTo(15,18);a.lineTo(0,18);a.close();a.stroke();a.setStrokeWidth(.5*d);a.begin();a.moveTo(11,0);a.lineTo(11,4);a.lineTo(15,5);a.stroke();a.setStrokeWidth(2*d);a.translate(70,47);a.begin();a.moveTo(0,0);a.lineTo(11,0);a.lineTo(15,4);a.lineTo(15,18);a.lineTo(0,
437718);a.close();a.stroke();a.setStrokeWidth(.5*d);a.begin();a.moveTo(11,0);a.lineTo(11,4);a.lineTo(15,5);a.stroke();a.setFillColor(g);a.begin();a.setStrokeWidth(2*d);a.translate(-95,0);a.moveTo(0,10);a.lineTo(10,0);a.lineTo(10,6);a.lineTo(20,6);a.lineTo(20,14);a.lineTo(10,14);a.lineTo(10,20);a.close();a.fillAndStroke();a.begin();a.translate(30,0);a.moveTo(20,10);a.lineTo(10,0);a.lineTo(10,6);a.lineTo(0,6);a.lineTo(0,14);a.lineTo(10,14);a.lineTo(10,20);a.close();a.fillAndStroke();a.begin();a.translate(30,
43780);a.moveTo(20*.78,13.3);a.arcTo(6,6,0,1,1,13.5,5.04);a.lineTo(20*.595,6.5);a.lineTo(19.8,20*.415);a.lineTo(18,.8);a.lineTo(20*.815,2.4);a.arcTo(9.8,9.8,0,1,0,20*.92,16);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeMockupBrowserWindow.prototype.cst.SHAPE_BROWSER_WINDOW,mxShapeMockupBrowserWindow);function mxShapeMockupUserMale(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupUserMale,mxShape);
4379mxShapeMockupUserMale.prototype.cst={STROKE_COLOR2:"strokeColor2",SHAPE_MALE_USER:"mxgraph.mockup.containers.userMale"};mxShapeMockupUserMale.prototype.customProperties=[{name:"strokeColor2",dispName:"Stroke2 Color",type:"color"}];
4380mxShapeMockupUserMale.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),g=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#666666"),h=mxUtils.getValue(this.style,mxShapeMockupUserMale.prototype.cst.STROKE_COLOR2,"#008cff");a.translate(d,e);this.background(a,d,e,b,c,f,g);a.setShadow(!1);this.otherShapes(a,d,e,b,c,h,g)};
4381mxShapeMockupUserMale.prototype.background=function(a,d,e,b,c,f,g){a.setFillColor(f);a.setStrokeColor(g);a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fillAndStroke()};
4382mxShapeMockupUserMale.prototype.otherShapes=function(a,d,e,b,c,f,g){a.setStrokeColor(f);a.setLineCap("round");a.setLineJoin("round");a.begin();a.moveTo(.5*b,.6721*c);a.curveTo(.3891*b,.6721*c,.31*b,.5648*c,.31*b,.3962*c);a.curveTo(.31*b,.3656*c,.3012*b,.3473*c,.3051*b,.3227*c);a.curveTo(.3126*b,.2762*c,.3124*b,.2212*c,.332*b,.1939*c);a.curveTo(.354*b,.1633*c,.4382*b,.12*c,.5*b,.12*c);a.stroke();a.begin();a.moveTo(.3046*b,.3716*c);a.curveTo(.3046*b,.3716*c,.3046*b,.341*c,.2826*b,.3594*c);a.curveTo(.2606*
4383b,.3778*c,.2661*b,.4452*c,.266*b,.4452*c);a.quadTo(.2715*b,.4942*c,.277*b,.5065*c);a.curveTo(.2825*b,.5187*c,.277*b,.5187*c,.2935*b,.5371*c);a.curveTo(.31*b,.5554*c,.3375*b,.5615*c,.3375*b,.5616*c);a.stroke();a.begin();a.moveTo(.3829*b,.6213*c);a.curveTo(.3829*b,.6213*c,.405*b,.7704*c,.2921*b,.7888*c);a.curveTo(.2536*b,.795*c,.1328*b,.85*c,.1052*b,.8745*c);a.curveTo(.0776*b,.899*c,.0641*b,.9316*c,.0571*b,.9622*c);a.quadTo(.05*b,c,.05*b,c);a.stroke();a.begin();a.moveTo(.3427*b,.4185*c);a.curveTo(.3427*
4384b,.4185*c,.3427*b,.3839*c,.3427*b,.3593*c);a.curveTo(.3427*b,.3348*c,.3663*b,.3103*c,.3718*b,.3041*c);a.curveTo(.3773*b,.298*c,.3822*b,.2673*c,.3877*b,.2551*c);a.curveTo(.3932*b,.2429*c,.4095*b,.2429*c,.4259*b,.2367*c);a.curveTo(.4424*b,.2306*c,.4984*b,.2357*c,.4984*b,.2357*c);a.stroke();a.begin();a.moveTo(.365*b,.7427*c);a.curveTo(.365*b,.7427*c,.3772*b,.8076*c,.4286*b,.8224*c);a.curveTo(.4816*b,.8377*c,.5028*b,.8347*c,.5028*b,.8347*c);a.stroke();a.begin();a.moveTo(.3322*b,.7764*c);a.curveTo(.3322*
4385b,.7764*c,.3556*b,.8386*c,.4038*b,.8684*c);a.curveTo(.4533*b,.8991*c,.5029*b,.8929*c,.5029*b,.8929*c);a.stroke();a.begin();a.moveTo(.2717*b,.9*c);a.lineTo(.2717*b,c);a.stroke();a.begin();a.moveTo(.1671*b,.8991*c);a.curveTo(.1671*b,.8991*c,.1726*b,.9114*c,.1836*b,.9481*c);a.curveTo(.1946*b,.9849*c,.2*b,c,.2*b,c);a.stroke();a.begin();a.moveTo(.5*b,.6721*c);a.curveTo(.6109*b,.6721*c,.69*b,.5648*c,.69*b,.3962*c);a.curveTo(.69*b,.3656*c,.6988*b,.3473*c,.6949*b,.3227*c);a.curveTo(.6847*b,.2762*c,.6876*
4386b,.2212*c,.668*b,.1939*c);a.curveTo(.646*b,.1633*c,.5618*b,.12*c,.5*b,.12*c);a.stroke();a.begin();a.moveTo(.6954*b,.3716*c);a.curveTo(.6954*b,.3716*c,.6954*b,.341*c,.7174*b,.3594*c);a.curveTo(.7394*b,.3778*c,.7339*b,.4452*c,.734*b,.4452*c);a.quadTo(.7285*b,.4942*c,.723*b,.5065*c);a.curveTo(.7175*b,.5187*c,.723*b,.5187*c,.7065*b,.5371*c);a.curveTo(.69*b,.5554*c,.6625*b,.5615*c,.6625*b,.5616*c);a.stroke();a.begin();a.moveTo(.6171*b,.6213*c);a.curveTo(.6171*b,.6213*c,.595*b,.7704*c,.7079*b,.7888*c);
4387a.curveTo(.7464*b,.795*c,.8672*b,.85*c,.8948*b,.8745*c);a.curveTo(.9224*b,.899*c,.9359*b,.9316*c,.9429*b,.9622*c);a.quadTo(.95*b,c,.95*b,c);a.stroke();a.begin();a.moveTo(.6573*b,.4185*c);a.curveTo(.6573*b,.4185*c,.6573*b,.3839*c,.6573*b,.3593*c);a.curveTo(.6573*b,.3348*c,.6337*b,.3103*c,.6282*b,.3041*c);a.curveTo(.6227*b,.298*c,.6178*b,.2673*c,.6123*b,.2551*c);a.curveTo(.6068*b,.2429*c,.5905*b,.2429*c,.5741*b,.2367*c);a.curveTo(.5576*b,.2306*c,.5016*b,.2357*c,.5016*b,.2357*c);a.stroke();a.begin();
4388a.moveTo(.635*b,.7427*c);a.curveTo(.635*b,.7427*c,.6228*b,.8076*c,.5714*b,.8224*c);a.curveTo(.5184*b,.8377*c,.4972*b,.8347*c,.4972*b,.8347*c);a.stroke();a.begin();a.moveTo(.6678*b,.7764*c);a.curveTo(.6678*b,.7764*c,.6444*b,.8386*c,.5962*b,.8684*c);a.curveTo(.5467*b,.8991*c,.4971*b,.8929*c,.4971*b,.8929*c);a.stroke();a.begin();a.moveTo(.7283*b,.9*c);a.lineTo(.7283*b,c);a.stroke();a.begin();a.moveTo(.8329*b,.8991*c);a.curveTo(.8329*b,.8991*c,.8274*b,.9114*c,.8164*b,.9481*c);a.curveTo(.8054*b,.9849*
4389c,.8*b,c,.8*b,c);a.stroke();a.setStrokeColor(g);a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,c);a.lineTo(0,c);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeMockupUserMale.prototype.cst.SHAPE_MALE_USER,mxShapeMockupUserMale);function mxShapeMockupUserFemale(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupUserFemale,mxShape);mxShapeMockupUserFemale.prototype.cst={STROKE_COLOR2:"strokeColor2",SHAPE_FEMALE_USER:"mxgraph.mockup.containers.userFemale"};
4390mxShapeMockupUserFemale.prototype.customProperties=[{name:"strokeColor2",dispName:"Stroke2 Color",type:"color"}];
4391mxShapeMockupUserFemale.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),g=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#666666"),h=mxUtils.getValue(this.style,mxShapeMockupUserFemale.prototype.cst.STROKE_COLOR2,"#008cff");a.translate(d,e);this.background(a,d,e,b,c,f,g);a.setShadow(!1);this.otherShapes(a,d,e,b,c,h,g)};
4392mxShapeMockupUserFemale.prototype.background=function(a,d,e,b,c,f,g){a.setFillColor(f);a.setStrokeColor(g);a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fillAndStroke()};
4393mxShapeMockupUserFemale.prototype.otherShapes=function(a,d,e,b,c,f,g){a.setStrokeColor(f);a.setLineCap("round");a.setLineJoin("round");a.begin();a.moveTo(.3148*b,.468*c);a.curveTo(.3045*b,.3195*c,.3176*b,.2383*c,.3302*b,.2069*c);a.curveTo(.3508*b,.1557*c,.44*b,.1156*c,.5026*b,.1156*c);a.stroke();a.begin();a.moveTo(.5029*b,.6728*c);a.curveTo(.4616*b,.6728*c,.4018*b,.6177*c,.3663*b,.5653*c);a.stroke();a.begin();a.moveTo(.3108*b,.4021*c);a.curveTo(.3108*b,.4021*c,.3091*b,.3765*c,.2891*b,.3933*c);a.curveTo(.2691*
4394b,.4101*c,.2782*b,.4661*c,.2782*b,.4661*c);a.quadTo(.2862*b,.5067*c,.2922*b,.5166*c);a.curveTo(.2982*b,.5265*c,.2929*b,.5268*c,.3097*b,.5412*c);a.stroke();a.begin();a.moveTo(.4038*b,.6176*c);a.curveTo(.4038*b,.6176*c,.4324*b,.7778*c,.3375*b,.7963*c);a.curveTo(.3054*b,.8026*c,.1753*b,.8578*c,.15*b,.8826*c);a.curveTo(.1247*b,.9074*c,.1126*b,.9412*c,.1063*b,.9722*c);a.curveTo(.1*b,1.0032*c,.1*b,c,.1*b,c);a.stroke();a.begin();a.moveTo(.6377*b,.3365*c);a.curveTo(.5927*b,.2634*c,.5206*b,.2634*c,.5206*b,
4395.2634*c);a.quadTo(.3769*b,.2591*c,.3713*b,.2659*c);a.curveTo(.3657*b,.2727*c,.3405*b,.3674*c,.3405*b,.3946*c);a.curveTo(.3405*b,.4218*c,.3405*b,.4602*c,.3405*b,.4602*c);a.quadTo(.3546*b,.6401*c,.3546*b,.6626*c);a.stroke();a.begin();a.moveTo(.2931*b,.818*c);a.curveTo(.2931*b,.818*c,.3224*b,.9159*c,.3826*b,.9677*c);a.curveTo(.4446*b,1.01*c,.5065*b,c,.5065*b,c);a.stroke();a.begin();a.moveTo(.2995*b,.9106*c);a.lineTo(.2995*b,c);a.stroke();a.begin();a.moveTo(.2081*b,.907*c);a.curveTo(.2081*b,.907*c,.2131*
4396b,.9194*c,.2232*b,.9565*c);a.curveTo(.2333*b,.9936*c,.24*b,c,.24*b,c);a.stroke();a.begin();a.moveTo(.6951*b,.4988*c);a.curveTo(.6951*b,.4662*c,.7042*b,.3453*c,.7*b,.32*c);a.curveTo(.6923*b,.273*c,.6926*b,.2175*c,.6727*b,.19*c);a.curveTo(.6504*b,.159*c,.5651*b,.1157*c,.5025*b,.1157*c);a.stroke();a.begin();a.moveTo(.5029*b,.6728*c);a.curveTo(.5546*b,.6728*c,.6107*b,.6316*c,.6461*b,.5602*c);a.stroke();a.begin();a.moveTo(.696*b,.4022*c);a.curveTo(.696*b,.4022*c,.6983*b,.3766*c,.7179*b,.4106*c);a.curveTo(.7375*
4397b,.4278*c,.7273*b,.4836*c,.7273*b,.4836*c);a.quadTo(.7184*b,.5241*c,.7123*b,.5338*c);a.curveTo(.7062*b,.5436*c,.7114*b,.544*c,.6943*b,.558*c);a.stroke();a.begin();a.moveTo(.5995*b,.6278*c);a.curveTo(.5995*b,.6278*c,.5724*b,.7777*c,.6663*b,.7963*c);a.curveTo(.6984*b,.8026*c,.8386*b,.8578*c,.8638*b,.8826*c);a.curveTo(.8891*b,.9074*c,.9016*b,.9412*c,.9079*b,.9722*c);a.curveTo(.9142*b,1.0032*c,.91*b,c,.91*b,c);a.stroke();a.begin();a.moveTo(.6545*b,.6802*c);a.lineTo(.6545*b,.3986*c);a.stroke();a.begin();
4398a.moveTo(.7132*b,.8078*c);a.curveTo(.7132*b,.8078*c,.6839*b,.916*c,.6237*b,.9678*c);a.curveTo(.5617*b,1.01*c,.4998*b,c,.4998*b,c);a.stroke();a.begin();a.moveTo(.7111*b,.9106*c);a.lineTo(.7111*b,c);a.stroke();a.begin();a.moveTo(.8075*b,.907*c);a.curveTo(.8075*b,.907*c,.8025*b,.9194*c,.7924*b,.9565*c);a.curveTo(.7823*b,.9936*c,.775*b,c,.775*b,c);a.stroke();a.begin();a.moveTo(.3148*b,.5448*c);a.curveTo(.3148*b,.5448*c,.32*b,.6216*c,.3148*b,.6677*c);a.quadTo(.2891*b,.7343*c,.2891*b,.7343*c);a.lineTo(.3303*
4399b,.7625*c);a.lineTo(.39*b,.7625*c);a.stroke();a.begin();a.moveTo(.6852*b,.5448*c);a.curveTo(.6852*b,.5448*c,.68*b,.6216*c,.6852*b,.6677*c);a.quadTo(.7109*b,.7343*c,.7109*b,.7343*c);a.lineTo(.6697*b,.7625*c);a.lineTo(.62*b,.7625*c);a.stroke();a.setStrokeColor(g);a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,c);a.lineTo(0,c);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeMockupUserFemale.prototype.cst.SHAPE_FEMALE_USER,mxShapeMockupUserFemale);
4400function mxShapeMockupGroup(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupGroup,mxShape);mxShapeMockupGroup.prototype.cst={MAIN_TEXT:"mainText",TEXT_SIZE:"textSize",TEXT_COLOR:"textColor",FILL_COLOR2:"fillColor2",SHAPE_GROUP:"mxgraph.mockup.containers.group"};
4401mxShapeMockupGroup.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxShapeMockupGroup.prototype.cst.MAIN_TEXT,"Group").toString(),g=mxUtils.getValue(this.style,mxShapeMockupGroup.prototype.cst.TEXT_SIZE,"17"),h=mxUtils.getSizeForString(f,g,mxConstants.DEFAULT_FONTFAMILY).width;0===h&&(h=Math.max(80,h));a.translate(d,e);b=Math.max(b,h+15);c=Math.max(c,g+10);this.background(a,b,c,h,g);a.setShadow(!1);this.foreground(a,b,c,h,g);this.buttonText(a,b,c,f,g)};
4402mxShapeMockupGroup.prototype.background=function(a,d,e,b,c){a.roundrect(0,.5*c,d,e-.5*c,5,5);a.fillAndStroke()};mxShapeMockupGroup.prototype.foreground=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxShapeMockupGroup.prototype.cst.FILL_COLOR2,"#000000");a.setFillColor(d);a.roundrect(3,0,b+6,1.5*c,.25*c,.25*c);a.fill()};
4403mxShapeMockupGroup.prototype.buttonText=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxShapeMockupGroup.prototype.cst.TEXT_COLOR,"#ffffff");a.setFontColor(d);a.setFontSize(c);a.text(6,0,0,0,b,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_TOP,0,null,0,0,0)};mxCellRenderer.registerShape(mxShapeMockupGroup.prototype.cst.SHAPE_GROUP,mxShapeMockupGroup);function mxShapeMockupWindow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
4404mxUtils.extend(mxShapeMockupWindow,mxShape);mxShapeMockupWindow.prototype.cst={MAIN_TEXT:"mainText",TEXT_SIZE:"textSize",TEXT_COLOR:"textColor",STROKE_COLOR2:"strokeColor2",STROKE_COLOR3:"strokeColor3",SHAPE_WINDOW:"mxgraph.mockup.containers.window"};mxShapeMockupWindow.prototype.customProperties=[{name:"strokeColor2",dispName:"Stroke2 Color",type:"color"},{name:"strokeColor3",dispName:"Stroke3 Color",type:"color"}];
4405mxShapeMockupWindow.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),g=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#666666"),h=mxUtils.getValue(this.style,mxShapeMockupWindow.prototype.cst.STROKE_COLOR2,"#008cff"),k=mxUtils.getValue(this.style,mxShapeMockupWindow.prototype.cst.STROKE_COLOR3,"#c4c4c4");a.translate(d,e);c=Math.max(c,30);b=Math.max(b,90);this.background(a,d,e,b,c,f,g);a.setShadow(!1);this.otherShapes(a,
4406d,e,b,c,g,k,h)};mxShapeMockupWindow.prototype.background=function(a,d,e,b,c,f,g){a.setFillColor(f);a.setStrokeColor(g);a.rect(0,0,b,c);a.fillAndStroke()};
4407mxShapeMockupWindow.prototype.otherShapes=function(a,d,e,b,c,f,g,h){mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,"1");a.setStrokeColor(f);a.ellipse(b-75,5,20,20);a.stroke();a.ellipse(b-50,5,20,20);a.stroke();a.setStrokeColor(h);a.ellipse(b-25,5,20,20);a.stroke();a.setStrokeColor(g);a.begin();a.moveTo(0,30);a.lineTo(b,30);a.stroke();d=mxUtils.getValue(this.style,mxShapeMockupWindow.prototype.cst.MAIN_TEXT,"Window Title");e=mxUtils.getValue(this.style,mxShapeMockupWindow.prototype.cst.TEXT_COLOR,
4408"#666666");b=mxUtils.getValue(this.style,mxShapeMockupWindow.prototype.cst.TEXT_SIZE,"17").toString();a.setFontColor(e);a.setFontSize(b);a.text(10,15,0,0,d,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.stroke()};mxCellRenderer.registerShape(mxShapeMockupWindow.prototype.cst.SHAPE_WINDOW,mxShapeMockupWindow);function mxShapeMockupHorTabBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupHorTabBar,mxShape);
4409mxShapeMockupHorTabBar.prototype.cst={BLOCK:"block",CONE:"cone",HALF_CONE:"halfCone",ROUND:"round",TEXT_SIZE:"textSize",TAB_NAMES:"tabs",TAB_STYLE:"tabStyle",STYLE_FILLCOLOR2:"fillColor2",TEXT_COLOR:"textColor",SEL_TEXT_COLOR:"textColor2",SHAPE_HOR_TAB_BAR:"mxgraph.mockup.containers.horTabBar"};
4410mxShapeMockupHorTabBar.prototype.paintVertexShape=function(a,d,e,b,c){for(var f=mxUtils.getValue(this.style,mxShapeMockupHorTabBar.prototype.cst.TEXT_SIZE,"17").toString(),g=mxUtils.getValue(this.style,mxShapeMockupHorTabBar.prototype.cst.TAB_NAMES,"Tab 1,+Tab 2,Tab 3").toString().split(","),h=1.5*f,k=g.length,l=20+5*(k-1)+20*k,m=[],n=-1,p=0;p<k;p++){var q=g[p];"+"===q.charAt(0)&&(q=q.substring(1),n=p);currW=mxUtils.getSizeForString(q,f,mxConstants.DEFAULT_FONTFAMILY).width;m[p]=0===currW?40:currW;
4411l+=m[p]}b=Math.max(b,l);c=Math.max(c,h+5);a.translate(d,e);this.background(a,b,c,5,h);a.setShadow(!1);this.backTabs(a,b,c,5,h,10,5,10,k,m,n);this.focusTab(a,b,c,5,h,10,5,10,k,m,n);this.tabText(a,b,c,5,h,10,5,10,k,m,n,g)};mxShapeMockupHorTabBar.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(0,c+b);a.arcTo(b,b,0,0,1,b,c);a.lineTo(d-b,c);a.arcTo(b,b,0,0,1,d,c+b);a.lineTo(d,e);a.lineTo(0,e);a.close();a.fillAndStroke()};
4412mxShapeMockupHorTabBar.prototype.backTabs=function(a,d,e,b,c,f,g,h,k,l,m){d=mxUtils.getValue(this.style,mxShapeMockupHorTabBar.prototype.cst.TAB_STYLE,mxShapeMockupHorTabBar.prototype.cst.BLOCK);for(e=0;e<k;e++){var n=l[e]+2*h;m!==e&&(d===mxShapeMockupHorTabBar.prototype.cst.BLOCK?a.rect(f,0,n,c):d===mxShapeMockupHorTabBar.prototype.cst.CONE?(a.begin(),a.moveTo(f,c),a.lineTo(f+.5*h,0),a.lineTo(f+n-.5*h,0),a.lineTo(f+n,c)):d===mxShapeMockupHorTabBar.prototype.cst.HALF_CONE?(a.begin(),a.moveTo(f,c),
4413a.lineTo(f+.5*h,0),a.lineTo(f+n,0),a.lineTo(f+n,c)):d===mxShapeMockupHorTabBar.prototype.cst.ROUND&&(a.begin(),a.moveTo(f-b,c),a.arcTo(b,b,0,0,0,f,c-b),a.lineTo(f,b),a.arcTo(b,b,0,0,1,f+b,0),a.lineTo(f+n-b,0),a.arcTo(b,b,0,0,1,f+n,b),a.lineTo(f+n,c-b),a.arcTo(b,b,0,0,0,f+n+b,c)),a.fillAndStroke());f=f+n+g}};
4414mxShapeMockupHorTabBar.prototype.focusTab=function(a,d,e,b,c,f,g,h,k,l,m){e=mxUtils.getValue(this.style,mxShapeMockupHorTabBar.prototype.cst.TAB_STYLE,mxShapeMockupHorTabBar.prototype.cst.BLOCK);k=mxUtils.getValue(this.style,mxShapeMockupHorTabBar.prototype.cst.STYLE_FILLCOLOR2,"#008cff");a.setStrokeColor(k);a.setFillColor(k);for(k=0;k<=m;k++){var n=l[k]+2*h;m===k&&(e===mxShapeMockupHorTabBar.prototype.cst.BLOCK?(a.begin(),a.moveTo(0,c+b),a.arcTo(b,b,0,0,1,b,c),a.lineTo(f,c),a.lineTo(f,0),a.lineTo(f+
4415n,0),a.lineTo(f+n,c),a.lineTo(d-b,c),a.arcTo(b,b,0,0,1,d,c+b),a.close()):e===mxShapeMockupHorTabBar.prototype.cst.CONE?(a.begin(),a.moveTo(0,c+b),a.arcTo(b,b,0,0,1,b,c),a.lineTo(f,c),a.lineTo(f+.5*h,0),a.lineTo(f+n-.5*h,0),a.lineTo(f+n,c),a.lineTo(d-b,c),a.arcTo(b,b,0,0,1,d,c+b),a.close()):e===mxShapeMockupHorTabBar.prototype.cst.HALF_CONE?(a.begin(),a.moveTo(0,c+b),a.arcTo(b,b,0,0,1,b,c),a.lineTo(f,c),a.lineTo(f+.5*h,0),a.lineTo(f+n,0),a.lineTo(f+n,c),a.lineTo(d-b,c),a.arcTo(b,b,0,0,1,d,c+b),a.close()):
4416e===mxShapeMockupHorTabBar.prototype.cst.ROUND&&(a.begin(),a.moveTo(0,c+b),a.arcTo(b,b,0,0,1,b,c),a.lineTo(f-b,c),a.arcTo(b,b,0,0,0,f,c-b),a.lineTo(f,b),a.arcTo(b,b,0,0,1,f+b,0),a.lineTo(f+n-b,0),a.arcTo(b,b,0,0,1,f+n,b),a.lineTo(f+n,c-b),a.arcTo(b,b,0,0,0,f+n+b,c),a.lineTo(d-b,c),a.arcTo(b,b,0,0,1,d,c+b),a.close()),a.fillAndStroke());f=f+n+g}};
4417mxShapeMockupHorTabBar.prototype.tabText=function(a,d,e,b,c,f,g,h,k,l,m,n){d=mxUtils.getValue(this.style,mxShapeMockupHorTabBar.prototype.cst.TEXT_COLOR,"#666666");e=mxUtils.getValue(this.style,mxShapeMockupHorTabBar.prototype.cst.SEL_TEXT_COLOR,"#ffffff");b=mxUtils.getValue(this.style,mxShapeMockupHorTabBar.prototype.cst.TEXT_SIZE,"17").toString();a.setFontColor(d);a.setFontSize(b);for(b=0;b<k;b++){var p=n[b];b===m&&a.setFontColor(e);"+"===p.charAt(0)&&(p=p.substring(1));var q=l[b]+2*h;a.text(f+
4418h,.5*c,0,0,p,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);f=f+q+g;b===m&&a.setFontColor(d)}};mxCellRenderer.registerShape(mxShapeMockupHorTabBar.prototype.cst.SHAPE_HOR_TAB_BAR,mxShapeMockupHorTabBar);function mxShapeMockupVerTabBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupVerTabBar,mxShape);
4419mxShapeMockupVerTabBar.prototype.cst={BLOCK:"block",ROUND:"round",TEXT_SIZE:"textSize",TAB_NAMES:"tabs",TAB_STYLE:"tabStyle",STYLE_FILLCOLOR2:"fillColor2",TEXT_COLOR:"textColor",SEL_TEXT_COLOR:"textColor2",SHAPE_VER_TAB_BAR:"mxgraph.mockup.containers.verTabBar"};
4420mxShapeMockupVerTabBar.prototype.paintVertexShape=function(a,d,e,b,c){for(var f=mxUtils.getValue(this.style,mxShapeMockupVerTabBar.prototype.cst.TEXT_SIZE,"17").toString(),g=mxUtils.getValue(this.style,mxShapeMockupVerTabBar.prototype.cst.TAB_NAMES,"Tab 1,+Tab 2,Tab 3").toString().split(","),h=1.5*f,k=g.length,l=[],m=-1,n=0;n<k;n++){var p=g[n];"+"===p.charAt(0)&&(p=p.substring(1),m=n);p=mxUtils.getSizeForString(p,f,mxConstants.DEFAULT_FONTFAMILY).width;l[n]=0===p?42:p}f=20+Math.max.apply(Math,l);
4421b=Math.max(b,f+5);c=Math.max(c,20+k*h+5*(k-1));a.translate(d,e);this.background(a,b,c,5,f);a.setShadow(!1);this.backTabs(a,b,c,5,h,f,10,5,10,k,l,m);this.focusTab(a,b,c,5,h,f,10,5,10,k,l,m);this.tabText(a,b,c,5,h,f,10,5,10,k,l,m,g)};mxShapeMockupVerTabBar.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(c+b,e);a.arcTo(b,b,0,0,1,c,e-b);a.lineTo(c,b);a.arcTo(b,b,0,0,1,c+b,0);a.lineTo(d,0);a.lineTo(d,e);a.close();a.fillAndStroke()};
4422mxShapeMockupVerTabBar.prototype.backTabs=function(a,d,e,b,c,f,g,h,k,l,m,n){d=mxUtils.getValue(this.style,mxShapeMockupVerTabBar.prototype.cst.TAB_STYLE,mxShapeMockupVerTabBar.prototype.cst.BLOCK);for(e=0;e<l;e++)n!==e&&(d===mxShapeMockupVerTabBar.prototype.cst.BLOCK?a.rect(0,g,f,c):d===mxShapeMockupVerTabBar.prototype.cst.ROUND&&(a.begin(),a.moveTo(f,g+c+b),a.arcTo(b,b,0,0,0,f-b,g+c),a.lineTo(b,g+c),a.arcTo(b,b,0,0,1,0,g+c-b),a.lineTo(0,g+b),a.arcTo(b,b,0,0,1,b,g),a.lineTo(f-b,g),a.arcTo(b,b,0,0,
44230,f,g-b)),a.fillAndStroke()),g=g+c+h};
4424mxShapeMockupVerTabBar.prototype.focusTab=function(a,d,e,b,c,f,g,h,k,l,m,n){d=mxUtils.getValue(this.style,mxShapeMockupVerTabBar.prototype.cst.TAB_STYLE,mxShapeMockupVerTabBar.prototype.cst.BLOCK);k=mxUtils.getValue(this.style,mxShapeMockupVerTabBar.prototype.cst.STYLE_FILLCOLOR2,"#008cff");-1!==n&&(g+=(c+h)*n,a.setStrokeColor(k),a.setFillColor(k),d===mxShapeMockupVerTabBar.prototype.cst.BLOCK?(a.begin(),a.moveTo(f+b,e),a.arcTo(b,b,0,0,1,f,e-b),a.lineTo(f,g+c),a.lineTo(0,g+c),a.lineTo(0,g),a.lineTo(f,
4425g),a.lineTo(f,b),a.arcTo(b,b,0,0,1,f+b,0),a.close()):d===mxShapeMockupVerTabBar.prototype.cst.ROUND&&(a.begin(),a.moveTo(f+b,e),a.arcTo(b,b,0,0,1,f,e-b),a.lineTo(f,g+c+b),a.arcTo(b,b,0,0,0,f-b,g+c),a.lineTo(b,g+c),a.arcTo(b,b,0,0,1,0,g+c-b),a.lineTo(0,g+b),a.arcTo(b,b,0,0,1,b,g),a.lineTo(f-b,g),a.arcTo(b,b,0,0,0,f,g-b),a.lineTo(f,b),a.arcTo(b,b,0,0,1,f+b,0),a.close()),a.fillAndStroke())};
4426mxShapeMockupVerTabBar.prototype.tabText=function(a,d,e,b,c,f,g,h,k,l,m,n,p){d=mxUtils.getValue(this.style,mxShapeMockupVerTabBar.prototype.cst.TEXT_COLOR,"#666666");e=mxUtils.getValue(this.style,mxShapeMockupVerTabBar.prototype.cst.SEL_TEXT_COLOR,"#ffffff");b=mxUtils.getValue(this.style,mxShapeMockupVerTabBar.prototype.cst.TEXT_SIZE,"17").toString();a.setFontColor(d);a.setFontSize(b);for(b=0;b<l;b++)k=p[b],b===n&&a.setFontColor(e),"+"===k.charAt(0)&&(k=k.substring(1)),a.text(.5*f,g+.5*c,0,0,k,mxConstants.ALIGN_CENTER,
4427mxConstants.ALIGN_MIDDLE,0,null,0,0,0),g=g+c+h,b===n&&a.setFontColor(d)};mxCellRenderer.registerShape(mxShapeMockupVerTabBar.prototype.cst.SHAPE_VER_TAB_BAR,mxShapeMockupVerTabBar);function mxShapeMockupAlertBox(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupAlertBox,mxShape);
4428mxShapeMockupAlertBox.prototype.cst={MAIN_TEXT:"mainText",SUB_TEXT:"subText",BUTTON_TEXT:"buttonText",TEXT_SIZE:"textSize",TEXT_COLOR:"textColor",STROKE_COLOR2:"strokeColor2",STROKE_COLOR3:"strokeColor3",SHAPE_ALERT_BOX:"mxgraph.mockup.containers.alertBox"};
4429mxShapeMockupAlertBox.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),g=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#666666"),h=mxUtils.getValue(this.style,mxShapeMockupAlertBox.prototype.cst.STROKE_COLOR2,"#008cff"),k=mxUtils.getValue(this.style,mxShapeMockupAlertBox.prototype.cst.STROKE_COLOR3,"#c4c4c4");a.translate(d,e);c=Math.max(c,75);b=Math.max(b,90);this.background(a,d,e,b,c,f,g);a.setShadow(!1);this.foreground(a,
4430d,e,b,c,g,k,h)};mxShapeMockupAlertBox.prototype.background=function(a,d,e,b,c,f,g){a.setFillColor(f);a.setStrokeColor(g);a.rect(0,0,b,c);a.fillAndStroke()};
4431mxShapeMockupAlertBox.prototype.foreground=function(a,d,e,b,c,f,g,h){mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,"1");a.setStrokeColor(h);a.ellipse(b-25,5,20,20);a.stroke();a.setStrokeColor(g);a.begin();a.moveTo(0,30);a.lineTo(b,30);a.stroke();h=mxUtils.getValue(this.style,mxShapeMockupAlertBox.prototype.cst.MAIN_TEXT,"Window Title").toString();d=mxUtils.getValue(this.style,mxShapeMockupAlertBox.prototype.cst.SUB_TEXT,"Sub Text").toString().split(",");e=mxUtils.getValue(this.style,mxShapeMockupAlertBox.prototype.cst.BUTTON_TEXT,
4432"OK,Cancel").toString().split(",");var k=mxUtils.getValue(this.style,mxShapeMockupAlertBox.prototype.cst.TEXT_COLOR,"#666666");f=mxUtils.getValue(this.style,mxShapeMockupAlertBox.prototype.cst.TEXT_SIZE,"17").toString();g=e.length;g=(b-10*(g+1))/g;a.setFontColor(k);a.setFontSize(f);a.text(10,15,0,0,h,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);h=10;for(k=0;k<e.length;k++)""!==e[k]&&(a.rect(h,c-10-1.5*f,g,1.5*f),a.stroke(),a.text(h+.5*g,c-10-.75*f,0,0,e[k],mxConstants.ALIGN_CENTER,
4433mxConstants.ALIGN_MIDDLE,0,null,0,0,0)),h=h+g+10;for(k=0;k<d.length;k++)a.text(.5*b,30+f*(1.5*k+.75),0,0,d[k],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.stroke()};mxCellRenderer.registerShape(mxShapeMockupAlertBox.prototype.cst.SHAPE_ALERT_BOX,mxShapeMockupAlertBox);function mxShapeMockupContainersRRect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupContainersRRect,mxShape);
4434mxShapeMockupContainersRRect.prototype.cst={RRECT:"mxgraph.mockup.containers.rrect",R_SIZE:"rSize"};mxShapeMockupContainersRRect.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}];mxShapeMockupContainersRRect.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeMockupContainersRRect.prototype.cst.R_SIZE,"10"));a.roundrect(0,0,b,c,d);a.fillAndStroke()};
4435mxCellRenderer.registerShape(mxShapeMockupContainersRRect.prototype.cst.RRECT,mxShapeMockupContainersRRect);function mxShapeMockupContainersAnchor(a,d,e,b){mxShape.call(this);this.bounds=a}mxUtils.extend(mxShapeMockupContainersAnchor,mxShape);mxShapeMockupContainersAnchor.prototype.cst={ANCHOR:"mxgraph.mockup.containers.anchor"};mxShapeMockupContainersAnchor.prototype.paintVertexShape=function(a,d,e,b,c){};mxCellRenderer.registerShape(mxShapeMockupContainersAnchor.prototype.cst.ANCHOR,mxShapeMockupContainersAnchor);
4436function mxShapeMockupContrainersTopButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupContrainersTopButton,mxShape);mxShapeMockupContrainersTopButton.prototype.cst={TOP_BUTTON:"mxgraph.mockup.containers.topButton",R_SIZE:"rSize"};mxShapeMockupContrainersTopButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}];
4437mxShapeMockupContrainersTopButton.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeMockupContrainersTopButton.prototype.cst.R_SIZE,"10"));a.begin();a.moveTo(0,d);a.arcTo(d,d,0,0,1,d,0);a.lineTo(b-d,0);a.arcTo(d,d,0,0,1,b,d);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeMockupContrainersTopButton.prototype.cst.TOP_BUTTON,mxShapeMockupContrainersTopButton);
4438function mxShapeMockupContainersLeftButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupContainersLeftButton,mxShape);mxShapeMockupContainersLeftButton.prototype.cst={LEFT_BUTTON:"mxgraph.mockup.containers.leftButton",R_SIZE:"rSize"};mxShapeMockupContainersLeftButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}];
4439mxShapeMockupContainersLeftButton.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeMockupContainersLeftButton.prototype.cst.R_SIZE,"10"));a.begin();a.moveTo(b,0);a.lineTo(b,c);a.lineTo(d,c);a.arcTo(d,d,0,0,1,0,c-d);a.lineTo(0,d);a.arcTo(d,d,0,0,1,d,0);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeMockupContainersLeftButton.prototype.cst.LEFT_BUTTON,mxShapeMockupContainersLeftButton);
4440function mxShapeMockupContainersMarginRect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupContainersMarginRect,mxShape);mxShapeMockupContainersMarginRect.prototype.cst={SHAPE_MARGIN_RECT:"mxgraph.mockup.containers.marginRect",MARGIN:"rectMargin",MARGIN_TOP:"rectMarginTop",MARGIN_LEFT:"rectMarginLeft",MARGIN_BOTTOM:"rectMarginBottom",MARGIN_RIGHT:"rectMarginRight"};
4441mxShapeMockupContainersMarginRect.prototype.customProperties=[{name:"rectMargin",dispName:"Global Margin",type:"float",min:0,defVal:0},{name:"rectMarginTop",dispName:"Top Margin",type:"float",min:0,defVal:0},{name:"rectMarginLeft",dispName:"Left Margin",type:"float",min:0,defVal:0},{name:"rectMarginBottom",dispName:"Bottom Margin",type:"float",min:0,defVal:0},{name:"rectMarginRight",dispName:"Right Margin",type:"float",min:0,defVal:0}];
4442mxShapeMockupContainersMarginRect.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};
4443mxShapeMockupContainersMarginRect.prototype.background=function(a,d,e,b,c,f){d=parseFloat(mxUtils.getValue(this.style,mxShapeMockupContainersMarginRect.prototype.cst.MARGIN,"0"));var g=parseFloat(mxUtils.getValue(this.style,mxShapeMockupContainersMarginRect.prototype.cst.MARGIN_TOP,"0"));f=parseFloat(mxUtils.getValue(this.style,mxShapeMockupContainersMarginRect.prototype.cst.MARGIN_LEFT,"0"));e=parseFloat(mxUtils.getValue(this.style,mxShapeMockupContainersMarginRect.prototype.cst.MARGIN_BOTTOM,"0"));
4444var h=parseFloat(mxUtils.getValue(this.style,mxShapeMockupContainersMarginRect.prototype.cst.MARGIN_RIGHT,"0"));f=d+f;g=d+g;b=b-h-f-d;c=c-e-g-d;0<b&&0<c&&(a.begin(),a.roundrect(f,g,b,c,10,10),a.fillAndStroke())};mxCellRenderer.registerShape(mxShapeMockupContainersMarginRect.prototype.cst.SHAPE_MARGIN_RECT,mxShapeMockupContainersMarginRect);function mxShapeMockupContainersMarginRect2(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
4445mxUtils.extend(mxShapeMockupContainersMarginRect2,mxShape);mxShapeMockupContainersMarginRect2.prototype.cst={SHAPE_MARGIN_RECT:"mxgraph.mockup.containers.marginRect2",MARGIN:"rectMargin",MARGIN_TOP:"rectMarginTop",MARGIN_LEFT:"rectMarginLeft",MARGIN_BOTTOM:"rectMarginBottom",MARGIN_RIGHT:"rectMarginRight"};
4446mxShapeMockupContainersMarginRect2.prototype.customProperties=[{name:"rectMargin",dispName:"Global Margin",type:"float",min:0,defVal:0},{name:"rectMarginTop",dispName:"Top Margin",type:"float",min:0,defVal:0},{name:"rectMarginLeft",dispName:"Left Margin",type:"float",min:0,defVal:0},{name:"rectMarginBottom",dispName:"Bottom Margin",type:"float",min:0,defVal:0},{name:"rectMarginRight",dispName:"Right Margin",type:"float",min:0,defVal:0}];
4447mxShapeMockupContainersMarginRect2.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};
4448mxShapeMockupContainersMarginRect2.prototype.background=function(a,d,e,b,c,f){d=parseFloat(mxUtils.getValue(this.style,mxShapeMockupContainersMarginRect2.prototype.cst.MARGIN,"0"));var g=parseFloat(mxUtils.getValue(this.style,mxShapeMockupContainersMarginRect2.prototype.cst.MARGIN_TOP,"0"));f=parseFloat(mxUtils.getValue(this.style,mxShapeMockupContainersMarginRect2.prototype.cst.MARGIN_LEFT,"0"));e=parseFloat(mxUtils.getValue(this.style,mxShapeMockupContainersMarginRect2.prototype.cst.MARGIN_BOTTOM,
4449"0"));var h=parseFloat(mxUtils.getValue(this.style,mxShapeMockupContainersMarginRect2.prototype.cst.MARGIN_RIGHT,"0"));f=d+f;g=d+g;b=b-h-f-d;c=c-e-g-d;0<b&&0<c&&(a.begin(),a.rect(f,g,b,c),a.fillAndStroke())};mxCellRenderer.registerShape(mxShapeMockupContainersMarginRect2.prototype.cst.SHAPE_MARGIN_RECT,mxShapeMockupContainersMarginRect2);function mxShapeMockupCheckboxGroup(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
4450mxUtils.extend(mxShapeMockupCheckboxGroup,mxShape);mxShapeMockupCheckboxGroup.prototype.cst={MAIN_TEXT:"mainText",TEXT_SIZE:"textSize",TEXT_COLOR:"textColor",SELECTED:"+",SHAPE_CHECKBOX_GROUP:"mxgraph.mockup.forms.checkboxGroup"};
4451mxShapeMockupCheckboxGroup.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=mxUtils.getValue(this.style,mxShapeMockupCheckboxGroup.prototype.cst.TEXT_COLOR,"#666666,#008cff").toString().split(",");var f=mxUtils.getValue(this.style,mxShapeMockupCheckboxGroup.prototype.cst.TEXT_SIZE,"17").toString();e=mxUtils.getValue(this.style,mxShapeMockupCheckboxGroup.prototype.cst.MAIN_TEXT,"Option 1").toString().split(",");var g=e.length,h=Math.max(1.5*f,15),k=0,l=-1,m=g*h;c=Math.max(c,m);for(var n=
44520;n<g;n++){var p=e[n];p.charAt(0)===mxShapeMockupCheckboxGroup.prototype.cst.SELECTED&&(p=e[n].substring(1),l=n);p=mxUtils.getSizeForString(p,f,mxConstants.DEFAULT_FONTFAMILY).width;p>k&&(k=p)}a.rect(0,0,Math.max(b,5+k+30),c);a.fillAndStroke();a.setShadow(!1);a.setFontSize(f);for(n=0;n<g;n++)b=(n*h+.5*h)*c/m,p=e[n],p.charAt(0)===mxShapeMockupCheckboxGroup.prototype.cst.SELECTED?(a.setFontColor(d[1]),p=e[n].substring(1),l=n):a.setFontColor(d[0]),a.text(32.5,b,0,0,p,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,
44530,null,0,0,0),b-=7.5,a.setFillColor("#dddddd"),a.setStrokeColor("#999999"),l===n?(a.setGradient("#aaaaaa","#666666",7.5,b,15,15,mxConstants.DIRECTION_SOUTH,1,1),a.rect(7.5,b,15,15),a.fillAndStroke(),a.setStrokeColor("#333333"),a.begin(),a.moveTo(11.25,b+7.5),a.lineTo(15,b+11.25),a.lineTo(18.75,b+3.75),a.stroke()):(a.setGradient("#eeeeee","#cccccc",7.5,b,15,15,mxConstants.DIRECTION_SOUTH,1,1),a.rect(7.5,b,15,15),a.fillAndStroke()),l=-1};
4454mxCellRenderer.registerShape(mxShapeMockupCheckboxGroup.prototype.cst.SHAPE_CHECKBOX_GROUP,mxShapeMockupCheckboxGroup);function mxShapeMockupRadioGroup(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupRadioGroup,mxShape);mxShapeMockupRadioGroup.prototype.cst={MAIN_TEXT:"mainText",TEXT_SIZE:"textSize",TEXT_COLOR:"textColor",SELECTED:"+",SHAPE_RADIO_GROUP:"mxgraph.mockup.forms.radioGroup"};
4455mxShapeMockupRadioGroup.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=mxUtils.getValue(this.style,mxShapeMockupRadioGroup.prototype.cst.TEXT_COLOR,"#666666,#008cff").toString().split(",");var f=mxUtils.getValue(this.style,mxShapeMockupRadioGroup.prototype.cst.TEXT_SIZE,"17").toString();e=mxUtils.getValue(this.style,mxShapeMockupRadioGroup.prototype.cst.MAIN_TEXT,"Option 1").toString().split(",");var g=e.length,h=Math.max(1.5*f,15),k=0,l=-1,m=g*h;c=Math.max(c,m);for(var n=0;n<g;n++){var p=
4456e[n];p.charAt(0)===mxShapeMockupRadioGroup.prototype.cst.SELECTED&&(p=e[n].substring(1),l=n);p=mxUtils.getSizeForString(p,f,mxConstants.DEFAULT_FONTFAMILY).width;p>k&&(k=p)}a.rect(0,0,Math.max(b,5+k+30),c);a.fillAndStroke();a.setShadow(!1);a.setFontSize(f);for(n=0;n<g;n++)b=(n*h+.5*h)*c/m,p=e[n],p.charAt(0)===mxShapeMockupRadioGroup.prototype.cst.SELECTED?(a.setFontColor(d[1]),p=e[n].substring(1),l=n):a.setFontColor(d[0]),a.text(32.5,b,0,0,p,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,
44570,0,0),b-=7.5,a.setStrokeColor("#999999"),l===n?(a.setGradient("#aaaaaa","#666666",7.5,b,15,15,mxConstants.DIRECTION_SOUTH,1,1),a.ellipse(7.5,b,15,15),a.fillAndStroke(),a.setFillColor("#333333"),a.setStrokeColor("#333333"),a.ellipse(11.25,b+3.75,7.5,7.5)):(a.setGradient("#eeeeee","#cccccc",7.5,b,15,15,mxConstants.DIRECTION_SOUTH,1,1),a.ellipse(7.5,b,15,15)),a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeMockupRadioGroup.prototype.cst.SHAPE_RADIO_GROUP,mxShapeMockupRadioGroup);
4458function mxShapeMockupColorPicker(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupColorPicker,mxShape);mxShapeMockupColorPicker.prototype.cst={COLOR:"chosenColor",SHAPE_COLOR_PICKER:"mxgraph.mockup.forms.colorPicker"};mxShapeMockupColorPicker.prototype.customProperties=[{name:"chosenColor",dispName:"Current Color",type:"color"}];
4459mxShapeMockupColorPicker.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxShapeMockupColorPicker.prototype.cst.COLOR,"#aaddff");a.translate(d,e);a.setStrokeColor("#999999");a.roundrect(0,0,b,c,.05*b,.05*c);a.fillAndStroke();a.setShadow(!1);a.setFillColor(f);a.rect(.1*b,.1*c,.8*b,.8*c);a.fill();a.setFillColor("#ffffff");a.begin();a.moveTo(.75*b,.75*c);a.lineTo(.75*b,c);a.lineTo(.95*b,c);a.arcTo(.05*b,.05*c,0,0,0,b,.95*c);a.lineTo(b,.75*c);a.close();a.fill();a.setFillColor("#999999");
4460a.begin();a.moveTo(.77*b,.77*c);a.lineTo(.875*b,.98*c);a.lineTo(.98*b,.77*c);a.close();a.fill();a.roundrect(0,0,b,c,.05*b,.05*c);a.stroke()};mxCellRenderer.registerShape(mxShapeMockupColorPicker.prototype.cst.SHAPE_COLOR_PICKER,mxShapeMockupColorPicker);function mxShapeMockupComboBox(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupComboBox,mxShape);
4461mxShapeMockupComboBox.prototype.cst={MAIN_TEXT:"mainText",FILL_COLOR2:"fillColor2",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize",SHAPE_COMBO_BOX:"mxgraph.mockup.forms.comboBox"};mxShapeMockupComboBox.prototype.customProperties=[{name:"fillColor2",dispName:"Fill2 Color",type:"color"}];mxShapeMockupComboBox.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c);this.mainText(a,d,e,b,c)};
4462mxShapeMockupComboBox.prototype.background=function(a,d,e,b,c){a.setFillColor("#ffffff");a.roundrect(0,0,b,c,5,5);a.fillAndStroke()};
4463mxShapeMockupComboBox.prototype.foreground=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"").toString();e=mxUtils.getValue(this.style,mxShapeMockupComboBox.prototype.cst.FILL_COLOR2,"").toString();a.setGradient(d,e,b-30,0,30,c,mxConstants.DIRECTION_SOUTH,1,1);a.begin();a.moveTo(b-30,0);a.lineTo(b-5,0);a.arcTo(5,5,0,0,1,b,5);a.lineTo(b,c-5);a.arcTo(5,5,0,0,1,b-5,c);a.lineTo(b-30,c);a.close();a.fillAndStroke();a.setFillColor("#ffffff");a.begin();a.moveTo(b-22,.5*c-5);
4464a.lineTo(b-15,.5*c+5);a.lineTo(b-8,.5*c-5);a.fill()};
4465mxShapeMockupComboBox.prototype.mainText=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxShapeMockupComboBox.prototype.cst.MAIN_TEXT,"Main Text");e=mxUtils.getValue(this.style,mxShapeMockupComboBox.prototype.cst.TEXT_COLOR,"#666666").toString();b=mxUtils.getValue(this.style,mxShapeMockupComboBox.prototype.cst.TEXT_SIZE,"17").toString();a.begin();a.setFontSize(b);a.setFontColor(e);a.text(5,.5*c,0,0,d,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};
4466mxCellRenderer.registerShape(mxShapeMockupComboBox.prototype.cst.SHAPE_COMBO_BOX,mxShapeMockupComboBox);function mxShapeMockupSpinner(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupSpinner,mxShape);
4467mxShapeMockupSpinner.prototype.cst={LAYOUT:"spinLayout",SPINNER_STYLE:"spinStyle",ADJ_STYLE:"adjStyle",LAYOUT_RIGHT:"right",LAYOUT_LEFT:"left",LAYOUT_TOP:"top",LAYOUT_BOTTOM:"bottom",LAYOUT_VERTICAL:"vertical",LAYOUT_HORIZONTAL:"horizontal",SPINNER_MERGED:"merged",SPINNER_NORMAL:"normal",ADJ_TRIANGLE:"triangle",ADJ_PLUSMINUS:"plusMinus",ADJ_ARROW:"arrow",MAIN_TEXT:"mainText",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize",SHAPE_SPINNER:"mxgraph.mockup.forms.spinner"};
4468mxShapeMockupSpinner.prototype.customProperties=[{name:"spinLayout",dispName:"Layout",type:"enum",enumList:[{val:"right",dispName:"Right"},{val:"left",dispName:"Left"},{val:"top",dispName:"Top"},{val:"bottom",dispName:"Bottom"},{val:"vertical",dispName:"Vertical"},{val:"horizontal",dispName:"Horizontal"}]},{name:"spinStyle",dispName:"Spinner Style",type:"enum",enumList:[{val:"merged",dispName:"Merged"},{val:"normal",dispName:"Normal"}]},{name:"adjStyle",dispName:"Button Style",type:"enum",enumList:[{val:"triangle",
4469dispName:"Triangle"},{val:"plusMinus",dispName:"+/-"},{val:"arrow",dispName:"Arrow"}]}];mxShapeMockupSpinner.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxShapeMockupSpinner.prototype.cst.LAYOUT,mxShapeMockupSpinner.prototype.cst.LAYOUT_RIGHT);a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c,f);this.mainText(a,b,c,f)};mxShapeMockupSpinner.prototype.background=function(a,d,e){a.setFillColor("#ffffff");a.roundrect(0,0,d,e,10,10);a.fillAndStroke()};
4470mxShapeMockupSpinner.prototype.foreground=function(a,d,e,b){var c=mxUtils.getValue(this.style,mxShapeMockupSpinner.prototype.cst.SPINNER_STYLE,mxShapeMockupSpinner.prototype.cst.SPINNER_NORMAL),f=mxUtils.getValue(this.style,mxShapeMockupSpinner.prototype.cst.ADJ_STYLE,mxShapeMockupSpinner.prototype.cst.ADJ_TRIANGLE),g=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff");a.setFillColor(g);c===mxShapeMockupSpinner.prototype.cst.SPINNER_NORMAL&&(b===mxShapeMockupSpinner.prototype.cst.LAYOUT_RIGHT?
4471(a.begin(),a.moveTo(d-20,0),a.lineTo(d-20,e),a.moveTo(d-20,.5*e),a.lineTo(d,.5*e),a.stroke()):b===mxShapeMockupSpinner.prototype.cst.LAYOUT_LEFT?(a.begin(),a.moveTo(20,0),a.lineTo(20,e),a.moveTo(20,.5*e),a.lineTo(0,.5*e),a.stroke()):b===mxShapeMockupSpinner.prototype.cst.LAYOUT_TOP?(a.begin(),a.moveTo(0,15),a.lineTo(d,15),a.moveTo(.5*d,15),a.lineTo(.5*d,0),a.stroke()):b===mxShapeMockupSpinner.prototype.cst.LAYOUT_BOTTOM?(a.begin(),a.moveTo(0,e-15),a.lineTo(d,e-15),a.moveTo(.5*d,e-15),a.lineTo(.5*
4472d,e),a.stroke()):b===mxShapeMockupSpinner.prototype.cst.LAYOUT_VERTICAL?(a.begin(),a.moveTo(0,15),a.lineTo(d,15),a.moveTo(0,e-15),a.lineTo(d,e-15),a.stroke()):b===mxShapeMockupSpinner.prototype.cst.LAYOUT_HORIZONTAL&&(a.begin(),a.moveTo(20,0),a.lineTo(20,e),a.moveTo(d-20,0),a.lineTo(d-20,e),a.stroke()));a.setStrokeColor(g);b===mxShapeMockupSpinner.prototype.cst.LAYOUT_RIGHT?f===mxShapeMockupSpinner.prototype.cst.ADJ_TRIANGLE?(a.begin(),a.moveTo(d-14,.25*e+4.5),a.lineTo(d-10,.25*e-2.5),a.lineTo(d-
44736,.25*e+4.5),a.close(),a.fillAndStroke()):f===mxShapeMockupSpinner.prototype.cst.ADJ_PLUSMINUS?(a.begin(),a.moveTo(d-10,.25*e-4),a.lineTo(d-10,.25*e+4),a.moveTo(d-14,.25*e),a.lineTo(d-6,.25*e),a.stroke()):f===mxShapeMockupSpinner.prototype.cst.ADJ_ARROW&&(a.begin(),a.moveTo(d-14,.25*e+1.5),a.lineTo(d-10,.25*e-2.5),a.lineTo(d-6,.25*e+1.5),a.close(),a.moveTo(d-10,.25*e+4.5),a.lineTo(d-10,.25*e-2.5),a.fillAndStroke()):b===mxShapeMockupSpinner.prototype.cst.LAYOUT_LEFT?f===mxShapeMockupSpinner.prototype.cst.ADJ_TRIANGLE?
4474(a.begin(),a.moveTo(14,.25*e+4.5),a.lineTo(10,.25*e-2.5),a.lineTo(6,.25*e+4.5),a.close(),a.fillAndStroke()):f===mxShapeMockupSpinner.prototype.cst.ADJ_PLUSMINUS?(a.begin(),a.moveTo(10,.25*e-4),a.lineTo(10,.25*e+4),a.moveTo(14,.25*e),a.lineTo(6,.25*e),a.stroke()):f===mxShapeMockupSpinner.prototype.cst.ADJ_ARROW&&(a.begin(),a.moveTo(14,.25*e+1.5),a.lineTo(10,.25*e-2.5),a.lineTo(6,.25*e+1.5),a.close(),a.moveTo(10,.25*e+4.5),a.lineTo(10,.25*e-2.5),a.fillAndStroke()):b===mxShapeMockupSpinner.prototype.cst.LAYOUT_TOP?
4475f===mxShapeMockupSpinner.prototype.cst.ADJ_TRIANGLE?(a.begin(),a.moveTo(.75*d+4,12),a.lineTo(.75*d,5),a.lineTo(.75*d-4,12),a.close(),a.fillAndStroke()):f===mxShapeMockupSpinner.prototype.cst.ADJ_PLUSMINUS?(a.begin(),a.moveTo(.75*d,3.5),a.lineTo(.75*d,11.5),a.moveTo(.75*d+4,7.5),a.lineTo(.75*d-4,7.5),a.stroke()):f===mxShapeMockupSpinner.prototype.cst.ADJ_ARROW&&(a.begin(),a.moveTo(.75*d+4,9),a.lineTo(.75*d,5),a.lineTo(.75*d-4,9),a.close(),a.moveTo(.75*d,12),a.lineTo(.75*d,5),a.fillAndStroke()):b===
4476mxShapeMockupSpinner.prototype.cst.LAYOUT_BOTTOM?f===mxShapeMockupSpinner.prototype.cst.ADJ_TRIANGLE?(a.begin(),a.moveTo(.75*d+4,e-5),a.lineTo(.75*d,e-12),a.lineTo(.75*d-4,e-5),a.close(),a.fillAndStroke()):f===mxShapeMockupSpinner.prototype.cst.ADJ_PLUSMINUS?(a.begin(),a.moveTo(.75*d,e-3.5),a.lineTo(.75*d,e-11.5),a.moveTo(.75*d+4,e-7.5),a.lineTo(.75*d-4,e-7.5),a.stroke()):f===mxShapeMockupSpinner.prototype.cst.ADJ_ARROW&&(a.begin(),a.moveTo(.75*d+4,e-6),a.lineTo(.75*d,e-10),a.lineTo(.75*d-4,e-6),
4477a.close(),a.moveTo(.75*d,e-3),a.lineTo(.75*d,e-10),a.fillAndStroke()):b===mxShapeMockupSpinner.prototype.cst.LAYOUT_VERTICAL?f===mxShapeMockupSpinner.prototype.cst.ADJ_TRIANGLE?(a.begin(),a.moveTo(.5*d+4,12),a.lineTo(.5*d,5),a.lineTo(.5*d-4,12),a.close(),a.fillAndStroke()):f===mxShapeMockupSpinner.prototype.cst.ADJ_PLUSMINUS?(a.begin(),a.moveTo(.5*d,3.5),a.lineTo(.5*d,11.5),a.moveTo(.5*d+4,7.5),a.lineTo(.5*d-4,7.5),a.stroke()):f===mxShapeMockupSpinner.prototype.cst.ADJ_ARROW&&(a.begin(),a.moveTo(.5*
4478d+4,9),a.lineTo(.5*d,5),a.lineTo(.5*d-4,9),a.close(),a.moveTo(.5*d,12),a.lineTo(.5*d,5),a.fillAndStroke()):b===mxShapeMockupSpinner.prototype.cst.LAYOUT_HORIZONTAL&&(f===mxShapeMockupSpinner.prototype.cst.ADJ_TRIANGLE?(a.begin(),a.moveTo(d-6,.5*e+4.5),a.lineTo(d-10,.5*e-2.5),a.lineTo(d-14,.5*e+4.5),a.close(),a.fillAndStroke()):f===mxShapeMockupSpinner.prototype.cst.ADJ_PLUSMINUS?(a.begin(),a.moveTo(d-10,.5*e-4),a.lineTo(d-10,.5*e+4),a.moveTo(d-14,.5*e),a.lineTo(d-6,.5*e),a.stroke()):f===mxShapeMockupSpinner.prototype.cst.ADJ_ARROW&&
4479(a.begin(),a.moveTo(d-14,.5*e+1.5),a.lineTo(d-10,.5*e-2.5),a.lineTo(d-6,.5*e+1.5),a.close(),a.moveTo(d-10,.5*e+4.5),a.lineTo(d-10,.5*e-2.5),a.fillAndStroke()));b===mxShapeMockupSpinner.prototype.cst.LAYOUT_RIGHT?f===mxShapeMockupSpinner.prototype.cst.ADJ_TRIANGLE?(a.begin(),a.moveTo(d-14,.75*e-4.5),a.lineTo(d-10,.75*e+2.5),a.lineTo(d-6,.75*e-4.5),a.close(),a.fillAndStroke()):f===mxShapeMockupSpinner.prototype.cst.ADJ_PLUSMINUS?(a.begin(),a.moveTo(d-14,.75*e),a.lineTo(d-6,.75*e),a.stroke()):f===mxShapeMockupSpinner.prototype.cst.ADJ_ARROW&&
4480(a.begin(),a.moveTo(d-14,.75*e-1.5),a.lineTo(d-10,.75*e+2.5),a.lineTo(d-6,.75*e-1.5),a.close(),a.moveTo(d-10,.75*e-4.5),a.lineTo(d-10,.75*e+2.5),a.fillAndStroke()):b===mxShapeMockupSpinner.prototype.cst.LAYOUT_LEFT?f===mxShapeMockupSpinner.prototype.cst.ADJ_TRIANGLE?(a.begin(),a.moveTo(14,.75*e-4.5),a.lineTo(10,.75*e+2.5),a.lineTo(6,.75*e-4.5),a.close(),a.fillAndStroke()):f===mxShapeMockupSpinner.prototype.cst.ADJ_PLUSMINUS?(a.begin(),a.moveTo(14,.75*e),a.lineTo(6,.75*e),a.stroke()):f===mxShapeMockupSpinner.prototype.cst.ADJ_ARROW&&
4481(a.begin(),a.moveTo(14,.75*e-1.5),a.lineTo(10,.75*e+2.5),a.lineTo(6,.75*e-1.5),a.close(),a.moveTo(10,.75*e-4.5),a.lineTo(10,.75*e+2.5),a.fillAndStroke()):b===mxShapeMockupSpinner.prototype.cst.LAYOUT_TOP?f===mxShapeMockupSpinner.prototype.cst.ADJ_TRIANGLE?(a.begin(),a.moveTo(.25*d+4,5),a.lineTo(.25*d,12),a.lineTo(.25*d-4,5),a.close(),a.fillAndStroke()):f===mxShapeMockupSpinner.prototype.cst.ADJ_PLUSMINUS?(a.begin(),a.moveTo(.25*d+4,7.5),a.lineTo(.25*d-4,7.5),a.stroke()):f===mxShapeMockupSpinner.prototype.cst.ADJ_ARROW&&
4482(a.begin(),a.moveTo(.25*d+4,6),a.lineTo(.25*d,10),a.lineTo(.25*d-4,6),a.close(),a.moveTo(.25*d,3),a.lineTo(.25*d,10),a.fillAndStroke()):b===mxShapeMockupSpinner.prototype.cst.LAYOUT_BOTTOM?f===mxShapeMockupSpinner.prototype.cst.ADJ_TRIANGLE?(a.begin(),a.moveTo(.25*d+4,e-12),a.lineTo(.25*d,e-5),a.lineTo(.25*d-4,e-12),a.close(),a.fillAndStroke()):f===mxShapeMockupSpinner.prototype.cst.ADJ_PLUSMINUS?(a.begin(),a.moveTo(.25*d+4,e-7.5),a.lineTo(.25*d-4,e-7.5),a.stroke()):f===mxShapeMockupSpinner.prototype.cst.ADJ_ARROW&&
4483(a.begin(),a.moveTo(.25*d+4,e-9),a.lineTo(.25*d,e-5),a.lineTo(.25*d-4,e-9),a.close(),a.moveTo(.25*d,e-12),a.lineTo(.25*d,e-5),a.fillAndStroke()):b===mxShapeMockupSpinner.prototype.cst.LAYOUT_VERTICAL?f===mxShapeMockupSpinner.prototype.cst.ADJ_TRIANGLE?(a.begin(),a.moveTo(.5*d+4,e-12),a.lineTo(.5*d,e-5),a.lineTo(.5*d-4,e-12),a.close(),a.fillAndStroke()):f===mxShapeMockupSpinner.prototype.cst.ADJ_PLUSMINUS?(a.begin(),a.moveTo(.5*d+4,e-7.5),a.lineTo(.5*d-4,e-7.5),a.stroke()):f===mxShapeMockupSpinner.prototype.cst.ADJ_ARROW&&
4484(a.begin(),a.moveTo(.5*d+4,e-9),a.lineTo(.5*d,e-5),a.lineTo(.5*d-4,e-9),a.close(),a.moveTo(.5*d,e-12),a.lineTo(.5*d,e-5),a.fillAndStroke()):b===mxShapeMockupSpinner.prototype.cst.LAYOUT_HORIZONTAL&&(f===mxShapeMockupSpinner.prototype.cst.ADJ_TRIANGLE?(a.begin(),a.moveTo(6,.5*e-4.5),a.lineTo(10,.5*e+2.5),a.lineTo(14,.5*e-4.5),a.close(),a.fillAndStroke()):f===mxShapeMockupSpinner.prototype.cst.ADJ_PLUSMINUS?(a.begin(),a.moveTo(14,.5*e),a.lineTo(6,.5*e),a.stroke()):f===mxShapeMockupSpinner.prototype.cst.ADJ_ARROW&&
4485(a.begin(),a.moveTo(14,.5*e-1.5),a.lineTo(10,.5*e+2.5),a.lineTo(6,.5*e-1.5),a.close(),a.moveTo(10,.5*e-4.5),a.lineTo(10,.5*e+2.5),a.fillAndStroke()))};
4486mxShapeMockupSpinner.prototype.mainText=function(a,d,e,b){var c=mxUtils.getValue(this.style,mxShapeMockupSpinner.prototype.cst.MAIN_TEXT,"100").toString(),f=mxUtils.getValue(this.style,mxShapeMockupSpinner.prototype.cst.TEXT_SIZE,"17"),g=mxUtils.getValue(this.style,mxShapeMockupSpinner.prototype.cst.TEXT_COLOR,"#666666");a.setFontSize(f);a.setFontColor(g);b===mxShapeMockupSpinner.prototype.cst.LAYOUT_RIGHT?a.text(.5*(d-20),.5*e,0,0,c,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):
4487b===mxShapeMockupSpinner.prototype.cst.LAYOUT_LEFT?a.text(.5*(d+20),.5*e,0,0,c,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):b===mxShapeMockupSpinner.prototype.cst.LAYOUT_TOP?a.text(.5*d,.5*(e+15),0,0,c,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):b===mxShapeMockupSpinner.prototype.cst.LAYOUT_BOTTOM?a.text(.5*d,.5*(e-15),0,0,c,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):b===mxShapeMockupSpinner.prototype.cst.LAYOUT_VERTICAL?a.text(.5*d,.5*e,
44880,0,c,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):b===mxShapeMockupSpinner.prototype.cst.LAYOUT_HORIZONTAL&&a.text(.5*d,.5*e,0,0,c,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape(mxShapeMockupSpinner.prototype.cst.SHAPE_SPINNER,mxShapeMockupSpinner);function mxShapeMockupMenuBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupMenuBar,mxShape);
4489mxShapeMockupMenuBar.prototype.cst={MAIN_TEXT:"mainText",SHAPE_MENU_BAR:"mxgraph.mockup.forms.menuBar",TEXT_COLOR:"textColor",TEXT_COLOR2:"textColor2",STROKE_COLOR2:"strokeColor2",FILL_COLOR2:"fillColor2",SELECTED:"+",TEXT_SIZE:"textSize"};
4490mxShapeMockupMenuBar.prototype.paintVertexShape=function(a,d,e,b,c){for(var f=mxUtils.getValue(this.style,mxShapeMockupMenuBar.prototype.cst.MAIN_TEXT,"+Menu 1, Menu 2, Menu 3").toString().split(","),g=mxUtils.getValue(this.style,mxShapeMockupMenuBar.prototype.cst.TEXT_COLOR,"#666666"),h=mxUtils.getValue(this.style,mxShapeMockupMenuBar.prototype.cst.TEXT_COLOR2,"#ffffff"),k=mxUtils.getValue(this.style,mxShapeMockupMenuBar.prototype.cst.TEXT_SIZE,"17").toString(),l=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,
4491"#666666"),m=mxUtils.getValue(this.style,mxShapeMockupMenuBar.prototype.cst.STROKE_COLOR2,"#c4c4c4"),n=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),p=mxUtils.getValue(this.style,mxShapeMockupMenuBar.prototype.cst.FILL_COLOR2,"#008cff"),q=f.length,t=Array(q),u=0,v=-1,r=0;r<q;r++){var w=f[r];w.charAt(0)===mxShapeMockupMenuBar.prototype.cst.SELECTED&&(w=f[r].substring(1),v=r);t[r]=mxUtils.getSizeForString(w,k,mxConstants.DEFAULT_FONTFAMILY).width;u+=t[r]}c=Math.max(c,1.5*k,20);
4492u=10*q+u;b=Math.max(b,u);a.translate(d,e);this.background(a,b,c,10,q,t,5,u,l,m,n,p,v);a.setShadow(!1);for(r=d=0;r<q;r++)r===v?a.setFontColor(h):a.setFontColor(g),d+=5,this.buttonText(a,d,c,f[r],t[r],k,u,b),d=d+t[r]+5};
4493mxShapeMockupMenuBar.prototype.background=function(a,d,e,b,c,f,g,h,k,l,m,n,p){a.setStrokeColor(k);a.setFillColor(m);a.rect(0,0,d,e);a.fillAndStroke();a.setStrokeColor(l);a.begin();for(b=1;b<c;b++)if(b!==p&&b!==p+1){for(var q=l=0;q<b;q++)l+=f[q]+2*g;l=l*d/h;a.moveTo(l,0);a.lineTo(l,e)}a.stroke();if(-1!==p){c=0;a.setFillColor(n);for(b=0;b<p;b++)c+=f[b]+2*g;c=c*d/h;a.rect(c,0,(f[p]+2*g)*d/h+c-c,e);a.fill()}a.setStrokeColor(k);a.setFillColor(m);a.rect(0,0,d,e);a.stroke()};
4494mxShapeMockupMenuBar.prototype.buttonText=function(a,d,e,b,c,f,g,h){b.charAt(0)===mxShapeMockupMenuBar.prototype.cst.SELECTED&&(b=b.substring(1));a.setFontSize(f);a.text((d+.5*c)*h/g,.5*e,0,0,b,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape(mxShapeMockupMenuBar.prototype.cst.SHAPE_MENU_BAR,mxShapeMockupMenuBar);function mxShapeMockupHorSlider(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
4495mxUtils.extend(mxShapeMockupHorSlider,mxShape);mxShapeMockupHorSlider.prototype.cst={STYLE:"sliderStyle",SLIDER_BASIC:"basic",SLIDER_FANCY:"fancy",SLIDER_POS:"sliderPos",HANDLE_TRIANGLE:"triangle",HANDLE_CIRCLE:"circle",HANDLE_HANDLE:"handle",HANDLE_STYLE:"handleStyle",FILL_COLOR2:"fillColor2",SHAPE_HOR_SLIDER:"mxgraph.mockup.forms.horSlider"};
4496mxShapeMockupHorSlider.prototype.customProperties=[{name:"sliderStyle",dispName:"Slider Style",type:"enum",enumList:[{val:"basic",dispName:"Basic"},{val:"fancy",dispName:"Fancy"}]},{name:"handleStyle",dispName:"Handle Style",type:"enum",enumList:[{val:"triangle",dispName:"Triangle"},{val:"circle",dispName:"Circle"},{val:"handle",dispName:"Handle"}]},{name:"sliderPos",dispName:"Handle Position",type:"float"},{name:"fillColor2",dispName:"Fill2 Color",type:"color"}];
4497mxShapeMockupHorSlider.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxShapeMockupHorSlider.prototype.cst.STYLE,mxShapeMockupHorSlider.prototype.cst.SLIDER_BASIC);a.translate(d,e);this.background(a,b,c,5,f);a.setShadow(!1);this.foreground(a,b,c,5,f);this.sliderPos=20};
4498mxShapeMockupHorSlider.prototype.background=function(a,d,e,b,c){c===mxShapeMockupHorSlider.prototype.cst.SLIDER_BASIC?(a.begin(),a.moveTo(0,.5*e),a.lineTo(d,.5*e),a.stroke()):c===mxShapeMockupHorSlider.prototype.cst.SLIDER_FANCY&&(a.roundrect(0,.5*e-b,d,2*b,b,b),a.fillAndStroke())};
4499mxShapeMockupHorSlider.prototype.foreground=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxShapeMockupHorSlider.prototype.cst.SLIDER_POS,"20"),g=mxUtils.getValue(this.style,mxShapeMockupHorSlider.prototype.cst.HANDLE_STYLE,mxShapeMockupHorSlider.prototype.cst.HANDLE_CIRCLE),h=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),k=mxUtils.getValue(this.style,mxShapeMockupHorSlider.prototype.cst.FILL_COLOR2,"#ddeeff"),l=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,
4500"#999999"),f=Math.min(100,f),f=Math.max(0,f);c===mxShapeMockupHorSlider.prototype.cst.SLIDER_BASIC?(a.setStrokeColor(k),c=d*f/100,a.begin(),a.moveTo(0,.5*e),a.lineTo(c,.5*e),a.stroke(),a.setStrokeColor(l)):c===mxShapeMockupHorSlider.prototype.cst.SLIDER_FANCY&&(c=10+(d-10)*f/100,a.setFillColor(k),a.roundrect(0,.5*e-b,c,2*b,b,b),a.fillAndStroke(),a.setFillColor(h));d=5+(d-10)*f/100;g===mxShapeMockupHorSlider.prototype.cst.HANDLE_CIRCLE?(a.ellipse(d-10,.5*e-10,20,20),a.fillAndStroke()):g===mxShapeMockupHorSlider.prototype.cst.HANDLE_TRIANGLE?
4501(a.begin(),a.moveTo(d-10,.5*e+10),a.lineTo(d,.5*e-10),a.lineTo(d+10,.5*e+10),a.close(),a.fillAndStroke()):g===mxShapeMockupHorSlider.prototype.cst.HANDLE_HANDLE&&(a.begin(),a.moveTo(d-7,.5*e+10),a.lineTo(d-7,.5*e),a.lineTo(d,.5*e-10),a.lineTo(d+7,.5*e),a.lineTo(d+7,.5*e+10),a.close(),a.fillAndStroke())};mxCellRenderer.registerShape(mxShapeMockupHorSlider.prototype.cst.SHAPE_HOR_SLIDER,mxShapeMockupHorSlider);
4502Graph.handleFactory[mxShapeMockupHorSlider.prototype.cst.SHAPE_HOR_SLIDER]=function(a){return[Graph.createHandle(a,["sliderPos"],function(a){var d=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"sliderPos",this.sliderPos))));return new mxPoint(a.x+(a.width-10)*d/a.width/100*a.width+5,a.y+a.height/2)},function(a,e){this.state.style.sliderPos=Math.round(1E3*Math.max(0,Math.min(100,100*(e.x-a.x)/a.width)))/1E3})]};
4503function mxShapeMockupListBox(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupListBox,mxShape);mxShapeMockupListBox.prototype.cst={MAIN_TEXT:"mainText",SUB_TEXT:"subText",BUTTON_TEXT:"buttonText",TEXT_SIZE:"textSize",TEXT_COLOR:"textColor",STROKE_COLOR2:"strokeColor2",STROKE_COLOR3:"strokeColor3",SELECTED_COLOR:"selectedColor",SELECTED:"+",SHAPE_LIST_BOX:"mxgraph.mockup.forms.listBox"};
4504mxShapeMockupListBox.prototype.paintVertexShape=function(a,d,e,b,c){for(var f=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),g=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#666666"),h=mxUtils.getValue(this.style,mxShapeMockupListBox.prototype.cst.TEXT_SIZE,"17").toString(),k=-1,l=b,m=mxUtils.getValue(this.style,mxShapeMockupListBox.prototype.cst.SUB_TEXT,"Sub Text").toString().split(","),n=0;n<m.length;n++){var p=m[n];p.charAt(0)===mxShapeMockupListBox.prototype.cst.SELECTED&&
4505(p=m[n].substring(1),k=n);p=mxUtils.getSizeForString(p,h,mxConstants.DEFAULT_FONTFAMILY).width;p>l&&(l=p)}a.translate(d,e);b=Math.min(b,l);c=Math.max(c,30+m.length*h*1.5);this.background(a,b,c,f,g);a.setShadow(!1);this.foreground(a,b,c,g,k,m,h)};mxShapeMockupListBox.prototype.background=function(a,d,e,b,c){a.setFillColor(b);a.setStrokeColor(c);a.rect(0,0,d,e);a.fillAndStroke()};
4506mxShapeMockupListBox.prototype.foreground=function(a,d,e,b,c,f,g){mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,"1");b=mxUtils.getValue(this.style,mxShapeMockupListBox.prototype.cst.SELECTED_COLOR,"#ddeeff");-1!==c&&(a.setFillColor(b),a.rect(0,30+c*g*1.5,d,1.5*g),a.fill());a.begin();a.moveTo(0,30);a.lineTo(d,30);a.stroke();c=mxUtils.getValue(this.style,mxShapeMockupListBox.prototype.cst.MAIN_TEXT,"Window Title").toString();b=mxUtils.getValue(this.style,mxShapeMockupListBox.prototype.cst.TEXT_COLOR,
4507"#666666,#008cff").toString().split(",");a.setFontColor(b[1]);a.setFontSize(g);a.text(10,15,0,0,c,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.setFontColor(b[0]);for(c=0;c<f.length;c++)b=f[c],b.charAt(0)===mxShapeMockupListBox.prototype.cst.SELECTED&&(b=f[c].substring(1)),a.text(10,30+g*(1.5*c+.75),0,0,b,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.rect(0,0,d,e);a.stroke()};mxCellRenderer.registerShape(mxShapeMockupListBox.prototype.cst.SHAPE_LIST_BOX,mxShapeMockupListBox);
4508function mxShapeMockupPwField(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupPwField,mxShape);mxShapeMockupPwField.prototype.cst={MAIN_TEXT:"mainText",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize",SHAPE_PW_FIELD:"mxgraph.mockup.forms.pwField"};mxShapeMockupPwField.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c)};
4509mxShapeMockupPwField.prototype.background=function(a,d,e){a.rect(0,0,d,e);a.fillAndStroke()};
4510mxShapeMockupPwField.prototype.foreground=function(a,d,e){d=mxUtils.getValue(this.style,mxShapeMockupPwField.prototype.cst.MAIN_TEXT,"******");var b=mxUtils.getValue(this.style,mxShapeMockupPwField.prototype.cst.TEXT_COLOR,"#666666"),c=mxUtils.getValue(this.style,mxShapeMockupPwField.prototype.cst.TEXT_SIZE,"17");a.setFontColor(b);a.setFontSize(c);a.text(5,.5*e,0,0,d,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};
4511mxCellRenderer.registerShape(mxShapeMockupPwField.prototype.cst.SHAPE_PW_FIELD,mxShapeMockupPwField);function mxShapeMockupSplitter(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupSplitter,mxShape);mxShapeMockupSplitter.prototype.cst={MAIN_TEXT:"mainText",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize",SHAPE_SPLITTER:"mxgraph.mockup.forms.splitter"};
4512mxShapeMockupSplitter.prototype.paintVertexShape=function(a,d,e,b,c){b=Math.max(b,35);a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c)};mxShapeMockupSplitter.prototype.background=function(a,d,e){a.begin();a.moveTo(0,.5*e-5);a.lineTo(d,.5*e-5);a.lineTo(d,.5*e+5);a.lineTo(0,.5*e+5);a.close();a.fill()};
4513mxShapeMockupSplitter.prototype.foreground=function(a,d,e){var b=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#999999");a.begin();a.moveTo(0,.5*e-5);a.lineTo(d,.5*e-5);a.moveTo(d,.5*e+5);a.lineTo(0,.5*e+5);a.stroke();a.setFillColor(b);a.ellipse(.5*d-17,.5*e-2,4,4);a.fill();a.ellipse(.5*d-2,.5*e-2,4,4);a.fill();a.ellipse(.5*d+13,.5*e-2,4,4);a.fill()};mxCellRenderer.registerShape(mxShapeMockupSplitter.prototype.cst.SHAPE_SPLITTER,mxShapeMockupSplitter);
4514function mxShapeMockupWedgeBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupWedgeBar,mxShape);mxShapeMockupWedgeBar.prototype.cst={BLOCK:"block",CONE:"cone",HALF_CONE:"halfCone",ROUND:"round",TEXT_SIZE:"textSize",TAB_NAMES:"tabs",TAB_STYLE:"tabStyle",STYLE_FILLCOLOR2:"fillColor2",TEXT_COLOR:"textColor",SEL_TEXT_COLOR:"textColor2",SHAPE_WEDGE_BAR:"mxgraph.mockup.forms.wedgeBar"};
4515mxShapeMockupWedgeBar.prototype.paintVertexShape=function(a,d,e,b,c){for(var f=mxUtils.getValue(this.style,mxShapeMockupWedgeBar.prototype.cst.TEXT_SIZE,"17").toString(),g=mxUtils.getValue(this.style,mxShapeMockupWedgeBar.prototype.cst.TAB_NAMES,"Tab 1,+Tab 2,Tab 3").toString().split(","),h=1.5*f,k=g.length,l=20+5*(k-1)+20*k,m=[],n=-1,p=0;p<k;p++){var q=g[p];"+"===q.charAt(0)&&(q=q.substring(1),n=p);q=mxUtils.getSizeForString(q,f,mxConstants.DEFAULT_FONTFAMILY).width;m[p]=0===q?42:q;l+=m[p]}b=Math.max(b,
4516l);c=Math.max(c,h+5);a.translate(d,e);a.setShadow(!1);this.backTabs(a,b,c,5,h,10,5,10,k,m,n);this.focusTab(a,b,c,5,h,10,5,10,k,m,n);this.tabText(a,b,c,5,h,10,5,10,k,m,n,g)};
4517mxShapeMockupWedgeBar.prototype.backTabs=function(a,d,e,b,c,f,g,h,k,l,m){d=mxUtils.getValue(this.style,mxShapeMockupWedgeBar.prototype.cst.TAB_STYLE,mxShapeMockupWedgeBar.prototype.cst.BLOCK);for(e=0;e<k;e++){var n=l[e]+2*h;m!==e&&(d===mxShapeMockupWedgeBar.prototype.cst.BLOCK?(a.begin(),a.moveTo(f,c),a.lineTo(f,0),a.lineTo(f+n,0),a.lineTo(f+n,c)):d===mxShapeMockupWedgeBar.prototype.cst.CONE?(a.begin(),a.moveTo(f,c),a.lineTo(f+.5*h,0),a.lineTo(f+n-.5*h,0),a.lineTo(f+n,c)):d===mxShapeMockupWedgeBar.prototype.cst.HALF_CONE?
4518(a.begin(),a.moveTo(f,c),a.lineTo(f+.5*h,0),a.lineTo(f+n,0),a.lineTo(f+n,c)):d===mxShapeMockupWedgeBar.prototype.cst.ROUND&&(a.begin(),a.moveTo(f-b,c),a.arcTo(b,b,0,0,0,f,c-b),a.lineTo(f,b),a.arcTo(b,b,0,0,1,f+b,0),a.lineTo(f+n-b,0),a.arcTo(b,b,0,0,1,f+n,b),a.lineTo(f+n,c-b),a.arcTo(b,b,0,0,0,f+n+b,c)),a.fillAndStroke());f=f+n+g}};
4519mxShapeMockupWedgeBar.prototype.focusTab=function(a,d,e,b,c,f,g,h,k,l,m){d=mxUtils.getValue(this.style,mxShapeMockupWedgeBar.prototype.cst.TAB_STYLE,mxShapeMockupWedgeBar.prototype.cst.BLOCK);e=mxUtils.getValue(this.style,mxShapeMockupWedgeBar.prototype.cst.STYLE_FILLCOLOR2,"#008cff");a.setStrokeColor(e);a.setFillColor(e);for(e=0;e<=m;e++)k=l[e]+2*h,m===e&&(d===mxShapeMockupWedgeBar.prototype.cst.BLOCK?(a.begin(),a.moveTo(f,c),a.lineTo(f,0),a.lineTo(f+k,0),a.lineTo(f+k,c)):d===mxShapeMockupWedgeBar.prototype.cst.CONE?
4520(a.begin(),a.moveTo(f,c),a.lineTo(f+.5*h,0),a.lineTo(f+k-.5*h,0),a.lineTo(f+k,c)):d===mxShapeMockupWedgeBar.prototype.cst.HALF_CONE?(a.begin(),a.moveTo(f,c),a.lineTo(f+.5*h,0),a.lineTo(f+k,0),a.lineTo(f+k,c)):d===mxShapeMockupWedgeBar.prototype.cst.ROUND&&(a.begin(),a.moveTo(f-b,c),a.arcTo(b,b,0,0,0,f,c-b),a.lineTo(f,b),a.arcTo(b,b,0,0,1,f+b,0),a.lineTo(f+k-b,0),a.arcTo(b,b,0,0,1,f+k,b),a.lineTo(f+k,c-b),a.arcTo(b,b,0,0,0,f+k+b,c)),a.fillAndStroke()),f=f+k+g};
4521mxShapeMockupWedgeBar.prototype.tabText=function(a,d,e,b,c,f,g,h,k,l,m,n){d=mxUtils.getValue(this.style,mxShapeMockupWedgeBar.prototype.cst.TEXT_COLOR,"#666666");e=mxUtils.getValue(this.style,mxShapeMockupWedgeBar.prototype.cst.SEL_TEXT_COLOR,"#ffffff");b=mxUtils.getValue(this.style,mxShapeMockupWedgeBar.prototype.cst.TEXT_SIZE,"17").toString();a.setFontColor(d);a.setFontSize(b);for(b=0;b<k;b++){var p=n[b];b===m&&a.setFontColor(e);"+"===p.charAt(0)&&(p=p.substring(1));var q=l[b]+2*h;a.text(f+h,.5*
4522c,0,0,p,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);f=f+q+g;b===m&&a.setFontColor(d)}};mxCellRenderer.registerShape(mxShapeMockupWedgeBar.prototype.cst.SHAPE_WEDGE_BAR,mxShapeMockupWedgeBar);function mxShapeMockupSearchBox(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupSearchBox,mxShape);
4523mxShapeMockupSearchBox.prototype.cst={MAIN_TEXT:"mainText",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize",STROKE_COLOR2:"strokeColor2",SHAPE_SEARCH_BOX:"mxgraph.mockup.forms.searchBox"};mxShapeMockupSearchBox.prototype.customProperties=[{name:"strokeColor2",dispName:"Icon Color",type:"color"}];mxShapeMockupSearchBox.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c)};
4524mxShapeMockupSearchBox.prototype.background=function(a,d,e){a.rect(0,0,d,e);a.fillAndStroke()};
4525mxShapeMockupSearchBox.prototype.foreground=function(a,d,e){var b=mxUtils.getValue(this.style,mxShapeMockupSearchBox.prototype.cst.MAIN_TEXT,"Search"),c=mxUtils.getValue(this.style,mxShapeMockupSearchBox.prototype.cst.TEXT_COLOR,"#666666"),f=mxUtils.getValue(this.style,mxShapeMockupSearchBox.prototype.cst.STROKE_COLOR2,"#008cff"),g=mxUtils.getValue(this.style,mxShapeMockupSearchBox.prototype.cst.TEXT_SIZE,"17");a.setFontColor(c);a.setFontSize(g);a.text(5,.5*e,0,0,b,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,
45260,null,0,0,0);a.setStrokeColor(f);a.ellipse(d-15,.5*e-8,10,10);a.stroke();a.begin();a.moveTo(d-19,.5*e+9);a.lineTo(d-13,.5*e+1);a.stroke()};mxCellRenderer.registerShape(mxShapeMockupSearchBox.prototype.cst.SHAPE_SEARCH_BOX,mxShapeMockupSearchBox);function mxShapeMockupSignIn(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupSignIn,mxShape);
4527mxShapeMockupSignIn.prototype.cst={MAIN_TEXT:"mainText",TEXT_COLOR:"textColor",TEXT_COLOR2:"textColor2",TEXT_SIZE:"textSize",TEXT_SIZE2:"textSize2",STROKE_COLOR2:"strokeColor2",FILL_COLOR2:"fillColor2",SHAPE_SIGN_IN:"mxgraph.mockup.forms.signIn"};mxShapeMockupSignIn.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c)};mxShapeMockupSignIn.prototype.background=function(a,d,e){a.rect(0,0,d,e);a.fillAndStroke()};
4528mxShapeMockupSignIn.prototype.foreground=function(a,d,e){var b=mxUtils.getValue(this.style,mxShapeMockupSignIn.prototype.cst.MAIN_TEXT,"Sign In,User Name:,johndoe,Password:,********,Forgot Password?,New User,SIGN IN,SIGN UP").toString().split(","),c=mxUtils.getValue(this.style,mxShapeMockupSignIn.prototype.cst.TEXT_COLOR,"#666666"),f=mxUtils.getValue(this.style,mxShapeMockupSignIn.prototype.cst.TEXT_COLOR2,"#ffffff"),g=mxUtils.getValue(this.style,mxShapeMockupSignIn.prototype.cst.TEXT_SIZE,"12"),
4529h=mxUtils.getValue(this.style,mxShapeMockupSignIn.prototype.cst.TEXT_SIZE2,"15"),k=mxUtils.getValue(this.style,mxShapeMockupSignIn.prototype.cst.STROKE_COLOR2,"#ddeeff"),l=mxUtils.getValue(this.style,mxShapeMockupSignIn.prototype.cst.FILL_COLOR2,"#66bbff");a.setFillColor(l);a.roundrect(.09*d,.52*e,.36*d,.09*e,5,5);a.fill();a.roundrect(.09*d,.84*e,.36*d,.09*e,5,5);a.fill();a.rect(.05*d,.22*e,.75*d,.08*e);a.stroke();a.rect(.05*d,.4*e,.75*d,.08*e);a.stroke();a.setStrokeColor(k);a.setStrokeWidth(2);a.begin();
4530a.moveTo(.05*d,.12*e);a.lineTo(.95*d,.12*e);a.moveTo(.05*d,.72*e);a.lineTo(.95*d,.72*e);a.stroke();a.setFontColor(c);a.setFontSize(g);a.text(.05*d,.1*e,0,0,b[0],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_BOTTOM,0,null,0,0,0);a.text(.05*d,.2*e,0,0,b[1],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_BOTTOM,0,null,0,0,0);a.text(.075*d,.26*e,0,0,b[2],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.05*d,.38*e,0,0,b[3],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_BOTTOM,0,null,0,0,0);a.text(.075*
4531d,.44*e,0,0,b[4],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.05*d,.8*e,0,0,b[6],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.setStrokeWidth(1);a.setFontColor("#9999ff");a.setStrokeColor("#9999ff");c=mxUtils.getSizeForString(b[5],g,mxConstants.DEFAULT_FONTFAMILY).width;a.text(.05*d,.7*e,0,0,b[5],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_BOTTOM,0,null,0,0,0);a.begin();a.moveTo(.05*d,.7*e);a.lineTo(.05*d+c,.7*e);a.stroke();a.setFontColor(f);a.setFontStyle(mxConstants.FONT_BOLD);
4532a.setFontSize(h);a.text(.27*d,.565*e,0,0,b[7],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.27*d,.885*e,0,0,b[8],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape(mxShapeMockupSignIn.prototype.cst.SHAPE_SIGN_IN,mxShapeMockupSignIn);function mxShapeMockupCalendar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupCalendar,mxShape);
4533mxShapeMockupCalendar.prototype.cst={SHAPE_CALENDAR:"mxgraph.mockup.forms.calendar",DAYS:"days",SELECTED_DAY:"selDay",PREV_DAYS:"prevDays",FIRST_DAY:"firstDay",START_ON:"startOn",DAY_NAMES:"dayNames",MAIN_TEXT:"mainText",TEXT_SIZE:"textSize",TEXT_COLOR:"textColor",TEXT_COLOR2:"textColor2",STROKE_COLOR2:"strokeColor2",FILL_COLOR2:"fillColor2"};mxShapeMockupCalendar.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c)};
4534mxShapeMockupCalendar.prototype.background=function(a,d,e){a.roundrect(0,0,d,e,.0312*d,.0286*e);a.fillAndStroke()};
4535mxShapeMockupCalendar.prototype.foreground=function(a,d,e){var b=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#999999"),c=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),f=mxUtils.getValue(this.style,mxShapeMockupCalendar.prototype.cst.STROKE_COLOR2,"#008cff"),g=mxUtils.getValue(this.style,mxShapeMockupCalendar.prototype.cst.FILL_COLOR2,"#ddeeff"),h=mxUtils.getValue(this.style,mxShapeMockupCalendar.prototype.cst.MAIN_TEXT,""),k=mxUtils.getValue(this.style,mxShapeMockupCalendar.prototype.cst.TEXT_SIZE,
4536"15"),l=mxUtils.getValue(this.style,mxShapeMockupCalendar.prototype.cst.TEXT_COLOR,"#999999"),m=mxUtils.getValue(this.style,mxShapeMockupCalendar.prototype.cst.TEXT_COLOR2,"#ffffff"),n=parseInt(mxUtils.getValue(this.style,mxShapeMockupCalendar.prototype.cst.DAYS,"30"),10),p=parseInt(mxUtils.getValue(this.style,mxShapeMockupCalendar.prototype.cst.PREV_DAYS,"31"),10),q=parseInt(mxUtils.getValue(this.style,mxShapeMockupCalendar.prototype.cst.FIRST_DAY,"0"),10),t=parseInt(mxUtils.getValue(this.style,
4537mxShapeMockupCalendar.prototype.cst.START_ON,"6",10)),u=mxUtils.getValue(this.style,mxShapeMockupCalendar.prototype.cst.DAY_NAMES,"Mo,Tu,We,Th,Fr,Sa,Su").toString().split(","),v=parseInt(mxUtils.getValue(this.style,mxShapeMockupCalendar.prototype.cst.SELECTED_DAY,"24"),10);fistDay=Math.max(q,0);t=Math.max(t,0);fistDay=Math.min(q,6);t=Math.min(t,6);a.roundrect(.05*d,.0457*e,.1438*d,.1029*e,.025*d,.0229*e);a.stroke();a.roundrect(.8125*d,.0457*e,.1438*d,.1029*e,.025*d,.0229*e);a.stroke();a.setStrokeWidth(2);
4538a.setStrokeColor(f);a.begin();a.moveTo(.1438*d,.0743*e);a.lineTo(.1*d,.0971*e);a.lineTo(.1438*d,.12*e);a.moveTo(.8625*d,.0743*e);a.lineTo(.9062*d,.0971*e);a.lineTo(.8625*d,.12*e);a.stroke();a.setFontSize(k);a.setFontColor(l);a.text(.5*d,.0971*e,0,0,h,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);h=.875*d/7;for(k=0;7>k;k++){var l=.0625*d+.5*h+k*h,r=k+t;6<r&&(r-=7);a.text(l,.2114*e,0,0,u[r],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)}a.setStrokeWidth(1);var w=0,
4539r=u=-1;if(q!==t){a.setStrokeColor(b);a.setFillColor(g);q-=t;0>q&&(q+=7);for(k=0;k<q;k++)l=.0625*d+k*h,a.rect(l,.2686*e,h,.1143*e),a.fillAndStroke(),a.text(l+.5*h,.2686*e+.5*h,0,0,(p-q+k+1).toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);w=q}a.setFillColor(c);a.setStrokeColor(b);for(k=b=0;k<n;k++)c=k+1,l=.0625*d+w*h,p=.2686*e+b*e*.1143,c===v?(u=l,r=p):(a.rect(l,p,h,.1143*e),a.fillAndStroke(),a.text(l+.5*h,p+.5*h,0,0,c.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,
45400,null,0,0,0)),6>w?w++:(w=0,b++);k=1;for(a.setFillColor(g);6>b;)l=.0625*d+w*h,p=.2686*e+b*e*.1143,a.rect(l,p,h,.1143*e),a.fillAndStroke(),a.text(l+.5*h,p+.5*h,0,0,k.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),6>w?w++:(w=0,b++),k++;0<=u&&(a.setStrokeColor("#ff0000"),a.setStrokeWidth(2),a.setFillColor(f),a.setFontColor(m),a.rect(u,r,h,.1143*e),a.fillAndStroke(),a.text(u+.5*h,r+.5*h,0,0,v.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0))};
4541mxCellRenderer.registerShape(mxShapeMockupCalendar.prototype.cst.SHAPE_CALENDAR,mxShapeMockupCalendar);function mxShapeMockupEmailForm(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupEmailForm,mxShape);mxShapeMockupEmailForm.prototype.cst={MAIN_TEXT:"mainText",TEXT_COLOR:"textColor",SHOW_CC:"showCC",SHOW_BCC:"showBCC",TEXT_SIZE:"textSize",SHAPE_EMAIL_FORM:"mxgraph.mockup.forms.emailForm"};
4542mxShapeMockupEmailForm.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxShapeMockupEmailForm.prototype.cst.TEXT_SIZE,"12"),g=mxUtils.getValue(this.style,mxShapeMockupEmailForm.prototype.cst.SHOW_CC,"true"),h=mxUtils.getValue(this.style,mxShapeMockupEmailForm.prototype.cst.SHOW_BCC,"true"),k=4*f,l=0;"true"===g&&l++;"true"===h&&l++;b=Math.max(b,5*f);c=Math.max(c,10.5*f+l*f*3);a.translate(d,e);this.background(a,b,c,f,k,g,h);a.setShadow(!1);this.foreground(a,b,c,f,k,
4543g,h)};mxShapeMockupEmailForm.prototype.background=function(a,d,e,b,c,f,g){var h=9*b;"true"===f&&(h+=3*b,a.rect(c,9*b,d-c,1.5*b),a.fillAndStroke());"true"===g&&(a.rect(c,h,d-c,1.5*b),h+=3*b,a.fillAndStroke());a.rect(c,0,d-c,1.5*b);a.fillAndStroke();a.rect(c,3*b,d-c,1.5*b);a.fillAndStroke();a.rect(c,6*b,d-c,1.5*b);a.fillAndStroke();a.rect(0,h,d,e-h);a.fillAndStroke()};
4544mxShapeMockupEmailForm.prototype.foreground=function(a,d,e,b,c,f,g){d=mxUtils.getValue(this.style,mxShapeMockupEmailForm.prototype.cst.MAIN_TEXT,"john@jgraph.com,Greeting,fred@jgraph.com,,,Lorem ipsum").toString().split(",");e=mxUtils.getValue(this.style,mxShapeMockupEmailForm.prototype.cst.TEXT_COLOR,"#666666");a.setFontColor(e);a.setFontSize(b);a.text(c-.5*b,.75*b,0,0,"From",mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(c-.5*b,3.75*b,0,0,"Subject",mxConstants.ALIGN_RIGHT,
4545mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(c-.5*b,6.75*b,0,0,"To",mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(c+.5*b,.75*b,0,0,d[0],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(c+.5*b,3.75*b,0,0,d[1],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(c+.5*b,6.75*b,0,0,d[2],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);e=9*b;"true"===f&&(e+=3*b,a.text(c-.5*b,9.75*b,0,0,"CC",mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDLE,
45460,null,0,0,0),a.text(c+.5*b,9.75*b,0,0,d[3],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0));"true"===g&&(a.text(c-.5*b,e+.75*b,0,0,"BCC",mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),a.text(c+.5*b,e+.75*b,0,0,d[4],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),e+=3*b);a.text(.5*b,e+.75*b,0,0,d[5],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape(mxShapeMockupEmailForm.prototype.cst.SHAPE_EMAIL_FORM,mxShapeMockupEmailForm);
4547function mxShapeMockupFormsRRect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupFormsRRect,mxShape);mxShapeMockupFormsRRect.prototype.cst={RRECT:"mxgraph.mockup.forms.rrect",R_SIZE:"rSize"};mxShapeMockupFormsRRect.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}];
4548mxShapeMockupFormsRRect.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeMockupFormsRRect.prototype.cst.R_SIZE,"10"));a.roundrect(0,0,b,c,d);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeMockupFormsRRect.prototype.cst.RRECT,mxShapeMockupFormsRRect);function mxShapeMockupFormsAnchor(a,d,e,b){mxShape.call(this);this.bounds=a}mxUtils.extend(mxShapeMockupFormsAnchor,mxShape);mxShapeMockupFormsAnchor.prototype.cst={ANCHOR:"mxgraph.mockup.forms.anchor"};
4549mxShapeMockupFormsAnchor.prototype.paintVertexShape=function(a,d,e,b,c){};mxCellRenderer.registerShape(mxShapeMockupFormsAnchor.prototype.cst.ANCHOR,mxShapeMockupFormsAnchor);function mxShapeMockupFormsCheckbox(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupFormsCheckbox,mxShape);mxShapeMockupFormsCheckbox.prototype.cst={CHECKBOX:"mxgraph.mockup.forms.checkbox"};
4550mxShapeMockupFormsCheckbox.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.rect(0,0,b,c);a.fillAndStroke();a.begin();a.moveTo(.8*b,.2*c);a.lineTo(.4*b,.8*c);a.lineTo(.25*b,.6*c);a.stroke()};mxCellRenderer.registerShape(mxShapeMockupFormsCheckbox.prototype.cst.CHECKBOX,mxShapeMockupFormsCheckbox);function mxShapeMockupFormsURect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupFormsURect,mxShape);
4551mxShapeMockupFormsURect.prototype.cst={U_RECT:"mxgraph.mockup.forms.uRect"};mxShapeMockupFormsURect.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(0,c);a.lineTo(0,0);a.lineTo(b,0);a.lineTo(b,c);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeMockupFormsURect.prototype.cst.U_RECT,mxShapeMockupFormsURect);function mxShapeMockupBarChart(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
4552mxUtils.extend(mxShapeMockupBarChart,mxShape);mxShapeMockupBarChart.prototype.cst={STROKE_COLOR2:"strokeColor2",STROKE_COLOR3:"strokeColor3",FILL_COLOR2:"fillColor2",FILL_COLOR3:"fillColor3",SHAPE_BAR_CHART:"mxgraph.mockup.graphics.barChart"};
4553mxShapeMockupBarChart.prototype.customProperties=[{name:"strokeColor2",dispName:"Stroke2 Color",type:"color"},{name:"strokeColor3",dispName:"Stroke3 Color",type:"color"},{name:"fillColor2",dispName:"Fill2 Color",type:"color"},{name:"fillColor3",dispName:"Fill3 Color",type:"color"}];
4554mxShapeMockupBarChart.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);"none"!==mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"none")&&a.setShadow(!1);this.bars(a,d,e,b,c)};mxShapeMockupBarChart.prototype.background=function(a,d,e,b,c,f,g){a.rect(0,0,b,c);a.fillAndStroke()};
4555mxShapeMockupBarChart.prototype.bars=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxShapeMockupBarChart.prototype.cst.STROKE_COLOR2,"none");e=mxUtils.getValue(this.style,mxShapeMockupBarChart.prototype.cst.STROKE_COLOR3,"#666666");var f=mxUtils.getValue(this.style,mxShapeMockupBarChart.prototype.cst.FILL_COLOR2,"#008cff"),g=mxUtils.getValue(this.style,mxShapeMockupBarChart.prototype.cst.FILL_COLOR3,"#dddddd"),h=mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,"1");a.setStrokeColor(d);
4556a.setFillColor(f);a.rect(0,.2*c,.75*b,.05*c);a.fillAndStroke();a.rect(0,.45*c,.6*b,.05*c);a.fillAndStroke();a.rect(0,.7*c,.95*b,.05*c);a.fillAndStroke();a.setFillColor(g);a.rect(0,.25*c,.85*b,.05*c);a.fillAndStroke();a.rect(0,.5*c,.65*b,.05*c);a.fillAndStroke();a.rect(0,.75*c,.8*b,.05*c);a.fillAndStroke();a.setStrokeWidth(2*h);a.setStrokeColor(e);a.setShadow(!1);a.begin();a.moveTo(0,0);a.lineTo(0,c);a.lineTo(b,c);a.stroke()};
4557mxCellRenderer.registerShape(mxShapeMockupBarChart.prototype.cst.SHAPE_BAR_CHART,mxShapeMockupBarChart);function mxShapeMockupColumnChart(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupColumnChart,mxShape);mxShapeMockupColumnChart.prototype.cst={STROKE_COLOR2:"strokeColor2",STROKE_COLOR3:"strokeColor3",FILL_COLOR2:"fillColor2",FILL_COLOR3:"fillColor3",SHAPE_COLUMN_CHART:"mxgraph.mockup.graphics.columnChart"};
4558mxShapeMockupColumnChart.prototype.customProperties=[{name:"strokeColor2",dispName:"Bar Stroke Color",type:"color"},{name:"strokeColor3",dispName:"Coord System Color",type:"color"},{name:"fillColor2",dispName:"Bar1 Color",type:"color"},{name:"fillColor3",dispName:"Bar2 Color",type:"color"}];
4559mxShapeMockupColumnChart.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);"none"!==mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"none")&&a.setShadow(!1);this.bars(a,d,e,b,c)};mxShapeMockupColumnChart.prototype.background=function(a,d,e,b,c,f,g){a.rect(0,0,b,c);a.fillAndStroke()};
4560mxShapeMockupColumnChart.prototype.bars=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxShapeMockupColumnChart.prototype.cst.STROKE_COLOR2,"none");e=mxUtils.getValue(this.style,mxShapeMockupColumnChart.prototype.cst.STROKE_COLOR3,"#666666");var f=mxUtils.getValue(this.style,mxShapeMockupColumnChart.prototype.cst.FILL_COLOR2,"#008cff"),g=mxUtils.getValue(this.style,mxShapeMockupColumnChart.prototype.cst.FILL_COLOR3,"#dddddd"),h=mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,"1");a.setStrokeColor(d);
4561a.setFillColor(f);a.rect(.2*b,.25*c,.05*b,.75*c);a.fillAndStroke();a.rect(.45*b,.4*c,.05*b,.6*c);a.fillAndStroke();a.rect(.7*b,.05*c,.05*b,.95*c);a.fillAndStroke();a.setFillColor(g);a.rect(.25*b,.15*c,.05*b,.85*c);a.fillAndStroke();a.rect(.5*b,.35*c,.05*b,.65*c);a.fillAndStroke();a.rect(.75*b,.2*c,.05*b,.8*c);a.fillAndStroke();a.setStrokeWidth(2*h);a.setStrokeColor(e);a.setShadow(!1);a.begin();a.moveTo(0,0);a.lineTo(0,c);a.lineTo(b,c);a.stroke()};
4562mxCellRenderer.registerShape(mxShapeMockupColumnChart.prototype.cst.SHAPE_COLUMN_CHART,mxShapeMockupColumnChart);function mxShapeMockupLineChart(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupLineChart,mxShape);mxShapeMockupLineChart.prototype.cst={STROKE_COLOR2:"strokeColor2",STROKE_COLOR3:"strokeColor3",STROKE_COLOR4:"strokeColor4",SHAPE_LINE_CHART:"mxgraph.mockup.graphics.lineChart"};
4563mxShapeMockupLineChart.prototype.customProperties=[{name:"strokeColor2",dispName:"Coord. System Color",type:"color"},{name:"strokeColor3",dispName:"Line1 Color",type:"color"},{name:"strokeColor4",dispName:"Line2 Color",type:"color"}];mxShapeMockupLineChart.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);"none"!==mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"none")&&a.setShadow(!1);this.bars(a,d,e,b,c)};
4564mxShapeMockupLineChart.prototype.background=function(a,d,e,b,c,f,g){a.rect(0,0,b,c);a.fillAndStroke()};
4565mxShapeMockupLineChart.prototype.bars=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxShapeMockupLineChart.prototype.cst.STROKE_COLOR2,"#666666");e=mxUtils.getValue(this.style,mxShapeMockupLineChart.prototype.cst.STROKE_COLOR3,"#008cff");var f=mxUtils.getValue(this.style,mxShapeMockupLineChart.prototype.cst.STROKE_COLOR4,"#dddddd"),g=mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,"1");a.setStrokeWidth(2*g);a.setStrokeColor(f);a.begin();a.moveTo(0,c);a.lineTo(.3*b,.5*c);a.lineTo(.6*
4566b,.74*c);a.lineTo(.9*b,.24*c);a.stroke();a.setStrokeColor(e);a.begin();a.moveTo(0,c);a.lineTo(.3*b,.65*c);a.lineTo(.6*b,.6*c);a.lineTo(.9*b,.35*c);a.stroke();a.setStrokeColor(d);a.setShadow(!1);a.begin();a.moveTo(0,0);a.lineTo(0,c);a.lineTo(b,c);a.stroke()};mxCellRenderer.registerShape(mxShapeMockupLineChart.prototype.cst.SHAPE_LINE_CHART,mxShapeMockupLineChart);function mxShapeMockupPieChart(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
4567mxUtils.extend(mxShapeMockupPieChart,mxShape);mxShapeMockupPieChart.prototype.cst={PARTS:"parts",PART_COLORS:"partColors",SHAPE_PIE_CHART:"mxgraph.mockup.graphics.pieChart"};
4568mxShapeMockupPieChart.prototype.customProperties=[{name:"partsCount",dispName:"partsCount",type:"int",defVal:4,dependentProps:["partColors","parts"]},{name:"partColors",dispName:"Part Colors",type:"staticArr",subType:"color",sizeProperty:"partsCount",subDefVal:"#FFFFFF"},{name:"parts",dispName:"Part Sizes",type:"staticArr",subType:"int",sizeProperty:"partsCount",subDefVal:"10"}];
4569mxShapeMockupPieChart.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};mxShapeMockupPieChart.prototype.background=function(a,d,e,b,c,f,g){a.ellipse(0,0,b,c);a.fillAndStroke()};
4570mxShapeMockupPieChart.prototype.foreground=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxShapeMockupPieChart.prototype.cst.PARTS,"10,20,30").toString().split(",");e=d.length;for(var f=mxUtils.getValue(this.style,mxShapeMockupPieChart.prototype.cst.PART_COLORS,"#333333,#666666,#999999").toString().split(","),g=0,h=0;h<e;h++)g+=parseInt(d[h],10);for(h=0;h<e;h++){f.length>h?a.setFillColor(f[h]):a.setFillColor("#ff0000");var k=0,l;l=parseInt(d[h],10)/g;.5===l&&(l=.501);for(var m=0;m<h;m++)k+=parseInt(d[m],
457110)/g;l+=k;var n=2*Math.PI*k,p=2*Math.PI*l,m=.5*b-b*Math.sin(n)*.5,n=.5*c-c*Math.cos(n)*.5,q=.5*b-b*Math.sin(p)*.5,p=.5*c-c*Math.cos(p)*.5,t=1;.5>l-k&&(t=0);a.begin();a.moveTo(.5*b,.5*c);a.lineTo(q,p);a.arcTo(.5*b,.5*c,0,t,1,m,n);a.close();a.fillAndStroke()}};mxCellRenderer.registerShape(mxShapeMockupPieChart.prototype.cst.SHAPE_PIE_CHART,mxShapeMockupPieChart);function mxShapeMockupIconGrid(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
4572mxUtils.extend(mxShapeMockupIconGrid,mxShape);mxShapeMockupIconGrid.prototype.cst={GRID_SIZE:"gridSize",SHAPE_ICON_GRID:"mxgraph.mockup.graphics.iconGrid"};mxShapeMockupIconGrid.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=mxUtils.getValue(this.style,mxShapeMockupIconGrid.prototype.cst.GRID_SIZE,"3,3").toString().split(",");this.background(a,b,c,d);a.setShadow(!1);this.foreground(a,b,c,d)};
4573mxShapeMockupIconGrid.prototype.background=function(a,d,e,b){d/=parseInt(b[0],10)+.5*(b[0]-1);e/=parseInt(b[1],10)+.5*(b[1]-1);for(var c=0;c<b[0];c++)for(var f=0;f<b[1];f++)a.rect(1.5*d*c,1.5*e*f,d,e),a.fillAndStroke()};
4574mxShapeMockupIconGrid.prototype.foreground=function(a,d,e,b){d/=parseInt(b[0],10)+.5*(b[0]-1);e/=parseInt(b[1],10)+.5*(b[1]-1);for(var c=0;c<b[0];c++)for(var f=0;f<b[1];f++)a.begin(),a.moveTo(1.5*d*c,1.5*e*f),a.lineTo(1.5*d*c+d,1.5*e*f+e),a.moveTo(1.5*d*c+d,1.5*e*f),a.lineTo(1.5*d*c,1.5*e*f+e),a.stroke()};mxCellRenderer.registerShape(mxShapeMockupIconGrid.prototype.cst.SHAPE_ICON_GRID,mxShapeMockupIconGrid);
4575function mxShapeMockupBubbleChart(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupBubbleChart,mxShape);mxShapeMockupBubbleChart.prototype.cst={STROKE_COLOR2:"strokeColor2",STROKE_COLOR3:"strokeColor3",FILL_COLOR2:"fillColor2",FILL_COLOR3:"fillColor3",SHAPE_BUBBLE_CHART:"mxgraph.mockup.graphics.bubbleChart"};
4576mxShapeMockupBubbleChart.prototype.customProperties=[{name:"strokeColor2",dispName:"Bubble Stroke Color",type:"color"},{name:"strokeColor3",dispName:"Coord. System Color",type:"color"},{name:"fillColor2",dispName:"Bubble1 Color",type:"color"},{name:"fillColor3",dispName:"Bubble2 Color",type:"color"}];
4577mxShapeMockupBubbleChart.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);"none"!==mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"none")&&a.setShadow(!1);this.bars(a,d,e,b,c)};mxShapeMockupBubbleChart.prototype.background=function(a,d,e,b,c,f,g){a.rect(0,0,b,c);a.fillAndStroke()};
4578mxShapeMockupBubbleChart.prototype.bars=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxShapeMockupBubbleChart.prototype.cst.STROKE_COLOR2,"none");d=mxUtils.getValue(this.style,mxShapeMockupBubbleChart.prototype.cst.STROKE_COLOR3,"#666666");var g=mxUtils.getValue(this.style,mxShapeMockupBubbleChart.prototype.cst.FILL_COLOR2,"#008cff");e=mxUtils.getValue(this.style,mxShapeMockupBubbleChart.prototype.cst.FILL_COLOR3,"#dddddd");var h=mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,
4579"1");a.setStrokeColor(f);a.setFillColor(g);f=.14*Math.min(c,b);a.ellipse(.4*b-f,.45*c-f,2*f,2*f);a.fillAndStroke();f=.1*Math.min(c,b);a.ellipse(.1*b-f,.8*c-f,2*f,2*f);a.fillAndStroke();f=.22*Math.min(c,b);a.ellipse(.7*b-f,.7*c-f,2*f,2*f);a.fillAndStroke();a.setFillColor(e);f=.19*Math.min(c,b);a.ellipse(.15*b-f,.25*c-f,2*f,2*f);a.fillAndStroke();f=.12*Math.min(c,b);a.ellipse(.48*b-f,.7*c-f,2*f,2*f);a.fillAndStroke();f=.1*Math.min(c,b);a.ellipse(.74*b-f,.17*c-f,2*f,2*f);a.fillAndStroke();a.setStrokeWidth(2*
4580h);a.setStrokeColor(d);a.setShadow(!1);a.begin();a.moveTo(0,0);a.lineTo(0,c);a.lineTo(b,c);a.stroke()};mxCellRenderer.registerShape(mxShapeMockupBubbleChart.prototype.cst.SHAPE_BUBBLE_CHART,mxShapeMockupBubbleChart);function mxShapeMockupGauge(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.gaugePos=25}mxUtils.extend(mxShapeMockupGauge,mxShape);
4581mxShapeMockupGauge.prototype.cst={SCALE_COLORS:"scaleColors",GAUGE_LABELS:"gaugeLabels",NEEDLE_COLOR:"needleColor",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize",GAUGE_POS:"gaugePos",SHAPE_GAUGE:"mxgraph.mockup.graphics.gauge"};mxShapeMockupGauge.prototype.customProperties=[{name:"scaleColors",dispName:"Scale Colors",type:"String"},{name:"needleColor",dispName:"Needle Color",type:"color"},{name:"gaugePos",dispName:"Needle Position",type:"float",min:0,max:100,defVal:25}];
4582mxShapeMockupGauge.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c)};mxShapeMockupGauge.prototype.background=function(a,d,e){a.ellipse(0,0,d,e);a.fillAndStroke()};
4583mxShapeMockupGauge.prototype.foreground=function(a,d,e){var b=mxUtils.getValue(this.style,mxShapeMockupGauge.prototype.cst.GAUGE_POS,"0"),c=mxUtils.getValue(this.style,mxShapeMockupGauge.prototype.cst.SCALE_COLORS,"#888888,#aaaaaa,#444444").toString().split(","),f=mxUtils.getValue(this.style,mxShapeMockupGauge.prototype.cst.GAUGE_LABELS,"CPU[%],0,100").toString().split(","),g=mxUtils.getValue(this.style,mxShapeMockupGauge.prototype.cst.NEEDLE_COLOR,"#008cff"),h=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,
4584"#ffffff"),k=mxUtils.getValue(this.style,mxShapeMockupGauge.prototype.cst.TEXT_COLOR,"#666666"),l=mxUtils.getValue(this.style,mxShapeMockupGauge.prototype.cst.TEXT_SIZE,"12"),b=Math.max(0,b),b=Math.min(100,b);a.setFillColor(c[1]);a.begin();a.moveTo(.05*d,.5*e);a.arcTo(.4*d,.4*e,0,0,1,.95*d,.5*e);a.lineTo(d,.5*e);a.arcTo(.5*d,.5*e,0,0,0,0,.5*e);a.close();a.fill();a.setFillColor(c[0]);a.begin();a.moveTo(.05*d,.5*e);a.arcTo(.45*d,.45*e,0,0,0,.182*d,.818*e);a.lineTo(.146*d,.854*e);a.arcTo(.5*d,.5*e,0,
45850,1,0,.5*e);a.close();a.fill();a.setFillColor(c[2]);a.begin();a.moveTo(d,.5*e);a.arcTo(.5*d,.5*e,0,0,1,.854*d,.854*e);a.lineTo(.818*d,.818*e);a.arcTo(.45*d,.45*e,0,0,0,.95*d,.5*e);a.close();a.fill();a.setFontSize(l);a.setFontColor(k);a.text(.5*d,.3*e,0,0,f[0],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.2*d,.85*e,0,0,f[1],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.8*d,.85*e,0,0,f[2],mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);
4586b=.75*(2*Math.PI*parseFloat(b)/100)+1.25*Math.PI;c=.5*d+.38*d*Math.sin(b);f=.5*e-.38*e*Math.cos(b);a.setFillColor(g);a.begin();a.moveTo(c,f);c=.5*d+.05*d*Math.cos(b);f=.5*e+.05*e*Math.sin(b);a.lineTo(c,f);g=.5*d+-.05*d*Math.sin(b);c=.5*e- -.05*e*Math.cos(b);a.arcTo(.05*d,.05*e,0,0,1,g,c);g=.5*d-.05*d*Math.cos(b);c=.5*e-.05*e*Math.sin(b);a.arcTo(.05*d,.05*e,0,0,1,g,c);a.close();a.fill();a.setFillColor(h);a.begin();a.moveTo(.49*d,.49*e);a.lineTo(.51*d,.49*e);a.lineTo(.51*d,.51*e);a.lineTo(.49*d,.51*
4587e);a.close();a.fill();a.begin();a.ellipse(0,0,d,e);a.stroke();a.begin();a.moveTo(.146*d,.854*e);a.lineTo(.219*d,.781*e);a.moveTo(.854*d,.854*e);a.lineTo(.781*d,.781*e);a.stroke()};mxCellRenderer.registerShape(mxShapeMockupGauge.prototype.cst.SHAPE_GAUGE,mxShapeMockupGauge);
4588Graph.handleFactory[mxShapeMockupGauge.prototype.cst.SHAPE_GAUGE]=function(a){return[Graph.createHandle(a,["gaugePos"],function(a){var d=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"gaugePos",this.gaugePos))));return new mxPoint(a.x+.2*a.width+.6*d*a.width/100,a.y+.8*a.height)},function(a,e){this.state.style.gaugePos=Math.round(1E3*Math.max(0,Math.min(100,100*(e.x-a.x)/a.width)))/1E3})]};
4589function mxShapeMockupPlotChart(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupPlotChart,mxShape);mxShapeMockupPlotChart.prototype.cst={STROKE_COLOR2:"strokeColor2",STROKE_COLOR3:"strokeColor3",SHAPES_COLORS:"fillColor2",SHAPE_PLOT_CHART:"mxgraph.mockup.graphics.plotChart"};
4590mxShapeMockupPlotChart.prototype.customProperties=[{name:"strokeColor2",dispName:"Bubble Stroke Color",type:"color"},{name:"strokeColor3",dispName:"Coord. System Color",type:"color"},{name:"fillColor2",dispName:"Shapes Color",type:"string"}];mxShapeMockupPlotChart.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);"none"!==mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"none")&&a.setShadow(!1);this.foreground(a,d,e,b,c)};
4591mxShapeMockupPlotChart.prototype.background=function(a,d,e,b,c,f,g){a.rect(0,0,b,c);a.fillAndStroke()};
4592mxShapeMockupPlotChart.prototype.foreground=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxShapeMockupPlotChart.prototype.cst.STROKE_COLOR2,"#dddddd");d=mxUtils.getValue(this.style,mxShapeMockupPlotChart.prototype.cst.STROKE_COLOR3,"#666666");e=mxUtils.getValue(this.style,mxShapeMockupPlotChart.prototype.cst.SHAPES_COLORS,"#00aaff,#0044ff,#008cff").toString().split(",");var g=mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,"1"),h=.03*Math.min(b,c);a.setStrokeColor(f);a.setFillColor(e[0]);
4593var f=.2*b,k=.8*c;a.begin();a.moveTo(f-.5*h,k-.5*h);a.lineTo(f+.5*h,k-.5*h);a.lineTo(f+.5*h,k+.5*h);a.lineTo(f-.5*h,k+.5*h);a.close();a.fillAndStroke();f=.3*b;k=.65*c;a.begin();a.moveTo(f-.5*h,k-.5*h);a.lineTo(f+.5*h,k-.5*h);a.lineTo(f+.5*h,k+.5*h);a.lineTo(f-.5*h,k+.5*h);a.close();a.fillAndStroke();f=.6*b;k=.44*c;a.begin();a.moveTo(f-.5*h,k-.5*h);a.lineTo(f+.5*h,k-.5*h);a.lineTo(f+.5*h,k+.5*h);a.lineTo(f-.5*h,k+.5*h);a.close();a.fillAndStroke();f=.85*b;k=.9*c;a.begin();a.moveTo(f-.5*h,k-.5*h);a.lineTo(f+
4594.5*h,k-.5*h);a.lineTo(f+.5*h,k+.5*h);a.lineTo(f-.5*h,k+.5*h);a.close();a.fillAndStroke();a.setFillColor(e[1]);f=.08*b;k=.65*c;a.begin();a.moveTo(f,k-.5*h);a.lineTo(f+.5*h,k+.5*h);a.lineTo(f-.5*h,k+.5*h);a.close();a.fillAndStroke();f=.58*b;k=.85*c;a.begin();a.moveTo(f,k-.5*h);a.lineTo(f+.5*h,k+.5*h);a.lineTo(f-.5*h,k+.5*h);a.close();a.fillAndStroke();f=.72*b;k=.92*c;a.begin();a.moveTo(f,k-.5*h);a.lineTo(f+.5*h,k+.5*h);a.lineTo(f-.5*h,k+.5*h);a.close();a.fillAndStroke();a.setFillColor(e[2]);f=.32*b;
4595k=.28*c;a.begin();a.moveTo(f,k-.75*h);a.lineTo(f+.75*h,k);a.lineTo(f,k+.75*h);a.lineTo(f-.75*h,k);a.close();a.fillAndStroke();f=.92*b;k=.45*c;a.begin();a.moveTo(f,k-.75*h);a.lineTo(f+.75*h,k);a.lineTo(f,k+.75*h);a.lineTo(f-.75*h,k);a.close();a.fillAndStroke();f=.81*b;k=.37*c;a.begin();a.moveTo(f,k-.75*h);a.lineTo(f+.75*h,k);a.lineTo(f,k+.75*h);a.lineTo(f-.75*h,k);a.close();a.fillAndStroke();f=.51*b;k=.7*c;a.begin();a.moveTo(f,k-.75*h);a.lineTo(f+.75*h,k);a.lineTo(f,k+.75*h);a.lineTo(f-.75*h,k);a.close();
4596a.fillAndStroke();a.setStrokeWidth(2*g);a.setStrokeColor(d);a.setShadow(!1);a.begin();a.moveTo(0,0);a.lineTo(0,c);a.lineTo(b,c);a.stroke()};mxCellRenderer.registerShape(mxShapeMockupPlotChart.prototype.cst.SHAPE_PLOT_CHART,mxShapeMockupPlotChart);function mxShapeMockupGanttChart(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupGanttChart,mxShape);
4597mxShapeMockupGanttChart.prototype.cst={STROKE_COLOR2:"strokeColor2",STROKE_COLOR3:"strokeColor3",SHAPES_COLORS:"fillColor2",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize",SHAPE_GANTT_CHART:"mxgraph.mockup.graphics.ganttChart"};mxShapeMockupGanttChart.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};mxShapeMockupGanttChart.prototype.background=function(a,d,e,b,c,f,g){a.rect(0,0,b,c);a.fillAndStroke()};
4598mxShapeMockupGanttChart.prototype.foreground=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxShapeMockupGanttChart.prototype.cst.SHAPES_COLORS,"#888888,#bbbbbb").toString().split(",");mxUtils.getValue(this.style,mxShapeMockupGanttChart.prototype.cst.TEXT_COLOR,"#666666");mxUtils.getValue(this.style,mxShapeMockupGanttChart.prototype.cst.TEXT_SIZE,"#12");a.begin();a.moveTo(0,.13*c);a.lineTo(b,.13*c);a.moveTo(.4*b,0);a.lineTo(.4*b,c);a.moveTo(.4*b,.065*c);a.lineTo(b,.065*c);a.moveTo(.03*b,0);a.lineTo(.03*
4599b,.13*c);a.moveTo(.1*b,0);a.lineTo(.1*b,.13*c);a.moveTo(.315*b,0);a.lineTo(.315*b,.13*c);a.moveTo(.45*b,.065*c);a.lineTo(.45*b,.13*c);a.moveTo(.5*b,.065*c);a.lineTo(.5*b,c);a.moveTo(.55*b,.065*c);a.lineTo(.55*b,.13*c);a.moveTo(.6*b,.065*c);a.lineTo(.6*b,c);a.moveTo(.65*b,.065*c);a.lineTo(.65*b,.13*c);a.moveTo(.7*b,.065*c);a.lineTo(.7*b,c);a.moveTo(.75*b,0);a.lineTo(.75*b,.13*c);a.moveTo(.8*b,.065*c);a.lineTo(.8*b,c);a.moveTo(.85*b,.065*c);a.lineTo(.85*b,.13*c);a.moveTo(.9*b,.065*c);a.lineTo(.9*b,
4600c);a.moveTo(.95*b,.065*c);a.lineTo(.95*b,.13*c);a.stroke();a.setFillColor(d[0]);a.begin();a.moveTo(.41*b,.15*c);a.lineTo(.64*b,.15*c);a.lineTo(.64*b,.18*c);a.lineTo(.625*b,.21*c);a.lineTo(.61*b,.18*c);a.lineTo(.44*b,.18*c);a.lineTo(.425*b,.21*c);a.lineTo(.41*b,.18*c);a.close();a.moveTo(.41*b,.24*c);a.lineTo(.49*b,.24*c);a.lineTo(.49*b,.275*c);a.lineTo(.41*b,.275*c);a.close();a.moveTo(.46*b,.31*c);a.lineTo(.64*b,.31*c);a.lineTo(.64*b,.345*c);a.lineTo(.46*b,.345*c);a.close();a.moveTo(.56*b,.39*c);a.lineTo(.69*
4601b,.39*c);a.lineTo(.69*b,.425*c);a.lineTo(.56*b,.425*c);a.close();a.fill();a.setFillColor(d[1]);a.begin();a.moveTo(.46*b,.32*c);a.lineTo(.58*b,.32*c);a.lineTo(.58*b,.335*c);a.lineTo(.46*b,.335*c);a.close();a.fill()};mxCellRenderer.registerShape(mxShapeMockupGanttChart.prototype.cst.SHAPE_GANTT_CHART,mxShapeMockupGanttChart);function mxShapeMockupSimpleIcon(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupSimpleIcon,mxShape);
4602mxShapeMockupSimpleIcon.prototype.cst={SIMPLE_ICON:"mxgraph.mockup.graphics.simpleIcon"};mxShapeMockupSimpleIcon.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.rect(0,0,b,c);a.fillAndStroke();a.begin();a.moveTo(0,0);a.lineTo(b,c);a.moveTo(0,c);a.lineTo(b,0);a.stroke()};mxCellRenderer.registerShape(mxShapeMockupSimpleIcon.prototype.cst.SIMPLE_ICON,mxShapeMockupSimpleIcon);function mxShapeMockupGraphicsAnchor(a,d,e,b){mxShape.call(this);this.bounds=a}
4603mxUtils.extend(mxShapeMockupGraphicsAnchor,mxShape);mxShapeMockupGraphicsAnchor.prototype.cst={ANCHOR:"mxgraph.mockup.graphics.anchor"};mxShapeMockupGraphicsAnchor.prototype.paintVertexShape=function(a,d,e,b,c){};mxCellRenderer.registerShape(mxShapeMockupGraphicsAnchor.prototype.cst.ANCHOR,mxShapeMockupGraphicsAnchor);function mxShapeMockupGraphicsRRect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupGraphicsRRect,mxShape);
4604mxShapeMockupGraphicsRRect.prototype.cst={RRECT:"mxgraph.mockup.graphics.rrect",R_SIZE:"rSize"};mxShapeMockupGraphicsRRect.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}];mxShapeMockupGraphicsRRect.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeMockupGraphicsRRect.prototype.cst.R_SIZE,"10"));a.roundrect(0,0,b,c,d);a.fillAndStroke()};
4605mxCellRenderer.registerShape(mxShapeMockupGraphicsRRect.prototype.cst.RRECT,mxShapeMockupGraphicsRRect);function mxShapeMockupCurlyBrace(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupCurlyBrace,mxShape);mxShapeMockupCurlyBrace.prototype.cst={SHAPE_CURLY_BRACE:"mxgraph.mockup.markup.curlyBrace"};mxShapeMockupCurlyBrace.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};
4606mxShapeMockupCurlyBrace.prototype.background=function(a,d,e,b,c){d=.5*c;e=Math.min(.125*b,d);a.begin();a.moveTo(0,d+e);a.arcTo(e,e,0,0,1,e,d);a.lineTo(.5*b-e,d);a.arcTo(e,e,0,0,0,.5*b,d-e);a.arcTo(e,e,0,0,0,.5*b+e,d);a.lineTo(b-e,d);a.arcTo(e,e,0,0,1,b,d+e);a.stroke()};mxCellRenderer.registerShape(mxShapeMockupCurlyBrace.prototype.cst.SHAPE_CURLY_BRACE,mxShapeMockupCurlyBrace);
4607function mxShapeMockupLine(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupLine,mxShape);mxShapeMockupLine.prototype.cst={SHAPE_LINE:"mxgraph.mockup.markup.line"};mxShapeMockupLine.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(0,.5*c);a.lineTo(b,.5*c);a.stroke()};mxCellRenderer.registerShape(mxShapeMockupLine.prototype.cst.SHAPE_LINE,mxShapeMockupLine);
4608function mxShapeMockupScratchOut(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupScratchOut,mxShape);mxShapeMockupScratchOut.prototype.cst={SHAPE_SCRATCH_OUT:"mxgraph.mockup.markup.scratchOut"};
4609mxShapeMockupScratchOut.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(.038*b,.095*c);a.curveTo(.038*b,.095*c,.289*b,-.045*c,.186*b,.05*c);a.curveTo(.084*b,.145*c,-.046*b,.251*c,.072*b,.208*c);a.curveTo(.191*b,.164*c,.522*b,-.09*c,.366*b,.062*c);a.curveTo(.21*b,.215*c,-.094*b,.38*c,.108*b,.304*c);a.curveTo(.309*b,.228*c,.73*b,-.126*c,.544*b,.096*c);a.curveTo(.358*b,.319*c,-.168*b,.592*c,.108*b,.476*c);a.curveTo(.382*b,.36*c,.972*b,-.138*c,.779*b,.114*c);a.curveTo(.585*
4610b,.365*c,-.12*b,.688*c,.071*b,.639*c);a.curveTo(.262*b,.59*c,1.174*b,.012*c,.936*b,.238*c);a.curveTo(.699*b,.462*c,-.216*b,.855*c,.085*b,.806*c);a.curveTo(.386*b,.758*c,1.185*b,.26*c,.935*b,.534*c);a.curveTo(.685*b,.808*c,-.186*b,.94*c,.236*b,.895*c);a.curveTo(.659*b,.85*c,1.095*b,.608*c,.905*b,.769*c);a.curveTo(.715*b,.93*c,.286*b,.962*c,.661*b,.931*c);a.stroke()};mxCellRenderer.registerShape(mxShapeMockupScratchOut.prototype.cst.SHAPE_SCRATCH_OUT,mxShapeMockupScratchOut);
4611function mxShapeMockupRedX(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupRedX,mxShape);mxShapeMockupRedX.prototype.cst={SHAPE_RED_X:"mxgraph.mockup.markup.redX"};
4612mxShapeMockupRedX.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(.1*b,0);a.lineTo(.5*b,.4*c);a.lineTo(.9*b,0);a.lineTo(b,.1*c);a.lineTo(.6*b,.5*c);a.lineTo(b,.9*c);a.lineTo(.9*b,c);a.lineTo(.5*b,.6*c);a.lineTo(.1*b,c);a.lineTo(0,.9*c);a.lineTo(.4*b,.5*c);a.lineTo(0,.1*c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeMockupRedX.prototype.cst.SHAPE_RED_X,mxShapeMockupRedX);
4613function mxShapeMockupPlaybackControls(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupPlaybackControls,mxShape);mxShapeMockupPlaybackControls.prototype.cst={SHAPE_PLAYBACK_CONTROLS:"mxgraph.mockup.misc.playbackControls",FILL_COLOR2:"fillColor2",STROKE_COLOR2:"strokeColor2",FILL_COLOR3:"fillColor3",STROKE_COLOR3:"strokeColor3"};
4614mxShapeMockupPlaybackControls.prototype.customProperties=[{name:"fillColor2",dispName:"Outline Color",type:"color"},{name:"fillColor3",dispName:"Symbol Color",type:"color"},{name:"strokeColor2",dispName:"Outline Stroke Color",type:"color"},{name:"strokeColor3",dispName:"Symbol Stroke Color",type:"color"}];
4615mxShapeMockupPlaybackControls.prototype.paintVertexShape=function(a,d,e,b,c){c=Math.max(c,30);b=Math.max(225,b);a.translate(d,e);this.background(a,b,c,30);a.setShadow(!1);this.foreground(a,b,c,30,22)};mxShapeMockupPlaybackControls.prototype.background=function(a,d,e,b){a.rect(0,.5*(e-b),d,b);a.fillAndStroke()};
4616mxShapeMockupPlaybackControls.prototype.foreground=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxShapeMockupPlaybackControls.prototype.cst.FILL_COLOR2,"#99ddff");var f=mxUtils.getValue(this.style,mxShapeMockupPlaybackControls.prototype.cst.STROKE_COLOR2,"none"),g=mxUtils.getValue(this.style,mxShapeMockupPlaybackControls.prototype.cst.FILL_COLOR3,"#ffffff"),h=mxUtils.getValue(this.style,mxShapeMockupPlaybackControls.prototype.cst.STROKE_COLOR3,"none");a.setStrokeColor(f);a.setFillColor(d);a.ellipse(10,
4617.5*e-.5*c,c,c);a.fillAndStroke();a.ellipse(40,.5*e-.5*c,c,c);a.fillAndStroke();a.ellipse(70,.5*e-.5*c,c,c);a.fillAndStroke();a.ellipse(100,.5*e-.5*c,c,c);a.fillAndStroke();a.ellipse(130,.5*e-.5*c,c,c);a.fillAndStroke();a.ellipse(160,.5*e-.5*c,c,c);a.fillAndStroke();a.ellipse(190,.5*e-.5*c,c,c);a.fillAndStroke();a.setStrokeColor(h);a.setFillColor(g);e=.5*e-.5*b;a.begin();a.moveTo(16,e+10);a.lineTo(16,e+20);a.lineTo(18,e+20);a.lineTo(18,e+10);a.close();a.moveTo(20,e+15);a.lineTo(25,e+20);a.lineTo(25,
4618e+10);a.close();a.fillAndStroke();a.begin();a.moveTo(44,e+15);a.lineTo(49,e+20);a.lineTo(49,e+10);a.close();a.moveTo(51,e+15);a.lineTo(56,e+20);a.lineTo(56,e+10);a.close();a.fillAndStroke();a.begin();a.moveTo(77,e+15);a.lineTo(82,e+20);a.lineTo(82,e+10);a.close();a.fillAndStroke();a.begin();a.moveTo(108,e+10);a.lineTo(108,e+20);a.lineTo(110,e+20);a.lineTo(110,e+10);a.close();a.moveTo(117,e+15);a.lineTo(112,e+20);a.lineTo(112,e+10);a.close();a.fillAndStroke();a.begin();a.moveTo(144,e+15);a.lineTo(139,
4619e+20);a.lineTo(139,e+10);a.close();a.fillAndStroke();a.begin();a.moveTo(171,e+15);a.lineTo(166,e+20);a.lineTo(166,e+10);a.close();a.moveTo(178,e+15);a.lineTo(173,e+20);a.lineTo(173,e+10);a.close();a.fillAndStroke();a.begin();a.moveTo(203,e+10);a.lineTo(203,e+20);a.lineTo(205,e+20);a.lineTo(205,e+10);a.close();a.moveTo(201,e+15);a.lineTo(196,e+20);a.lineTo(196,e+10);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeMockupPlaybackControls.prototype.cst.SHAPE_PLAYBACK_CONTROLS,mxShapeMockupPlaybackControls);
4620function mxShapeMockupProgressBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.barPos=20}mxUtils.extend(mxShapeMockupProgressBar,mxShape);mxShapeMockupProgressBar.prototype.cst={SHAPE_PROGRESS_BAR:"mxgraph.mockup.misc.progressBar",BAR_POS:"barPos",FILL_COLOR2:"fillColor2"};
4621mxShapeMockupProgressBar.prototype.customProperties=[{name:"fillColor2",dispName:"Outline Color",type:"color"},{name:"barPos",dispName:"Handle Position",type:"float",min:0,defVal:80}];mxShapeMockupProgressBar.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c)};mxShapeMockupProgressBar.prototype.background=function(a,d,e){a.roundrect(0,.5*e-5,d,10,5,5);a.fillAndStroke()};
4622mxShapeMockupProgressBar.prototype.foreground=function(a,d,e){var b=mxUtils.getValue(this.style,mxShapeMockupProgressBar.prototype.cst.FILL_COLOR2,"#ddeeff"),c=mxUtils.getValue(this.style,mxShapeMockupProgressBar.prototype.cst.BAR_POS,"80"),c=Math.min(c,100),c=Math.max(c,0);d=0+(d-0)*c/100;a.setFillColor(b);a.roundrect(0,.5*e-5,d,10,5,5);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeMockupProgressBar.prototype.cst.SHAPE_PROGRESS_BAR,mxShapeMockupProgressBar);
4623Graph.handleFactory[mxShapeMockupProgressBar.prototype.cst.SHAPE_PROGRESS_BAR]=function(a){return[Graph.createHandle(a,["barPos"],function(a){var d=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"barPos",this.barPos))));return new mxPoint(a.x+d*a.width/100,a.y+.5*a.height)},function(a,e){this.state.style.barPos=Math.round(1E3*Math.max(0,Math.min(100,100*(e.x-a.x)/a.width)))/1E3})]};
4624function mxShapeMockupShoppingCart(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupShoppingCart,mxShape);mxShapeMockupShoppingCart.prototype.cst={SHAPE_SHOPPING_CART:"mxgraph.mockup.misc.shoppingCart"};
4625mxShapeMockupShoppingCart.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");a.translate(d,e);a.setStrokeWidth(3);a.begin();a.moveTo(.975*b,.025*c);a.lineTo(.82*b,.055*c);a.lineTo(.59*b,.66*c);a.lineTo(.7*b,.765*c);a.arcTo(.06*b,.06*c,0,0,1,.665*b,.86*c);a.lineTo(.05*b,.86*c);a.moveTo(.74*b,.26*c);a.lineTo(.03*b,.28*c);a.lineTo(.065*b,.61*c);a.lineTo(.59*b,.66*c);a.stroke();a.setStrokeWidth(1);a.begin();a.moveTo(.15*b,.28*c);a.lineTo(.15*
4626b,.62*c);a.moveTo(.265*b,.275*c);a.lineTo(.265*b,.63*c);a.moveTo(.38*b,.27*c);a.lineTo(.38*b,.64*c);a.moveTo(.495*b,.265*c);a.lineTo(.495*b,.65*c);a.moveTo(.61*b,.265*c);a.lineTo(.61*b,.61*c);a.stroke();a.begin();a.moveTo(.69*b,.405*c);a.lineTo(.045*b,.405*c);a.moveTo(.645*b,.52*c);a.lineTo(.055*b,.52*c);a.stroke();a.setFillColor(f);a.ellipse(.075*b,.89*c,.1*b,.1*c);a.fillAndStroke();a.ellipse(.62*b,.89*c,.1*b,.1*c);a.fillAndStroke()};
4627mxCellRenderer.registerShape(mxShapeMockupShoppingCart.prototype.cst.SHAPE_SHOPPING_CART,mxShapeMockupShoppingCart);function mxShapeMockupRating(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupRating,mxShape);mxShapeMockupRating.prototype.cst={SHAPE_RATING:"mxgraph.mockup.misc.rating",RATING_STYLE:"ratingStyle",RATING_SCALE:"ratingScale",RATING_HEART:"heart",RATING_STAR:"star",EMPTY_FILL_COLOR:"emptyFillColor",GRADE:"grade"};
4628mxShapeMockupRating.prototype.customProperties=[{name:"ratingStyle",dispName:"Style",type:"enum",enumList:[{val:"heart",dispName:"Heart"},{val:"star",dispName:"Star"}]},{name:"ratingScale",dispName:"Max. Rating",type:"int"},{name:"grade",dispName:"Current Rating",type:"int"},{name:"emptyFillColor",dispName:"Fill2 Color",type:"color"}];
4629mxShapeMockupRating.prototype.paintVertexShape=function(a,d,e,b,c){b=mxUtils.getValue(this.style,mxShapeMockupRating.prototype.cst.RATING_STYLE,mxShapeMockupRating.prototype.cst.RATING_STAR);var f=mxUtils.getValue(this.style,mxShapeMockupRating.prototype.cst.GRADE,"5"),g=mxUtils.getValue(this.style,mxShapeMockupRating.prototype.cst.RATING_SCALE,"10");a.translate(d,e);if(b===mxShapeMockupRating.prototype.cst.RATING_STAR)for(d=0;d<f;d++)a.begin(),a.moveTo(d*c*1.5,.33*c),a.lineTo(d*c*1.5+.364*c,.33*
4630c),a.lineTo(d*c*1.5+.475*c,0),a.lineTo(d*c*1.5+.586*c,.33*c),a.lineTo(d*c*1.5+.95*c,.33*c),a.lineTo(d*c*1.5+.66*c,.551*c),a.lineTo(d*c*1.5+.775*c,.9*c),a.lineTo(d*c*1.5+.475*c,.684*c),a.lineTo(d*c*1.5+.175*c,.9*c),a.lineTo(d*c*1.5+.29*c,.551*c),a.close(),a.fillAndStroke();else if(b===mxShapeMockupRating.prototype.cst.RATING_HEART)for(d=0;d<f;d++)a.begin(),a.moveTo(d*c*1.5+.519*c,.947*c),a.curveTo(d*c*1.5+.558*c,.908*c,d*c*1.5+.778*c,.682*c,d*c*1.5+.916*c,.54*c),a.curveTo(d*c*1.5+1.039*c,.414*c,d*
4631c*1.5+1.036*c,.229*c,d*c*1.5+.924*c,.115*c),a.curveTo(d*c*1.5+.812*c,0,d*c*1.5+.631*c,0,d*c*1.5+.519*c,.115*c),a.curveTo(d*c*1.5+.408*c,0,d*c*1.5+.227*c,0,d*c*1.5+.115*c,.115*c),a.curveTo(d*c*1.5+.03*c,.229*c,d*c*1.5,.414*c,d*c*1.5+.123*c,.54*c),a.close(),a.fillAndStroke();d=mxUtils.getValue(this.style,mxShapeMockupRating.prototype.cst.EMPTY_FILL_COLOR,"#ffffff");a.setFillColor(d);if(b===mxShapeMockupRating.prototype.cst.RATING_STAR)for(d=f;d<g;d++)a.begin(),a.moveTo(d*c*1.5,.33*c),a.lineTo(d*c*1.5+
4632.364*c,.33*c),a.lineTo(d*c*1.5+.475*c,0),a.lineTo(d*c*1.5+.586*c,.33*c),a.lineTo(d*c*1.5+.95*c,.33*c),a.lineTo(d*c*1.5+.66*c,.551*c),a.lineTo(d*c*1.5+.775*c,.9*c),a.lineTo(d*c*1.5+.475*c,.684*c),a.lineTo(d*c*1.5+.175*c,.9*c),a.lineTo(d*c*1.5+.29*c,.551*c),a.close(),a.fillAndStroke();else if(b===mxShapeMockupRating.prototype.cst.RATING_HEART)for(d=f;d<g;d++)a.begin(),a.moveTo(d*c*1.5+.519*c,.947*c),a.curveTo(d*c*1.5+.558*c,.908*c,d*c*1.5+.778*c,.682*c,d*c*1.5+.916*c,.54*c),a.curveTo(d*c*1.5+1.039*
4633c,.414*c,d*c*1.5+1.036*c,.229*c,d*c*1.5+.924*c,.115*c),a.curveTo(d*c*1.5+.812*c,0,d*c*1.5+.631*c,0,d*c*1.5+.519*c,.115*c),a.curveTo(d*c*1.5+.408*c,0,d*c*1.5+.227*c,0,d*c*1.5+.115*c,.115*c),a.curveTo(d*c*1.5+.03*c,.229*c,d*c*1.5,.414*c,d*c*1.5+.123*c,.54*c),a.close(),a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeMockupRating.prototype.cst.SHAPE_RATING,mxShapeMockupRating);
4634function mxShapeMockupMail(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupMail,mxShape);mxShapeMockupMail.prototype.cst={SHAPE_MAIL:"mxgraph.mockup.misc.mail2"};mxShapeMockupMail.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.rect(0,0,b,c);a.fillAndStroke();a.setShadow(!1);a.begin();a.moveTo(0,0);a.lineTo(.5*b,.5*c);a.lineTo(b,0);a.stroke()};
4635mxCellRenderer.registerShape(mxShapeMockupMail.prototype.cst.SHAPE_MAIL,mxShapeMockupMail);function mxShapeMockupVolumeSlider(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.barPos=80}mxUtils.extend(mxShapeMockupVolumeSlider,mxShape);mxShapeMockupVolumeSlider.prototype.cst={SHAPE_VOLUME_SLIDER:"mxgraph.mockup.misc.volumeSlider",BAR_POS:"barPos",FILL_COLOR2:"fillColor2"};
4636mxShapeMockupVolumeSlider.prototype.customProperties=[{name:"fillColor2",dispName:"Fill2 Color",type:"color"},{name:"barPos",dispName:"Handle Position",type:"float"}];
4637mxShapeMockupVolumeSlider.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);e=mxUtils.getValue(this.style,mxShapeMockupVolumeSlider.prototype.cst.BAR_POS,"80");d=mxUtils.getValue(this.style,mxShapeMockupVolumeSlider.prototype.cst.FILL_COLOR2,"#ddeeff");mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#999999");e=Math.min(e,100);e=Math.max(e,0);c=Math.max(c,25);b=Math.max(b,87.5);var f=b-25,g=.5*(c-25);a.begin();a.moveTo(f+1.25,g+8.75);a.lineTo(f+3.75,g+8.75);a.lineTo(f+7.5,
4638g+5);a.lineTo(f+7.5,g+20);a.lineTo(f+3.75,g+16.25);a.lineTo(f+1.25,g+16.25);a.close();a.fill();e=0+(b-32.5-0)*e/100;f=b-25;g=.5*(c-25);a.begin();a.moveTo(f+10,g+8.75);a.arcTo(5,7.5,0,0,1,f+10,g+16.25);a.moveTo(f+10.625,g+6.25);a.arcTo(5.625,8.75,0,0,1,f+10.625,g+18.75);a.moveTo(f+12.5,g+5);a.arcTo(6.25,10,0,0,1,f+12.5,g+20);a.fillAndStroke();c=.5*(c-25);a.roundrect(0,c+8.75,b-32.5,7.5,5,5);a.fill();a.setShadow(!1);a.setFillColor(d);a.roundrect(0,c+8.75,e,7.5,5,5);a.fill();a.ellipse(e-6.25,c+6.25,
463912.5,12.5);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeMockupVolumeSlider.prototype.cst.SHAPE_VOLUME_SLIDER,mxShapeMockupVolumeSlider);
4640Graph.handleFactory[mxShapeMockupVolumeSlider.prototype.cst.SHAPE_VOLUME_SLIDER]=function(a){return[Graph.createHandle(a,["barPos"],function(a){var d=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"barPos",this.barPos))));return new mxPoint(a.x+d*(a.width-32.5)/100,a.y+.5*a.height)},function(a,e){this.state.style.barPos=Math.round(1E3*Math.max(0,Math.min(100,100*(e.x-a.x)/a.width)))/1E3})]};
4641function mxShapeMockupEdit(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupEdit,mxShape);mxShapeMockupEdit.prototype.cst={SHAPE_EDIT:"mxgraph.mockup.misc.editIcon"};
4642mxShapeMockupEdit.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#999999");a.translate(d,e);a.roundrect(0,0,b,c,.05*b,.05*c);a.fillAndStroke();a.setShadow(!1);a.setFillColor(f);a.begin();a.moveTo(.11*b,.8*c);a.lineTo(.2*b,.89*c);a.lineTo(.05*b,.95*c);a.close();a.moveTo(.74*b,.16*c);a.lineTo(.84*b,.26*c);a.lineTo(.22*b,.88*c);a.lineTo(.12*b,.78*c);a.close();a.moveTo(.755*b,.145*c);a.lineTo(.82*b,.08*c);a.lineTo(.92*b,.18*c);a.lineTo(.855*
4643b,.245*c);a.close();a.fill()};mxCellRenderer.registerShape(mxShapeMockupEdit.prototype.cst.SHAPE_EDIT,mxShapeMockupEdit);function mxShapeMockupPrint(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupPrint,mxShape);mxShapeMockupPrint.prototype.cst={SHAPE_PRINT:"mxgraph.mockup.misc.printIcon"};
4644mxShapeMockupPrint.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#999999");a.translate(d,e);a.roundrect(0,0,b,c,.05*b,.05*c);a.fillAndStroke();a.setShadow(!1);a.setFillColor(f);a.begin();a.moveTo(.15*b,.58*c);a.arcTo(.03*b,.03*c,0,0,1,.18*b,.55*c);a.lineTo(.82*b,.55*c);a.arcTo(.03*b,.03*c,0,0,1,.85*b,.58*c);a.lineTo(.85*b,.82*c);a.arcTo(.03*b,.03*c,0,0,1,.82*b,.85*c);a.lineTo(.18*b,.85*c);a.arcTo(.03*b,.03*c,0,0,1,.15*b,.82*c);a.close();
4645a.moveTo(.7*b,.52*c);a.lineTo(.3*b,.52*c);a.lineTo(.3*b,.15*c);a.lineTo(.55*b,.15*c);a.lineTo(.55*b,.3*c);a.lineTo(.7*b,.3*c);a.close();a.moveTo(.57*b,.15*c);a.lineTo(.7*b,.28*c);a.lineTo(.57*b,.28*c);a.close();a.fill()};mxCellRenderer.registerShape(mxShapeMockupPrint.prototype.cst.SHAPE_PRINT,mxShapeMockupPrint);function mxShapeMockupShare(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupShare,mxShape);
4646mxShapeMockupShare.prototype.cst={SHAPE_SHARE:"mxgraph.mockup.misc.shareIcon"};
4647mxShapeMockupShare.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#999999");a.translate(d,e);a.roundrect(0,0,b,c,.05*b,.05*c);a.fillAndStroke();a.setShadow(!1);a.setFillColor(f);a.begin();a.moveTo(.15*b,.18*c);a.arcTo(.03*b,.03*c,0,0,1,.18*b,.15*c);a.lineTo(.82*b,.15*c);a.arcTo(.03*b,.03*c,0,0,1,.85*b,.18*c);a.lineTo(.85*b,.82*c);a.arcTo(.03*b,.03*c,0,0,1,.82*b,.85*c);a.lineTo(.18*b,.85*c);a.arcTo(.03*b,.03*c,0,0,1,.15*b,.82*c);a.close();
4648a.fill();d=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff");a.setFillColor(d);a.begin();a.moveTo(.563*b,.34*c);a.arcTo(.095*b,.095*c,0,1,1,.603*b,.42*c);a.lineTo(.44*b,.5*c);a.lineTo(.602*b,.582*c);a.arcTo(.095*b,.095*c,0,1,1,.563*b,.653*c);a.lineTo(.403*b,.575*c);a.arcTo(.095*b,.095*c,0,1,1,.4*b,.42*c);a.close();a.fill()};mxCellRenderer.registerShape(mxShapeMockupShare.prototype.cst.SHAPE_SHARE,mxShapeMockupShare);
4649function mxShapeMockupTrashcan(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupTrashcan,mxShape);mxShapeMockupTrashcan.prototype.cst={SHAPE_TRASHCAN:"mxgraph.mockup.misc.trashcanIcon"};
4650mxShapeMockupTrashcan.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#999999");a.translate(d,e);a.roundrect(0,0,b,c,.05*b,.05*c);a.fillAndStroke();a.setShadow(!1);a.setFillColor(f);a.begin();a.moveTo(.24*b,.24*c);a.arcTo(.04*b,.04*c,0,0,1,.24*b,.16*c);a.lineTo(.4*b,.16*c);a.lineTo(.4*b,.12*c);a.lineTo(.6*b,.12*c);a.lineTo(.6*b,.16*c);a.lineTo(.76*b,.16*c);a.arcTo(.04*b,.04*c,0,0,1,.76*b,.24*c);a.close();a.fill();a.roundrect(.26*b,.3*
4651c,.1*b,.6*c,.06*b,.06*c);a.fill();a.roundrect(.44*b,.3*c,.1*b,.6*c,.06*b,.06*c);a.fill();a.roundrect(.62*b,.3*c,.1*b,.6*c,.06*b,.06*c);a.fill()};mxCellRenderer.registerShape(mxShapeMockupTrashcan.prototype.cst.SHAPE_TRASHCAN,mxShapeMockupTrashcan);function mxShapeMockupCopyright(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupCopyright,mxShape);mxShapeMockupCopyright.prototype.cst={SHAPE_COPYRIGHT:"mxgraph.mockup.misc.copyrightIcon"};
4652mxShapeMockupCopyright.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#999999");a.translate(d,e);a.ellipse(0,0,b,c);a.fillAndStroke();a.setShadow(!1);a.setFillColor(f);a.begin();a.moveTo(.713*b,.288*c);a.arcTo(.3*b,.3*c,0,1,0,.713*b,.712*c);a.lineTo(.784*b,.783*c);a.arcTo(.4*b,.4*c,0,1,1,.784*b,.217*c);a.close();a.fill()};mxCellRenderer.registerShape(mxShapeMockupCopyright.prototype.cst.SHAPE_COPYRIGHT,mxShapeMockupCopyright);
4653function mxShapeMockupRegistered(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupRegistered,mxShape);mxShapeMockupRegistered.prototype.cst={SHAPE_REGISTERED:"mxgraph.mockup.misc.registeredIcon"};
4654mxShapeMockupRegistered.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#999999");a.translate(d,e);a.ellipse(0,0,b,c);a.fillAndStroke();a.setShadow(!1);a.setFillColor(f);a.begin();a.moveTo(.29*b,.9*c);a.lineTo(.29*b,.09*c);a.lineTo(.5*b,.09*c);a.arcTo(.2195*b,.2195*c,0,0,1,.545*b,.525*c);a.lineTo(.738*b,.91*c);a.lineTo(.674*b,.91*c);a.lineTo(.4825*b,.53*c);a.lineTo(.35*b,.53*c);a.lineTo(.35*b,.9*c);a.close();a.moveTo(.35*b,.47*c);a.lineTo(.5*
4655b,.47*c);a.arcTo(.15*b,.15*c,0,0,0,.5*b,.15*c);a.lineTo(.35*b,.15*c);a.close();a.fill()};mxCellRenderer.registerShape(mxShapeMockupRegistered.prototype.cst.SHAPE_REGISTERED,mxShapeMockupRegistered);function mxShapeMockupVolume(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupVolume,mxShape);mxShapeMockupVolume.prototype.cst={SHAPE_VOLUME:"mxgraph.mockup.misc.volumeIcon"};
4656mxShapeMockupVolume.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#999999");a.translate(d,e);a.roundrect(0,0,b,c,.05*b,.05*c);a.fillAndStroke();a.setShadow(!1);a.setFillColor(f);a.begin();a.moveTo(.1*b,.3*c);a.lineTo(.3*b,.3*c);a.lineTo(.5*b,.15*c);a.lineTo(.5*b,.85*c);a.lineTo(.3*b,.7*c);a.lineTo(.1*b,.7*c);a.close();a.fill();a.begin();a.moveTo(.6*b,.4*c);a.arcTo(.2*b,.2*c,0,0,1,.6*b,.6*c);a.moveTo(.7*b,.3*c);a.arcTo(.3*b,.3*c,0,0,
46571,.7*b,.7*c);a.moveTo(.8*b,.2*c);a.arcTo(.4*b,.4*c,0,0,1,.8*b,.8*c);a.stroke()};mxCellRenderer.registerShape(mxShapeMockupVolume.prototype.cst.SHAPE_VOLUME,mxShapeMockupVolume);function mxShapeMockupRuler(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupRuler,mxShape);mxShapeMockupRuler.prototype.cst={SHAPE_RULER:"mxgraph.mockup.misc.ruler",ORIENTATION:"rulerOrient",UNIT_SIZE:"unitSize",FACE_UP:"up",FACE_DOWN:"down"};
4658mxShapeMockupRuler.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c)};mxShapeMockupRuler.prototype.background=function(a,d,e){a.rect(0,0,d,e);a.fillAndStroke()};
4659mxShapeMockupRuler.prototype.foreground=function(a,d,e){var b=mxUtils.getValue(this.style,mxShapeMockupRuler.prototype.cst.ORIENTATION,mxShapeMockupRuler.prototype.cst.FACE_DOWN),c=mxUtils.getValue(this.style,mxShapeMockupRuler.prototype.cst.UNIT_SIZE,"10"),f=c=Math.max(c,1),g=1;if(b===mxShapeMockupRuler.prototype.cst.FACE_DOWN){for(a.begin();f<d;)b=g%10,0===b?a.moveTo(f,.5*e):5===b?a.moveTo(f,.7*e):a.moveTo(f,.8*e),a.lineTo(f,e),f+=c,g+=1;a.stroke()}else if(b===mxShapeMockupRuler.prototype.cst.FACE_UP){for(a.begin();f<
4660d;)b=g%10,0===b?a.moveTo(f,.5*e):5===b?a.moveTo(f,.3*e):a.moveTo(f,.2*e),a.lineTo(f,0),f+=c,g+=1;a.stroke()}};mxCellRenderer.registerShape(mxShapeMockupRuler.prototype.cst.SHAPE_RULER,mxShapeMockupRuler);function mxShapeMockupRuler2(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupRuler2,mxShape);
4661mxShapeMockupRuler2.prototype.cst={SHAPE_RULER:"mxgraph.mockup.misc.ruler2",ORIENTATION:"rulerOrient",UNIT_SIZE:"dx",FACE_UP:"up",FACE_DOWN:"down"};mxShapeMockupRuler2.prototype.customProperties=[{name:"rulerOrient",dispName:"Orientation",defVal:"up",type:"enum",enumList:[{val:"up",dispName:"Up"},{val:"down",dispName:"Down"}]},{name:"dx",dispName:"Unit Size",type:"float",min:0,defVal:100}];
4662mxShapeMockupRuler2.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};mxShapeMockupRuler2.prototype.background=function(a,d,e){a.rect(0,0,d,e);a.fillAndStroke()};
4663mxShapeMockupRuler2.prototype.foreground=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxShapeMockupRuler2.prototype.cst.ORIENTATION,mxShapeMockupRuler2.prototype.cst.FACE_DOWN);e=mxUtils.getValue(this.style,mxConstants.STYLE_FONTCOLOR,"#000000");d=mxUtils.getValue(this.style,"dx","100");this.state.style.spacingLeft=Math.round(1E3*Math.max(0,Math.min(b,d)))/1E3-4;d=Math.max(d/10,1);a.setFontColor(e);e=d;var g=1;if(f===mxShapeMockupRuler2.prototype.cst.FACE_DOWN){for(a.begin();e<b;)f=g%10,
46640===f?(a.moveTo(e,c-10),a.lineTo(e,c),f=this.state.view.graph.getLabel(this.state.cell),isNaN(f)||(a.stroke(),f=g*Math.round(100*f)/1E3,10!=g&&0!=f&&a.text(e,.5*(c-10),0,0,f.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),a.begin())):(5===f?a.moveTo(e,c-6):a.moveTo(e,c-4),a.lineTo(e,c)),e+=d,g+=1;a.stroke()}else if(f===mxShapeMockupRuler2.prototype.cst.FACE_UP){for(a.begin();e<b;)f=g%10,0===f?(a.moveTo(e,10),a.lineTo(e,0),f=this.state.view.graph.getLabel(this.state.cell),
4665isNaN(f)||(a.stroke(),f=g*Math.round(100*f)/1E3,10!=g&&0!=f&&a.text(e,.5*(c+10),0,0,f.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),a.begin())):(5===f?a.moveTo(e,6):a.moveTo(e,4),a.lineTo(e,0)),e+=d,g+=1;a.stroke()}};mxCellRenderer.registerShape(mxShapeMockupRuler2.prototype.cst.SHAPE_RULER,mxShapeMockupRuler2);
4666Graph.handleFactory[mxShapeMockupRuler2.prototype.cst.SHAPE_RULER]=function(a){return[Graph.createHandle(a,"dx spacingLeft align varticalAlign spacingBottom spacingTop spacingRight spacing".split(" "),function(a){var d=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d,a.y+a.height-10)},function(a,e){this.state.style.dx=Math.round(1E3*Math.max(0,Math.min(a.width,e.x-a.x)))/1E3;this.state.style.spacingLeft=Math.round(1E3*Math.max(0,Math.min(a.width,
4667e.x-a.x)))/1E3-4;this.state.style.align="left";this.state.style.verticalAlign="middle";"down"==mxUtils.getValue(this.state.style,"rulerOrient","1")?(this.state.style.spacingBottom=10,this.state.style.spacingTop=0):(this.state.style.spacingBottom=0,this.state.style.spacingTop=10);this.state.style.spacingRight=0;this.state.style.spacing=0})]};function mxShapeMockupRevisionTable(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
4668mxUtils.extend(mxShapeMockupRevisionTable,mxShape);mxShapeMockupRevisionTable.prototype.cst={SHAPE_REVISION_TABLE:"mxgraph.mockup.misc.revisionTable",MAIN_TEXT:"mainText",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize"};mxShapeMockupRevisionTable.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c)};mxShapeMockupRevisionTable.prototype.background=function(a,d,e){a.rect(0,0,d,e);a.fillAndStroke()};
4669mxShapeMockupRevisionTable.prototype.foreground=function(a,d,e){var b=mxUtils.getValue(this.style,mxShapeMockupRevisionTable.prototype.cst.MAIN_TEXT,"").toString().split(","),c=mxUtils.getValue(this.style,mxShapeMockupRevisionTable.prototype.cst.TEXT_COLOR,"#999999"),f=mxUtils.getValue(this.style,mxShapeMockupRevisionTable.prototype.cst.TEXT_SIZE,"17");a.begin();a.moveTo(0,.33*e);a.lineTo(d,.33*e);a.moveTo(0,.67*e);a.lineTo(d,.67*e);a.moveTo(.125*d,.33*e);a.lineTo(.125*d,e);a.moveTo(.5*d,.33*e);a.lineTo(.5*
4670d,e);a.stroke();a.setFontSize(f);a.setFontColor(c);a.text(.5*d,.165*e,0,0,b[0],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.0625*d,.5*e,0,0,b[1],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.3125*d,.5*e,0,0,b[2],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.75*d,.5*e,0,0,b[3],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.0625*d,.835*e,0,0,b[4],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,
46710,null,0,0,0);a.text(.3125*d,.835*e,0,0,b[5],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.75*d,.835*e,0,0,b[6],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape(mxShapeMockupRevisionTable.prototype.cst.SHAPE_REVISION_TABLE,mxShapeMockupRevisionTable);function mxShapeMockupStatusBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupStatusBar,mxShape);
4672mxShapeMockupStatusBar.prototype.cst={SHAPE_STATUS_BAR:"mxgraph.mockup.misc.statusBar",MAIN_TEXT:"mainText",FILL_COLOR2:"fillColor2",STROKE_COLOR2:"strokeColor2",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize"};mxShapeMockupStatusBar.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);b=Math.max(b,105);this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c)};mxShapeMockupStatusBar.prototype.background=function(a,d,e){a.rect(0,.5*e-15,d,30);a.fillAndStroke()};
4673mxShapeMockupStatusBar.prototype.foreground=function(a,d,e){var b=mxUtils.getValue(this.style,mxShapeMockupStatusBar.prototype.cst.FILL_COLOR2,"#ddeeff"),c=mxUtils.getValue(this.style,mxShapeMockupStatusBar.prototype.cst.STROKE_COLOR2,"#008cff"),f=mxUtils.getValue(this.style,mxShapeMockupStatusBar.prototype.cst.MAIN_TEXT,"").toString().split(","),g=mxUtils.getValue(this.style,mxShapeMockupStatusBar.prototype.cst.TEXT_COLOR,"#999999"),h=mxUtils.getValue(this.style,mxShapeMockupStatusBar.prototype.cst.TEXT_SIZE,
4674"17");a.setFillColor(b);a.roundrect(5,.5*e-10,.46*(d-75),20,5,5);a.fill();a.roundrect(10+.46*(d-75),.5*e-10,.23*(d-75),20,5,5);a.fill();a.roundrect(15+.69*(d-75),.5*e-10,.276*(d-75),20,5,5);a.fill();a.setFontSize(h);a.setFontColor(g);a.text(10,.5*e,0,0,f[0],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(10+.575*(d-75),.5*e,0,0,f[1],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(15+.828*(d-75),.5*e,0,0,f[2],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,
46750,null,0,0,0);a.setStrokeColor(c);a.ellipse(d-25,.5*e-10,20,20);a.stroke();a.begin();a.moveTo(d-55,.5*e+10);a.lineTo(d-35,.5*e+10);a.stroke()};mxCellRenderer.registerShape(mxShapeMockupStatusBar.prototype.cst.SHAPE_STATUS_BAR,mxShapeMockupStatusBar);function mxShapeMockupPin(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupPin,mxShape);
4676mxShapeMockupPin.prototype.cst={SHAPE_PIN:"mxgraph.mockup.misc.pin",FILL_COLOR2:"fillColor2",FILL_COLOR3:"fillColor3"};mxShapeMockupPin.prototype.customProperties=[{name:"fillColor2",dispName:"Fill2 Color",type:"color"},{name:"fillColor3",dispName:"Fill3 Color",type:"color"}];
4677mxShapeMockupPin.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxShapeMockupPin.prototype.cst.FILL_COLOR2,"#000000"),g=mxUtils.getValue(this.style,mxShapeMockupPin.prototype.cst.FILL_COLOR3,"#000000"),h=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");a.setShadow(!1);a.translate(d,e);a.setStrokeWidth(3);a.setStrokeColor("#666666");a.begin();a.moveTo(.5*b,.4*c);a.lineTo(.5*b,c);a.stroke();a.setStrokeWidth(2);a.setStrokeColor(h);a.setGradient(f,
4678g,0,0,b,.4*c,mxConstants.DIRECTION_SOUTH,1,1);a.setAlpha(.9);a.ellipse(0,0,b,.4*c);a.fillAndStroke();a.setFillColor("#ffffff");a.setAlpha(.5);a.ellipse(.2*b,.08*c,.3*b,.12*c);a.fill()};mxCellRenderer.registerShape(mxShapeMockupPin.prototype.cst.SHAPE_PIN,mxShapeMockupPin);function mxShapeMockupMiscRRect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupMiscRRect,mxShape);
4679mxShapeMockupMiscRRect.prototype.cst={RRECT:"mxgraph.mockup.misc.rrect",R_SIZE:"rSize"};mxShapeMockupMiscRRect.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}];mxShapeMockupMiscRRect.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeMockupMiscRRect.prototype.cst.R_SIZE,"10"));a.roundrect(0,0,b,c,d);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeMockupMiscRRect.prototype.cst.RRECT,mxShapeMockupMiscRRect);
4680function mxShapeMockupMiscAnchor(a,d,e,b){mxShape.call(this);this.bounds=a}mxUtils.extend(mxShapeMockupMiscAnchor,mxShape);mxShapeMockupMiscAnchor.prototype.cst={ANCHOR:"mxgraph.mockup.misc.anchor"};mxShapeMockupMiscAnchor.prototype.paintVertexShape=function(a,d,e,b,c){};mxCellRenderer.registerShape(mxShapeMockupMiscAnchor.prototype.cst.ANCHOR,mxShapeMockupMiscAnchor);
4681function mxShapeMockupBreadcrumb(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupBreadcrumb,mxShape);mxShapeMockupBreadcrumb.prototype.cst={SHAPE_BREADCRUMB:"mxgraph.mockup.navigation.breadcrumb",MAIN_TEXT:"mainText",TEXT_SIZE:"textSize",TEXT_COLOR:"textColor",TEXT_COLOR2:"textColor2"};
4682mxShapeMockupBreadcrumb.prototype.paintVertexShape=function(a,d,e,b,c){for(var f=mxUtils.getValue(this.style,mxShapeMockupBreadcrumb.prototype.cst.MAIN_TEXT,"Layer 1, Layer 2, Layer 3").toString().split(","),g=mxUtils.getValue(this.style,mxShapeMockupBreadcrumb.prototype.cst.TEXT_COLOR,"#666666"),h=mxUtils.getValue(this.style,mxShapeMockupBreadcrumb.prototype.cst.TEXT_COLOR2,"#008cff"),k=mxUtils.getValue(this.style,mxShapeMockupBreadcrumb.prototype.cst.TEXT_SIZE,"17").toString(),l=mxUtils.getValue(this.style,
4683mxConstants.STYLE_STROKECOLOR,"#c4c4c4"),m=f.length,n=Array(m),p=0,q=0;q<m;q++)n[q]=mxUtils.getSizeForString(f[q],k,mxConstants.DEFAULT_FONTFAMILY).width,p+=n[q];c=Math.max(c,1.5*k,20);p=20*m+p;b=Math.max(b,p);a.translate(d,e);a.setShadow(!1);this.separators(a,b,c,m,n,10,p,l);for(q=d=0;q<m;q++)q+1===m?a.setFontColor(h):a.setFontColor(g),d+=10,this.buttonText(a,d,c,f[q],n[q],k,p,b),d=d+n[q]+10};
4684mxShapeMockupBreadcrumb.prototype.separators=function(a,d,e,b,c,f,g,h){a.setStrokeColor(h);e*=.5;a.begin();for(h=1;h<b;h++){for(var k=0,l=0;l<h;l++)k+=c[l]+2*f;k=k*d/g;a.moveTo(k-2.5,e-5);a.lineTo(k+2.5,e);a.lineTo(k-2.5,e+5)}a.stroke()};mxShapeMockupBreadcrumb.prototype.buttonText=function(a,d,e,b,c,f,g,h){a.begin();a.setFontSize(f);a.text((d+.5*c)*h/g,.5*e,0,0,b,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};
4685mxCellRenderer.registerShape(mxShapeMockupBreadcrumb.prototype.cst.SHAPE_BREADCRUMB,mxShapeMockupBreadcrumb);function mxShapeMockupStepBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupStepBar,mxShape);mxShapeMockupStepBar.prototype.cst={SHAPE_STEP_BAR:"mxgraph.mockup.navigation.stepBar",SELECTED:"+",MAIN_TEXT:"mainText",TEXT_SIZE:"textSize",TEXT_COLOR:"textColor",TEXT_COLOR2:"textColor2"};
4686mxShapeMockupStepBar.prototype.customProperties=[{name:"mainText",dispName:"Text",type:"string"},{name:"textSize",dispName:"Text Size",type:"float"},{name:"textColor",dispName:"Text Color",type:"color"},{name:"textColor2",dispName:"Text2 Color",type:"color"}];
4687mxShapeMockupStepBar.prototype.paintVertexShape=function(a,d,e,b,c){for(var f=mxUtils.getValue(this.style,mxShapeMockupStepBar.prototype.cst.MAIN_TEXT,"Step 1, Step 2, Step 3").toString().split(","),g=mxUtils.getValue(this.style,mxShapeMockupStepBar.prototype.cst.TEXT_COLOR,"#666666"),h=mxUtils.getValue(this.style,mxShapeMockupStepBar.prototype.cst.TEXT_COLOR2,"#008cff"),k=mxUtils.getValue(this.style,mxShapeMockupStepBar.prototype.cst.TEXT_SIZE,"17").toString(),l=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,
4688"#c4c4c4"),m=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#666666"),n=f.length,p=Array(n),q=0,t=-1,u=0;u<n;u++){var v=f[u];v.charAt(0)===mxShapeMockupStepBar.prototype.cst.SELECTED&&(v=f[u].substring(1),t=u);p[u]=mxUtils.getSizeForString(v,k,mxConstants.DEFAULT_FONTFAMILY).width;q+=p[u]}c=Math.max(c,1.5*k,20);q=20*n+q;b=Math.max(b,q);a.translate(d,e);this.stepLineBg(a,b,c,n,p,10,q,l,k,b);a.setShadow(!1);this.stepLineFg(a,b,c,n,p,10,q,l,m,h,k,b,t);for(u=d=0;u<n;u++)u>=t?a.setFontColor(h):
4689a.setFontColor(g),d+=10,this.buttonText(a,d,c,f[u],p[u],k,q,b),d=d+p[u]+10};mxShapeMockupStepBar.prototype.stepLineBg=function(a,d,e,b,c,f,g,h,k,l){a.setStrokeColor(h);a.setFillColor(h);e=2*k;for(l=k=h=0;l<b;l++){for(var m=0,n=0;n<l;n++)m+=c[n]+2*f;m+=.5*c[l]+f;m=m*d/g;0===l?h=m:l+1===b&&(k=m);a.begin();a.ellipse(m-10,e-10,20,20);a.fillAndStroke()}a.begin();a.rect(h,e-2,k-h,4);a.fillAndStroke()};
4690mxShapeMockupStepBar.prototype.stepLineFg=function(a,d,e,b,c,f,g,h,k,l,m,n,p){a.setStrokeColor(k);e=2*m;m=b=0;n=mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,"1");for(var q=0;q<=p;q++){for(var t=0,u=0;u<q;u++)t+=c[u]+2*f;t+=.5*c[q]+f;t=t*d/g;0===q?b=t:q===p&&(m=t)}a.setFillColor(k);a.begin();a.rect(b,e-1.125,m-b,2.25);a.fill();a.setFillColor(h);for(q=0;q<=p;q++){for(u=t=0;u<q;u++)t+=c[u]+2*f;t+=.5*c[q]+f;t=t*d/g;q<p?(a.setStrokeWidth(n),a.begin(),a.ellipse(t-7.5,e-7.5,15,15),a.fillAndStroke(),
4691a.setStrokeWidth(.5*n),a.begin(),a.ellipse(t-4.5,e-4.5,9,9)):(a.setStrokeWidth(n),a.setFillColor(h),a.setStrokeColor(h),a.begin(),a.ellipse(t-10,e-10,20,20),a.fillAndStroke(),a.setStrokeWidth(n),a.setFillColor("#ffffff"),a.setStrokeColor("#ffffff"),a.begin(),a.ellipse(t-7.5,e-7.5,15,15),a.fillAndStroke(),a.setFillColor(l),a.setStrokeColor(l),a.setStrokeWidth(.5*n),a.begin(),a.ellipse(t-5.25,e-5.25,10.5,10.5));a.fillAndStroke()}};
4692mxShapeMockupStepBar.prototype.buttonText=function(a,d,e,b,c,f,g,h){b.charAt(0)===mxShapeMockupStepBar.prototype.cst.SELECTED&&(b=b.substring(1));a.begin();a.setFontSize(f);a.text((d+.5*c)*h/g,.5*f,0,0,b,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape(mxShapeMockupStepBar.prototype.cst.SHAPE_STEP_BAR,mxShapeMockupStepBar);function mxShapeMockupCoverFlow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
4693mxUtils.extend(mxShapeMockupCoverFlow,mxShape);mxShapeMockupCoverFlow.prototype.cst={SHAPE_COVER_FLOW:"mxgraph.mockup.navigation.coverFlow"};
4694mxShapeMockupCoverFlow.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(.0924*b,.07*c);a.lineTo(.005*b,.01*c);a.lineTo(.005*b,.99*c);a.lineTo(.0924*b,.93*c);a.moveTo(.1774*b,.09*c);a.lineTo(.0924*b,.01*c);a.lineTo(.0924*b,.99*c);a.lineTo(.1774*b,.91*c);a.moveTo(.3373*b,.22*c);a.lineTo(.1774*b,.01*c);a.lineTo(.1774*b,.99*c);a.lineTo(.3373*b,.78*c);a.moveTo(.912*b,.07*c);a.lineTo(.998*b,.01*c);a.lineTo(.998*b,.99*c);a.lineTo(.912*b,.93*c);a.moveTo(.8271*b,.09*c);a.lineTo(.912*
4695b,.01*c);a.lineTo(.912*b,.99*c);a.lineTo(.8271*b,.91*c);a.moveTo(.6672*b,.22*c);a.lineTo(.8271*b,.01*c);a.lineTo(.8271*b,.99*c);a.lineTo(.6672*b,.78*c);a.moveTo(.3373*b,.005*c);a.lineTo(.3373*b,.995*c);a.lineTo(.6672*b,.995*c);a.lineTo(.6672*b,.005*c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeMockupCoverFlow.prototype.cst.SHAPE_COVER_FLOW,mxShapeMockupCoverFlow);
4696function mxShapeMockupScrollBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupScrollBar,mxShape);mxShapeMockupScrollBar.prototype.cst={SHAPE_SCROLL_BAR:"mxgraph.mockup.navigation.scrollBar",FILL_COLOR2:"fillColor2",STROKE_COLOR2:"strokeColor2",BAR_POS:"barPos"};
4697mxShapeMockupScrollBar.prototype.customProperties=[{name:"barPos",dispName:"Handle Position",type:"float"},{name:"fillColor2",dispName:"Fill2 Color",type:"color"},{name:"strokeColor2",dispName:"Stroke2 Color",type:"color"}];mxShapeMockupScrollBar.prototype.paintVertexShape=function(a,d,e,b,c){c=20;b=Math.max(b,40);a.translate(d,e);this.background(a,b,c,20);a.setShadow(!1);this.foreground(a,b,c,20);this.barPos=20};
4698mxShapeMockupScrollBar.prototype.background=function(a,d,e,b){a.rect(0,0,d,e);a.fillAndStroke();a.begin();a.moveTo(b,0);a.lineTo(b,e);a.moveTo(d-b,0);a.lineTo(d-b,e);a.stroke()};
4699mxShapeMockupScrollBar.prototype.foreground=function(a,d,e,b){var c=mxUtils.getValue(this.style,mxShapeMockupScrollBar.prototype.cst.BAR_POS,"20"),f=mxUtils.getValue(this.style,mxShapeMockupScrollBar.prototype.cst.FILL_COLOR2,"#99ddff"),g=mxUtils.getValue(this.style,mxShapeMockupScrollBar.prototype.cst.STROKE_COLOR2,"none"),c=Math.max(0,c),c=Math.min(100,c);a.setStrokeColor(g);a.setFillColor(f);a.begin();a.moveTo(.2*b,.5*e);a.lineTo(.8*b,.2*e);a.lineTo(.8*b,.8*e);a.close();a.moveTo(d-.2*b,.5*e);a.lineTo(d-
4700.8*b,.2*e);a.lineTo(d-.8*b,.8*e);a.close();a.fillAndStroke();f=d-b;d=Math.min(60,f-b);a.roundrect(b+(f-d/2-(b+d/2))*c/100,.15*e,d,.7*e,5,5);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeMockupScrollBar.prototype.cst.SHAPE_SCROLL_BAR,mxShapeMockupScrollBar);
4701Graph.handleFactory[mxShapeMockupScrollBar.prototype.cst.SHAPE_SCROLL_BAR]=function(a){return[Graph.createHandle(a,["barPos"],function(a){var d=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"barPos",this.barPos))));return new mxPoint(a.x+(a.width-100)*d/a.width/100*a.width+50,a.y+10)},function(a,e){this.state.style.barPos=Math.round(1E3*Math.max(0,Math.min(100,100*(e.x-a.x-50)/(a.width-100))))/1E3})]};
4702function mxShapeMockupPagination(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupPagination,mxShape);mxShapeMockupPagination.prototype.cst={MAIN_TEXT:"linkText",TEXT_SIZE:"textSize",TEXT_COLOR:"textColor",SHAPE_PAGINATION:"mxgraph.mockup.navigation.pagination"};
4703mxShapeMockupPagination.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxShapeMockupPagination.prototype.cst.MAIN_TEXT,"0-9 A B C D E F G H I J K L M N O P Q R S T U V X Y Z"),g=mxUtils.getValue(this.style,mxShapeMockupPagination.prototype.cst.TEXT_SIZE,"17"),h=mxUtils.getValue(this.style,mxShapeMockupPagination.prototype.cst.TEXT_COLOR,"#0000ff");a.translate(d,e);d=mxUtils.getSizeForString(f,g,mxConstants.DEFAULT_FONTFAMILY).width;a.setStrokeColor(h);a.setFontSize(g);
4704a.setFontColor(h);a.text(.5*b,.5*c,0,0,f,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.begin();a.moveTo(.5*b-.5*d,.5*(c+parseInt(g,10)));a.lineTo(.5*b+.5*d,.5*(c+parseInt(g,10)));a.stroke()};mxCellRenderer.registerShape(mxShapeMockupPagination.prototype.cst.SHAPE_PAGINATION,mxShapeMockupPagination);function mxShapeMockupPageControl(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupPageControl,mxShape);
4705mxShapeMockupPageControl.prototype.cst={SHAPE_PAGE_CONTROL:"mxgraph.mockup.navigation.pageControl"};
4706mxShapeMockupPageControl.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#000000");e=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");var f=Math.min(.5*c,.05*b);a.setFillColor(e);a.ellipse(0,.5*c-f,2*f,2*f);a.fill();a.setFillColor(d);a.ellipse(.35*b-f,.5*c-f,2*f,2*f);a.fill();a.ellipse(.65*b-f,.5*c-f,2*f,2*f);a.fill();a.ellipse(b-2*f,.5*c-f,2*f,2*f);a.fill()};
4707mxCellRenderer.registerShape(mxShapeMockupPageControl.prototype.cst.SHAPE_PAGE_CONTROL,mxShapeMockupPageControl);function mxShapeMockupMapNavigator(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupMapNavigator,mxShape);mxShapeMockupMapNavigator.prototype.cst={SHAPE_MAP_NAVIGATOR:"mxgraph.mockup.navigation.mapNavigator",FILL_COLOR2:"fillColor2",STROKE_COLOR2:"strokeColor2",STROKE_COLOR3:"strokeColor3"};
4708mxShapeMockupMapNavigator.prototype.customProperties=[{name:"fillColor2",dispName:"Fill2 Color",type:"color"},{name:"strokeColor2",dispName:"Stroke2 Color",type:"color"},{name:"strokeColor3",dispName:"Stroke3 Color",type:"color"}];mxShapeMockupMapNavigator.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c)};
4709mxShapeMockupMapNavigator.prototype.background=function(a,d,e){a.ellipse(0,0,d,.6*e);a.fillAndStroke();a.begin();a.moveTo(.35*d,.584*e);a.lineTo(.35*d,.95*e);a.arcTo(.083*d,.05*e,0,0,0,.43*d,e);a.lineTo(.56*d,e);a.arcTo(.083*d,.05*e,0,0,0,.65*d,.95*e);a.lineTo(.65*d,.584*e);a.fillAndStroke()};
4710mxShapeMockupMapNavigator.prototype.foreground=function(a,d,e){var b=mxUtils.getValue(this.style,mxShapeMockupMapNavigator.prototype.cst.FILL_COLOR2,"#99ddff"),c=mxUtils.getValue(this.style,mxShapeMockupMapNavigator.prototype.cst.STROKE_COLOR2,"none"),f=mxUtils.getValue(this.style,mxShapeMockupMapNavigator.prototype.cst.STROKE_COLOR3,"#ffffff");a.setFillColor(b);a.setStrokeColor(c);a.ellipse(.4*d,.65*e,.2*d,.12*e);a.fillAndStroke();a.ellipse(.4*d,.85*e,.2*d,.12*e);a.fillAndStroke();a.begin();a.moveTo(.1806*
4711d,.34*e);a.lineTo(.1357*d,.366*e);a.lineTo(.0228*d,.3*e);a.lineTo(.1357*d,.234*e);a.lineTo(.1806*d,.26*e);a.lineTo(.1142*d,.3*e);a.close();a.fillAndStroke();a.begin();a.moveTo(.433*d,.108*e);a.lineTo(.3881*d,.08*e);a.lineTo(.4994*d,.012*e);a.lineTo(.6123*d,.08*e);a.lineTo(.5658*d,.108*e);a.lineTo(.4994*d,.068*e);a.close();a.fillAndStroke();a.begin();a.moveTo(.8198*d,.262*e);a.lineTo(.868*d,.233*e);a.lineTo(.9776*d,.3*e);a.lineTo(.868*d,.367*e);a.lineTo(.8198*d,.341*e);a.lineTo(.8863*d,.3*e);a.close();
4712a.fillAndStroke();a.begin();a.moveTo(.5641*d,.493*e);a.lineTo(.6123*d,.522*e);a.lineTo(.4994*d,.588*e);a.lineTo(.3881*d,.521*e);a.lineTo(.4363*d,.493*e);a.lineTo(.4994*d,.533*e);a.close();a.fillAndStroke();a.begin();a.moveTo(.3333*d,.32*e);a.lineTo(.3333*d,.28*e);a.lineTo(.4163*d,.3*e);a.close();a.moveTo(.4662*d,.2*e);a.lineTo(.5326*d,.2*e);a.lineTo(.4994*d,.25*e);a.close();a.moveTo(.6654*d,.28*e);a.lineTo(.6654*d,.32*e);a.lineTo(.5824*d,.3*e);a.close();a.moveTo(.5326*d,.4*e);a.lineTo(.4662*d,.4*
4713e);a.lineTo(.4994*d,.35*e);a.close();a.fillAndStroke();a.setStrokeWidth(2);a.setStrokeColor(f);a.begin();a.moveTo(.5*d,.67*e);a.lineTo(.5*d,.75*e);a.moveTo(.43*d,.71*e);a.lineTo(.57*d,.71*e);a.moveTo(.43*d,.91*e);a.lineTo(.57*d,.91*e);a.stroke()};mxCellRenderer.registerShape(mxShapeMockupMapNavigator.prototype.cst.SHAPE_MAP_NAVIGATOR,mxShapeMockupMapNavigator);function mxShapeMockupNavigationAnchor(a,d,e,b){mxShape.call(this);this.bounds=a}mxUtils.extend(mxShapeMockupNavigationAnchor,mxShape);
4714mxShapeMockupNavigationAnchor.prototype.cst={ANCHOR:"mxgraph.mockup.navigation.anchor"};mxShapeMockupNavigationAnchor.prototype.paintVertexShape=function(a,d,e,b,c){};mxCellRenderer.registerShape(mxShapeMockupNavigationAnchor.prototype.cst.ANCHOR,mxShapeMockupNavigationAnchor);function mxShapeMockupLink(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupLink,mxShape);
4715mxShapeMockupLink.prototype.cst={LINK_TEXT:"linkText",TEXT_SIZE:"textSize",TEXT_COLOR:"textColor",SHAPE_LINK:"mxgraph.mockup.text.link"};
4716mxShapeMockupLink.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxShapeMockupLink.prototype.cst.LINK_TEXT,"Link"),g=mxUtils.getValue(this.style,mxShapeMockupLink.prototype.cst.TEXT_SIZE,"17"),h=mxUtils.getValue(this.style,mxShapeMockupLink.prototype.cst.TEXT_COLOR,"#0000ff");a.translate(d,e);d=mxUtils.getSizeForString(f,g,mxConstants.DEFAULT_FONTFAMILY).width;a.setStrokeColor(h);a.setFontSize(g);a.setFontColor(h);a.text(.5*b,.5*c,0,0,f,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,
47170,null,0,0,0);a.begin();a.moveTo(.5*b-.5*d,.5*(c+parseInt(g,10)));a.lineTo(.5*b+.5*d,.5*(c+parseInt(g,10)));a.stroke()};mxCellRenderer.registerShape(mxShapeMockupLink.prototype.cst.SHAPE_LINK,mxShapeMockupLink);function mxShapeMockupLinkBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupLinkBar,mxShape);
4718mxShapeMockupLinkBar.prototype.cst={MAIN_TEXT:"mainText",SHAPE_LINK_BAR:"mxgraph.mockup.text.linkBar",TEXT_COLOR:"textColor",TEXT_COLOR2:"textColor2",STROKE_COLOR2:"strokeColor2",FILL_COLOR2:"fillColor2",SELECTED:"+",TEXT_SIZE:"textSize"};
4719mxShapeMockupLinkBar.prototype.paintVertexShape=function(a,d,e,b,c){for(var f=mxUtils.getValue(this.style,mxShapeMockupLinkBar.prototype.cst.MAIN_TEXT,"+Button 1, Button 2, Button 3").toString().split(","),g=mxUtils.getValue(this.style,mxShapeMockupLinkBar.prototype.cst.TEXT_COLOR,"#666666"),h=mxUtils.getValue(this.style,mxShapeMockupLinkBar.prototype.cst.TEXT_COLOR2,"#ffffff"),k=mxUtils.getValue(this.style,mxShapeMockupLinkBar.prototype.cst.TEXT_SIZE,"17").toString(),l=mxUtils.getValue(this.style,
4720mxConstants.STYLE_STROKECOLOR,"#666666"),m=mxUtils.getValue(this.style,mxShapeMockupLinkBar.prototype.cst.STROKE_COLOR2,"#c4c4c4"),n=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),p=mxUtils.getValue(this.style,mxShapeMockupLinkBar.prototype.cst.FILL_COLOR2,"#008cff"),q=f.length,t=Array(q),u=0,v=-1,r=0;r<q;r++){var w=f[r];w.charAt(0)===mxShapeMockupLinkBar.prototype.cst.SELECTED&&(w=f[r].substring(1),v=r);w=mxUtils.getSizeForString(w,k,mxConstants.DEFAULT_FONTFAMILY).width;t[r]=
47210===w?42:w;u+=t[r]}c=Math.max(c,1.5*k,20);u=10*q+u;b=Math.max(b,u);a.translate(d,e);this.background(a,b,c,10,q,t,5,u,l,m,n,p,v);a.setShadow(!1);for(r=d=0;r<q;r++)r===v?(a.setFontColor(h),a.setStrokeColor(h)):(a.setFontColor(g),a.setStrokeColor(g)),d+=5,this.buttonText(a,d,c,f[r],t[r],k,u,b),d=d+t[r]+5};
4722mxShapeMockupLinkBar.prototype.background=function(a,d,e,b,c,f,g,h,k,l,m,n,p){a.begin();a.setStrokeColor(k);a.setFillColor(m);a.rect(0,0,d,e);a.fillAndStroke();a.setStrokeColor(l);a.begin();for(b=1;b<c;b++)if(b!==p&&b!==p+1){for(var q=l=0;q<b;q++)l+=f[q]+2*g;l=l*d/h;a.moveTo(l,0);a.lineTo(l,e)}a.stroke();l=0;a.setFillColor(n);for(b=0;b<p;b++)l+=f[b]+2*g;l=l*d/h;f=(f[p]+2*g)*d/h;f+=l;0===p?(a.rect(0,0,f,e),a.fill()):p===c-1?(a.rect(l,0,f-l,e),a.fill()):-1!==p&&(a.rect(l,0,f-l,e),a.fill());a.setStrokeColor(k);
4723a.setFillColor(m);a.rect(0,0,d,e);a.stroke()};mxShapeMockupLinkBar.prototype.buttonText=function(a,d,e,b,c,f,g,h){b.charAt(0)===mxShapeMockupLinkBar.prototype.cst.SELECTED&&(b=b.substring(1));a.begin();a.setFontSize(f);a.text((d+.5*c)*h/g,.5*e,0,0,b,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);var k=.5*mxUtils.getSizeForString(b,f,mxConstants.DEFAULT_FONTFAMILY).width;null!==b&&""!==b&&(a.begin(),a.moveTo((d+.5*c)*h/g-k,.5*e+.5*f),a.lineTo((d+.5*c)*h/g+k,.5*e+.5*f),a.stroke())};
4724mxCellRenderer.registerShape(mxShapeMockupLinkBar.prototype.cst.SHAPE_LINK_BAR,mxShapeMockupLinkBar);function mxShapeMockupCallout(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupCallout,mxShape);
4725mxShapeMockupCallout.prototype.cst={CALLOUT_TEXT:"linkText",CALLOUT_DIR:"callDir",CALLOUT_STYLE:"callStyle",STYLE_LINE:"line",STYLE_RECT:"rect",STYLE_ROUNDRECT:"roundRect",DIR_NW:"NW",DIR_NE:"NE",DIR_SE:"SE",DIR_SW:"SW",TEXT_SIZE:"textSize",TEXT_COLOR:"textColor",SHAPE_CALLOUT:"mxgraph.mockup.text.callout"};
4726mxShapeMockupCallout.prototype.customProperties=[{name:"callDir",dispName:"Direction",type:"enum",enumList:[{val:"NW",dispName:"North-West"},{val:"NE",dispName:"North-East"},{val:"SE",dispName:"South-East"},{val:"SW",dispName:"South-West"}]},{name:"callStyle",dispName:"Style",type:"enum",enumList:[{val:"line",dispName:"Line"},{val:"rect",dispName:"Rectangle"}]}];
4727mxShapeMockupCallout.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxShapeMockupCallout.prototype.cst.CALLOUT_TEXT,"Callout"),g=mxUtils.getValue(this.style,mxShapeMockupCallout.prototype.cst.TEXT_SIZE,"17"),h=mxUtils.getValue(this.style,mxShapeMockupCallout.prototype.cst.TEXT_COLOR,"#666666"),k=mxUtils.getValue(this.style,mxShapeMockupCallout.prototype.cst.CALLOUT_STYLE,mxShapeMockupCallout.prototype.cst.STYLE_LINE),l=mxUtils.getValue(this.style,mxShapeMockupCallout.prototype.cst.CALLOUT_DIR,
4728mxShapeMockupCallout.prototype.cst.DIR_NW),m=mxUtils.getSizeForString(f,g,mxConstants.DEFAULT_FONTFAMILY).width,m=1.2*m;0==m&&(m=70);a.translate(d,e);a.setFontSize(g);a.setFontColor(h);d=1.5*g;l===mxShapeMockupCallout.prototype.cst.DIR_NW?(k===mxShapeMockupCallout.prototype.cst.STYLE_LINE?(a.begin(),a.moveTo(0,d),a.lineTo(m,d),a.lineTo(b,c),a.stroke()):k===mxShapeMockupCallout.prototype.cst.STYLE_RECT?(a.rect(0,0,m,d),a.fillAndStroke(),a.begin(),a.moveTo(.5*m,d),a.lineTo(b,c),a.stroke()):k===mxShapeMockupCallout.prototype.cst.STYLE_ROUNDRECT&&
4729(a.roundrect(0,0,m,d,.25*d,.25*d),a.fillAndStroke(),a.begin(),a.moveTo(.5*m,d),a.lineTo(b,c),a.stroke()),a.text(.5*m,.5*d,0,0,f,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)):l===mxShapeMockupCallout.prototype.cst.DIR_NE?(k===mxShapeMockupCallout.prototype.cst.STYLE_LINE?(a.begin(),a.moveTo(b,d),a.lineTo(b-m,d),a.lineTo(0,c),a.stroke()):k===mxShapeMockupCallout.prototype.cst.STYLE_RECT?(a.rect(b-m,0,m,d),a.fillAndStroke(),a.begin(),a.moveTo(b-.5*m,d),a.lineTo(0,c),a.stroke()):k===
4730mxShapeMockupCallout.prototype.cst.STYLE_ROUNDRECT&&(a.roundrect(b-m,0,m,d,.25*d,.25*d),a.fillAndStroke(),a.begin(),a.moveTo(b-.5*m,d),a.lineTo(0,c),a.stroke()),a.text(b-.5*m,.5*d,0,0,f,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)):l===mxShapeMockupCallout.prototype.cst.DIR_SE?(k===mxShapeMockupCallout.prototype.cst.STYLE_LINE?(a.begin(),a.moveTo(b,c),a.lineTo(b-m,c),a.lineTo(0,0),a.stroke()):k===mxShapeMockupCallout.prototype.cst.STYLE_RECT?(a.rect(b-m,c-d,m,d),a.fillAndStroke(),
4731a.begin(),a.moveTo(b-.5*m,c-d),a.lineTo(0,0),a.stroke()):k===mxShapeMockupCallout.prototype.cst.STYLE_ROUNDRECT&&(a.roundrect(b-m,c-d,m,d,.25*d,.25*d),a.fillAndStroke(),a.begin(),a.moveTo(b-.5*m,c-d),a.lineTo(0,0),a.stroke()),a.text(b-.5*m,c-.5*d,0,0,f,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)):l===mxShapeMockupCallout.prototype.cst.DIR_SW&&(k===mxShapeMockupCallout.prototype.cst.STYLE_LINE?(a.begin(),a.moveTo(0,c),a.lineTo(m,c),a.lineTo(b,0),a.stroke()):k===mxShapeMockupCallout.prototype.cst.STYLE_RECT?
4732(a.rect(0,c-d,m,d),a.fillAndStroke(),a.begin(),a.moveTo(.5*m,c-d),a.lineTo(b,0),a.stroke()):k===mxShapeMockupCallout.prototype.cst.STYLE_ROUNDRECT&&(a.roundrect(0,c-d,m,d,.25*d,.25*d),a.fillAndStroke(),a.begin(),a.moveTo(.5*m,c-d),a.lineTo(b,0),a.stroke()),a.text(.5*m,c-.5*d,0,0,f,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0))};mxCellRenderer.registerShape(mxShapeMockupCallout.prototype.cst.SHAPE_CALLOUT,mxShapeMockupCallout);
4733function mxShapeMockupStickyNote(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupStickyNote,mxShape);mxShapeMockupStickyNote.prototype.cst={MAIN_TEXT:"mainText",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize",SHAPE_STICKY_NOTE:"mxgraph.mockup.text.stickyNote"};mxShapeMockupStickyNote.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c)};
4734mxShapeMockupStickyNote.prototype.background=function(a,d,e){a.setFillColor("#ffffcc");a.begin();a.moveTo(.03*d,.07*e);a.lineTo(.89*d,.06*e);a.arcTo(2.81*d,2.92*e,1,0,0,.99*d,.98*e);a.lineTo(.09*d,.99*e);a.arcTo(2.81*d,2.92*e,1,0,1,.03*d,.07*e);a.close();a.fill()};
4735mxShapeMockupStickyNote.prototype.foreground=function(a,d,e){var b=mxUtils.getValue(this.style,mxShapeMockupStickyNote.prototype.cst.MAIN_TEXT,"Note line 1,Note line 2,Note line 3").toString().split(","),c=mxUtils.getValue(this.style,mxShapeMockupStickyNote.prototype.cst.TEXT_COLOR,"#666666").toString(),f=mxUtils.getValue(this.style,mxShapeMockupStickyNote.prototype.cst.TEXT_SIZE,"17").toString();a.setFillColor("#ff3300");a.begin();a.moveTo(.28*d,0);a.lineTo(.59*d,0);a.lineTo(.6*d,.12*e);a.lineTo(.28*
4736d,.13*e);a.close();a.fill();a.setFontSize(f);a.setFontColor(c);for(var c=b.length*f*1.5,g=0;g<b.length;g++)a.text(d/2,(e-c)/2+g*f*1.5+.75*f,0,0,b[g],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape(mxShapeMockupStickyNote.prototype.cst.SHAPE_STICKY_NOTE,mxShapeMockupStickyNote);function mxShapeMockupStickyNote2(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupStickyNote2,mxShape);
4737mxShapeMockupStickyNote2.prototype.cst={SHAPE_STICKY_NOTE:"mxgraph.mockup.text.stickyNote2"};mxShapeMockupStickyNote2.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c)};mxShapeMockupStickyNote2.prototype.background=function(a,d,e){a.begin();a.moveTo(.03*d,.07*e);a.lineTo(.89*d,.06*e);a.arcTo(2.81*d,2.92*e,1,0,0,.99*d,.98*e);a.lineTo(.09*d,.99*e);a.arcTo(2.81*d,2.92*e,1,0,1,.03*d,.07*e);a.close();a.fill()};
4738mxShapeMockupStickyNote2.prototype.foreground=function(a,d,e){var b=mxUtils.getValue(this.style,"strokeColor","#000000");a.setFillColor(b);a.begin();a.moveTo(.28*d,0);a.lineTo(.59*d,0);a.lineTo(.6*d,.12*e);a.lineTo(.28*d,.13*e);a.close();a.fill()};mxCellRenderer.registerShape(mxShapeMockupStickyNote2.prototype.cst.SHAPE_STICKY_NOTE,mxShapeMockupStickyNote2);function mxShapeMockupBulletedList(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
4739mxUtils.extend(mxShapeMockupBulletedList,mxShape);mxShapeMockupBulletedList.prototype.cst={MAIN_TEXT:"mainText",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize",BULLET_STYLE:"bulletStyle",STYLE_HYPHEN:"hyphen",STYLE_NUM:"number",STYLE_DOT:"dot",SHAPE_BULLETED_LIST:"mxgraph.mockup.text.bulletedList"};mxShapeMockupBulletedList.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c)};
4740mxShapeMockupBulletedList.prototype.background=function(a,d,e){a.rect(0,0,d,e);a.fillAndStroke()};
4741mxShapeMockupBulletedList.prototype.foreground=function(a,d,e){d=mxUtils.getValue(this.style,mxShapeMockupBulletedList.prototype.cst.MAIN_TEXT,"Note line 1,Note line 2,Note line 3").toString().split(",");var b=mxUtils.getValue(this.style,mxShapeMockupBulletedList.prototype.cst.TEXT_COLOR,"#666666");e=mxUtils.getValue(this.style,mxShapeMockupBulletedList.prototype.cst.TEXT_SIZE,"17");var c=mxUtils.getValue(this.style,mxShapeMockupBulletedList.prototype.cst.BULLET_STYLE,"none");a.setFontColor(b);a.setFontSize(e);
4742for(b=0;b<d.length;b++){var f;f=c===mxShapeMockupBulletedList.prototype.cst.STYLE_NUM?b+1+") "+d[b]:c===mxShapeMockupBulletedList.prototype.cst.STYLE_HYPHEN?"- "+d[b]:c===mxShapeMockupBulletedList.prototype.cst.STYLE_DOT?String.fromCharCode(8226)+" "+d[b]:"  "+d[b];a.text(10,b*e*1.5+.75*e,0,0,f,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)}};mxCellRenderer.registerShape(mxShapeMockupBulletedList.prototype.cst.SHAPE_BULLETED_LIST,mxShapeMockupBulletedList);
4743function mxShapeMockupTextBox(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupTextBox,mxShape);mxShapeMockupTextBox.prototype.cst={MAIN_TEXT:"mainText",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize",SHAPE_TEXT_BOX:"mxgraph.mockup.text.textBox"};mxShapeMockupTextBox.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c)};
4744mxShapeMockupTextBox.prototype.background=function(a,d,e){a.rect(0,0,d,e);a.fillAndStroke()};
4745mxShapeMockupTextBox.prototype.foreground=function(a,d,e){d=mxUtils.getValue(this.style,mxShapeMockupTextBox.prototype.cst.MAIN_TEXT,"Note line 1").toString().split(",");var b=mxUtils.getValue(this.style,mxShapeMockupTextBox.prototype.cst.TEXT_COLOR,"#666666");e=mxUtils.getValue(this.style,mxShapeMockupTextBox.prototype.cst.TEXT_SIZE,"17");a.setFontColor(b);a.setFontSize(e);for(b=0;b<d.length;b++)a.text(5,b*e*1.5+.75*e,0,0,d[b],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};
4746mxCellRenderer.registerShape(mxShapeMockupTextBox.prototype.cst.SHAPE_TEXT_BOX,mxShapeMockupTextBox);function mxShapeMockupCaptcha(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupCaptcha,mxShape);mxShapeMockupCaptcha.prototype.cst={MAIN_TEXT:"mainText",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize",SHAPE_CAPTCHA:"mxgraph.mockup.text.captcha"};
4747mxShapeMockupCaptcha.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c)};mxShapeMockupCaptcha.prototype.background=function(a,d,e){a.rect(0,0,d,e);a.fillAndStroke()};
4748mxShapeMockupCaptcha.prototype.foreground=function(a,d,e){var b=mxUtils.getValue(this.style,mxShapeMockupCaptcha.prototype.cst.MAIN_TEXT,"Note line 1"),c=mxUtils.getValue(this.style,mxShapeMockupCaptcha.prototype.cst.TEXT_COLOR,"#666666"),f=mxUtils.getValue(this.style,mxShapeMockupCaptcha.prototype.cst.TEXT_SIZE,"25");a.setFillColor("#88aaff");a.begin();a.moveTo(0,0);a.lineTo(.35*d,0);a.lineTo(.55*d,.85*e);a.lineTo(.4*d,.75*e);a.close();a.fill();a.begin();a.moveTo(.7*d,.1*e);a.lineTo(.95*d,.23*e);
4749a.lineTo(d,.4*e);a.lineTo(d,.9*e);a.lineTo(d,e);a.lineTo(.8*d,e);a.close();a.fill();a.setFontColor(c);a.setFontSize(f);a.text(.5*d,.5*e,0,0,b,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.rect(0,0,d,e);a.stroke()};mxCellRenderer.registerShape(mxShapeMockupCaptcha.prototype.cst.SHAPE_CAPTCHA,mxShapeMockupCaptcha);function mxShapeMockupAlphanumeric(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
4750mxUtils.extend(mxShapeMockupAlphanumeric,mxShape);mxShapeMockupAlphanumeric.prototype.cst={MAIN_TEXT:"linkText",TEXT_SIZE:"textSize",TEXT_COLOR:"textColor",SHAPE_ALPHANUMERIC:"mxgraph.mockup.text.alphanumeric"};
4751mxShapeMockupAlphanumeric.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxShapeMockupAlphanumeric.prototype.cst.MAIN_TEXT,"0-9 A B C D E F G H I J K L M N O P Q R S T U V X Y Z"),g=mxUtils.getValue(this.style,mxShapeMockupAlphanumeric.prototype.cst.TEXT_SIZE,"17"),h=mxUtils.getValue(this.style,mxShapeMockupAlphanumeric.prototype.cst.TEXT_COLOR,"#0000ff");a.translate(d,e);d=mxUtils.getSizeForString(f,g,mxConstants.DEFAULT_FONTFAMILY).width;a.setStrokeColor(h);a.setFontSize(g);
4752a.setFontColor(h);a.text(.5*b,.5*c,0,0,f,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.begin();a.moveTo(.5*b-.5*d,.5*(c+parseInt(g,10)));a.lineTo(.5*b+.5*d,.5*(c+parseInt(g,10)));a.stroke()};mxCellRenderer.registerShape(mxShapeMockupAlphanumeric.prototype.cst.SHAPE_ALPHANUMERIC,mxShapeMockupAlphanumeric);function mxShapeMockupTextRRect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupTextRRect,mxShape);
4753mxShapeMockupTextRRect.prototype.cst={RRECT:"mxgraph.mockup.text.rrect",R_SIZE:"rSize"};mxShapeMockupTextRRect.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeMockupTextRRect.prototype.cst.R_SIZE,"10"));a.roundrect(0,0,b,c,d);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeMockupTextRRect.prototype.cst.RRECT,mxShapeMockupTextRRect);
4754var mxMockupC={BAR_HEIGHT:"barHeight",BAR_POS:"barPos",BG_STYLE:"bgStyle",BG_FLAT_GREEN:"bgGreen",BG_FLAT_WHITE:"bgWhite",BG_FLAT_GRAY:"bgGray",BG_FLAT_CUSTOM:"bgFlat",BG_MAP:"bgMap",BG_STRIPED:"bgStriped",BUTTON_STYLE:"buttonStyle",BUTTON_TEXT:"buttonText",BUTTON_STATE:"buttonState",CHEVRON:"chevron",GRID_SIZE:"gridSize",POINTER_BOTTOM:"bottom",POINTER_POS:"pointerPos",POINTER_TOP:"top",ROUND:"round",SELECTED:"+",STATE_ON:"on",STATE_OFF:"off",SUB_TEXT:"subText",SHAPE_IADD_ICON:"mxgraph.ios.iAddIcon",
4755SHAPE_IALERT_BOX:"mxgraph.ios.iAlertBox",SHAPE_IALPHA_LIST:"mxgraph.ios.iAlphaList",SHAPE_IAPP_BAR:"mxgraph.ios.iAppBar",SHAPE_IARROW_ICON:"mxgraph.ios.iArrowIcon",SHAPE_IBG_FLAT:"mxgraph.ios.iBgFlat",SHAPE_IBG_MAP:"mxgraph.ios.iBgMap",SHAPE_IBG_STRIPED:"mxgraph.ios.iBgStriped",SHAPE_IBUTTON:"mxgraph.ios.iButton",SHAPE_IBUTTON_BACK:"mxgraph.ios.iButtonBack",SHAPE_IBUTTON_FORWARD:"mxgraph.ios.iButtonFw",SHAPE_IBUTTON_BAR:"mxgraph.ios.iButtonBar",SHAPE_ICALL_BUTTONS:"mxgraph.ios.iCallButtons",SHAPE_ICALL_DIALOG:"mxgraph.ios.iCallDialog",
4756SHAPE_ICHECKBOX_GROUP:"mxgraph.ios.iCheckboxGroup",SHAPE_ICHECK_ICON:"mxgraph.ios.iCheckIcon",SHAPE_ICLOUD_PROGRESS_BAR:"mxgraph.ios.iCloudProgressBar",SHAPE_ICOMBO_BOX:"mxgraph.ios.iComboBox",SHAPE_ICOPY:"mxgraph.ios.iCopy",SHAPE_ICOPY_AREA:"mxgraph.ios.iCopyArea",SHAPE_IICON_GRID:"mxgraph.ios.iIconGrid",SHAPE_IDELETE_APP:"mxgraph.ios.iDeleteApp",SHAPE_IDELETE_ICON:"mxgraph.ios.iDeleteIcon",SHAPE_IDOWNLOAD_BAR:"mxgraph.ios.iDownloadBar",SHAPE_IDIALOG_BOX:"mxgraph.ios.iDialogBox",SHAPE_IDIRECTION:"mxgraph.ios.iDir",
4757SHAPE_IHOME_PAGE_CONTROL:"mxgraph.ios.iHomePageControl",SHAPE_IKEYB_LETTERS:"mxgraph.ios.iKeybLett",SHAPE_IKEYB_NUMBERS:"mxgraph.ios.iKeybNumb",SHAPE_IKEYB_SYMBOLS:"mxgraph.ios.iKeybSymb",SHAPE_ILOCATION_BAR:"mxgraph.ios.iLocBar",SHAPE_ILOCK_BUTTON:"mxgraph.ios.iLockButton",SHAPE_IHOR_BUTTON_BAR:"mxgraph.ios.iHorButtonBar",SHAPE_IINFO_ICON:"mxgraph.ios.iInfoIcon",SHAPE_ION_OFF_BUTTON:"mxgraph.ios.iOnOffButton",SHAPE_IOPTION:"mxgraph.ios.iOption",SHAPE_IPAGE_CONTROL:"mxgraph.ios.iPageControl",SHAPE_IPAD:"mxgraph.ios.iPad",
4758SHAPE_IPHONE:"mxgraph.ios.iPhone",SHAPE_IPIN:"mxgraph.ios.iPin",SHAPE_IPREV_NEXT:"mxgraph.ios.iPrevNext",SHAPE_IPROGRESS_BAR:"mxgraph.ios.iProgressBar",SHAPE_IRADIO_GROUP:"mxgraph.ios.iRadioGroup",SHAPE_ISLIDER:"mxgraph.ios.iSlider",SHAPE_ISORT_FIND_ICON:"mxgraph.ios.iSortFindIcon",SHAPE_ITEXT_INPUT:"mxgraph.ios.iTextInput",SHAPE_ITOP_BAR:"mxgraph.ios.iTopBar",SHAPE_ITOP_BAR_LOCKED:"mxgraph.ios.iTopBarLocked",SHAPE_IURL_BAR:"mxgraph.ios.iURLBar",SHAPE_IVIDEO_CONTROLS:"mxgraph.ios.iVideoControls",
4759SHAPE_ISCREEN_NAME_BAR:"mxgraph.ios.iScreenNameBar",STYLE_FILLCOLOR2:"fillColor2",STYLE_FILLCOLOR3:"fillColor3",STYLE_TEXTCOLOR:"textColor",STYLE_TEXTCOLOR2:"textColor2",STYLE_STROKECOLOR2:"strokeColor2",STYLE_STROKECOLOR3:"strokeColor3"};function mxShapeMockupiPhone(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiPhone,mxShape);
4760mxShapeMockupiPhone.prototype.customProperties=[{name:"bgStyle",dispName:"Background",type:"enum",enumList:[{val:"bgGreen",dispName:"Green"},{val:"bgWhite",dispName:"White"},{val:"bgGray",dispName:"Gray"},{val:"bgFlat",dispName:"Flat"},{val:"bgMap",dispName:"Map"},{val:"bgStriped",dispName:"Striped"}]}];mxShapeMockupiPhone.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c,25);a.setShadow(!1);this.foreground(a,d,e,b,c,25)};
4761mxShapeMockupiPhone.prototype.background=function(a,d,e,b,c,f){a.setFillColor("#000000");a.setStrokeColor("#000000");a.roundrect(0,0,b,c,f,f);a.fillAndStroke()};
4762mxShapeMockupiPhone.prototype.foreground=function(a,d,e,b,c,f){a.setStrokeWidth(1.5);a.begin();a.setGradient("#808080","#000000",.325*b,0,.675*b,.5*c,mxConstants.DIRECTION_SOUTH,1,1);a.moveTo(.325*b,0);a.lineTo(b-f,0);a.arcTo(f,f,0,0,1,b,f);a.lineTo(b,.5*c);a.lineTo(.7*b,.5*c);a.close();a.fill();d=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"");e=mxUtils.getValue(this.style,mxMockupC.BG_STYLE,mxMockupC.BG_FLAT_GREEN);a.setStrokeWidth(1);if(e===mxMockupC.BG_FLAT_WHITE)a.setFillColor("#ffffff"),
4763a.rect(.0625*b,.15*c,.875*b,.7*c),a.fill();else if(e===mxMockupC.BG_FLAT_GREEN)a.setFillColor("#1f2923"),a.rect(.0625*b,.15*c,.875*b,.7*c),a.fill();else if(e===mxMockupC.BG_FLAT_GRAY)a.setFillColor("#dddddd"),a.rect(.0625*b,.15*c,.875*b,.7*c),a.fill();else if(e===mxMockupC.BG_FLAT_CUSTOM)a.setFillColor(d),a.rect(.0625*b,.15*c,.875*b,.7*c),a.fill();else if(e===mxMockupC.BG_STRIPED){d=b;e=c;a.translate(.0625*b,.15*c);b*=.875;c*=.7;a.setFillColor("#5D7585");a.rect(0,0,b,c);a.fillAndStroke();a.setStrokeColor("#657E8F");
4764var g=5;for(a.begin();g<b;)a.moveTo(g,0),a.lineTo(g,c),g+=5;a.stroke();a.setStrokeColor("#18211b");a.begin();a.rect(0,0,b,c);a.stroke();b=d;c=e;a.translate(.0625*-b,.15*-c)}else e===mxMockupC.BG_MAP&&(d=b,e=c,a.translate(.0625*b,.15*c),b*=.875,c*=.7,a.setFillColor("#ffffff"),a.rect(0,0,b,c),a.fillAndStroke(),a.setFillColor("#96D1FF"),a.setStrokeColor("#008cff"),a.setStrokeWidth(1),a.begin(),a.moveTo(0,0),a.lineTo(.1171*b,0),a.lineTo(.1136*b,.0438*c),a.lineTo(.0993*b,.054*c),a.lineTo(0,.0446*c),a.close(),
4765a.fillAndStroke(),a.begin(),a.moveTo(.1993*b,0),a.lineTo(.1914*b,.03884*c),a.lineTo(.1536*b,.0362*c),a.lineTo(.1586*b,0),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.24*b,0),a.lineTo(.2257*b,.054*c),a.lineTo(.2414*b,.0674*c),a.lineTo(.4707*b,.0835*c),a.lineTo(.5264*b,.0906*c),a.lineTo(.6429*b,.0929*c),a.arcTo(.0857*b,.0536*c,0,0,0,.7193*b,.0621*c),a.arcTo(.48*b,.2143*c,0,0,0,.7286*b,0),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.8*b,0),a.lineTo(.7886*b,.04554*c),a.arcTo(.0857*b,.0536*c,0,0,
47660,.8164*b,.0875*c),a.arcTo(.1429*b,.0893*c,0,0,0,.88*b,.1036*c),a.lineTo(b,.1112*c),a.lineTo(b,0),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(0,.0933*c),a.lineTo(.08*b,.1036*c),a.lineTo(.1021*b,.1246*c),a.lineTo(.1007*b,.1768*c),a.lineTo(.0471*b,.2241*c),a.lineTo(0,.2527*c),a.close(),a.fillAndStroke(),a.ellipse(.1214*b,.0603*c,.0843*b,.0576*c),a.fillAndStroke(),a.begin(),a.moveTo(.1293*b,.1924*c),a.lineTo(.1729*b,.142*c),a.lineTo(.1407*b,.1411*c),a.lineTo(.14*b,.1777*c),a.close(),a.fillAndStroke(),
4767a.begin(),a.moveTo(.4586*b,.1241*c),a.lineTo(.455*b,.1835*c),a.lineTo(.3893*b,.2246*c),a.lineTo(.2171*b,.1362*c),a.lineTo(.2171*b,.1308*c),a.lineTo(.2293*b,.1214*c),a.lineTo(.2857*b,.1174*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.5079*b,.1134*c),a.lineTo(.7307*b,.1223*c),a.lineTo(.7279*b,.1625*c),a.lineTo(.715*b,.1772*c),a.lineTo(.6929*b,.1688*c),a.lineTo(.625*b,.1795*c),a.lineTo(.4779*b,.2835*c),a.lineTo(.395*b,.2299*c),a.lineTo(.4657*b,.1826*c),a.lineTo(.4707*b,.1223*c),a.close(),a.fillAndStroke(),
4768a.begin(),a.moveTo(b,.1362*c),a.lineTo(.7643*b,.1237*c),a.lineTo(.7543*b,.1562*c),a.lineTo(.7643*b,.1585*c),a.lineTo(.9186*b,.2366*c),a.lineTo(b,.1732*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.2079*b,.1545*c),a.lineTo(.3886*b,.2536*c),a.lineTo(.3414*b,.2933*c),a.lineTo(.1743*b,.1969*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.1579*b,.2134*c),a.lineTo(.3221*b,.3067*c),a.lineTo(.2957*b,.3237*c),a.lineTo(.1157*b,.2424*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.405*b,.2656*c),
4769a.lineTo(.31*b,.3353*c),a.lineTo(.3693*b,.3661*c),a.lineTo(.4571*b,.2982*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.7121*b,.1848*c),a.lineTo(.6879*b,.1754*c),a.lineTo(.6329*b,.1844*c),a.lineTo(.61*b,.2018*c),a.lineTo(.6207*b,.2085*c),a.lineTo(.4986*b,.2982*c),a.lineTo(.535*b,.3237*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.5557*b,.3379*c),a.lineTo(.7464*b,.1826*c),a.lineTo(.8036*b,.2076*c),a.lineTo(.595*b,.3616*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.8293*b,.2188*c),a.lineTo(.8979*
4770b,.2509*c),a.lineTo(.6936*b,.4125*c),a.lineTo(.6171*b,.3737*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(b,.2138*c),a.lineTo(.6821*b,.4603*c),a.lineTo(.815*b,.5277*c),a.lineTo(b,.4*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(0,.317*c),a.lineTo(.0971*b,.2554*c),a.lineTo(.4121*b,.4143*c),a.lineTo(.3736*b,.4415*c),a.lineTo(.315*b,.4076*c),a.lineTo(.3093*b,.4116*c),a.lineTo(.3686*b,.4455*c),a.lineTo(.285*b,.5045*c),a.lineTo(.1114*b,.4134*c),a.lineTo(.025*b,.4603*c),a.lineTo(.0371*b,.4723*c),
4771a.lineTo(.1114*b,.4371*c),a.lineTo(.2871*b,.5312*c),a.lineTo(.1929*b,.6058*c),a.lineTo(.2271*b,.6705*c),a.lineTo(.17*b,.7147*c),a.lineTo(.0314*b,.6321*c),a.lineTo(0,.6246*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.48*b,.3121*c),a.lineTo(.5157*b,.3375*c),a.lineTo(.4314*b,.3982*c),a.lineTo(.3929*b,.3786*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.3086*b,.5179*c),a.lineTo(.53*b,.3518*c),a.lineTo(.5757*b,.3745*c),a.lineTo(.3479*b,.5411*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.5964*
4772b,.3884*c),a.lineTo(.6736*b,.4277*c),a.lineTo(.445*b,.5991*c),a.lineTo(.3664*b,.5531*c),a.lineTo(.5057*b,.4545*c),a.lineTo(.5507*b,.4754*c),a.lineTo(.5571*b,.4723*c),a.lineTo(.5114*b,.4504*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.4793*b,.6161*c),a.lineTo(.6771*b,.4643*c),a.lineTo(.8086*b,.5326*c),a.lineTo(.7471*b,.5817*c),a.lineTo(.7214*b,.567*c),a.lineTo(.715*b,.571*c),a.lineTo(.7421*b,.5871*c),a.lineTo(.6014*b,.6933*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(b,.4371*c),a.lineTo(.8443*
4773b,.546*c),a.lineTo(.9071*b,.5701*c),a.lineTo(b,.5022*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.8407*b,.5504*c),a.lineTo(.8993*b,.5759*c),a.lineTo(.6757*b,.7416*c),a.lineTo(.6286*b,.7139*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(b,.5321*c),a.lineTo(.6979*b,.7549*c),a.lineTo(.7457*b,.7781*c),a.lineTo(.9814*b,.6094*c),a.lineTo(b,.6067*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(b,.6254*c),a.lineTo(.7664*b,.792*c),a.lineTo(.9586*b,.9062*c),a.lineTo(b,.8786*c),a.close(),a.fillAndStroke(),
4774a.begin(),a.moveTo(.3093*b,.5464*c),a.lineTo(.4271*b,.6152*c),a.lineTo(.245*b,.7643*c),a.lineTo(.185*b,.7228*c),a.lineTo(.2493*b,.6728*c),a.lineTo(.2214*b,.6143*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(0,.65*c),a.lineTo(.2179*b,.7826*c),a.lineTo(.1136*b,.8424*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(0,.7272*c),a.lineTo(.0821*b,.859*c),a.lineTo(0,.9085*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.4529*b,.6366*c),a.lineTo(.575*b,.7143*c),a.lineTo(.39*b,.8621*c),a.lineTo(.2657*
4775b,.7902*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(0,.9415*c),a.lineTo(.1036*b,.8821*c),a.lineTo(.2343*b,.959*c),a.lineTo(.1721*b,c),a.lineTo(0,c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.2586*b,.7951*c),a.lineTo(.3829*b,.8674*c),a.lineTo(.2543*b,.9451*c),a.lineTo(.1279*b,.8692*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.2836*b,.9639*c),a.lineTo(.4207*b,.8772*c),a.lineTo(.605*b,.7321*c),a.lineTo(.6521*b,.7634*c),a.lineTo(.3486*b,c),a.lineTo(.3393*b,c),a.close(),a.fillAndStroke(),
4776a.begin(),a.moveTo(.3879*b,c),a.lineTo(.6721*b,.7759*c),a.lineTo(.7171*b,.7982*c),a.lineTo(.4564*b,c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.4986*b,c),a.lineTo(.7386*b,.8125*c),a.lineTo(.9307*b,.925*c),a.lineTo(.8264*b,c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.8671*b,c),a.lineTo(.9464*b,.9491*c),a.lineTo(b,.975*c),a.lineTo(b,c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.2295*b,c),a.lineTo(.2648*b,.9792*c),a.lineTo(.2981*b,c),a.close(),a.fillAndStroke(),b=d,c=e,a.translate(.0625*
4777-b,.15*-c));a.setStrokeWidth(1);a.setStrokeColor("#18211b");a.rect(.0625*b,.15*c,.875*b,.7*c);a.stroke();a.setStrokeWidth(1.5);a.setAlpha(.8);a.setStrokeColor("#dddddd");a.roundrect(0,0,b,c,f,f);a.stroke();f=22.5;a.begin();a.setStrokeColor("#666666");a.roundrect(5,5,b-10,c-10,f,f);a.stroke();a.setAlpha(1);a.ellipse(.4875*b,.04125*c,.025*b,.0125*c);a.setStrokeWidth(2.5);a.setStrokeColor("#000000");a.setFillColor("#000099");a.fillAndStroke();a.begin();a.setStrokeWidth(1.5);a.setFillColor("#444444");
4778a.setStrokeColor("#333333");a.roundrect(.375*b,.075*c,.25*b,.01875*c,.02*b,.01*c);a.fillAndStroke();a.setGradient("#bbbbbb","#000000",.4*b,.875*c,.2*b,.1*c,mxConstants.DIRECTION_SOUTH,1,1);a.ellipse(.4*b,.875*c,.2*b,.1*c);a.fill();a.setAlpha(.5);a.ellipse(.404*b,.876*c,.19*b,.095*c);a.stroke();a.begin();a.setAlpha(.85);a.setFillColor("#000000");a.moveTo(.4025*b,.925*c);a.arcTo(.0975*b,.04625*c,0,0,1,.5975*b,.925*c);a.arcTo(.2*b,.1*c,0,0,1,.4025*b,.925*c);a.close();a.fillAndStroke();a.begin();a.setAlpha(.7);
4779a.setStrokeWidth(1.5);a.setStrokeColor("#dddddd");a.roundrect(.4575*b,.905*c,.0875*b,.04375*c,.00625*c,.00625*c);a.stroke()};mxCellRenderer.registerShape(mxMockupC.SHAPE_IPHONE,mxShapeMockupiPhone);function mxShapeMockupiBgFlat(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiBgFlat,mxShape);mxShapeMockupiBgFlat.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};
4780mxShapeMockupiBgFlat.prototype.background=function(a,d,e,b,c){a.begin();a.rect(0,0,b,c);a.fillAndStroke()};mxCellRenderer.registerShape(mxMockupC.SHAPE_IBG_FLAT,mxShapeMockupiBgFlat);function mxShapeMockupiBgStriped(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiBgStriped,mxShape);
4781mxShapeMockupiBgStriped.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};mxShapeMockupiBgStriped.prototype.background=function(a,d,e,b,c){a.setStrokeWidth(1);a.begin();a.rect(0,0,b,c);a.fillAndStroke()};
4782mxShapeMockupiBgStriped.prototype.foreground=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"");e=mxUtils.getValue(this.style,mxMockupC.STYLE_STROKECOLOR2,"");a.setStrokeColor(e);e=5;for(a.begin();e<b;)a.moveTo(e,0),a.lineTo(e,c),e+=5;a.stroke();a.setStrokeColor(d);a.begin();a.rect(0,0,b,c);a.stroke()};mxCellRenderer.registerShape(mxMockupC.SHAPE_IBG_STRIPED,mxShapeMockupiBgStriped);
4783function mxShapeMockupiBgMap(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiBgMap,mxShape);mxShapeMockupiBgMap.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};mxShapeMockupiBgMap.prototype.background=function(a,d,e,b,c){a.begin();a.rect(0,0,b,c);a.fillAndStroke()};
4784mxShapeMockupiBgMap.prototype.foreground=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"");e=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"");var f=mxUtils.getValue(this.style,mxMockupC.STYLE_STROKECOLOR2,"");a.setFillColor(d);a.setStrokeColor(f);a.setStrokeWidth(.5);a.begin();a.moveTo(0,0);a.lineTo(.1171*b,0);a.lineTo(.1136*b,.0438*c);a.lineTo(.0993*b,.054*c);a.lineTo(0,.0446*c);a.close();a.fillAndStroke();a.begin();a.moveTo(.1993*b,0);a.lineTo(.1914*b,
4785.03884*c);a.lineTo(.1536*b,.0362*c);a.lineTo(.1586*b,0);a.close();a.fillAndStroke();a.begin();a.moveTo(.24*b,0);a.lineTo(.2257*b,.054*c);a.lineTo(.2414*b,.0674*c);a.lineTo(.4707*b,.0835*c);a.lineTo(.5264*b,.0906*c);a.lineTo(.6429*b,.0929*c);a.arcTo(.0857*b,.0536*c,0,0,0,.7193*b,.0621*c);a.arcTo(.48*b,.2143*c,0,0,0,.7286*b,0);a.close();a.fillAndStroke();a.begin();a.moveTo(.8*b,0);a.lineTo(.7886*b,.04554*c);a.arcTo(.0857*b,.0536*c,0,0,0,.8164*b,.0875*c);a.arcTo(.1429*b,.0893*c,0,0,0,.88*b,.1036*c);
4786a.lineTo(b,.1112*c);a.lineTo(b,0);a.close();a.fillAndStroke();a.begin();a.moveTo(0,.0933*c);a.lineTo(.08*b,.1036*c);a.lineTo(.1021*b,.1246*c);a.lineTo(.1007*b,.1768*c);a.lineTo(.0471*b,.2241*c);a.lineTo(0,.2527*c);a.close();a.fillAndStroke();a.ellipse(.1214*b,.0603*c,.0843*b,.0576*c);a.fillAndStroke();a.begin();a.moveTo(.1293*b,.1924*c);a.lineTo(.1729*b,.142*c);a.lineTo(.1407*b,.1411*c);a.lineTo(.14*b,.1777*c);a.close();a.fillAndStroke();a.begin();a.moveTo(.4586*b,.1241*c);a.lineTo(.455*b,.1835*c);
4787a.lineTo(.3893*b,.2246*c);a.lineTo(.2171*b,.1362*c);a.lineTo(.2171*b,.1308*c);a.lineTo(.2293*b,.1214*c);a.lineTo(.2857*b,.1174*c);a.close();a.fillAndStroke();a.begin();a.moveTo(.5079*b,.1134*c);a.lineTo(.7307*b,.1223*c);a.lineTo(.7279*b,.1625*c);a.lineTo(.715*b,.1772*c);a.lineTo(.6929*b,.1688*c);a.lineTo(.625*b,.1795*c);a.lineTo(.4779*b,.2835*c);a.lineTo(.395*b,.2299*c);a.lineTo(.4657*b,.1826*c);a.lineTo(.4707*b,.1223*c);a.close();a.fillAndStroke();a.begin();a.moveTo(b,.1362*c);a.lineTo(.7643*b,.1237*
4788c);a.lineTo(.7543*b,.1562*c);a.lineTo(.7643*b,.1585*c);a.lineTo(.9186*b,.2366*c);a.lineTo(b,.1732*c);a.close();a.fillAndStroke();a.begin();a.moveTo(.2079*b,.1545*c);a.lineTo(.3886*b,.2536*c);a.lineTo(.3414*b,.2933*c);a.lineTo(.1743*b,.1969*c);a.close();a.fillAndStroke();a.begin();a.moveTo(.1579*b,.2134*c);a.lineTo(.3221*b,.3067*c);a.lineTo(.2957*b,.3237*c);a.lineTo(.1157*b,.2424*c);a.close();a.fillAndStroke();a.begin();a.moveTo(.405*b,.2656*c);a.lineTo(.31*b,.3353*c);a.lineTo(.3693*b,.3661*c);a.lineTo(.4571*
4789b,.2982*c);a.close();a.fillAndStroke();a.begin();a.moveTo(.7121*b,.1848*c);a.lineTo(.6879*b,.1754*c);a.lineTo(.6329*b,.1844*c);a.lineTo(.61*b,.2018*c);a.lineTo(.6207*b,.2085*c);a.lineTo(.4986*b,.2982*c);a.lineTo(.535*b,.3237*c);a.close();a.fillAndStroke();a.begin();a.moveTo(.5557*b,.3379*c);a.lineTo(.7464*b,.1826*c);a.lineTo(.8036*b,.2076*c);a.lineTo(.595*b,.3616*c);a.close();a.fillAndStroke();a.begin();a.moveTo(.8293*b,.2188*c);a.lineTo(.8979*b,.2509*c);a.lineTo(.6936*b,.4125*c);a.lineTo(.6171*b,
4790.3737*c);a.close();a.fillAndStroke();a.begin();a.moveTo(b,.2138*c);a.lineTo(.6821*b,.4603*c);a.lineTo(.815*b,.5277*c);a.lineTo(b,.4*c);a.close();a.fillAndStroke();a.begin();a.moveTo(0,.317*c);a.lineTo(.0971*b,.2554*c);a.lineTo(.4121*b,.4143*c);a.lineTo(.3736*b,.4415*c);a.lineTo(.315*b,.4076*c);a.lineTo(.3093*b,.4116*c);a.lineTo(.3686*b,.4455*c);a.lineTo(.285*b,.5045*c);a.lineTo(.1114*b,.4134*c);a.lineTo(.025*b,.4603*c);a.lineTo(.0371*b,.4723*c);a.lineTo(.1114*b,.4371*c);a.lineTo(.2871*b,.5312*c);
4791a.lineTo(.1929*b,.6058*c);a.lineTo(.2271*b,.6705*c);a.lineTo(.17*b,.7147*c);a.lineTo(.0314*b,.6321*c);a.lineTo(0,.6246*c);a.close();a.fillAndStroke();a.begin();a.moveTo(.48*b,.3121*c);a.lineTo(.5157*b,.3375*c);a.lineTo(.4314*b,.3982*c);a.lineTo(.3929*b,.3786*c);a.close();a.fillAndStroke();a.begin();a.moveTo(.3086*b,.5179*c);a.lineTo(.53*b,.3518*c);a.lineTo(.5757*b,.3745*c);a.lineTo(.3479*b,.5411*c);a.close();a.fillAndStroke();a.begin();a.moveTo(.5964*b,.3884*c);a.lineTo(.6736*b,.4277*c);a.lineTo(.445*
4792b,.5991*c);a.lineTo(.3664*b,.5531*c);a.lineTo(.5057*b,.4545*c);a.lineTo(.5507*b,.4754*c);a.lineTo(.5571*b,.4723*c);a.lineTo(.5114*b,.4504*c);a.close();a.fillAndStroke();a.begin();a.moveTo(.4793*b,.6161*c);a.lineTo(.6771*b,.4643*c);a.lineTo(.8086*b,.5326*c);a.lineTo(.7471*b,.5817*c);a.lineTo(.7214*b,.567*c);a.lineTo(.715*b,.571*c);a.lineTo(.7421*b,.5871*c);a.lineTo(.6014*b,.6933*c);a.close();a.fillAndStroke();a.begin();a.moveTo(b,.4371*c);a.lineTo(.8443*b,.546*c);a.lineTo(.9071*b,.5701*c);a.lineTo(b,
4793.5022*c);a.close();a.fillAndStroke();a.begin();a.moveTo(.8407*b,.5504*c);a.lineTo(.8993*b,.5759*c);a.lineTo(.6757*b,.7416*c);a.lineTo(.6286*b,.7139*c);a.close();a.fillAndStroke();a.begin();a.moveTo(b,.5321*c);a.lineTo(.6979*b,.7549*c);a.lineTo(.7457*b,.7781*c);a.lineTo(.9814*b,.6094*c);a.lineTo(b,.6067*c);a.close();a.fillAndStroke();a.begin();a.moveTo(b,.6254*c);a.lineTo(.7664*b,.792*c);a.lineTo(.9586*b,.9062*c);a.lineTo(b,.8786*c);a.close();a.fillAndStroke();a.begin();a.moveTo(.3093*b,.5464*c);a.lineTo(.4271*
4794b,.6152*c);a.lineTo(.245*b,.7643*c);a.lineTo(.185*b,.7228*c);a.lineTo(.2493*b,.6728*c);a.lineTo(.2214*b,.6143*c);a.close();a.fillAndStroke();a.begin();a.moveTo(0,.65*c);a.lineTo(.2179*b,.7826*c);a.lineTo(.1136*b,.8424*c);a.close();a.fillAndStroke();a.begin();a.moveTo(0,.7272*c);a.lineTo(.0821*b,.859*c);a.lineTo(0,.9085*c);a.close();a.fillAndStroke();a.begin();a.moveTo(.4529*b,.6366*c);a.lineTo(.575*b,.7143*c);a.lineTo(.39*b,.8621*c);a.lineTo(.2657*b,.7902*c);a.close();a.fillAndStroke();a.begin();
4795a.moveTo(0,.9415*c);a.lineTo(.1036*b,.8821*c);a.lineTo(.2343*b,.959*c);a.lineTo(.1721*b,c);a.lineTo(0,c);a.close();a.fillAndStroke();a.begin();a.moveTo(.2586*b,.7951*c);a.lineTo(.3829*b,.8674*c);a.lineTo(.2543*b,.9451*c);a.lineTo(.1279*b,.8692*c);a.close();a.fillAndStroke();a.begin();a.moveTo(.2836*b,.9639*c);a.lineTo(.4207*b,.8772*c);a.lineTo(.605*b,.7321*c);a.lineTo(.6521*b,.7634*c);a.lineTo(.3486*b,c);a.lineTo(.3393*b,c);a.close();a.fillAndStroke();a.begin();a.moveTo(.3879*b,c);a.lineTo(.6721*
4796b,.7759*c);a.lineTo(.7171*b,.7982*c);a.lineTo(.4564*b,c);a.close();a.fillAndStroke();a.begin();a.moveTo(.4986*b,c);a.lineTo(.7386*b,.8125*c);a.lineTo(.9307*b,.925*c);a.lineTo(.8264*b,c);a.close();a.fillAndStroke();a.begin();a.moveTo(.8671*b,c);a.lineTo(.9464*b,.9491*c);a.lineTo(b,.975*c);a.lineTo(b,c);a.close();a.fillAndStroke();a.begin();a.moveTo(.2295*b,c);a.lineTo(.2648*b,.9792*c);a.lineTo(.2981*b,c);a.close();a.fillAndStroke();a.setStrokeWidth(1);a.setStrokeColor(e);a.begin();a.rect(0,0,b,c);
4797a.stroke()};mxCellRenderer.registerShape(mxMockupC.SHAPE_IBG_MAP,mxShapeMockupiBgMap);function mxShapeMockupiButtonBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiButtonBar,mxShape);
4798mxShapeMockupiButtonBar.prototype.customProperties=[{name:"buttonText",dispName:"Labels",type:"string"},{name:"textColor",dispName:"Text Color",type:"color"},{name:"textColor2",dispName:"Text2 Color",type:"color"},{name:"strokeColor2",dispName:"Stroke2 Color",type:"color"}];
4799mxShapeMockupiButtonBar.prototype.paintVertexShape=function(a,d,e,b,c){for(var f=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"+Button 1, Button 2, Button 3").toString().split(","),g=mxUtils.getValue(this.style,mxMockupC.STYLE_TEXTCOLOR,"#666666"),h=mxUtils.getValue(this.style,mxMockupC.STYLE_TEXTCOLOR2,"#ffffff"),k=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17").toString(),l=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#666666"),m=mxUtils.getValue(this.style,mxMockupC.STYLE_STROKECOLOR2,
4800"#c4c4c4"),n=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),p=f.length,q=0,t=-1,u=0;u<p;u++){var v=f[u];v.charAt(0)===mxMockupC.SELECTED&&(v=f[u].substring(1),t=u);v=mxUtils.getSizeForString(v,k,mxConstants.DEFAULT_FONTFAMILY).width;v>q&&(q=v)}var r=1.5*k,w=p*r;c=Math.max(c,w);b=Math.max(b,5+q);a.translate(d,e);this.background(a,b,c,2.5,p,2.5,p*r,l,m,n,t,r);a.setShadow(!1);this.foreground(a,b,c,2.5,p,2.5,p*r,l,m,n,t,r);for(u=v=0;u<p;u++)u===t?a.setFontColor(h):a.setFontColor(g),
4801v+=2.5,this.buttonText(a,b,(u*r+.5*r)*c/w,f[u],k,m)};mxShapeMockupiButtonBar.prototype.background=function(a,d,e,b,c,f,g,h,k,l,m,n){a.begin();a.setStrokeWidth(1);a.setStrokeColor(h);a.setFillColor(l);a.moveTo(0,b);a.arcTo(b,b,0,0,1,b,0);a.lineTo(d-b,0);a.arcTo(b,b,0,0,1,d,b);a.lineTo(d,e-b);a.arcTo(b,b,0,0,1,d-b,e);a.lineTo(b,e);a.arcTo(b,b,0,0,1,0,e-b);a.close();a.fillAndStroke()};
4802mxShapeMockupiButtonBar.prototype.foreground=function(a,d,e,b,c,f,g,h,k,l,m,n){f=mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,"1");a.setStrokeWidth(f);a.setStrokeColor(k);a.begin();for(k=1;k<c;k++)k!==m&&k!==m+1&&(f=k*n*e/g,a.moveTo(0,f),a.lineTo(d,f));a.stroke();a.setStrokeColor(mxConstants.NONE);0===m?(a.begin(),g=n*e/g,a.setGradient("#5D7585","#008cff",0,0,d,g,mxConstants.DIRECTION_SOUTH,1,1),a.moveTo(0,b),a.arcTo(b,b,0,0,1,b,0),a.lineTo(d-b,0),a.arcTo(b,b,0,0,1,d,b),a.lineTo(d,g),
4803a.lineTo(0,g),a.close(),a.fill()):m===c-1?(a.begin(),c=e-n*e/g,a.setGradient("#5D7585","#008cff",0,c,d,e-c,mxConstants.DIRECTION_SOUTH,1,1),a.moveTo(0,c),a.lineTo(d,c),a.lineTo(d,e-b),a.arcTo(b,b,0,0,1,d-b,e),a.lineTo(b,e),a.arcTo(b,b,0,0,1,0,e-b),a.close(),a.fill()):-1!==m&&(a.begin(),c=n*m*e/g,g=n*(m+1)*e/g,a.setGradient("#5D7585","#008cff",0,c,d,g-c,mxConstants.DIRECTION_SOUTH,1,1),a.moveTo(0,c),a.lineTo(d,c),a.lineTo(d,g),a.lineTo(0,g),a.close(),a.fill());a.begin();a.setStrokeColor(h);a.setFillColor(l);
4804a.moveTo(0,b);a.arcTo(b,b,0,0,1,b,0);a.lineTo(d-b,0);a.arcTo(b,b,0,0,1,d,b);a.lineTo(d,e-b);a.arcTo(b,b,0,0,1,d-b,e);a.lineTo(b,e);a.arcTo(b,b,0,0,1,0,e-b);a.close();a.stroke()};
4805mxShapeMockupiButtonBar.prototype.buttonText=function(a,d,e,b,c,f){b.charAt(0)===mxMockupC.SELECTED&&(b=b.substring(1));a.setFontSize(c);a.text(10,e,0,0,b,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);b=.5*c;a.setStrokeWidth(.3*c);a.setStrokeColor(f);a.begin();a.moveTo(d-20-b,e-b);a.lineTo(d-20,e);a.lineTo(d-20-b,e+b);a.stroke()};mxCellRenderer.registerShape(mxMockupC.SHAPE_IBUTTON_BAR,mxShapeMockupiButtonBar);
4806function mxShapeMockupiAppBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiAppBar,mxShape);mxShapeMockupiAppBar.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};mxShapeMockupiAppBar.prototype.background=function(a,d,e,b,c){a.setGradient("#eeeeee","#999999",0,0,b,c,mxConstants.DIRECTION_SOUTH,1,1);a.rect(0,0,b,c);a.fill()};
4807mxShapeMockupiAppBar.prototype.foreground=function(a,d,e,b,c){a.setFillColor("#0099ff");a.rect(5,.5*c+1.75,1.5,2.5);a.fill();a.rect(7,.5*c+.75,1.5,3.5);a.fill();a.rect(9,.5*c-.25,1.5,4.5);a.fill();a.rect(11,.5*c-1.25,1.5,5.5);a.fill();a.rect(13,.5*c-2.25,1.5,6.5);a.fill();a.rect(15,.5*c-3.25,1.5,7.5);a.fill();a.setFillColor("#999999");a.ellipse(b-56.5,.5*c-4,8,8);a.fill();a.setStrokeColor("#cccccc");a.begin();a.moveTo(b-52.5,.5*c-3);a.lineTo(b-52.5,.5*c);a.lineTo(b-54.5,.5*c);a.stroke();a.setStrokeWidth(.5);
4808a.setStrokeColor("#333333");a.setFillColor("#990000");a.begin();a.moveTo(b-45.5,.5*c);a.lineTo(b-37.5,.5*c-5);a.lineTo(b-41.5,.5*c+4);a.lineTo(b-42,.5*c+.5);a.close();a.fillAndStroke();a.setFillColor("#999999");a.setStrokeColor("#999999");a.begin();a.moveTo(b-28.5,.5*c+3.5);a.arcTo(3.5,3.5,0,1,1,b-26.5,.5*c+1);a.stroke();a.begin();a.moveTo(b-27.25,.5*c+.25);a.lineTo(b-25.75,.5*c+.25);a.lineTo(b-26.5,.5*c+1.5);a.close();a.fillAndStroke();a.begin();a.moveTo(b-31,.5*c-.5);a.arcTo(1,1.5,0,0,1,b-29,.5*
4809c-.5);a.stroke();a.rect(b-31.5,.5*c-.5,3,2);a.fillAndStroke();a.setGradient("#eeeeee","#444444",b-20,.5*c-3,16.5,6,mxConstants.DIRECTION_NORTH,1,1);a.begin();a.moveTo(b-20,.5*c-3);a.lineTo(b-5,.5*c-3);a.lineTo(b-5,.5*c-1);a.lineTo(b-3.5,.5*c-1);a.lineTo(b-3.5,.5*c+1);a.lineTo(b-5,.5*c+1);a.lineTo(b-5,.5*c+3);a.lineTo(b-20,.5*c+3);a.close();a.fill();a.setGradient("#E2FFEB","#008215",b-20,.5*c-3,10,6,mxConstants.DIRECTION_SOUTH,1,1);a.begin();a.moveTo(b-20,.5*c-3);a.lineTo(b-10,.5*c-3);a.lineTo(b-10,
4810.5*c+3);a.lineTo(b-20,.5*c+3);a.close();a.fill();a.setStrokeColor("#666666");a.begin();a.moveTo(b-20,.5*c-3);a.lineTo(b-5,.5*c-3);a.lineTo(b-5,.5*c-1);a.lineTo(b-3.5,.5*c-1);a.lineTo(b-3.5,.5*c+1);a.lineTo(b-5,.5*c+1);a.lineTo(b-5,.5*c+3);a.lineTo(b-20,.5*c+3);a.close();a.stroke()};mxCellRenderer.registerShape(mxMockupC.SHAPE_IAPP_BAR,mxShapeMockupiAppBar);function mxShapeMockupiTopBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
4811mxUtils.extend(mxShapeMockupiTopBar,mxShape);mxShapeMockupiTopBar.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};mxShapeMockupiTopBar.prototype.background=function(a,d,e,b,c){a.setAlpha(.5);a.setFillColor("#999999");a.rect(0,0,b,c);a.fill()};
4812mxShapeMockupiTopBar.prototype.foreground=function(a,d,e,b,c){a.setFillColor("#cccccc");a.setStrokeColor("#cccccc");a.setFontColor("#cccccc");a.setFontSize(7.5);a.rect(5,.5*c+1.75,1.5,2.5);a.fill();a.rect(7,.5*c+.75,1.5,3.5);a.fill();a.rect(9,.5*c-.25,1.5,4.5);a.fill();a.rect(11,.5*c-1.25,1.5,5.5);a.fill();a.rect(13,.5*c-2.25,1.5,6.5);a.fill();a.rect(15,.5*c-3.25,1.5,7.5);a.fill();a.text(18,.5*c,0,0,"CARRIER",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.5*c,0,0,"11:15AM",
4813mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.begin();a.moveTo(b-19,.5*c-2);a.lineTo(b-10,.5*c-2);a.lineTo(b-10,.5*c+2);a.lineTo(b-19,.5*c+2);a.close();a.fill();a.begin();a.moveTo(b-20,.5*c-3);a.lineTo(b-5,.5*c-3);a.lineTo(b-5,.5*c-1);a.lineTo(b-3.5,.5*c-1);a.lineTo(b-3.5,.5*c+1);a.lineTo(b-5,.5*c+1);a.lineTo(b-5,.5*c+3);a.lineTo(b-20,.5*c+3);a.close();a.stroke()};mxCellRenderer.registerShape(mxMockupC.SHAPE_ITOP_BAR,mxShapeMockupiTopBar);
4814function mxShapeMockupiTopBar2(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiTopBar2,mxShape);mxShapeMockupiTopBar2.prototype.cst={SHAPE_ITOP_BAR2:"mxgraph.ios.iTopBar2"};mxShapeMockupiTopBar2.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};mxShapeMockupiTopBar2.prototype.background=function(a,d,e,b,c){a.rect(0,0,b,c);a.fill()};
4815mxShapeMockupiTopBar2.prototype.foreground=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");a.setFillColor(d);a.setStrokeColor(d);a.rect(5,.5*c+1.75,1.5,2.5);a.fill();a.rect(7,.5*c+.75,1.5,3.5);a.fill();a.rect(9,.5*c-.25,1.5,4.5);a.fill();a.rect(11,.5*c-1.25,1.5,5.5);a.fill();a.rect(13,.5*c-2.25,1.5,6.5);a.fill();a.rect(15,.5*c-3.25,1.5,7.5);a.fill();a.begin();a.moveTo(b-19,.5*c-2);a.lineTo(b-10,.5*c-2);a.lineTo(b-10,.5*c+2);a.lineTo(b-19,.5*c+2);a.close();
4816a.fill();a.begin();a.moveTo(b-20,.5*c-3);a.lineTo(b-5,.5*c-3);a.lineTo(b-5,.5*c-1);a.lineTo(b-3.5,.5*c-1);a.lineTo(b-3.5,.5*c+1);a.lineTo(b-5,.5*c+1);a.lineTo(b-5,.5*c+3);a.lineTo(b-20,.5*c+3);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeMockupiTopBar2.prototype.cst.SHAPE_ITOP_BAR2,mxShapeMockupiTopBar2);function mxShapeMockupiTopBarLocked(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiTopBarLocked,mxShape);
4817mxShapeMockupiTopBarLocked.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};mxShapeMockupiTopBarLocked.prototype.background=function(a,d,e,b,c){a.setFillColor("#000000");a.rect(0,0,b,c);a.fill()};
4818mxShapeMockupiTopBarLocked.prototype.foreground=function(a,d,e,b,c){a.setFillColor("#cccccc");a.setStrokeColor("#cccccc");a.rect(5,.5*c+1.75,1.5,2.5);a.fill();a.rect(7,.5*c+.75,1.5,3.5);a.fill();a.rect(9,.5*c-.25,1.5,4.5);a.fill();a.rect(11,.5*c-1.25,1.5,5.5);a.fill();a.rect(13,.5*c-2.25,1.5,6.5);a.fill();a.rect(15,.5*c-3.25,1.5,7.5);a.fill();a.begin();a.moveTo(.5*b-2,.5*c-1);a.arcTo(2,3,0,0,1,.5*b+2,.5*c-1);a.stroke();a.rect(.5*b-3,.5*c-1,6,4);a.fillAndStroke();a.begin();a.moveTo(b-19,.5*c-2);a.lineTo(b-
481910,.5*c-2);a.lineTo(b-10,.5*c+2);a.lineTo(b-19,.5*c+2);a.close();a.fill();a.begin();a.moveTo(b-20,.5*c-3);a.lineTo(b-5,.5*c-3);a.lineTo(b-5,.5*c-1);a.lineTo(b-3.5,.5*c-1);a.lineTo(b-3.5,.5*c+1);a.lineTo(b-5,.5*c+1);a.lineTo(b-5,.5*c+3);a.lineTo(b-20,.5*c+3);a.close();a.stroke()};mxCellRenderer.registerShape(mxMockupC.SHAPE_ITOP_BAR_LOCKED,mxShapeMockupiTopBarLocked);function mxShapeMockupiButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
4820mxUtils.extend(mxShapeMockupiButton,mxShape);mxShapeMockupiButton.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"Main Text"),g=mxUtils.getValue(this.style,mxMockupC.STYLE_TEXTCOLOR2,"#666666").toString(),h=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"8.5").toString();a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.mainText(a,d,e,b,c,f,h,g)};
4821mxShapeMockupiButton.prototype.background=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"").toString();e=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"").toString();a.setGradient(d,e,0,0,b,c,mxConstants.DIRECTION_SOUTH,1,1);a.roundrect(0,0,b,c,2.5,2.5);a.fill()};mxShapeMockupiButton.prototype.mainText=function(a,d,e,b,c,f,g,h){a.begin();a.setFontSize(g);a.setFontColor(h);a.text(b/2,c/2,0,0,f,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};
4822mxCellRenderer.registerShape(mxMockupC.SHAPE_IBUTTON,mxShapeMockupiButton);function mxShapeMockupiButtonBack(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiButtonBack,mxShape);
4823mxShapeMockupiButtonBack.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"Main Text"),g=mxUtils.getValue(this.style,mxMockupC.STYLE_TEXTCOLOR2,"#666666").toString(),h=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17").toString();a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.mainText(a,d,e,b,c,f,h,g)};
4824mxShapeMockupiButtonBack.prototype.background=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"").toString();e=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"").toString();a.setGradient(d,e,0,0,b,c,mxConstants.DIRECTION_SOUTH,1,1);rSize=2.5;a.begin();a.moveTo(b,rSize);a.arcTo(rSize,rSize,0,0,0,b-rSize,0);a.lineTo(10,0);a.lineTo(.87,.5*c-.75);a.arcTo(rSize,rSize,0,0,0,.87,.5*c+.75);a.lineTo(10,c);a.lineTo(b-rSize,c);a.arcTo(rSize,rSize,0,0,0,b,c-rSize);a.close();
4825a.fill()};mxShapeMockupiButtonBack.prototype.mainText=function(a,d,e,b,c,f,g,h){a.begin();a.setFontSize(g);a.setFontColor(h);a.text(.5*b+2.5,.5*c,0,0,f,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape(mxMockupC.SHAPE_IBUTTON_BACK,mxShapeMockupiButtonBack);function mxShapeMockupiButtonForward(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiButtonForward,mxShape);
4826mxShapeMockupiButtonForward.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"Main Text"),g=mxUtils.getValue(this.style,mxMockupC.STYLE_TEXTCOLOR2,"#666666").toString(),h=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17").toString();a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.mainText(a,d,e,b,c,f,h,g)};
4827mxShapeMockupiButtonForward.prototype.background=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"").toString();e=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"").toString();a.setGradient(d,e,0,0,b,c,mxConstants.DIRECTION_SOUTH,1,1);rSize=2.5;a.begin();a.moveTo(0,rSize);a.arcTo(rSize,rSize,0,0,1,rSize,0);a.lineTo(b-10,0);a.lineTo(b-.87,.5*c-.75);a.arcTo(rSize,rSize,0,0,1,b-.87,.5*c+.75);a.lineTo(b-10,c);a.lineTo(rSize,c);a.arcTo(rSize,rSize,0,0,1,0,c-rSize);
4828a.close();a.fill()};mxShapeMockupiButtonForward.prototype.mainText=function(a,d,e,b,c,f,g,h){a.begin();a.setFontSize(g);a.setFontColor(h);a.text(.5*b-2.5,.5*c,0,0,f,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape(mxMockupC.SHAPE_IBUTTON_FORWARD,mxShapeMockupiButtonForward);function mxShapeMockupiPrevNextButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiPrevNextButton,mxShape);
4829mxShapeMockupiPrevNextButton.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};
4830mxShapeMockupiPrevNextButton.prototype.background=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"").toString();e=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"").toString();a.setGradient(d,e,0,0,b,c,mxConstants.DIRECTION_SOUTH,1,1);a.roundrect(0,0,b,c,5,5);a.fill();a.begin();a.moveTo(.5*b,0);a.lineTo(.5*b,c);a.stroke()};
4831mxShapeMockupiPrevNextButton.prototype.foreground=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR3,"").toString();a.setFillColor(d);a.begin();a.moveTo(.25*b,.25*c);a.lineTo(.35*b,.75*c);a.lineTo(.15*b,.75*c);a.close();a.fill();a.begin();a.moveTo(.75*b,.75*c);a.lineTo(.85*b,.25*c);a.lineTo(.65*b,.25*c);a.close();a.fill()};mxCellRenderer.registerShape(mxMockupC.SHAPE_IPREV_NEXT,mxShapeMockupiPrevNextButton);
4832function mxShapeMockupiTextInput(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiTextInput,mxShape);
4833mxShapeMockupiTextInput.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"Main Text"),g=mxUtils.getValue(this.style,mxMockupC.STYLE_TEXTCOLOR2,"#000000").toString(),h=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"8").toString();a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.mainText(a,d,e,b,c,f,h,g)};mxShapeMockupiTextInput.prototype.background=function(a,d,e,b,c){a.roundrect(0,0,b,c,2.5,2.5);a.fillAndStroke()};
4834mxShapeMockupiTextInput.prototype.mainText=function(a,d,e,b,c,f,g,h){a.begin();a.setFontSize(g);a.setFontColor(h);a.text(2,.5*c,0,0,f,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape(mxMockupC.SHAPE_ITEXT_INPUT,mxShapeMockupiTextInput);function mxShapeMockupiRadioGroup(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiRadioGroup,mxShape);
4835mxShapeMockupiRadioGroup.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);var f=mxUtils.getValue(this.style,mxMockupC.STYLE_TEXTCOLOR2,"#666666").toString(),g=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"8").toString();d=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"Option 1").toString().split(",");e=d.length;var h=Math.max(1.5*g,5),k=0,l=-1,m=e*h;c=Math.max(c,m);for(var n=0;n<e;n++){var p=d[n];p.charAt(0)===mxMockupC.SELECTED&&(p=d[n].substring(1),l=n);p=mxUtils.getSizeForString(p,
4836g,mxConstants.DEFAULT_FONTFAMILY).width;p>k&&(k=p)}a.roundrect(0,0,Math.max(b,5+k+10),c,2.5,2.5);a.fillAndStroke();a.setShadow(!1);a.setFontSize(g);a.setFontColor(f);for(n=0;n<e;n++)b=(n*h+.5*h)*c/m,p=d[n],p.charAt(0)===mxMockupC.SELECTED&&(p=d[n].substring(1),l=n),a.text(12.5,b,0,0,p,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),b-=2.5,a.setFillColor("#dddddd"),a.setStrokeColor("#000000"),l===n?(a.setGradient("#aaaaaa","#666666",2.5,b,5,5,mxConstants.DIRECTION_SOUTH,1,1),a.ellipse(2.5,
4837b,5,5),a.fillAndStroke(),a.setFillColor("#333333"),a.setStrokeColor("#333333"),a.ellipse(3.75,b+1.25,2.5,2.5)):(a.setGradient("#eeeeee","#cccccc",2.5,b,5,5,mxConstants.DIRECTION_SOUTH,1,1),a.ellipse(2.5,b,5,5)),a.fillAndStroke()};mxCellRenderer.registerShape(mxMockupC.SHAPE_IRADIO_GROUP,mxShapeMockupiRadioGroup);function mxShapeMockupiCheckboxGroup(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiCheckboxGroup,mxShape);
4838mxShapeMockupiCheckboxGroup.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);var f=mxUtils.getValue(this.style,mxMockupC.STYLE_TEXTCOLOR2,"#666666").toString(),g=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"8").toString();d=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"Option 1").toString().split(",");e=d.length;var h=Math.max(1.5*g,5),k=0,l=-1,m=e*h;c=Math.max(c,m);for(var n=0;n<e;n++){var p=d[n];p.charAt(0)===mxMockupC.SELECTED&&(p=d[n].substring(1),l=n);p=mxUtils.getSizeForString(p,
4839g,mxConstants.DEFAULT_FONTFAMILY).width;p>k&&(k=p)}a.roundrect(0,0,Math.max(b,5+k+10),c,2.5,2.5);a.fillAndStroke();a.setShadow(!1);a.setFontSize(g);a.setFontColor(f);for(n=0;n<e;n++)b=(n*h+.5*h)*c/m,p=d[n],p.charAt(0)===mxMockupC.SELECTED&&(p=d[n].substring(1),l=n),a.text(12.5,b,0,0,p,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),b-=2.5,a.setFillColor("#dddddd"),a.setStrokeColor("#000000"),l===n?(a.setGradient("#aaaaaa","#666666",2.5,b,5,5,mxConstants.DIRECTION_SOUTH,1,1),a.rect(2.5,
4840b,5,5),a.fillAndStroke(),a.setStrokeColor("#333333"),a.begin(),a.moveTo(3.75,b+2.5),a.lineTo(5,b+3.75),a.lineTo(6.25,b+1.25),a.stroke()):(a.setGradient("#eeeeee","#cccccc",2.5,b,5,5,mxConstants.DIRECTION_SOUTH,1,1),a.rect(2.5,b,5,5),a.fillAndStroke()),l=-1};mxCellRenderer.registerShape(mxMockupC.SHAPE_ICHECKBOX_GROUP,mxShapeMockupiCheckboxGroup);function mxShapeMockupiComboBox(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
4841mxUtils.extend(mxShapeMockupiComboBox,mxShape);mxShapeMockupiComboBox.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"Main Text"),g=mxUtils.getValue(this.style,mxMockupC.STYLE_TEXTCOLOR2,"#666666").toString(),h=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"8.5").toString();a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c);this.mainText(a,d,e,b,c,f,h,g)};
4842mxShapeMockupiComboBox.prototype.background=function(a,d,e,b,c){a.setFillColor("#ffffff");a.roundrect(0,0,b,c,2.5,2.5);a.fillAndStroke()};
4843mxShapeMockupiComboBox.prototype.foreground=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"").toString();e=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"").toString();a.setGradient(d,e,b-30,0,30,c,mxConstants.DIRECTION_SOUTH,1,1);a.begin();a.moveTo(b-15,0);a.lineTo(b-2.5,0);a.arcTo(2.5,2.5,0,0,1,b,2.5);a.lineTo(b,c-2.5);a.arcTo(2.5,2.5,0,0,1,b-2.5,c);a.lineTo(b-15,c);a.close();a.fillAndStroke();a.setFillColor("#ffffff");a.begin();a.moveTo(b-11,5);a.lineTo(b-
48447.5,10);a.lineTo(b-4,5);a.fill()};mxShapeMockupiComboBox.prototype.mainText=function(a,d,e,b,c,f,g,h){a.begin();a.setFontSize(g);a.setFontColor(h);a.text(2.5,.5*c,0,0,f,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape(mxMockupC.SHAPE_ICOMBO_BOX,mxShapeMockupiComboBox);function mxShapeMockupiOnOffButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiOnOffButton,mxShape);
4845mxShapeMockupiOnOffButton.prototype.customProperties=[{name:"buttonState",dispName:"State",type:"enum",enumList:[{val:"on",dispName:"On"},{val:"off",dispName:"Off"}]}];mxShapeMockupiOnOffButton.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);b=Math.max(b,2*c);var f=mxUtils.getValue(this.style,mxMockupC.BUTTON_STATE,mxMockupC.STATE_ON);this.background(a,d,e,b,c,f);a.setShadow(!1);this.foreground(a,d,e,b,c,f);this.mainText(a,d,e,b,c,f)};
4846mxShapeMockupiOnOffButton.prototype.background=function(a,d,e,b,c,f){f===mxMockupC.STATE_ON?(a.setGradient("#E2FFEB","#008215",0,0,b,c,mxConstants.DIRECTION_SOUTH,1,1),a.roundrect(0,0,b,c,.5*c,.5*c),a.fillAndStroke()):f===mxMockupC.STATE_OFF&&(a.setGradient("#cc9999","#881100",0,0,b,c,mxConstants.DIRECTION_SOUTH,1,1),a.roundrect(0,0,b,c,.5*c,.5*c),a.fillAndStroke())};
4847mxShapeMockupiOnOffButton.prototype.foreground=function(a,d,e,b,c,f){f===mxMockupC.STATE_ON?(a.setGradient("#ffffff","#888888",b-c,0,c,c,mxConstants.DIRECTION_SOUTH,1,1),a.ellipse(b-c,0,c,c)):(a.setGradient("#ffffff","#888888",0,0,c,c,mxConstants.DIRECTION_SOUTH,1,1),a.ellipse(0,0,c,c));a.fillAndStroke()};
4848mxShapeMockupiOnOffButton.prototype.mainText=function(a,d,e,b,c,f){d=mxUtils.getValue(this.style,"mainText",null);a.setFontColor("#ffffff");a.setFontSize(8.5);""!=d&&(f===mxMockupC.STATE_ON?a.text(.5*b-.4*c,.5*c,0,0,d||"ON",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):f===mxMockupC.STATE_OFF&&a.text(.5*b+.4*c,.5*c,0,0,d||"OFF",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0))};mxCellRenderer.registerShape(mxMockupC.SHAPE_ION_OFF_BUTTON,mxShapeMockupiOnOffButton);
4849function mxShapeMockupiAlertBox(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiAlertBox,mxShape);mxShapeMockupiAlertBox.prototype.paintVertexShape=function(a,d,e,b,c){b=Math.max(b,15);c=Math.max(c,15);a.translate(d,e);rSize=7.5;this.background(a,d,e,b,c,rSize);a.setShadow(!1);this.foreground(a,d,e,b,c,rSize)};
4850mxShapeMockupiAlertBox.prototype.background=function(a,d,e,b,c,f){a.setGradient("#497198","#193168",0,0,b,c,mxConstants.DIRECTION_SOUTH,1,1);a.setAlpha(.8);a.setStrokeWidth(1);a.roundrect(0,0,b,c,f,f);a.fillAndStroke()};
4851mxShapeMockupiAlertBox.prototype.foreground=function(a,d,e,b,c,f){d=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"Main Text").toString().split(",");a.setStrokeColor("#497198");a.setGradient("#497198","#c5cee1",0,0,b,22.5,mxConstants.DIRECTION_SOUTH,1,1);a.setAlpha(.5);a.begin();a.moveTo(b-f,0);a.arcTo(f,f,0,0,1,b,f);a.lineTo(b,17.5);a.arcTo(1.67*b,2.5*c,0,0,1,0,17.5);a.lineTo(0,f);a.arcTo(f,f,0,0,1,f,0);a.close();a.fillAndStroke();a.setAlpha(.8);a.setStrokeColor("#ffffff");a.setStrokeWidth(1);
4852a.roundrect(0,0,b,c,f,f);a.stroke();a.setGradient("#497198","#c5cee1",5,c-50,b-20,20,mxConstants.DIRECTION_SOUTH,1,1);a.roundrect(5,c-25,b-10,20,2.5,2.5);a.fillAndStroke();a.setAlpha(.9);a.setFontSize(9.5);a.setFontColor("#ffffff");a.text(.5*b,.15*c,0,0,d[0],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.setFontSize(8);a.text(.5*b,.4*c,0,0,d[2],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.55*c,0,0,d[3],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,
48530,null,0,0,0);a.setFontSize(8.5);a.text(.5*b,c-15,0,0,d[1],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape(mxMockupC.SHAPE_IALERT_BOX,mxShapeMockupiAlertBox);function mxShapeMockupiDialogBox(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiDialogBox,mxShape);
4854mxShapeMockupiDialogBox.prototype.paintVertexShape=function(a,d,e,b,c){b=Math.max(b,15);c=Math.max(c,15);a.translate(d,e);rSize=7.5;this.background(a,d,e,b,c,rSize);a.setShadow(!1);this.foreground(a,d,e,b,c,rSize)};mxShapeMockupiDialogBox.prototype.background=function(a,d,e,b,c,f){a.setGradient("#497198","#193168",0,0,b,c,mxConstants.DIRECTION_SOUTH,1,1);a.setAlpha(.8);a.setStrokeWidth(1);a.roundrect(0,0,b,c,f,f);a.fillAndStroke()};
4855mxShapeMockupiDialogBox.prototype.foreground=function(a,d,e,b,c,f){d=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"Main Text").toString().split(",");a.setStrokeColor("#497198");a.setGradient("#497198","#c5cee1",0,0,b,22.5,mxConstants.DIRECTION_SOUTH,1,1);a.setAlpha(.5);a.begin();a.moveTo(b-f,0);a.arcTo(f,f,0,0,1,b,f);a.lineTo(b,17.5);a.arcTo(1.67*b,2.5*c,0,0,1,0,17.5);a.lineTo(0,f);a.arcTo(f,f,0,0,1,f,0);a.close();a.fillAndStroke();a.setAlpha(.8);a.setStrokeColor("#ffffff");a.setStrokeWidth(1);
4856a.roundrect(0,0,b,c,f,f);a.stroke();a.setGradient("#497198","#c5cee1",5,c-25,.5*b-10,20,mxConstants.DIRECTION_SOUTH,1,1);a.roundrect(5,c-25,.5*b-10,20,2.5,2.5);a.fillAndStroke();a.roundrect(.5*b+2.5,c-25,.5*b-10,20,2.5,2.5);a.fillAndStroke();a.setAlpha(.9);a.setFontSize(9.5);a.setFontColor("#ffffff");a.text(.5*b,.15*c,0,0,d[0],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.setFontSize(8);a.text(.5*b,.4*c,0,0,d[3],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*
4857b,.55*c,0,0,d[4],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.setFontSize(8.5);a.text(.25*b,c-15,0,0,d[1],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.75*b,c-15,0,0,d[2],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape(mxMockupC.SHAPE_IDIALOG_BOX,mxShapeMockupiDialogBox);function mxShapeMockupiLockButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
4858mxUtils.extend(mxShapeMockupiLockButton,mxShape);
4859mxShapeMockupiLockButton.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.setShadow(!1);a.setAlpha(.7);a.setGradient("#4A4F56","#70757B",0,0,b,c,mxConstants.DIRECTION_NORTH,1,1);a.rect(0,0,b,c);a.fill();a.setAlpha(.8);a.setGradient("#18232D","#1F2933",10,10,154,30,mxConstants.DIRECTION_NORTH,1,1);a.roundrect(10,.5*c-15,b-20,30,7.5,7.5);a.fill();a.setAlpha(1);a.setGradient("#E9F3FD","#ADB7C1",12.5,12.5,40,25,mxConstants.DIRECTION_SOUTH,1,1);a.roundrect(12.5,.5*c-12.5,40,25,5,5);a.fill();
4860a.setAlpha(.8);a.setStrokeWidth(.5);a.setStrokeColor("#aabbbb");a.setGradient("#AEB7C1","#667079",20,17.5,25,15,mxConstants.DIRECTION_SOUTH,1,1);a.begin();a.moveTo(20,.5*c-3.5);a.lineTo(35,.5*c-3.5);a.lineTo(35,.5*c-7.5);a.lineTo(45,.5*c);a.lineTo(35,.5*c+7.5);a.lineTo(35,.5*c+3.5);a.lineTo(20,.5*c+3.5);a.close();a.fillAndStroke();""!=mxUtils.getValue(this.style,"mainText",null)&&(a.setFontSize(12.5),a.setFontColor("#cccccc"),a.text(b/2+20.5,c/2,0,0,"slide to unlock",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,
48610,null,0,0,0))};mxCellRenderer.registerShape(mxMockupC.SHAPE_ILOCK_BUTTON,mxShapeMockupiLockButton);function mxShapeMockupiArrowIcon(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiArrowIcon,mxShape);
4862mxShapeMockupiArrowIcon.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"").toString();a.translate(d,e);this.background(a,d,e,b,c,f);a.setShadow(!1);this.foreground(a,d,e,b,c,f)};
4863mxShapeMockupiArrowIcon.prototype.background=function(a,d,e,b,c,f){d=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"").toString();e=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"").toString();a.setGradient(d,e,0,0,b,c,mxConstants.DIRECTION_SOUTH,1,1);a.setStrokeWidth(1.5);a.setStrokeColor(f);a.ellipse(0,0,b,c);a.fillAndStroke()};
4864mxShapeMockupiArrowIcon.prototype.foreground=function(a,d,e,b,c,f){a.setStrokeWidth(2.5);a.begin();a.moveTo(.4*b,.22*c);a.lineTo(.65*b,.5*c);a.lineTo(.4*b,.78*c);a.stroke()};mxCellRenderer.registerShape(mxMockupC.SHAPE_IARROW_ICON,mxShapeMockupiArrowIcon);function mxShapeMockupiDeleteIcon(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiDeleteIcon,mxShape);
4865mxShapeMockupiDeleteIcon.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"").toString();a.translate(d,e);this.background(a,d,e,b,c,f);a.setShadow(!1);this.foreground(a,d,e,b,c,f)};
4866mxShapeMockupiDeleteIcon.prototype.background=function(a,d,e,b,c,f){d=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"").toString();e=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"").toString();a.setGradient(d,e,0,0,b,c,mxConstants.DIRECTION_SOUTH,1,1);a.setStrokeWidth(1.5);a.setStrokeColor(f);a.ellipse(0,0,b,c);a.fillAndStroke()};mxShapeMockupiDeleteIcon.prototype.foreground=function(a,d,e,b,c,f){a.setStrokeWidth(2.5);a.begin();a.moveTo(.25*b,.5*c);a.lineTo(.75*b,.5*c);a.stroke()};
4867mxCellRenderer.registerShape(mxMockupC.SHAPE_IDELETE_ICON,mxShapeMockupiDeleteIcon);function mxShapeMockupiAddIcon(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiAddIcon,mxShape);
4868mxShapeMockupiAddIcon.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"").toString(),g=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"").toString(),h=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"").toString();a.setGradient(g,h,0,0,b,c,mxConstants.DIRECTION_SOUTH,1,1);a.setStrokeColor(f);a.translate(d,e);this.background(a,d,e,b,c,f);a.setShadow(!1);this.foreground(a,d,e,b,c,f)};
4869mxShapeMockupiAddIcon.prototype.background=function(a,d,e,b,c,f){a.setStrokeWidth(1.5);a.ellipse(0,0,b,c);a.fillAndStroke()};mxShapeMockupiAddIcon.prototype.foreground=function(a,d,e,b,c,f){a.setStrokeWidth(2.5);a.begin();a.moveTo(.25*b,.5*c);a.lineTo(.75*b,.5*c);a.moveTo(.5*b,.25*c);a.lineTo(.5*b,.75*c);a.stroke()};mxCellRenderer.registerShape(mxMockupC.SHAPE_IADD_ICON,mxShapeMockupiAddIcon);
4870function mxShapeMockupiInfoIcon(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiInfoIcon,mxShape);mxShapeMockupiInfoIcon.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"").toString();a.translate(d,e);this.background(a,d,e,b,c,f);a.setShadow(!1);this.foreground(a,d,e,b,c,f)};
4871mxShapeMockupiInfoIcon.prototype.background=function(a,d,e,b,c,f){d=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"").toString();e=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"").toString();a.setGradient(d,e,0,0,b,c,mxConstants.DIRECTION_SOUTH,1,1);a.setStrokeWidth(1.5);a.setStrokeColor(f);a.ellipse(0,0,b,c);a.fillAndStroke()};
4872mxShapeMockupiInfoIcon.prototype.foreground=function(a,d,e,b,c,f){a.setStrokeWidth(2.5);a.begin();a.setFillColor("#ffffff");a.moveTo(.47*b,.334*c);a.arcTo(.1*b,.15*c,60,0,1,.61*b,.42*c);a.lineTo(.51*b,.7*c);a.arcTo(.026*b,.03*c,30,0,0,.54*b,.74*c);a.lineTo(.608*b,.684*c);a.arcTo(.02*b,.015*c,0,0,1,.638*b,.706*c);a.arcTo(.45*b,.45*c,0,0,1,.42*b,.865*c);a.arcTo(.1*b,.08*c,-15,0,1,.325*b,.77*c);a.lineTo(.358*b,.66*c);a.lineTo(.435*b,.46*c);a.arcTo(.023*b,.03*c,0,0,0,.4*b,.43*c);a.lineTo(.338*b,.484*
4873c);a.arcTo(.01*b,.015*c,45,0,1,.31*b,.47*c);a.arcTo(.3*b,.3*c,0,0,1,.47*b,.334*c);a.fill();a.begin();a.moveTo(.5438*b,.141*c);a.arcTo(.0776*b,.0898*c,40,0,1,.6671*b,.2308*c);a.arcTo(.0776*b,.0898*c,40,0,1,.5438*b,.141*c);a.close();a.fill()};mxCellRenderer.registerShape(mxMockupC.SHAPE_IINFO_ICON,mxShapeMockupiInfoIcon);function mxShapeMockupiSortFindIcon(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiSortFindIcon,mxShape);
4874mxShapeMockupiSortFindIcon.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"").toString();a.translate(d,e);this.background(a,d,e,b,c,f);a.setShadow(!1);this.foreground(a,d,e,b,c,f)};
4875mxShapeMockupiSortFindIcon.prototype.background=function(a,d,e,b,c,f){d=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"").toString();e=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"").toString();a.setGradient(d,e,0,0,b,c,mxConstants.DIRECTION_SOUTH,1,1);a.setStrokeWidth(1.5);a.setStrokeColor(f);a.roundrect(0,0,b,c,.1*b,.1*c);a.fillAndStroke()};
4876mxShapeMockupiSortFindIcon.prototype.foreground=function(a,d,e,b,c,f){a.setStrokeWidth(Math.min(c,b)/20);a.begin();a.setFillColor("#ffffff");a.moveTo(.1*b,.25*c);a.lineTo(.9*b,.25*c);a.moveTo(.1*b,.4*c);a.lineTo(.9*b,.4*c);a.moveTo(.1*b,.55*c);a.lineTo(.6*b,.55*c);a.moveTo(.1*b,.7*c);a.lineTo(.5*b,.7*c);a.stroke();a.begin();a.ellipse(.6*b,.6*c,.2*b,.2*c);a.stroke();a.begin();a.moveTo(.77*b,.77*c);a.lineTo(.85*b,.85*c);a.stroke()};mxCellRenderer.registerShape(mxMockupC.SHAPE_ISORT_FIND_ICON,mxShapeMockupiSortFindIcon);
4877function mxShapeMockupiCheckIcon(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiCheckIcon,mxShape);mxShapeMockupiCheckIcon.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"").toString();a.translate(d,e);this.background(a,d,e,b,c,f);a.setShadow(!1);this.foreground(a,d,e,b,c,f)};
4878mxShapeMockupiCheckIcon.prototype.background=function(a,d,e,b,c,f){d=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"").toString();e=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"").toString();a.setGradient(d,e,0,0,b,c,mxConstants.DIRECTION_SOUTH,1,1);a.setStrokeWidth(1.5);a.setStrokeColor(f);a.ellipse(0,0,b,c);a.fillAndStroke()};
4879mxShapeMockupiCheckIcon.prototype.foreground=function(a,d,e,b,c,f){a.setStrokeWidth(2.5);a.begin();a.moveTo(.25*b,.5*c);a.lineTo(.5*b,.65*c);a.lineTo(.75*b,.25*c);a.stroke()};mxCellRenderer.registerShape(mxMockupC.SHAPE_ICHECK_ICON,mxShapeMockupiCheckIcon);function mxShapeMockupiKeybLetters(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiKeybLetters,mxShape);
4880mxShapeMockupiKeybLetters.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!0);this.foreground(a,d,e,b,c)};mxShapeMockupiKeybLetters.prototype.background=function(a,d,e,b,c){a.setGradient("#8A97A7","#425163",0,0,b,c,mxConstants.DIRECTION_SOUTH,1,1);a.rect(0,0,b,c);a.fill()};
4881mxShapeMockupiKeybLetters.prototype.foreground=function(a,d,e,b,c,f){a.setGradient("#EEF3F9","#DBE2E9",.0086*b,.03*c,.0776*b,.19*c,mxConstants.DIRECTION_SOUTH,1,1);rSizeX=.0144*b;rSizeY=.025*c;a.setFontSize(10.5);a.setFontColor("#000000");a.roundrect(.0086*b,.03*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.0474*b,.125*c,0,0,"Q",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.1092*b,.03*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.148*b,.125*c,0,0,"W",mxConstants.ALIGN_CENTER,
4882mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.2098*b,.03*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.2486*b,.125*c,0,0,"E",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.3103*b,.03*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.3491*b,.125*c,0,0,"R",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.4109*b,.03*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.4497*b,.125*c,0,0,"T",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,
4883null,0,0,0);a.roundrect(.5115*b,.03*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.5503*b,.125*c,0,0,"Y",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.6121*b,.03*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.6509*b,.125*c,0,0,"U",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.7126*b,.03*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.7514*b,.125*c,0,0,"I",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.8132*
4884b,.03*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.852*b,.125*c,0,0,"O",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.9138*b,.03*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.9526*b,.125*c,0,0,"P",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.0632*b,.28*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.102*b,.375*c,0,0,"A",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.1638*b,.28*c,.0776*b,.19*c,rSizeX,
4885rSizeY);a.fill();a.text(.2026*b,.375*c,0,0,"S",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.2644*b,.28*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.3032*b,.375*c,0,0,"D",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.3649*b,.28*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.4037*b,.375*c,0,0,"F",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.4655*b,.28*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.5043*
4886b,.375*c,0,0,"G",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.5661*b,.28*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.6049*b,.375*c,0,0,"H",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.6667*b,.28*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.7055*b,.375*c,0,0,"J",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.7672*b,.28*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.806*b,.375*c,0,0,"K",mxConstants.ALIGN_CENTER,
4887mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.8678*b,.28*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.9066*b,.375*c,0,0,"L",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.1638*b,.53*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.2026*b,.625*c,0,0,"Z",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.2644*b,.53*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.3032*b,.625*c,0,0,"X",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,
4888null,0,0,0);a.roundrect(.3649*b,.53*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.4037*b,.625*c,0,0,"C",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.4655*b,.53*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.5043*b,.625*c,0,0,"V",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.5661*b,.53*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.6049*b,.625*c,0,0,"B",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.6667*
4889b,.53*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.7055*b,.625*c,0,0,"N",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.7672*b,.53*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.806*b,.625*c,0,0,"M",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.2644*b,.78*c,.4799*b,.19*c,rSizeX,rSizeY);a.fill();a.setFontColor("#666666");a.text(.5043*b,.875*c,0,0,"space",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.setFontColor("#ffffff");
4890a.setGradient("#8B98A8","#677488",.0115*b,.53*c,.1207*b,.19*c,mxConstants.DIRECTION_SOUTH,1,1);a.roundrect(.0115*b,.53*c,.1207*b,.19*c,rSizeX,rSizeY);a.fill();a.setGradient("#8B98A8","#677488",.8736*b,.53*c,.115*b,.19*c,mxConstants.DIRECTION_SOUTH,1,1);a.roundrect(.8736*b,.53*c,.115*b,.19*c,rSizeX,rSizeY);a.fill();a.setGradient("#8B98A8","#677488",.0115*b,.78*c,.2299*b,.19*c,mxConstants.DIRECTION_SOUTH,1,1);a.roundrect(.0115*b,.78*c,.2299*b,.19*c,rSizeX,rSizeY);a.fill();a.setGradient("#8B98A8","#677488",
4891.7672*b,.78*c,.2213*b,.19*c,mxConstants.DIRECTION_SOUTH,1,1);a.roundrect(.7672*b,.78*c,.2213*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.1264*b,.875*c,0,0,".?123",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.8779*b,.875*c,0,0,"return",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.setShadow(!1);a.setLineJoin("round");a.setStrokeColor("#ffffff");a.setFillColor("#ffffff");a.setStrokeWidth(1.5);a.begin();a.moveTo(.0402*b,.635*c);a.lineTo(.0718*b,.58*c);a.lineTo(.1034*
4892b,.635*c);a.lineTo(.0862*b,.635*c);a.lineTo(.0862*b,.67*c);a.lineTo(.0575*b,.67*c);a.lineTo(.0575*b,.635*c);a.close();a.stroke();a.begin();a.moveTo(.9109*b,.585*c);a.lineTo(.9655*b,.585*c);a.lineTo(.9655*b,.665*c);a.lineTo(.9109*b,.665*c);a.lineTo(.8879*b,.625*c);a.close();a.fillAndStroke();a.setStrokeColor("#677488");a.begin();a.moveTo(.9224*b,.605*c);a.lineTo(.9454*b,.645*c);a.moveTo(.9224*b,.645*c);a.lineTo(.9454*b,.605*c);a.stroke()};
4893mxCellRenderer.registerShape(mxMockupC.SHAPE_IKEYB_LETTERS,mxShapeMockupiKeybLetters);function mxShapeMockupiKeybNumbers(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiKeybNumbers,mxShape);mxShapeMockupiKeybNumbers.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!0);this.foreground(a,d,e,b,c)};
4894mxShapeMockupiKeybNumbers.prototype.background=function(a,d,e,b,c){a.setGradient("#8A97A7","#425163",0,0,b,c,mxConstants.DIRECTION_SOUTH,1,1);a.rect(0,0,b,c);a.fill()};
4895mxShapeMockupiKeybNumbers.prototype.foreground=function(a,d,e,b,c,f){a.setGradient("#EEF3F9","#DBE2E9",.0086*b,.03*c,.0776*b,.19*c,mxConstants.DIRECTION_SOUTH,1,1);rSizeX=.0144*b;rSizeY=.025*c;a.setFontSize(10.5);a.setFontColor("#000000");a.roundrect(.0086*b,.03*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.0474*b,.125*c,0,0,"1",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.1092*b,.03*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.148*b,.125*c,0,0,"2",mxConstants.ALIGN_CENTER,
4896mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.2098*b,.03*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.2486*b,.125*c,0,0,"3",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.3103*b,.03*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.3491*b,.125*c,0,0,"4",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.4109*b,.03*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.4497*b,.125*c,0,0,"5",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,
4897null,0,0,0);a.roundrect(.5115*b,.03*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.5503*b,.125*c,0,0,"6",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.6121*b,.03*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.6509*b,.125*c,0,0,"7",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.7126*b,.03*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.7514*b,.125*c,0,0,"8",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.8132*
4898b,.03*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.852*b,.125*c,0,0,"9",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.9138*b,.03*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.9526*b,.125*c,0,0,"0",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.0086*b,.28*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.0474*b,.375*c,0,0,"-",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.1092*b,.28*c,.0776*b,.19*c,rSizeX,
4899rSizeY);a.fill();a.text(.148*b,.375*c,0,0,"/",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.2098*b,.28*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.2486*b,.375*c,0,0,":",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.3103*b,.28*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.3491*b,.375*c,0,0,";",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.4109*b,.28*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.4497*
4900b,.375*c,0,0,"(",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.5115*b,.28*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.5503*b,.375*c,0,0,")",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.6121*b,.28*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.6509*b,.375*c,0,0,"$",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.7126*b,.28*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.7514*b,.375*c,0,0,"&",mxConstants.ALIGN_CENTER,
4901mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.8132*b,.28*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.852*b,.375*c,0,0,"@",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.9138*b,.28*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.9526*b,.375*c,0,0,'"',mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.1638*b,.53*c,.1178*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.2227*b,.625*c,0,0,".",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,
49020,0,0);a.roundrect(.3046*b,.53*c,.1178*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.3635*b,.625*c,0,0,",",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.4454*b,.53*c,.1178*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.5043*b,.625*c,0,0,"?",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.5862*b,.53*c,.1178*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.6451*b,.625*c,0,0,"!",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.727*b,.53*
4903c,.1178*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.7859*b,.625*c,0,0,"'",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.2644*b,.78*c,.4799*b,.19*c,rSizeX,rSizeY);a.fill();a.setFontColor("#666666");a.text(.5043*b,.875*c,0,0,"space",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.setGradient("#8B98A8","#677488",.0115*b,.53*c,.1207*b,.19*c,mxConstants.DIRECTION_SOUTH,1,1);a.setFontColor("#ffffff");a.roundrect(.0115*b,.53*c,.1207*b,.19*c,rSizeX,rSizeY);a.fill();
4904a.roundrect(.8736*b,.53*c,.115*b,.19*c,rSizeX,rSizeY);a.fill();a.roundrect(.0115*b,.78*c,.2299*b,.19*c,rSizeX,rSizeY);a.fill();a.roundrect(.7672*b,.78*c,.2213*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.0718*b,.625*c,0,0,"#+=",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.1264*b,.875*c,0,0,"ABC",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.8779*b,.875*c,0,0,"return",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.setShadow(!1);a.setLineJoin("round");
4905a.setStrokeColor("#ffffff");a.setFillColor("#ffffff");a.setStrokeWidth(1.5);a.begin();a.moveTo(.9109*b,.585*c);a.lineTo(.9655*b,.585*c);a.lineTo(.9655*b,.665*c);a.lineTo(.9109*b,.665*c);a.lineTo(.8879*b,.625*c);a.close();a.fillAndStroke();a.setStrokeColor("#677488");a.begin();a.moveTo(.9224*b,.605*c);a.lineTo(.9454*b,.645*c);a.moveTo(.9224*b,.645*c);a.lineTo(.9454*b,.605*c);a.stroke()};mxCellRenderer.registerShape(mxMockupC.SHAPE_IKEYB_NUMBERS,mxShapeMockupiKeybNumbers);
4906function mxShapeMockupiKeybSymbols(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiKeybSymbols,mxShape);mxShapeMockupiKeybSymbols.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!0);this.foreground(a,d,e,b,c)};
4907mxShapeMockupiKeybSymbols.prototype.background=function(a,d,e,b,c){a.setGradient("#8A97A7","#425163",0,0,b,c,mxConstants.DIRECTION_SOUTH,1,1);a.rect(0,0,b,c);a.fill()};
4908mxShapeMockupiKeybSymbols.prototype.foreground=function(a,d,e,b,c,f){a.setGradient("#EEF3F9","#DBE2E9",.0086*b,.03*c,.0776*b,.19*c,mxConstants.DIRECTION_SOUTH,1,1);rSizeX=.0144*b;rSizeY=.025*c;a.setFontSize(10.5);a.setFontColor("#000000");a.roundrect(.0086*b,.03*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.0474*b,.125*c,0,0,"[",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.1092*b,.03*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.148*b,.125*c,0,0,"]",mxConstants.ALIGN_CENTER,
4909mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.2098*b,.03*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.2486*b,.125*c,0,0,"{",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.3103*b,.03*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.3491*b,.125*c,0,0,"}",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.4109*b,.03*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.4497*b,.125*c,0,0,"#",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,
4910null,0,0,0);a.roundrect(.5115*b,.03*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.5503*b,.125*c,0,0,"%",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.6121*b,.03*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.6509*b,.125*c,0,0,"^",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.7126*b,.03*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.7514*b,.125*c,0,0,"*",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.8132*
4911b,.03*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.852*b,.125*c,0,0,"+",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.9138*b,.03*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.9526*b,.125*c,0,0,"=",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.0086*b,.28*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.0474*b,.375*c,0,0,"_",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.1092*b,.28*c,.0776*b,.19*c,rSizeX,
4912rSizeY);a.fill();a.text(.148*b,.375*c,0,0,"\\",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.2098*b,.28*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.2486*b,.375*c,0,0,"|",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.3103*b,.28*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.3491*b,.375*c,0,0,"~",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.4109*b,.28*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.4497*
4913b,.375*c,0,0,"<",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.5115*b,.28*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.5503*b,.375*c,0,0,">",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.6121*b,.28*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.6509*b,.375*c,0,0,String.fromCharCode(128),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.7126*b,.28*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.7514*b,.375*
4914c,0,0,String.fromCharCode(163),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.8132*b,.28*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.852*b,.375*c,0,0,String.fromCharCode(165),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.9138*b,.28*c,.0776*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.9526*b,.375*c,0,0,String.fromCharCode(149),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.1638*b,.53*c,.1178*b,.19*c,rSizeX,rSizeY);
4915a.fill();a.text(.2227*b,.625*c,0,0,".",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.3046*b,.53*c,.1178*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.3635*b,.625*c,0,0,",",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.4454*b,.53*c,.1178*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.5043*b,.625*c,0,0,"?",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.5862*b,.53*c,.1178*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.6451*b,.625*
4916c,0,0,"!",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.727*b,.53*c,.1178*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.7859*b,.625*c,0,0,"'",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.roundrect(.2644*b,.78*c,.4799*b,.19*c,rSizeX,rSizeY);a.fill();a.setFontColor("#666666");a.text(.5043*b,.875*c,0,0,"space",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.setGradient("#8B98A8","#677488",.0115*b,.53*c,.1207*b,.19*c,mxConstants.DIRECTION_SOUTH,
49171,1);a.setFontColor("#ffffff");a.roundrect(.0115*b,.53*c,.1207*b,.19*c,rSizeX,rSizeY);a.fill();a.roundrect(.8736*b,.53*c,.115*b,.19*c,rSizeX,rSizeY);a.fill();a.roundrect(.0115*b,.78*c,.2299*b,.19*c,rSizeX,rSizeY);a.fill();a.roundrect(.7672*b,.78*c,.2213*b,.19*c,rSizeX,rSizeY);a.fill();a.text(.0718*b,.625*c,0,0,"123",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.1264*b,.875*c,0,0,"ABC",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.8779*b,.875*c,0,
49180,"return",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.setShadow(!1);a.setLineJoin("round");a.setStrokeColor("#ffffff");a.setFillColor("#ffffff");a.setStrokeWidth(1.5);a.begin();a.moveTo(.9109*b,.585*c);a.lineTo(.9655*b,.585*c);a.lineTo(.9655*b,.665*c);a.lineTo(.9109*b,.665*c);a.lineTo(.8879*b,.625*c);a.close();a.fillAndStroke();a.setStrokeColor("#677488");a.begin();a.moveTo(.9224*b,.605*c);a.lineTo(.9454*b,.645*c);a.moveTo(.9224*b,.645*c);a.lineTo(.9454*b,.605*c);a.stroke()};
4919mxCellRenderer.registerShape(mxMockupC.SHAPE_IKEYB_SYMBOLS,mxShapeMockupiKeybSymbols);function mxShapeMockupiDeleteApp(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiDeleteApp,mxShape);mxShapeMockupiDeleteApp.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"").toString();a.translate(d,e);this.background(a,d,e,b,c,f);a.setShadow(!1);this.foreground(a,d,e,b,c)};
4920mxShapeMockupiDeleteApp.prototype.background=function(a,d,e,b,c,f){d=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"").toString();e=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"").toString();a.setGradient(d,e,0,0,b,c,mxConstants.DIRECTION_SOUTH,1,1);a.setStrokeWidth(1.5);a.setStrokeColor(f);a.ellipse(0,0,b,c);a.fillAndStroke()};
4921mxShapeMockupiDeleteApp.prototype.foreground=function(a,d,e,b,c){a.setStrokeWidth(2.5);a.begin();a.moveTo(.3*b,.3*c);a.lineTo(.7*b,.7*c);a.moveTo(.3*b,.7*c);a.lineTo(.7*b,.3*c);a.stroke()};mxCellRenderer.registerShape(mxMockupC.SHAPE_IDELETE_APP,mxShapeMockupiDeleteApp);function mxShapeMockupiDirection(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiDirection,mxShape);
4922mxShapeMockupiDirection.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};mxShapeMockupiDirection.prototype.background=function(a,d,e,b,c){a.setStrokeWidth(.5);a.setStrokeColor("#008cff");a.ellipse(0,0,b,c);a.stroke()};
4923mxShapeMockupiDirection.prototype.foreground=function(a,d,e,b,c){a.setAlpha(1);a.setGradient("#ffffff","#ffffff",.29*b,.2*c,.42*b,.3*c,mxConstants.DIRECTION_NORTH,1,0);a.begin();a.moveTo(.29*b,.2*c);a.lineTo(.5*b,.5*c);a.lineTo(.71*b,.2*c);a.fillAndStroke();a.setStrokeColor("#006cdf");a.setGradient("#ffffff","#007cef",.47*b,.47*c,.06*b,.06*c,mxConstants.DIRECTION_SOUTH,1,1);a.setAlpha(1);a.ellipse(.47*b,.47*c,.06*b,.06*c);a.fillAndStroke();a.setFillColor("#ffffff");a.setAlpha(.8);a.ellipse(.4825*
4924b,.4825*c,.015*b,.015*c);a.fill()};mxCellRenderer.registerShape(mxMockupC.SHAPE_IDIRECTION,mxShapeMockupiDirection);function mxShapeMockupiLocationBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiLocationBar,mxShape);
4925mxShapeMockupiLocationBar.prototype.customProperties=[{name:"buttonText",dispName:"Text",type:"string"},{name:"barPos",dispName:"Callout Position",type:"float",min:0,defVal:80},{name:"pointerPos",dispName:"Callout Orientation",type:"enum",enumList:[{val:"bottom",dispName:"Bottom"},{val:"top",dispName:"Top"}]}];mxShapeMockupiLocationBar.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};
4926mxShapeMockupiLocationBar.prototype.background=function(a,d,e,b,c){e=mxUtils.getValue(this.style,mxMockupC.BAR_POS,"80");e=Math.min(e,100);e=Math.max(e,0);d=mxUtils.getValue(this.style,mxMockupC.POINTER_POS,mxMockupC.POINTER_BOTTOM);e=10+(b-20)*e/100;a.setStrokeWidth(.5);a.setStrokeColor("#000000");a.setAlpha(.7);a.begin();d===mxMockupC.POINTER_BOTTOM?(a.setGradient("#000000","#888888",0,0,b,c,mxConstants.DIRECTION_NORTH,1,1),a.moveTo(0,2.5),a.arcTo(2.5,2.5,0,0,1,2.5,0),a.lineTo(b-2.5,0),a.arcTo(2.5,
49272.5,0,0,1,b,2.5),a.lineTo(b,c-2.5-7.5),a.arcTo(2.5,2.5,0,0,1,b-2.5,c-7.5),a.lineTo(e+7.5,c-7.5),a.lineTo(e,c),a.lineTo(e-7.5,c-7.5),a.lineTo(2.5,c-7.5),a.arcTo(2.5,2.5,0,0,1,0,c-2.5-7.5)):d===mxMockupC.POINTER_TOP&&(a.setGradient("#000000","#888888",0,0,b,c,mxConstants.DIRECTION_NORTH,1,1),a.moveTo(0,10),a.arcTo(2.5,2.5,0,0,1,2.5,7.5),a.lineTo(e-7.5,7.5),a.lineTo(e,0),a.lineTo(e+7.5,7.5),a.lineTo(b-2.5,7.5),a.arcTo(2.5,2.5,0,0,1,b,10),a.lineTo(b,c-2.5),a.arcTo(2.5,2.5,0,0,1,b-2.5,c),a.lineTo(2.5,
4928c),a.arcTo(2.5,2.5,0,0,1,0,c-2.5));a.close();a.fillAndStroke()};
4929mxShapeMockupiLocationBar.prototype.foreground=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxMockupC.POINTER_POS,mxMockupC.POINTER_BOTTOM);e=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"Some Location");a.setAlpha(1);a.setFontColor("#ffffff");a.setFontSize(9.5);d===mxMockupC.POINTER_BOTTOM?(a.text(5,.5*(c-7.5),0,0,e,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),a.translate(b-20,.5*(c-7.5)-7.5)):(a.text(5,.5*(c+7.5),0,0,e,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,
4930null,0,0,0),a.translate(b-20,.5*(c+7.5)-7.5));c=b=15;a.setGradient("#8BbEff","#135Ec8",0,0,b,c,mxConstants.DIRECTION_SOUTH,1,1);a.setStrokeWidth(1.5);a.setStrokeColor("#ffffff");a.ellipse(0,0,b,c);a.fillAndStroke();a.setStrokeWidth(2.5);a.begin();a.moveTo(.4*b,.22*c);a.lineTo(.65*b,.5*c);a.lineTo(.4*b,.78*c);a.stroke()};mxCellRenderer.registerShape(mxMockupC.SHAPE_ILOCATION_BAR,mxShapeMockupiLocationBar);
4931function mxShapeMockupiCallDialog(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiCallDialog,mxShape);mxShapeMockupiCallDialog.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c,5);a.setShadow(!1);this.foreground(a,d,e,b,c,5)};
4932mxShapeMockupiCallDialog.prototype.background=function(a,d,e,b,c,f){a.setAlpha(.8);a.setStrokeColor("#888888");a.setStrokeWidth(1.5);a.setFillColor("#000000");a.roundrect(0,0,b,c,f,f);a.fillAndStroke()};
4933mxShapeMockupiCallDialog.prototype.foreground=function(a,d,e,b,c,f){a.begin();a.moveTo(.33*b,0);a.lineTo(.33*b,c);a.moveTo(.67*b,0);a.lineTo(.67*b,c);a.moveTo(0,.5*c);a.lineTo(b,.5*c);a.stroke();a.setStrokeColor("#000000");a.setFillColor("#ffffff");a.setStrokeWidth(.5);a.roundrect(.1433*b,.104*c,.0417*b,.148*c,.02*b,.024*c);a.fill();a.begin();a.moveTo(.14*b,.188*c);a.lineTo(.14*b,.228*c);a.arcTo(.025*b,.03*c,0,0,0,.19*b,.228*c);a.lineTo(.19*b,.188*c);a.lineTo(.2*b,.188*c);a.lineTo(.2*b,.228*c);a.arcTo(.0367*
4934b,.044*c,0,0,1,.17*b,.27*c);a.lineTo(.17*b,.296*c);a.lineTo(.195*b,.296*c);a.lineTo(.195*b,.308*c);a.lineTo(.1367*b,.308*c);a.lineTo(.1367*b,.296*c);a.lineTo(.16*b,.296*c);a.lineTo(.16*b,.27*c);a.arcTo(.0367*b,.044*c,0,0,1,.13*b,.228*c);a.lineTo(.13*b,.188*c);a.close();a.fillAndStroke();a.begin();a.moveTo(.1033*b,.108*c);a.lineTo(.24*b,.286*c);a.lineTo(.2317*b,.298*c);a.lineTo(.095*b,.12*c);a.close();a.fillAndStroke();a.rect(.44*b,.128*c,.033*b,.04*c);a.fill();a.rect(.485*b,.128*c,.033*b,.04*c);a.fill();
4935a.rect(.53*b,.128*c,.033*b,.04*c);a.fill();a.rect(.44*b,.186*c,.033*b,.04*c);a.fill();a.rect(.485*b,.186*c,.033*b,.04*c);a.fill();a.rect(.53*b,.186*c,.033*b,.04*c);a.fill();a.rect(.44*b,.244*c,.033*b,.04*c);a.fill();a.rect(.485*b,.244*c,.033*b,.04*c);a.fill();a.rect(.53*b,.244*c,.033*b,.04*c);a.fill();a.begin();a.moveTo(.7567*b,.18*c);a.lineTo(.785*b,.18*c);a.lineTo(.825*b,.128*c);a.lineTo(.825*b,.28*c);a.lineTo(.79*b,.234*c);a.lineTo(.7567*b,.234*c);a.close();a.fill();a.setStrokeWidth(1.5);a.setStrokeColor("#ffffff");
4936a.begin();a.moveTo(.8383*b,.16*c);a.arcTo(.0533*b,.064*c,0,0,1,.8383*b,.252*c);a.moveTo(.8583*b,.134*c);a.arcTo(.0817*b,.098*c,0,0,1,.8583*b,.276*c);a.moveTo(.8767*b,.11*c);a.arcTo(.1133*b,.136*c,0,0,1,.8767*b,.304*c);a.stroke();a.begin();a.moveTo(.1467*b,.62*c);a.lineTo(.1833*b,.62*c);a.lineTo(.1833*b,.676*c);a.lineTo(.2267*b,.676*c);a.lineTo(.2267*b,.724*c);a.lineTo(.1833*b,.724*c);a.lineTo(.1833*b,.78*c);a.lineTo(.1467*b,.78*c);a.lineTo(.1467*b,.724*c);a.lineTo(.105*b,.724*c);a.lineTo(.105*b,.676*
4937c);a.lineTo(.1467*b,.676*c);a.close();a.fill();a.rect(.4517*b,.624*c,.0333*b,.152*c);a.fill();a.rect(.5183*b,.624*c,.0333*b,.152*c);a.fill();a.begin();a.moveTo(.76*b,.752*c);a.arcTo(.1*b,.12*c,0,0,1,.8033*b,.728*c);a.arcTo(.0167*b,.02*c,0,0,0,.8167*b,.712*c);a.lineTo(.8175*b,.7*c);a.arcTo(.0267*b,.06*c,0,0,1,.8067*b,.644*c);a.arcTo(.0287*b,.0344*c,0,0,1,.8633*b,.644*c);a.arcTo(.0267*b,.06*c,0,0,1,.855*b,.7*c);a.arcTo(.05*b,.724*c,0,0,1,.8633*b,.724*c);a.arcTo(.1667*b,.75*c,0,0,1,.9083*b,.75*c);a.lineTo(.9083*
4938b,.78*c);a.lineTo(.76*b,.78*c);a.close();a.fill();a.setFontColor("#ffffff");a.setFontSize(8.5);a.text(.1667*b,.35*c,0,0,"mute",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.35*c,0,0,"keypad",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.8333*b,.35*c,0,0,"speaker",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.1667*b,.85*c,0,0,"add",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.85*c,0,0,
4939"pause",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.8333*b,.85*c,0,0,"contacts",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.setGradient("#808080","#ffffff",0,0,b,.308*c,mxConstants.DIRECTION_NORTH,1,1);a.setAlpha(.4);a.begin();a.moveTo(0,.308*c);a.lineTo(0,f);a.arcTo(f,f,0,0,1,f,0);a.lineTo(b-f,0);a.arcTo(f,f,0,0,1,b,f);a.lineTo(b,.308*c);a.arcTo(1.5*b,1.8*c,0,0,1,0,.308*c);a.close();a.fill()};
4940mxCellRenderer.registerShape(mxMockupC.SHAPE_ICALL_DIALOG,mxShapeMockupiCallDialog);function mxShapeMockupiCallButtons(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiCallButtons,mxShape);mxShapeMockupiCallButtons.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};
4941mxShapeMockupiCallButtons.prototype.background=function(a,d,e,b,c){a.setStrokeWidth(.5);a.setStrokeColor("#008cff");a.setGradient("#0F1B2B","#4F5B6B",0,0,b,c,mxConstants.DIRECTION_NORTH,1,1);a.rect(0,0,b,c);a.fillAndStroke()};
4942mxShapeMockupiCallButtons.prototype.foreground=function(a,d,e,b,c){a.begin();a.moveTo(0,.1667*c);a.lineTo(b,.1667*c);a.moveTo(0,.3333*c);a.lineTo(b,.3333*c);a.moveTo(0,.5*c);a.lineTo(b,.5*c);a.moveTo(0,.6667*c);a.lineTo(b,.6667*c);a.moveTo(0,.8333*c);a.lineTo(b,.8333*c);a.moveTo(.3333*b,.1667*c);a.lineTo(.3333*b,c);a.moveTo(.6667*b,.1667*c);a.lineTo(.6667*b,c);a.stroke();a.setFontSize(15.5);a.setFontColor("#ffffff");a.setFontStyle(mxConstants.FONT_BOLD);a.text(.5*b,.0834*c,0,0,"(123) 456-7890",mxConstants.ALIGN_CENTER,
4943mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.1667*b,.22*c,0,0,"1",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.22*c,0,0,"2",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.8333*b,.22*c,0,0,"3",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.1667*b,.3867*c,0,0,"3",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.3867*c,0,0,"4",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);
4944a.text(.8333*b,.3867*c,0,0,"5",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.1667*b,.5534*c,0,0,"6",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.5534*c,0,0,"7",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.8333*b,.5534*c,0,0,"8",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.setFontSize(27.5);a.text(.1667*b,.76*c,0,0,"*",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.setFontSize(15.5);
4945a.text(.5*b,.72*c,0,0,"0",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.8333*b,.75*c,0,0,"#",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.setGradient("#E2FFEB","#008215",.3333*b,.8333*c,.3333*b,.1667*c,mxConstants.DIRECTION_SOUTH,1,1);a.rect(.3333*b,.8333*c,.3333*b,.1667*c);a.fillAndStroke();a.text(.5*b,.9168*c,0,0,"Call",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.setFontStyle(0);a.setFontSize(8);a.setFontColor("#bbbbbb");a.text(.5*
4946b,.28*c,0,0,"ABC",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.8333*b,.28*c,0,0,"DEF",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.1667*b,.4467*c,0,0,"GHI",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.4467*c,0,0,"JKL",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.8333*b,.4467*c,0,0,"MNO",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.1667*b,.6134*c,0,0,"PQRS",mxConstants.ALIGN_CENTER,
4947mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.6134*c,0,0,"TUV",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.8333*b,.6134*c,0,0,"WXYZ",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.78*c,0,0,"+",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.setFillColor("#ffffff");a.begin();a.moveTo(.1028*b,.9464*c);a.arcTo(.0862*b,.0652*c,0,0,1,.1402*b,.9333*c);a.arcTo(.0144*b,.0109*c,0,0,0,.1517*b,.9246*c);a.lineTo(.1524*b,.9181*c);
4948a.arcTo(.023*b,.0326*c,0,0,1,.143*b,.8877*c);a.arcTo(.0247*b,.0187*c,0,0,1,.1919*b,.8877*c);a.arcTo(.023*b,.0326*c,0,0,1,.1847*b,.9181*c);a.arcTo(.0431*b,.0174*c,0,0,0,.1919*b,.9311*c);a.arcTo(.1437*b,.1087*c,0,0,1,.2307*b,.9453*c);a.lineTo(.2307*b,.9616*c);a.lineTo(.1028*b,.9616*c);a.close();a.fill();a.setStrokeColor("#ffffff");a.setStrokeWidth(2.5);a.setLineJoin("round");a.begin();a.moveTo(.79*b,.89*c);a.lineTo(.9*b,.89*c);a.lineTo(.9*b,.95*c);a.lineTo(.79*b,.95*c);a.lineTo(.76*b,.92*c);a.close();
4949a.fillAndStroke();a.setStrokeColor("#0F1B2B");a.begin();a.moveTo(.82*b,.907*c);a.lineTo(.85*b,.933*c);a.moveTo(.82*b,.933*c);a.lineTo(.85*b,.907*c);a.stroke()};mxCellRenderer.registerShape(mxMockupC.SHAPE_ICALL_BUTTONS,mxShapeMockupiCallButtons);function mxShapeMockupiOption(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiOption,mxShape);
4950mxShapeMockupiOption.prototype.customProperties=[{name:"buttonText",dispName:"Text",type:"string"},{name:"barPos",dispName:"Callout Position",type:"float",min:0,defVal:80},{name:"pointerPos",dispName:"Callout Orientation",type:"enum",enumList:[{val:"bottom",dispName:"Bottom"},{val:"top",dispName:"Top"}]}];mxShapeMockupiOption.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};
4951mxShapeMockupiOption.prototype.background=function(a,d,e,b,c){e=mxUtils.getValue(this.style,mxMockupC.BAR_POS,"80");e=Math.min(e,100);e=Math.max(e,0);d=mxUtils.getValue(this.style,mxMockupC.POINTER_POS,mxMockupC.POINTER_BOTTOM);e=10+(b-20)*e/100;a.setStrokeWidth(.5);a.setStrokeColor("#000000");a.setAlpha(.9);a.begin();d===mxMockupC.POINTER_BOTTOM?(a.setGradient("#000000","#888888",0,0,b,c,mxConstants.DIRECTION_NORTH,1,1),a.moveTo(0,2.5),a.arcTo(2.5,2.5,0,0,1,2.5,0),a.lineTo(b-2.5,0),a.arcTo(2.5,2.5,
49520,0,1,b,2.5),a.lineTo(b,c-2.5-7.5),a.arcTo(2.5,2.5,0,0,1,b-2.5,c-7.5),a.lineTo(e+7.5,c-7.5),a.lineTo(e,c),a.lineTo(e-7.5,c-7.5),a.lineTo(2.5,c-7.5),a.arcTo(2.5,2.5,0,0,1,0,c-2.5-7.5)):d===mxMockupC.POINTER_TOP&&(a.setGradient("#000000","#888888",0,0,b,c,mxConstants.DIRECTION_NORTH,1,1),a.moveTo(0,10),a.arcTo(2.5,2.5,0,0,1,2.5,7.5),a.lineTo(e-7.5,7.5),a.lineTo(e,0),a.lineTo(e+7.5,7.5),a.lineTo(b-2.5,7.5),a.arcTo(2.5,2.5,0,0,1,b,10),a.lineTo(b,c-2.5),a.arcTo(2.5,2.5,0,0,1,b-2.5,c),a.lineTo(2.5,c),a.arcTo(2.5,
49532.5,0,0,1,0,c-2.5));a.close();a.fillAndStroke()};
4954mxShapeMockupiOption.prototype.foreground=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"Some Location");e=mxUtils.getValue(this.style,mxMockupC.POINTER_POS,mxMockupC.POINTER_BOTTOM);a.setAlpha(1);a.setFontColor("#ffffff");a.setFontSize(9.5);e===mxMockupC.POINTER_BOTTOM?a.text(.5*b,.5*(c-7.5),0,0,d,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):a.text(.5*b,.5*(c+7.5),0,0,d,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};
4955mxCellRenderer.registerShape(mxMockupC.SHAPE_IOPTION,mxShapeMockupiOption);function mxShapeMockupiAlphaList(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiAlphaList,mxShape);
4956mxShapeMockupiAlphaList.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.setShadow(!1);d=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"8");a.setFontColor("#999999");a.setFontSize(d);a.text(.5*b,.069*c,0,0,"A",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.1035*c,0,0,"B",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.138*c,0,0,"C",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.1725*
4957c,0,0,"D",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.207*c,0,0,"E",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.2415*c,0,0,"F",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.276*c,0,0,"G",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.3105*c,0,0,"H",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.345*c,0,0,"I",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,
49580,null,0,0,0);a.text(.5*b,.3795*c,0,0,"J",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.414*c,0,0,"K",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.4485*c,0,0,"L",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.483*c,0,0,"M",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.5175*c,0,0,"N",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.552*c,0,0,"O",mxConstants.ALIGN_CENTER,
4959mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.5865*c,0,0,"P",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.621*c,0,0,"Q",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.6555*c,0,0,"R",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.69*c,0,0,"S",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.7245*c,0,0,"T",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*
4960b,.759*c,0,0,"U",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.7935*c,0,0,"V",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.828*c,0,0,"W",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.8625*c,0,0,"X",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.897*c,0,0,"Y",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.5*b,.9315*c,0,0,"Z",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,
49610,null,0,0,0);a.text(.5*b,.966*c,0,0,"#",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.setStrokeColor("#999999");a.ellipse(.5*b-2.25,.0345*c-3.5,4.5,4.5);a.stroke();a.begin();a.moveTo(.5*b-4.25,.0345*c+3);a.lineTo(.5*b-1.75,.0345*c);a.stroke()};mxCellRenderer.registerShape(mxMockupC.SHAPE_IALPHA_LIST,mxShapeMockupiAlphaList);function mxShapeMockupiHorButtonBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
4962mxUtils.extend(mxShapeMockupiHorButtonBar,mxShape);mxShapeMockupiHorButtonBar.prototype.customProperties=[{name:"buttonText",dispName:"Labels",type:"string"},{name:"textColor",dispName:"Text Color",type:"color"},{name:"textColor2",dispName:"Text2 Color",type:"color"},{name:"strokeColor2",dispName:"Stroke2 Color",type:"color"}];
4963mxShapeMockupiHorButtonBar.prototype.paintVertexShape=function(a,d,e,b,c){for(var f=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"+Button 1, Button 2, Button 3").toString().split(","),g=mxUtils.getValue(this.style,mxMockupC.STYLE_TEXTCOLOR,"#666666"),h=mxUtils.getValue(this.style,mxMockupC.STYLE_TEXTCOLOR2,"#ffffff"),k=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"8.5").toString(),l=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#666666"),m=mxUtils.getValue(this.style,mxMockupC.STYLE_STROKECOLOR2,
4964"#c4c4c4"),n=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),p=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"#008cff"),q=f.length,t=Array(q),u=0,v=-1,r=0;r<q;r++){var w=f[r];w.charAt(0)===mxMockupC.SELECTED&&(w=f[r].substring(1),v=r);t[r]=mxUtils.getSizeForString(w,k,mxConstants.DEFAULT_FONTFAMILY).width;u+=t[r]}c=Math.max(c,1.5*k,10);u=5*q+u;b=Math.max(b,u);a.translate(d,e);this.background(a,b,c,2.5,q,t,2.5,u,l,m,n,p,v);a.setShadow(!1);for(r=d=0;r<q;r++)r===v?a.setFontColor(h):
4965a.setFontColor(g),d+=2.5,this.buttonText(a,d,c,f[r],t[r],k,u,b),d=d+t[r]+2.5};
4966mxShapeMockupiHorButtonBar.prototype.background=function(a,d,e,b,c,f,g,h,k,l,m,n,p){a.begin();a.setStrokeColor(k);a.setFillColor(m);a.moveTo(0,b);a.arcTo(b,b,0,0,1,b,0);a.lineTo(d-b,0);a.arcTo(b,b,0,0,1,d,b);a.lineTo(d,e-b);a.arcTo(b,b,0,0,1,d-b,e);a.lineTo(b,e);a.arcTo(b,b,0,0,1,0,e-b);a.close();a.fillAndStroke();a.setStrokeColor(l);a.begin();for(l=1;l<c;l++)if(l!==p&&l!==p+1){for(var q=n=0;q<l;q++)n+=f[q]+2*g;n=n*d/h;a.moveTo(n,0);a.lineTo(n,e)}a.stroke();n=0;a.setStrokeColor(mxConstants.NONE);
4967for(l=0;l<p;l++)n+=f[l]+2*g;n=n*d/h;f=(f[p]+2*g)*d/h;f+=n;0===p?(a.setGradient("#5D7585","#008cff",0,0,f,e,mxConstants.DIRECTION_SOUTH,1,1),a.begin(),a.moveTo(0,b),a.arcTo(b,b,0,0,1,b,0),a.lineTo(f,0),a.lineTo(f,e),a.lineTo(b,e),a.arcTo(b,b,0,0,1,0,e-b),a.close(),a.fill()):p===c-1?(a.setGradient("#5D7585","#008cff",n,0,f-n,e,mxConstants.DIRECTION_SOUTH,1,1),a.begin(),a.moveTo(n,0),a.lineTo(f-b,0),a.arcTo(b,b,0,0,1,f,b),a.lineTo(f,e-b),a.arcTo(b,b,0,0,1,f-b,e),a.lineTo(n,e),a.close(),a.fill()):-1!==
4968p&&(a.setGradient("#5D7585","#008cff",n,0,f-n,e,mxConstants.DIRECTION_SOUTH,1,1),a.begin(),a.moveTo(n,0),a.lineTo(f,0),a.lineTo(f,e),a.lineTo(n,e),a.close(),a.fill());a.setStrokeColor(k);a.setFillColor(m);a.begin();a.moveTo(0,b);a.arcTo(b,b,0,0,1,b,0);a.lineTo(d-b,0);a.arcTo(b,b,0,0,1,d,b);a.lineTo(d,e-b);a.arcTo(b,b,0,0,1,d-b,e);a.lineTo(b,e);a.arcTo(b,b,0,0,1,0,e-b);a.close();a.stroke()};
4969mxShapeMockupiHorButtonBar.prototype.buttonText=function(a,d,e,b,c,f,g,h){b.charAt(0)===mxMockupC.SELECTED&&(b=b.substring(1));a.begin();a.setFontSize(f);a.text((d+.5*c)*h/g,.5*e,0,0,b,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape(mxMockupC.SHAPE_IHOR_BUTTON_BAR,mxShapeMockupiHorButtonBar);function mxShapeMockupiPin(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiPin,mxShape);
4970mxShapeMockupiPin.prototype.customProperties=[{name:"fillColor2",dispName:"Fill2 Color",type:"color"},{name:"fillColor3",dispName:"Fill3 Color",type:"color"}];
4971mxShapeMockupiPin.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"#000000"),g=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR3,"#000000"),h=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");a.setShadow(!1);a.translate(d,e);a.setStrokeWidth(1.5);a.setStrokeColor("#666666");a.begin();a.moveTo(.5*b,.4*c);a.lineTo(.5*b,c);a.stroke();a.setStrokeWidth(1);a.setStrokeColor(h);a.setGradient(f,g,0,0,b,.4*c,mxConstants.DIRECTION_SOUTH,
49721,1);a.setAlpha(.9);a.ellipse(0,0,b,.4*c);a.fillAndStroke();a.setFillColor("#ffffff");a.setAlpha(.5);a.ellipse(.2*b,.08*c,.3*b,.12*c);a.fill()};mxCellRenderer.registerShape(mxMockupC.SHAPE_IPIN,mxShapeMockupiPin);function mxShapeMockupiVideoControls(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiVideoControls,mxShape);
4973mxShapeMockupiVideoControls.prototype.customProperties=[{name:"barPos",dispName:"Handle Position",type:"float",min:0,defVal:20}];mxShapeMockupiVideoControls.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.setStrokeWidth(1);a.setFillColor("#000000");a.setStrokeColor("#bbbbbb");a.setAlpha(.7);a.roundrect(0,0,b,c,5,5);a.fillAndStroke();a.setShadow(!1);this.foreground(a,b,c,5)};
4974mxShapeMockupiVideoControls.prototype.foreground=function(a,d,e,b){a.setGradient("#ffffff","#ffffff",0,0,d,.5*e,mxConstants.DIRECTION_SOUTH,.8,.1);a.begin();a.moveTo(0,b);a.arcTo(b,b,0,0,1,b,0);a.lineTo(d-b,0);a.arcTo(b,b,0,0,1,d,b);a.lineTo(d,.5*e);a.lineTo(0,.5*e);a.close();a.fill();a.setAlpha(1);a.setFillColor("#ffffff");a.setStrokeColor("#ffffff");var c=.1*d,f=.35*e;a.begin();a.moveTo(c-7.5,f-2.5);a.arcTo(6,6,0,0,1,c,f-2.5);a.arcTo(6,6,0,0,1,c+7.5,f-2.5);a.lineTo(c+7.5,f+4);a.arcTo(6,6,0,0,0,
4975c,f+4);a.arcTo(6,6,0,0,0,c-7.5,f+4);a.close();a.stroke();a.begin();a.moveTo(c,f-2.5);a.lineTo(c,f+4);a.stroke();c=.3*d;a.rect(c-7.5,f-5,1,10);a.fill();a.begin();a.moveTo(c-6.5,f);a.lineTo(c+.5,f-5);a.lineTo(c+.5,f+5);a.close();a.fill();a.begin();a.moveTo(c+.5,f);a.lineTo(c+7.5,f-5);a.lineTo(c+7.5,f+5);a.close();a.fill();c=.5*d;a.begin();a.moveTo(c-6,f-5);a.lineTo(c+6,f);a.lineTo(c-6,f+5);a.close();a.fill();c=.7*d;a.begin();a.moveTo(c-7.5,f-5);a.lineTo(c-.5,f);a.lineTo(c-7.5,f+5);a.close();a.fill();
4976a.begin();a.moveTo(c-.5,f-5);a.lineTo(c+6.5,f);a.lineTo(c-.5,f+5);a.close();a.fill();a.rect(c+6.5,f-5,1,10);a.fill();c=.9*d;a.rect(c-7.5,f-4,15,8);a.stroke();a.setStrokeWidth(.5);a.begin();a.moveTo(c-7.5,f-4);a.lineTo(c,f+1.5);a.lineTo(c+7.5,f-4);a.stroke();a.begin();a.moveTo(c-7.5,f+4);a.lineTo(c-2,f);a.stroke();a.begin();a.moveTo(c+7.5,f+4);a.lineTo(c+2,f);a.stroke();a.setGradient("#444444","#ffffff",.1*d,.75*e-2.5,.8*d,5,mxConstants.DIRECTION_SOUTH,1,1);a.roundrect(.1*d,.75*e-2.5,.8*d,5,2.5,2.5);
4977a.fill();c=mxUtils.getValue(this.style,mxMockupC.BAR_POS,"80");c=Math.min(c,100);c=Math.max(c,0);f=.1*d;c=f+(d-2*f)*c/100;a.setGradient("#96D1FF","#003377",.1*d,.75*e-5,c-.1*d,10,mxConstants.DIRECTION_SOUTH,1,1);a.begin();a.moveTo(c,.75*e-2.5);a.lineTo(c,.75*e+2.5);a.lineTo(.1*d+2.5,.75*e+2.5);a.arcTo(2.5,2.5,0,0,1,.1*d+2.5,.75*e-2.5);a.close();a.fill();a.setStrokeColor("#999999");a.setGradient("#444444","#ffffff",c-5,.75*e-5,10,10,mxConstants.DIRECTION_NORTH,1,1);a.ellipse(c-5,.75*e-5,10,10);a.fillAndStroke();
4978a.setStrokeColor("#dddddd");a.roundrect(0,0,d,e,b,b);a.stroke()};mxCellRenderer.registerShape(mxMockupC.SHAPE_IVIDEO_CONTROLS,mxShapeMockupiVideoControls);
4979Graph.handleFactory[mxMockupC.SHAPE_IVIDEO_CONTROLS]=function(a){return[Graph.createHandle(a,["barPos"],function(a){var d=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"barPos",40))));return new mxPoint(a.x+.1*a.width+d*a.width*.8/100,a.y+.75*a.height)},function(a,e){this.state.style.barPos=Math.round(100*Math.max(0,Math.min(100,100*(e.x-.1*a.width-a.x)/(.8*a.width))))/100})]};
4980function mxShapeMockupiURLBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiURLBar,mxShape);mxShapeMockupiURLBar.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.setGradient("#cccccc","#003377",0,0,b,c,mxConstants.DIRECTION_SOUTH,1,1);a.rect(0,0,b,c);a.fill();a.setShadow(!1);this.foreground(a,b,c)};
4981mxShapeMockupiURLBar.prototype.foreground=function(a,d,e){a.setStrokeWidth(.5);a.setFillColor("#ffffff");a.setStrokeColor("#008cff");a.roundrect(.0287*d,.625*e-6.25,.7184*d,12.5,6.25,6.25);a.fillAndStroke();a.setGradient("#cccccc","#001144",.7816*d,.625*e-6.25,.1868*d,12.5,mxConstants.DIRECTION_SOUTH,1,1);a.setStrokeColor("#000000");a.roundrect(.7816*d,.625*e-6.25,.1868*d,12.5,2.5,2.5);a.fillAndStroke();a.setFillColor("#bbbbbb");a.ellipse(.7471*d-11.5,.625*e-5,10,10);a.fill();a.setStrokeColor("#ffffff");
4982a.setStrokeWidth(1.5);a.begin();a.moveTo(.7471*d-8.5,.625*e-2.5);a.lineTo(.7471*d-3.5,.625*e+2.5);a.moveTo(.7471*d-8.5,.625*e+2.5);a.lineTo(.7471*d-3.5,.625*e-2.5);a.stroke();var b=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"").toString().split(",");a.setFontColor("#425664");a.setFontStyle(mxConstants.FONT_BOLD);a.setFontSize(8);a.text(.5*d,.2*e,0,0,b[0],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.setFontColor("#000000");a.text(.06*d,.625*e,0,0,b[1],mxConstants.ALIGN_LEFT,
4983mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.setFontColor("#ffffff");a.text(.875*d,.625*e,0,0,b[2],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape(mxMockupC.SHAPE_IURL_BAR,mxShapeMockupiURLBar);function mxShapeMockupiSlider(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiSlider,mxShape);
4984mxShapeMockupiSlider.prototype.customProperties=[{name:"barPos",dispName:"Handle Position",type:"float",min:0,defVal:20}];mxShapeMockupiSlider.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.setShadow(!1);this.foreground(a,b,c)};
4985mxShapeMockupiSlider.prototype.foreground=function(a,d,e){a.setStrokeWidth(.5);a.setGradient("#444444","#ffffff",0,.5*e-2.5,d,5,mxConstants.DIRECTION_SOUTH,1,1);a.roundrect(0,.5*e-2.5,d,5,2.5,2.5);a.fill();var b=mxUtils.getValue(this.style,mxMockupC.BAR_POS,"80"),b=Math.min(b,100),b=Math.max(b,0);d=0+(d-0)*b/100;a.setGradient("#96D1FF","#003377",2.5,.5*e-2.5,d-2.5,5,mxConstants.DIRECTION_SOUTH,1,1);a.begin();a.moveTo(d,.5*e-2.5);a.lineTo(d,.5*e+2.5);a.lineTo(2.5,.5*e+2.5);a.arcTo(2.5,2.5,0,0,1,2.5,
4986.5*e-2.5);a.close();a.fill();a.setStrokeColor("#999999");a.setGradient("#444444","#ffffff",d-5,.5*e-5,10,10,mxConstants.DIRECTION_NORTH,1,1);a.ellipse(d-5,.5*e-5,10,10);a.fillAndStroke()};mxCellRenderer.registerShape(mxMockupC.SHAPE_ISLIDER,mxShapeMockupiSlider);
4987Graph.handleFactory[mxMockupC.SHAPE_ISLIDER]=function(a){return[Graph.createHandle(a,["barPos"],function(a){var d=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"barPos",.4))));return new mxPoint(a.x+d*a.width/100,a.y+a.height/2)},function(a,e){this.state.style.barPos=Math.round(100*Math.max(0,Math.min(100,100*(e.x-a.x)/a.width)))/100})]};function mxShapeMockupiProgressBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
4988mxUtils.extend(mxShapeMockupiProgressBar,mxShape);mxShapeMockupiProgressBar.prototype.customProperties=[{name:"barPos",dispName:"Handle Position",type:"float",min:0,defVal:40}];mxShapeMockupiProgressBar.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.setShadow(!1);this.foreground(a,b,c)};
4989mxShapeMockupiProgressBar.prototype.foreground=function(a,d,e){a.setStrokeWidth(.5);a.setGradient("#444444","#ffffff",0,.5*e-2.5,d,5,mxConstants.DIRECTION_SOUTH,1,1);a.roundrect(0,.5*e-2.5,d,5,2.5,2.5);a.fill();var b=mxUtils.getValue(this.style,mxMockupC.BAR_POS,"80"),b=Math.min(b,100),b=Math.max(b,0);d=0+(d-0)*b/100;a.setGradient("#96D1FF","#003377",2.5,.5*e-2.5,d-2.5,5,mxConstants.DIRECTION_SOUTH,1,1);a.begin();a.moveTo(d,.5*e-2.5);a.arcTo(2.5,2.5,0,0,1,d,.5*e+2.5);a.lineTo(2.5,.5*e+2.5);a.arcTo(2.5,
49902.5,0,0,1,2.5,.5*e-2.5);a.close();a.fill()};mxCellRenderer.registerShape(mxMockupC.SHAPE_IPROGRESS_BAR,mxShapeMockupiProgressBar);Graph.handleFactory[mxMockupC.SHAPE_IPROGRESS_BAR]=function(a){return[Graph.createHandle(a,["barPos"],function(a){var d=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"barPos",.4))));return new mxPoint(a.x+d*a.width/100,a.y+a.height/2)},function(a,e){this.state.style.barPos=Math.round(100*Math.max(0,Math.min(100,100*(e.x-a.x)/a.width)))/100})]};
4991function mxShapeMockupiCloudProgressBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiCloudProgressBar,mxShape);mxShapeMockupiCloudProgressBar.prototype.customProperties=[{name:"barPos",dispName:"Handle Position",type:"float",min:0,defVal:20}];mxShapeMockupiCloudProgressBar.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.setShadow(!1);this.foreground(a,b,c)};
4992mxShapeMockupiCloudProgressBar.prototype.foreground=function(a,d,e){a.setStrokeWidth(.5);a.setFillColor("#5C6E86");a.rect(0,.5*e-2.5,d,5);a.fill();var b=mxUtils.getValue(this.style,mxMockupC.BAR_POS,"80"),b=Math.min(b,100),b=Math.max(b,0);d=0+(d-0)*b/100;a.setFillColor("#8AD155");a.rect(0,.5*e-2.5,d,5);a.fill()};mxCellRenderer.registerShape(mxMockupC.SHAPE_ICLOUD_PROGRESS_BAR,mxShapeMockupiCloudProgressBar);
4993Graph.handleFactory[mxMockupC.SHAPE_ICLOUD_PROGRESS_BAR]=function(a){return[Graph.createHandle(a,["barPos"],function(a){var d=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"barPos",.4))));return new mxPoint(a.x+d*a.width/100,a.y+a.height/2)},function(a,e){this.state.style.barPos=Math.round(100*Math.max(0,Math.min(100,100*(e.x-a.x)/a.width)))/100})]};
4994function mxShapeMockupiDownloadBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiDownloadBar,mxShape);mxShapeMockupiDownloadBar.prototype.customProperties=[{name:"barPos",dispName:"Handle Position",type:"float",min:0,defVal:30}];
4995mxShapeMockupiDownloadBar.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.setGradient("#00ccff","#0066cc",0,0,b,c,mxConstants.DIRECTION_SOUTH,1,1);a.rect(0,0,b,c);a.fill();a.setShadow(!1);this.foreground(a,b,c)};
4996mxShapeMockupiDownloadBar.prototype.foreground=function(a,d,e){var b=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"");a.setFontColor("#ffffff");a.setFontStyle(mxConstants.FONT_BOLD);a.setFontSize(8);a.text(.5*d,.2*e,0,0,b,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);var c=mxUtils.getValue(this.style,mxMockupC.BAR_POS,"80"),c=Math.min(c,100),c=Math.max(c,0),b=.1*d,c=b+(d-2*b)*c/100;a.setStrokeWidth(.5);a.setGradient("#96D1FF","#003377",b,.65*e-2.5,d-2*b,5,mxConstants.DIRECTION_NORTH,
49971,1);a.roundrect(b,.65*e-2.5,d-2*b,5,2.5,2.5);a.fill();a.setGradient("#aaaaaa","#ffffff",b+2.5,.65*e-2.5,c-b-2.5,5,mxConstants.DIRECTION_NORTH,1,1);a.begin();a.moveTo(c,.65*e-2.5);a.arcTo(2.5,2.5,0,0,1,c,.65*e+2.5);a.lineTo(b+2.5,.65*e+2.5);a.arcTo(2.5,2.5,0,0,1,b+2.5,.65*e-2.5);a.close();a.fill()};mxCellRenderer.registerShape(mxMockupC.SHAPE_IDOWNLOAD_BAR,mxShapeMockupiDownloadBar);
4998Graph.handleFactory[mxMockupC.SHAPE_IDOWNLOAD_BAR]=function(a){return[Graph.createHandle(a,["barPos"],function(a){var d=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"barPos",40))));return new mxPoint(a.x+.1*a.width+d*a.width*.8/100,a.y+.65*a.height)},function(a,e){this.state.style.barPos=Math.round(100*Math.max(0,Math.min(100,100*(e.x-.1*a.width-a.x)/(.8*a.width))))/100})]};
4999function mxShapeMockupiScreenNameBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiScreenNameBar,mxShape);mxShapeMockupiScreenNameBar.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.setStrokeWidth(.5);d=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"#00ff00");a.setFillColor(d);a.rect(0,0,b,c);a.fill();a.setShadow(!1);this.foreground(a,b,c,5)};
5000mxShapeMockupiScreenNameBar.prototype.foreground=function(a,d,e,b){b=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR3,"#00ff00");a.setGradient(b,b,0,0,d,.5*e,mxConstants.DIRECTION_SOUTH,.8,.1);a.rect(0,0,d,.5*e);a.fill();b=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"");var c=mxUtils.getValue(this.style,mxMockupC.STYLE_TEXTCOLOR,"#00ff00");a.setFontColor(c);a.setFontSize(9.5);a.text(.5*d,.45*e,0,0,b,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};
5001mxCellRenderer.registerShape(mxMockupC.SHAPE_ISCREEN_NAME_BAR,mxShapeMockupiScreenNameBar);function mxShapeMockupiIconGrid(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiIconGrid,mxShape);mxShapeMockupiIconGrid.prototype.customProperties=[{name:"gridSize",dispName:"Grid Size",type:"string"}];
5002mxShapeMockupiIconGrid.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=mxUtils.getValue(this.style,mxMockupC.GRID_SIZE,"3,3").toString().split(",");this.background(a,b,c,d);a.setShadow(!1);this.foreground(a,b,c,d)};
5003mxShapeMockupiIconGrid.prototype.background=function(a,d,e,b){var c=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#00ff00"),f=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#00ff00");a.setStrokeColor(f);a.setFillColor(c);d/=parseInt(b[0],10)+.5*(b[0]-1);e/=parseInt(b[1],10)+.5*(b[1]-1);for(c=0;c<b[0];c++)for(f=0;f<b[1];f++)a.rect(1.5*d*c,1.5*e*f,d,e),a.fillAndStroke()};
5004mxShapeMockupiIconGrid.prototype.foreground=function(a,d,e,b){d/=parseInt(b[0],10)+.5*(b[0]-1);e/=parseInt(b[1],10)+.5*(b[1]-1);for(var c=0;c<b[0];c++)for(var f=0;f<b[1];f++)a.begin(),a.moveTo(1.5*d*c,1.5*e*f),a.lineTo(1.5*d*c+d,1.5*e*f+e),a.moveTo(1.5*d*c+d,1.5*e*f),a.lineTo(1.5*d*c,1.5*e*f+e),a.stroke()};mxCellRenderer.registerShape(mxMockupC.SHAPE_IICON_GRID,mxShapeMockupiIconGrid);
5005function mxShapeMockupiCopy(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiCopy,mxShape);mxShapeMockupiCopy.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c,5);a.setShadow(!1);this.foreground(a,b,c,5)};
5006mxShapeMockupiCopy.prototype.background=function(a,d,e,b){a.begin();a.moveTo(0,b);a.arcTo(b,b,0,0,1,b,0);a.lineTo(d-b,0);a.arcTo(b,b,0,0,1,d,b);a.lineTo(d,e-b-7.5);a.arcTo(b,b,0,0,1,d-b,e-7.5);a.lineTo(.5*d+7.5,e-7.5);a.lineTo(.5*d,e);a.lineTo(.5*d-7.5,e-7.5);a.lineTo(b,e-7.5);a.arcTo(b,b,0,0,1,0,e-b-7.5);a.close();a.fillAndStroke()};
5007mxShapeMockupiCopy.prototype.foreground=function(a,d,e,b){var c=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR3,"#00ff00");a.setGradient(c,c,0,0,d,.5*e,mxConstants.DIRECTION_SOUTH,.8,.1);a.begin();a.moveTo(0,b);a.arcTo(b,b,0,0,1,b,0);a.lineTo(d-b,0);a.arcTo(b,b,0,0,1,d,b);a.lineTo(d,.5*(e-7.5));a.lineTo(0,.5*(e-7.5));a.close();a.fill();b=mxUtils.getValue(this.style,mxMockupC.BUTTON_TEXT,"");c=mxUtils.getValue(this.style,mxMockupC.STYLE_TEXTCOLOR,"#00ff00");a.setFontColor(c);a.setFontSize(8.5);
5008a.text(.5*d,.45*(e-7.5),0,0,b,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape(mxMockupC.SHAPE_ICOPY,mxShapeMockupiCopy);function mxShapeMockupiCopyArea(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiCopyArea,mxShape);mxShapeMockupiCopyArea.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c,5);a.setShadow(!1);this.foreground(a,b,c,5)};
5009mxShapeMockupiCopyArea.prototype.background=function(a,d,e,b){a.begin();a.moveTo(.5*d-20,0+b);a.arcTo(b,b,0,0,1,.5*d-20+b,0);a.lineTo(.5*d+20-b,0);a.arcTo(b,b,0,0,1,.5*d+20,b);a.lineTo(.5*d+20,20-b);a.arcTo(b,b,0,0,1,.5*d+20-b,20);a.lineTo(.5*d+7.5,20);a.lineTo(.5*d,27.5);a.lineTo(.5*d-7.5,20);a.lineTo(.5*d-20+b,20);a.arcTo(b,b,0,0,1,.5*d-20,20-b);a.close();a.fillAndStroke()};
5010mxShapeMockupiCopyArea.prototype.foreground=function(a,d,e,b){a.setAlpha(.3);a.setFillColor("#2266ff");a.rect(2.5,27.5,d-5,e-30);a.fill();a.setAlpha(1);27.5<e&&(a.setStrokeColor("#ffffff"),a.setGradient("#88ddff","#2266ff",.5*d-2.5,25,5,5,mxConstants.DIRECTION_SOUTH,1,1),a.ellipse(.5*d-2.5,25,5,5),a.fillAndStroke(),a.setGradient("#88ddff","#2266ff",.5*d-2.5,e-5,5,5,mxConstants.DIRECTION_SOUTH,1,1),a.ellipse(.5*d-2.5,e-5,5,5),a.fillAndStroke(),a.setGradient("#88ddff","#2266ff",0,.5*e+10,5,5,mxConstants.DIRECTION_SOUTH,
50111,1),a.ellipse(0,.5*e+10,5,5),a.fillAndStroke(),a.setGradient("#88ddff","#2266ff",d-5,.5*e+10,5,5,mxConstants.DIRECTION_SOUTH,1,1),a.ellipse(d-5,.5*e+10,5,5),a.fillAndStroke());e=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR2,"#00ff00");var c=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#00ff00");a.setFillColor(e);a.setStrokeColor(c);a.begin();a.moveTo(.5*d-20,0+b);a.arcTo(b,b,0,0,1,.5*d-20+b,0);a.lineTo(.5*d+20-b,0);a.arcTo(b,b,0,0,1,.5*d+20,b);a.lineTo(.5*d+20,20-b);a.arcTo(b,
5012b,0,0,1,.5*d+20-b,20);a.lineTo(.5*d+7.5,20);a.lineTo(.5*d,27.5);a.lineTo(.5*d-7.5,20);a.lineTo(.5*d-20+b,20);a.arcTo(b,b,0,0,1,.5*d-20,20-b);a.close();a.fillAndStroke();e=mxUtils.getValue(this.style,mxMockupC.STYLE_FILLCOLOR3,"#00ff00");a.setGradient(e,e,.5*d-20,0,40,10,mxConstants.DIRECTION_SOUTH,.8,.1);a.begin();a.moveTo(.5*d-20,b);a.arcTo(b,b,0,0,1,.5*d-20+b,0);a.lineTo(.5*d+20-b,0);a.arcTo(b,b,0,0,1,.5*d+20,b);a.lineTo(.5*d+20,10);a.lineTo(.5*d-20,10);a.close();a.fill();b=mxUtils.getValue(this.style,
5013mxMockupC.BUTTON_TEXT,"");e=mxUtils.getValue(this.style,mxMockupC.STYLE_TEXTCOLOR,"#00ff00");a.setFontColor(e);a.setFontSize(8.5);a.text(.5*d,8.75,0,0,b,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape(mxMockupC.SHAPE_ICOPY_AREA,mxShapeMockupiCopyArea);function mxShapeMockupiHomePageControl(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiHomePageControl,mxShape);
5014mxShapeMockupiHomePageControl.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#000000");e=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");a.setStrokeColor(e);a.setFillColor(d);d=Math.min(.5*c,.05*b);a.ellipse(.35*b-d,.5*c-d,2*d,2*d);a.fill();a.ellipse(.65*b-d,.5*c-d,2*d,2*d);a.fill();a.ellipse(b-2*d,.5*c-d,2*d,2*d);a.fill();a.ellipse(.2*d,.5*c-.8*d,1.2*d,1.2*d);a.stroke();a.begin();a.moveTo(1.15*d,.5*c+
5015.25*d);a.lineTo(1.6*d,.5*c+.8*d);a.stroke()};mxCellRenderer.registerShape(mxMockupC.SHAPE_IHOME_PAGE_CONTROL,mxShapeMockupiHomePageControl);function mxShapeMockupiPageControl(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiPageControl,mxShape);
5016mxShapeMockupiPageControl.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#000000");e=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");var f=Math.min(.5*c,.05*b);a.setFillColor(e);a.ellipse(0,.5*c-f,2*f,2*f);a.fill();a.setFillColor(d);a.ellipse(.35*b-f,.5*c-f,2*f,2*f);a.fill();a.ellipse(.65*b-f,.5*c-f,2*f,2*f);a.fill();a.ellipse(b-2*f,.5*c-f,2*f,2*f);a.fill()};
5017mxCellRenderer.registerShape(mxMockupC.SHAPE_IPAGE_CONTROL,mxShapeMockupiPageControl);function mxShapeMockupiPad(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupiPad,mxShape);
5018mxShapeMockupiPad.prototype.customProperties=[{name:"bgStyle",dispName:"Background",type:"enum",enumList:[{val:"bgGreen",dispName:"Green"},{val:"bgWhite",dispName:"White"},{val:"bgGray",dispName:"Gray"},{val:"bgFlat",dispName:"Flat"},{val:"bgMap",dispName:"Map"},{val:"bgStriped",dispName:"Striped"}]}];mxShapeMockupiPad.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c,25);a.setShadow(!1);this.foreground(a,d,e,b,c,25)};
5019mxShapeMockupiPad.prototype.background=function(a,d,e,b,c,f){a.setFillColor("#000000");a.setStrokeColor("#000000");a.roundrect(0,0,b,c,f,f);a.fillAndStroke()};
5020mxShapeMockupiPad.prototype.foreground=function(a,d,e,b,c,f){a.setStrokeWidth(1.5);a.setStrokeColor("#999999");a.begin();a.setStrokeColor("none");a.setFillColor("#808080");a.setGradient("#808080","#000000",.325*b,0,.675*b,.5*c,mxConstants.DIRECTION_SOUTH,1,1);a.moveTo(.325*b,0);a.lineTo(b-f,0);a.arcTo(f,f,0,0,1,b,f);a.lineTo(b,.5*c);a.lineTo(.7*b,.5*c);a.close();a.fillAndStroke();a.begin();a.setFillColor("#1f2923");a.setStrokeColor("#18211b");a.setStrokeWidth(1);d=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,
5021"");e=mxUtils.getValue(this.style,mxMockupC.BG_STYLE,mxMockupC.BG_FLAT_GREEN);a.setStrokeWidth(1);if(e===mxMockupC.BG_FLAT_WHITE)a.setFillColor("#ffffff"),a.rect(.0928*b,.08*c,.8144*b,.816*c),a.fill();else if(e===mxMockupC.BG_FLAT_GREEN)a.setFillColor("#1f2923"),a.rect(.0928*b,.08*c,.8144*b,.816*c),a.fill();else if(e===mxMockupC.BG_FLAT_GRAY)a.setFillColor("#dddddd"),a.rect(.0928*b,.08*c,.8144*b,.816*c),a.fill();else if(e===mxMockupC.BG_FLAT_CUSTOM)a.setFillColor(d),a.rect(.0928*b,.08*c,.8144*b,.816*
5022c),a.fill();else if(e===mxMockupC.BG_STRIPED){d=b;e=c;a.translate(.0928*b,.08*c);b*=.8144;c*=.816;a.setFillColor("#5D7585");a.rect(0,0,b,c);a.fillAndStroke();a.setStrokeColor("#657E8F");var g=7;for(a.begin();g<b;)a.moveTo(g,0),a.lineTo(g,c),g+=7;a.stroke();a.setStrokeColor("#18211b");a.begin();a.rect(0,0,b,c);a.stroke();b=d;c=e;a.translate(.0928*-b,.08*-c)}else e===mxMockupC.BG_MAP&&(d=b,e=c,a.translate(.0928*b,.08*c),b*=.8144,c*=.816,a.setFillColor("#ffffff"),a.rect(0,0,b,c),a.fillAndStroke(),a.setFillColor("#96D1FF"),
5023a.setStrokeColor("#008cff"),a.setStrokeWidth(.5),a.begin(),a.moveTo(0,0),a.lineTo(.1171*b,0),a.lineTo(.1136*b,.0438*c),a.lineTo(.0993*b,.054*c),a.lineTo(0,.0446*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.1993*b,0),a.lineTo(.1914*b,.03884*c),a.lineTo(.1536*b,.0362*c),a.lineTo(.1586*b,0),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.24*b,0),a.lineTo(.2257*b,.054*c),a.lineTo(.2414*b,.0674*c),a.lineTo(.4707*b,.0835*c),a.lineTo(.5264*b,.0906*c),a.lineTo(.6429*b,.0929*c),a.arcTo(.0857*b,.0536*
5024c,0,0,0,.7193*b,.0621*c),a.arcTo(.48*b,.2143*c,0,0,0,.7286*b,0),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.8*b,0),a.lineTo(.7886*b,.04554*c),a.arcTo(.0857*b,.0536*c,0,0,0,.8164*b,.0875*c),a.arcTo(.1429*b,.0893*c,0,0,0,.88*b,.1036*c),a.lineTo(b,.1112*c),a.lineTo(b,0),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(0,.0933*c),a.lineTo(.08*b,.1036*c),a.lineTo(.1021*b,.1246*c),a.lineTo(.1007*b,.1768*c),a.lineTo(.0471*b,.2241*c),a.lineTo(0,.2527*c),a.close(),a.fillAndStroke(),a.ellipse(.1214*b,.0603*
5025c,.0843*b,.0576*c),a.fillAndStroke(),a.begin(),a.moveTo(.1293*b,.1924*c),a.lineTo(.1729*b,.142*c),a.lineTo(.1407*b,.1411*c),a.lineTo(.14*b,.1777*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.4586*b,.1241*c),a.lineTo(.455*b,.1835*c),a.lineTo(.3893*b,.2246*c),a.lineTo(.2171*b,.1362*c),a.lineTo(.2171*b,.1308*c),a.lineTo(.2293*b,.1214*c),a.lineTo(.2857*b,.1174*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.5079*b,.1134*c),a.lineTo(.7307*b,.1223*c),a.lineTo(.7279*b,.1625*c),a.lineTo(.715*b,.1772*
5026c),a.lineTo(.6929*b,.1688*c),a.lineTo(.625*b,.1795*c),a.lineTo(.4779*b,.2835*c),a.lineTo(.395*b,.2299*c),a.lineTo(.4657*b,.1826*c),a.lineTo(.4707*b,.1223*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(b,.1362*c),a.lineTo(.7643*b,.1237*c),a.lineTo(.7543*b,.1562*c),a.lineTo(.7643*b,.1585*c),a.lineTo(.9186*b,.2366*c),a.lineTo(b,.1732*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.2079*b,.1545*c),a.lineTo(.3886*b,.2536*c),a.lineTo(.3414*b,.2933*c),a.lineTo(.1743*b,.1969*c),a.close(),a.fillAndStroke(),
5027a.begin(),a.moveTo(.1579*b,.2134*c),a.lineTo(.3221*b,.3067*c),a.lineTo(.2957*b,.3237*c),a.lineTo(.1157*b,.2424*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.405*b,.2656*c),a.lineTo(.31*b,.3353*c),a.lineTo(.3693*b,.3661*c),a.lineTo(.4571*b,.2982*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.7121*b,.1848*c),a.lineTo(.6879*b,.1754*c),a.lineTo(.6329*b,.1844*c),a.lineTo(.61*b,.2018*c),a.lineTo(.6207*b,.2085*c),a.lineTo(.4986*b,.2982*c),a.lineTo(.535*b,.3237*c),a.close(),a.fillAndStroke(),a.begin(),
5028a.moveTo(.5557*b,.3379*c),a.lineTo(.7464*b,.1826*c),a.lineTo(.8036*b,.2076*c),a.lineTo(.595*b,.3616*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.8293*b,.2188*c),a.lineTo(.8979*b,.2509*c),a.lineTo(.6936*b,.4125*c),a.lineTo(.6171*b,.3737*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(b,.2138*c),a.lineTo(.6821*b,.4603*c),a.lineTo(.815*b,.5277*c),a.lineTo(b,.4*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(0,.317*c),a.lineTo(.0971*b,.2554*c),a.lineTo(.4121*b,.4143*c),a.lineTo(.3736*b,.4415*
5029c),a.lineTo(.315*b,.4076*c),a.lineTo(.3093*b,.4116*c),a.lineTo(.3686*b,.4455*c),a.lineTo(.285*b,.5045*c),a.lineTo(.1114*b,.4134*c),a.lineTo(.025*b,.4603*c),a.lineTo(.0371*b,.4723*c),a.lineTo(.1114*b,.4371*c),a.lineTo(.2871*b,.5312*c),a.lineTo(.1929*b,.6058*c),a.lineTo(.2271*b,.6705*c),a.lineTo(.17*b,.7147*c),a.lineTo(.0314*b,.6321*c),a.lineTo(0,.6246*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.48*b,.3121*c),a.lineTo(.5157*b,.3375*c),a.lineTo(.4314*b,.3982*c),a.lineTo(.3929*b,.3786*c),a.close(),
5030a.fillAndStroke(),a.begin(),a.moveTo(.3086*b,.5179*c),a.lineTo(.53*b,.3518*c),a.lineTo(.5757*b,.3745*c),a.lineTo(.3479*b,.5411*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.5964*b,.3884*c),a.lineTo(.6736*b,.4277*c),a.lineTo(.445*b,.5991*c),a.lineTo(.3664*b,.5531*c),a.lineTo(.5057*b,.4545*c),a.lineTo(.5507*b,.4754*c),a.lineTo(.5571*b,.4723*c),a.lineTo(.5114*b,.4504*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.4793*b,.6161*c),a.lineTo(.6771*b,.4643*c),a.lineTo(.8086*b,.5326*c),a.lineTo(.7471*
5031b,.5817*c),a.lineTo(.7214*b,.567*c),a.lineTo(.715*b,.571*c),a.lineTo(.7421*b,.5871*c),a.lineTo(.6014*b,.6933*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(b,.4371*c),a.lineTo(.8443*b,.546*c),a.lineTo(.9071*b,.5701*c),a.lineTo(b,.5022*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.8407*b,.5504*c),a.lineTo(.8993*b,.5759*c),a.lineTo(.6757*b,.7416*c),a.lineTo(.6286*b,.7139*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(b,.5321*c),a.lineTo(.6979*b,.7549*c),a.lineTo(.7457*b,.7781*c),a.lineTo(.9814*
5032b,.6094*c),a.lineTo(b,.6067*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(b,.6254*c),a.lineTo(.7664*b,.792*c),a.lineTo(.9586*b,.9062*c),a.lineTo(b,.8786*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.3093*b,.5464*c),a.lineTo(.4271*b,.6152*c),a.lineTo(.245*b,.7643*c),a.lineTo(.185*b,.7228*c),a.lineTo(.2493*b,.6728*c),a.lineTo(.2214*b,.6143*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(0,.65*c),a.lineTo(.2179*b,.7826*c),a.lineTo(.1136*b,.8424*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(0,
5033.7272*c),a.lineTo(.0821*b,.859*c),a.lineTo(0,.9085*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.4529*b,.6366*c),a.lineTo(.575*b,.7143*c),a.lineTo(.39*b,.8621*c),a.lineTo(.2657*b,.7902*c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(0,.9415*c),a.lineTo(.1036*b,.8821*c),a.lineTo(.2343*b,.959*c),a.lineTo(.1721*b,c),a.lineTo(0,c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.2586*b,.7951*c),a.lineTo(.3829*b,.8674*c),a.lineTo(.2543*b,.9451*c),a.lineTo(.1279*b,.8692*c),a.close(),a.fillAndStroke(),
5034a.begin(),a.moveTo(.2836*b,.9639*c),a.lineTo(.4207*b,.8772*c),a.lineTo(.605*b,.7321*c),a.lineTo(.6521*b,.7634*c),a.lineTo(.3486*b,c),a.lineTo(.3393*b,c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.3879*b,c),a.lineTo(.6721*b,.7759*c),a.lineTo(.7171*b,.7982*c),a.lineTo(.4564*b,c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.4986*b,c),a.lineTo(.7386*b,.8125*c),a.lineTo(.9307*b,.925*c),a.lineTo(.8264*b,c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.8671*b,c),a.lineTo(.9464*b,.9491*c),a.lineTo(b,
5035.975*c),a.lineTo(b,c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.2295*b,c),a.lineTo(.2648*b,.9792*c),a.lineTo(.2981*b,c),a.close(),a.fillAndStroke(),b=d,c=e,a.translate(.0928*-b,.08*-c));a.setStrokeWidth(1);a.setStrokeColor("#18211b");a.rect(.0928*b,.08*c,.8144*b,.816*c);a.stroke();a.setStrokeWidth(1.5);a.setAlpha(.8);a.setStrokeColor("#dddddd");a.begin();a.moveTo(0,f);a.arcTo(f,f,0,0,1,f,0);a.lineTo(b-f,0);a.arcTo(f,f,0,0,1,b,f);a.lineTo(b,c-f);a.arcTo(f,f,0,0,1,b-f,c);a.lineTo(f,c);a.arcTo(f,
5036f,0,0,1,0,c-f);a.close();a.stroke();f=22.5;a.begin();a.setStrokeColor("#666666");a.begin();a.moveTo(2.5,2.5+f);a.arcTo(f,f,0,0,1,2.5+f,2.5);a.lineTo(b-f-5,2.5);a.arcTo(f,f,0,0,1,b-2.5,f+2.5);a.lineTo(b-2.5,c-f-2.5);a.arcTo(f,f,0,0,1,b-f-2.5,c-2.5);a.lineTo(f+2.5,c-2.5);a.arcTo(f,f,0,0,1,2.5,c-f-2.5);a.close();a.stroke();a.setAlpha(1);a.ellipse(.4948*b,.0444*c,.0103*b,.008*c);a.setStrokeWidth(2.5);a.setStrokeColor("#000000");a.setFillColor("#000099");a.fillAndStroke();a.setGradient("#bbbbbb","#000000",
5037.4588*b,.912*c,.0825*b,.064*c,mxConstants.DIRECTION_SOUTH,1,1);a.ellipse(.4588*b,.912*c,.0825*b,.064*c);a.fill();a.setAlpha(.5);a.ellipse(.4588*b,.912*c,.0825*b,.064*c);a.stroke();a.begin();a.setAlpha(.85);a.setFillColor("#000000");a.moveTo(.4598*b,.944*c);a.arcTo(.0402*b,.0296*c,0,0,1,.5402*b,.944*c);a.arcTo(.0825*b,.064*c,0,0,1,.4598*b,.944*c);a.close();a.fillAndStroke();a.begin();a.setAlpha(.7);a.setStrokeWidth(1.5);a.setStrokeColor("#dddddd");a.roundrect(.4814*b,.9296*c,.0371*b,.0288*c,.00515*
5038c,.004*c);a.stroke()};mxCellRenderer.registerShape(mxMockupC.SHAPE_IPAD,mxShapeMockupiPad);function mxShapeMockupRRect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupRRect,mxShape);mxShapeMockupRRect.prototype.cst={RRECT:"mxgraph.ios.rrect",R_SIZE:"rSize"};mxShapeMockupRRect.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:5}];
5039mxShapeMockupRRect.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeMockupRRect.prototype.cst.R_SIZE,"10"));a.roundrect(0,0,b,c,d);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeMockupRRect.prototype.cst.RRECT,mxShapeMockupRRect);function mxShapeIosTopButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeIosTopButton,mxShape);
5040mxShapeIosTopButton.prototype.cst={TOP_BUTTON:"mxgraph.ios.topButton",R_SIZE:"rSize"};mxShapeIosTopButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:5}];mxShapeIosTopButton.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeIosTopButton.prototype.cst.R_SIZE,"10"));a.begin();a.moveTo(0,d);a.arcTo(d,d,0,0,1,d,0);a.lineTo(b-d,0);a.arcTo(d,d,0,0,1,b,d);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fillAndStroke()};
5041mxCellRenderer.registerShape(mxShapeIosTopButton.prototype.cst.TOP_BUTTON,mxShapeIosTopButton);function mxShapeIosBottomButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeIosBottomButton,mxShape);mxShapeIosBottomButton.prototype.cst={BOTTOM_BUTTON:"mxgraph.ios.bottomButton",R_SIZE:"rSize"};mxShapeIosBottomButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:5}];
5042mxShapeIosBottomButton.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeIosBottomButton.prototype.cst.R_SIZE,"10"));a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,c-d);a.arcTo(d,d,0,0,1,b-d,c);a.lineTo(d,c);a.arcTo(d,d,0,0,1,0,c-d);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeIosBottomButton.prototype.cst.BOTTOM_BUTTON,mxShapeIosBottomButton);function mxShapeIosAnchor(a,d,e,b){mxShape.call(this);this.bounds=a}
5043mxUtils.extend(mxShapeIosAnchor,mxShape);mxShapeIosAnchor.prototype.cst={ANCHOR:"mxgraph.ios.anchor"};mxShapeIosAnchor.prototype.paintVertexShape=function(a,d,e,b,c){};mxCellRenderer.registerShape(mxShapeIosAnchor.prototype.cst.ANCHOR,mxShapeIosAnchor);function mxShapeIosCheckbox(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeIosCheckbox,mxShape);mxShapeIosCheckbox.prototype.cst={CHECKBOX:"mxgraph.ios.checkbox"};
5044mxShapeIosCheckbox.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.rect(0,0,b,c);a.fillAndStroke();a.begin();a.moveTo(.8*b,.2*c);a.lineTo(.4*b,.8*c);a.lineTo(.25*b,.6*c);a.stroke()};mxCellRenderer.registerShape(mxShapeIosCheckbox.prototype.cst.CHECKBOX,mxShapeIosCheckbox);function mxShapeMockupFancyRRect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeMockupFancyRRect,mxShape);
5045mxShapeMockupFancyRRect.prototype.cst={FANCY_RRECT:"mxgraph.ios.fancyRRect",R_SIZE:"rSize"};mxShapeMockupFancyRRect.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:8}];
5046mxShapeMockupFancyRRect.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeMockupFancyRRect.prototype.cst.R_SIZE,"10"));e=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff");var f=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");a.roundrect(0,0,b,c,d);a.fillAndStroke();a.setShadow(!1);a.setStrokeColor(e);a.setGradient(e,"#ffffff",0,0,b,22.5,mxConstants.DIRECTION_SOUTH,1,1);a.setAlpha(.3);a.begin();a.moveTo(b-
5047d,0);a.arcTo(d,d,0,0,1,b,d);a.lineTo(b,17.5);a.arcTo(1.67*b,2.5*c,0,0,1,0,17.5);a.lineTo(0,d);a.arcTo(d,d,0,0,1,d,0);a.close();a.fillAndStroke();a.setAlpha(.8);a.setStrokeColor(f);a.setStrokeWidth(1);a.roundrect(0,0,b,c,d,d);a.stroke()};mxCellRenderer.registerShape(mxShapeMockupFancyRRect.prototype.cst.FANCY_RRECT,mxShapeMockupFancyRRect);function mxShapeAws3dArrowNE(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
5048mxUtils.extend(mxShapeAws3dArrowNE,mxShape);mxShapeAws3dArrowNE.prototype.cst={ARROW_NE:"mxgraph.aws3d.arrowNE"};mxShapeAws3dArrowNE.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(b-17,8);a.lineTo(b-21,5.5);a.lineTo(b,0);a.lineTo(b-9.7,12.2);a.lineTo(b-13.9,9.8);a.lineTo(9.7,c-3.5);a.arcTo(6,3,0,0,1,9,c-.4);a.arcTo(5.2,3,0,0,1,1,c-1.4);a.arcTo(6,2.8,0,0,1,3,c-5.4);a.arcTo(5,3,0,0,1,6.7,c-5.2);a.close();a.fillAndStroke()};
5049mxCellRenderer.registerShape(mxShapeAws3dArrowNE.prototype.cst.ARROW_NE,mxShapeAws3dArrowNE);function mxShapeAws3dArrowSE(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dArrowSE,mxShape);mxShapeAws3dArrowSE.prototype.cst={ARROW_SE:"mxgraph.aws3d.arrowSE"};
5050mxShapeAws3dArrowSE.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(b-17,c-8);a.lineTo(b-21,c-5.5);a.lineTo(b,c);a.lineTo(b-9.7,c-12.2);a.lineTo(b-13.9,c-9.8);a.lineTo(9.7,3.5);a.arcTo(6,3,0,0,0,9,.4);a.arcTo(5.2,3,0,0,0,1,1.4);a.arcTo(6,2.8,0,0,0,3,5.4);a.arcTo(5,3,0,0,0,6.7,5.2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeAws3dArrowSE.prototype.cst.ARROW_SE,mxShapeAws3dArrowSE);
5051function mxShapeAws3dArrowSW(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dArrowSW,mxShape);mxShapeAws3dArrowSW.prototype.cst={ARROW_SW:"mxgraph.aws3d.arrowSW"};
5052mxShapeAws3dArrowSW.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(17,c-8);a.lineTo(21,c-5.5);a.lineTo(0,c);a.lineTo(9.7,c-12.2);a.lineTo(13.9,c-9.8);a.lineTo(b-9.7,3.5);a.arcTo(6,3,0,0,1,b-9,.4);a.arcTo(5.2,3,0,0,1,b-1,1.4);a.arcTo(6,2.8,0,0,1,b-3,5.4);a.arcTo(5,3,0,0,1,b-6.7,5.2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeAws3dArrowSW.prototype.cst.ARROW_SW,mxShapeAws3dArrowSW);
5053function mxShapeAws3dArrowNW(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dArrowNW,mxShape);mxShapeAws3dArrowNW.prototype.cst={ARROW_NW:"mxgraph.aws3d.arrowNW"};
5054mxShapeAws3dArrowNW.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(17,8);a.lineTo(21,5.5);a.lineTo(0,0);a.lineTo(9.7,12.2);a.lineTo(13.9,9.8);a.lineTo(b-9.7,c-3.5);a.arcTo(6,3,0,0,0,b-9,c-.4);a.arcTo(5.2,3,0,0,0,b-1,c-1.4);a.arcTo(6,2.8,0,0,0,b-3,c-5.4);a.arcTo(5,3,0,0,0,b-6.7,c-5.2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeAws3dArrowNW.prototype.cst.ARROW_NW,mxShapeAws3dArrowNW);
5055function mxShapeAws3dArrowlessNE(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dArrowlessNE,mxShape);mxShapeAws3dArrowlessNE.prototype.cst={ARROWLESS_NE:"mxgraph.aws3d.arrowlessNE"};
5056mxShapeAws3dArrowlessNE.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(b-3.1,0);a.lineTo(b,1.8);a.lineTo(9.7,c-3.5);a.arcTo(6,3,0,0,1,9,c-.4);a.arcTo(5.2,3,0,0,1,1,c-1.4);a.arcTo(6,2.8,0,0,1,3,c-5.4);a.arcTo(5,3,0,0,1,6.7,c-5.2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeAws3dArrowlessNE.prototype.cst.ARROWLESS_NE,mxShapeAws3dArrowlessNE);
5057function mxShapeAws3dDashedEdgeDouble(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dDashedEdgeDouble,mxShape);mxShapeAws3dDashedEdgeDouble.prototype.cst={DASHED_EDGE_DOUBLE:"mxgraph.aws3d.dashedEdgeDouble"};
5058mxShapeAws3dDashedEdgeDouble.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.setFillColor("#2D6195");a.save();a.setStrokeColor("none");a.begin();a.moveTo(21,5.5);a.lineTo(0,0);a.lineTo(9.7,12.2);a.fillAndStroke();a.begin();a.moveTo(b-21,c-5.5);a.lineTo(b,c);a.lineTo(b-9.7,c-12.2);a.fillAndStroke();a.restore();a.setStrokeColor("#2D6195");a.setStrokeWidth("4");a.setDashed("true");a.setLineCap("round");a.begin();a.moveTo(7.675,4.425);a.lineTo(b-7.675,c-4.425);a.stroke()};
5059mxCellRenderer.registerShape(mxShapeAws3dDashedEdgeDouble.prototype.cst.DASHED_EDGE_DOUBLE,mxShapeAws3dDashedEdgeDouble);function mxShapeAws3dDashedArrowlessEdge(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dDashedArrowlessEdge,mxShape);mxShapeAws3dDashedArrowlessEdge.prototype.cst={DASHED_ARROWLESS_EDGE:"mxgraph.aws3d.dashedArrowlessEdge"};
5060mxShapeAws3dDashedArrowlessEdge.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.setStrokeColor("#2D6195");a.setStrokeWidth("4");a.setDashed("true");a.setLineCap("round");a.begin();a.moveTo(0,0);a.lineTo(b,c);a.stroke()};mxCellRenderer.registerShape(mxShapeAws3dDashedArrowlessEdge.prototype.cst.DASHED_ARROWLESS_EDGE,mxShapeAws3dDashedArrowlessEdge);function mxShapeAws3dDashedEdge(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
5061mxUtils.extend(mxShapeAws3dDashedEdge,mxShape);mxShapeAws3dDashedEdge.prototype.cst={DASHED_EDGE:"mxgraph.aws3d.dashedEdge"};
5062mxShapeAws3dDashedEdge.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.setFillColor("#2D6195");a.save();a.setStrokeColor("none");a.begin();a.moveTo(b-21,5.5);a.lineTo(b,0);a.lineTo(b-9.7,12.2);a.fillAndStroke();a.restore();a.setStrokeColor("#2D6195");a.setStrokeWidth("4");a.setDashed("true");a.setLineCap("round");a.begin();a.moveTo(b-7.675,4.425);a.lineTo(0,c);a.stroke()};mxCellRenderer.registerShape(mxShapeAws3dDashedEdge.prototype.cst.DASHED_EDGE,mxShapeAws3dDashedEdge);
5063function mxShapeAws3dFlatEdge(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dFlatEdge,mxShape);mxShapeAws3dFlatEdge.prototype.cst={FLAT_EDGE:"mxgraph.aws3d.flatEdge"};
5064mxShapeAws3dFlatEdge.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.setFillColor("#F4B934");a.setStrokeColor("none");a.begin();a.moveTo(b-46,8.8);a.lineTo(b-61.2,0);a.lineTo(b,0);a.lineTo(b,35.5);a.lineTo(b-15.4,26.5);a.lineTo(30.7,c);a.lineTo(0,c-17.7);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeAws3dFlatEdge.prototype.cst.FLAT_EDGE,mxShapeAws3dFlatEdge);
5065function mxShapeAws3dFlatDoubleEdge(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dFlatDoubleEdge,mxShape);mxShapeAws3dFlatDoubleEdge.prototype.cst={FLAT_DOUBLE_EDGE:"mxgraph.aws3d.flatDoubleEdge"};
5066mxShapeAws3dFlatDoubleEdge.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.setFillColor("#F4B934");a.setStrokeColor("none");a.begin();a.moveTo(15.3,61.9);a.lineTo(30.8,53.2);a.lineTo(15.4,44.2);a.lineTo(0,53.2);a.lineTo(15.4,8.8);a.lineTo(92.1,0);a.lineTo(76.5,8.8);a.lineTo(92.1,17.7);a.lineTo(107.4,8.8);a.lineTo(b-15.3,c-61.9);a.lineTo(b-30.8,c-53.2);a.lineTo(b-15.4,c-44.2);a.lineTo(b,c-53.2);a.lineTo(b-15.4,c-8.8);a.lineTo(b-92.1,c);a.lineTo(b-76.5,c-8.8);a.lineTo(b-92.1,c-17.7);
5067a.lineTo(b-107.4,c-8.8);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeAws3dFlatDoubleEdge.prototype.cst.FLAT_DOUBLE_EDGE,mxShapeAws3dFlatDoubleEdge);function mxShapeAws3dAMI(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dAMI,mxShape);mxShapeAws3dAMI.prototype.cst={AMI:"mxgraph.aws3d.ami",SHADING_COLORS:"shadingCols"};
5068mxShapeAws3dAMI.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));e=parseFloat(mxUtils.getValue(this.state.style,"shadow","0"));d=Math.min(d*b/92,d*c/60);a.setStrokeWidth(d);a.setShadow(!1);a.save();a.save();a.setStrokeWidth(2*d);a.setStrokeColor("#292929");a.setLineJoin("round");1==e&&a.setShadow(!0);a.begin();a.moveTo(0,.6483*c);a.lineTo(.0684*b,.4133*c);a.lineTo(.5326*b,0);a.lineTo(.6685*b,0);a.lineTo(.9359*b,.2367*
5069c);a.lineTo(b,.465*c);a.lineTo(.4*b,c);a.close();a.fillAndStroke();a.restore();a.setFillColor("#000000");e=mxUtils.getValue(this.state.style,mxShapeAws3dAMI.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");var f=mxUtils.getValue(this.state.style,"flipH","0");"0"==f?a.setAlpha(e[0]):a.setAlpha(e[1]);a.begin();a.moveTo(0,.65*c);a.lineTo(.0652*b,.5*c);a.lineTo(.3326*b,.7667*c);a.lineTo(.4663*b,.7667*c);a.lineTo(.4*b,c);a.close();a.fill();"0"==f?a.setAlpha(e[1]):a.setAlpha(e[0]);a.begin();
5070a.moveTo(.4*b,c);a.lineTo(.4641*b,.77*c);a.lineTo(.9326*b,.355*c);a.lineTo(.9347*b,.24*c);a.lineTo(b,.4667*c);a.close();a.fill();a.restore();a.setLineJoin("round");a.begin();a.moveTo(0,.65*c);a.lineTo(.0652*b,.5*c);a.lineTo(.3326*b,.7667*c);a.lineTo(.4663*b,.7667*c);a.lineTo(.4*b,c);a.close();a.stroke();a.begin();a.moveTo(.4*b,c);a.lineTo(.4641*b,.77*c);a.lineTo(.9326*b,.355*c);a.lineTo(.9347*b,.24*c);a.lineTo(b,.4667*c);a.close();a.stroke();a.begin();a.moveTo(.0652*b,.42*c);a.lineTo(.0652*b,.5*c);
5071a.moveTo(.3337*b,.7667*c);a.lineTo(.4*b,c);a.moveTo(.9348*b,.355*c);a.lineTo(b,.4733*c);a.stroke();a.setLineJoin("miter");e=mxUtils.getValue(this.state.style,"strokeColor","#000000");a.setFillColor(e);a.begin();a.moveTo(.1935*b,.42*c);a.lineTo(.5543*b,.0967*c);a.lineTo(.6652*b,.1967*c);a.lineTo(.3*b,.5133*c);a.close();a.moveTo(.2967*b,.4633*c);a.lineTo(.3837*b,.3883*c);a.lineTo(.3326*b,.3417*c);a.lineTo(.2467*b,.42*c);a.close();a.moveTo(.362*b,.32*c);a.lineTo(.412*b,.3633*c);a.lineTo(.5054*b,.2867*
5072c);a.lineTo(.4522*b,.24*c);a.close();a.moveTo(.5293*b,.26*c);a.lineTo(.6109*b,.1933*c);a.lineTo(.5511*b,.145*c);a.lineTo(.4739*b,.2133*c);a.close();a.moveTo(.3528*b,.557*c);a.lineTo(.7137*b,.2337*c);a.lineTo(.8246*b,.3337*c);a.lineTo(.4593*b,.6503*c);a.close();a.moveTo(.4561*b,.6003*c);a.lineTo(.543*b,.5253*c);a.lineTo(.492*b,.4787*c);a.lineTo(.4061*b,.557*c);a.close();a.moveTo(.5213*b,.457*c);a.lineTo(.5713*b,.5003*c);a.lineTo(.6648*b,.4237*c);a.lineTo(.6115*b,.377*c);a.close();a.moveTo(.6887*b,
5073.397*c);a.lineTo(.7702*b,.3303*c);a.lineTo(.7104*b,.282*c);a.lineTo(.6333*b,.3503*c);a.close();a.fill();a.setStrokeWidth(2*d);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.6483*c);a.lineTo(.0684*b,.4133*c);a.lineTo(.5326*b,0);a.lineTo(.6685*b,0);a.lineTo(.9359*b,.2367*c);a.lineTo(b,.465*c);a.lineTo(.4*b,c);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeAws3dAMI.prototype.cst.AMI,mxShapeAws3dAMI);
5074function mxShapeAws3dSnapshot(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dSnapshot,mxShape);mxShapeAws3dSnapshot.prototype.cst={SNAPSHOT:"mxgraph.aws3d.snapshot",SHADING_COLORS:"shadingCols"};
5075mxShapeAws3dSnapshot.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));e=d*b/92;d=d*c/60;var f=parseFloat(mxUtils.getValue(this.state.style,"shadow","0"));d=Math.min(e,d);a.setStrokeWidth(d);a.setShadow(!1);a.save();a.save();a.setStrokeWidth(2*d);a.setStrokeColor("#292929");a.setLineJoin("round");1==f&&a.setShadow(!0);a.begin();a.moveTo(b,.6483*c);a.lineTo(.9316*b,.4133*c);a.lineTo(.4674*b,0);a.lineTo(.3315*b,0);a.lineTo(.0641*
5076b,.2367*c);a.lineTo(0,.465*c);a.lineTo(.6*b,c);a.close();a.fillAndStroke();a.restore();a.setFillColor("#000000");e=mxUtils.getValue(this.state.style,mxShapeAws3dSnapshot.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");f=mxUtils.getValue(this.state.style,"flipH","0");"0"==f?a.setAlpha(e[1]):a.setAlpha(e[0]);a.begin();a.moveTo(b,.65*c);a.lineTo(.9348*b,.52*c);a.lineTo(.6674*b,.7667*c);a.lineTo(.5337*b,.7667*c);a.lineTo(.6*b,c);a.close();a.fill();"0"==f?a.setAlpha(e[0]):a.setAlpha(e[1]);
5077a.begin();a.moveTo(.6*b,c);a.lineTo(.5359*b,.77*c);a.lineTo(.0674*b,.355*c);a.lineTo(.0653*b,.24*c);a.lineTo(0,.4667*c);a.close();a.fill();a.restore();a.setLineJoin("round");a.begin();a.moveTo(b,.65*c);a.lineTo(.9348*b,.52*c);a.lineTo(.6674*b,.7667*c);a.lineTo(.5337*b,.7667*c);a.lineTo(.6*b,c);a.close();a.stroke();a.begin();a.moveTo(.6*b,c);a.lineTo(.5359*b,.77*c);a.lineTo(.0674*b,.355*c);a.lineTo(.0653*b,.24*c);a.lineTo(0,.4667*c);a.close();a.stroke();a.begin();a.moveTo(.9348*b,.42*c);a.lineTo(.9348*
5078b,.52*c);a.moveTo(.6663*b,.7667*c);a.lineTo(.6*b,c);a.moveTo(.0652*b,.355*c);a.lineTo(0,.4733*c);a.stroke();a.setStrokeWidth(2*d);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(b,.6483*c);a.lineTo(.9316*b,.4133*c);a.lineTo(.4674*b,0);a.lineTo(.3315*b,0);a.lineTo(.0641*b,.2367*c);a.lineTo(0,.465*c);a.lineTo(.6*b,c);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeAws3dSnapshot.prototype.cst.SNAPSHOT,mxShapeAws3dSnapshot);
5079function mxShapeAws3dApplication(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dApplication,mxShape);mxShapeAws3dApplication.prototype.cst={APPLICATION:"mxgraph.aws3d.application",SHADING_COLORS:"shadingCols"};
5080mxShapeAws3dApplication.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));e=d*b/62;d=d*c/68.8;var f=parseFloat(mxUtils.getValue(this.state.style,"shadow","0"));d=Math.min(e,d);a.setShadow(!1);a.setStrokeWidth(d);a.save();a.save();a.setStrokeWidth(2*d);a.setStrokeColor("#292929");a.setLineJoin("round");1==f&&a.setShadow(!0);a.begin();a.moveTo(0,.2544*c);a.lineTo(.5*b,0);a.lineTo(b,.2544*c);a.lineTo(b,.7485*c);a.lineTo(.5*
5081b,c);a.lineTo(0,.7485*c);a.close();a.fillAndStroke();a.restore();a.setFillColor("#000000");e=mxUtils.getValue(this.state.style,mxShapeAws3dApplication.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");f=mxUtils.getValue(this.state.style,"flipH","0");"0"==f?a.setAlpha(e[0]):a.setAlpha(e[1]);a.begin();a.moveTo(0,.2544*c);a.lineTo(.5*b,.5015*c);a.lineTo(.5*b,c);a.lineTo(0,.7485*c);a.close();a.fill();"0"==f?a.setAlpha(e[1]):a.setAlpha(e[0]);a.begin();a.moveTo(.5*b,.5015*c);a.lineTo(b,.2544*
5082c);a.lineTo(b,.7485*c);a.lineTo(.5*b,c);a.close();a.fill();a.restore();a.setLineJoin("round");a.begin();a.moveTo(0,.2544*c);a.lineTo(.5*b,.5015*c);a.lineTo(.5*b,c);a.lineTo(0,.7485*c);a.close();a.stroke();a.begin();a.moveTo(.5*b,.5015*c);a.lineTo(b,.2544*c);a.lineTo(b,.7485*c);a.lineTo(.5*b,c);a.close();a.stroke();a.setLineJoin("miter");e=mxUtils.getValue(this.state.style,"strokeColor","#000000");a.setFillColor(e);a.begin();a.moveTo(.6694*b,.0872*c);a.lineTo(.7629*b,.1337*c);a.lineTo(.2661*b,.3882*
5083c);a.lineTo(.2661*b,.5407*c);a.lineTo(.1742*b,.4953*c);a.lineTo(.1742*b,.3459*c);a.close();a.moveTo(.8629*b,.1846*c);a.lineTo(.379*b,.4331*c);a.lineTo(.379*b,.5945*c);a.lineTo(.2855*b,.5494*c);a.lineTo(.2855*b,.3953*c);a.lineTo(.7839*b,.1439*c);a.close();a.fill();a.setStrokeWidth(2*d);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.2544*c);a.lineTo(.5*b,0);a.lineTo(b,.2544*c);a.lineTo(b,.7485*c);a.lineTo(.5*b,c);a.lineTo(0,.7485*c);a.close();a.stroke()};
5084mxCellRenderer.registerShape(mxShapeAws3dApplication.prototype.cst.APPLICATION,mxShapeAws3dApplication);function mxShapeAws3dApplicationServer(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dApplicationServer,mxShape);mxShapeAws3dApplicationServer.prototype.cst={APPLICATION_SERVER:"mxgraph.aws3d.application_server",SHADING_COLORS:"shadingCols"};
5085mxShapeAws3dApplicationServer.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));d=Math.min(d*b/123,d*c/124);this.background(a,0,0,b,c,d);a.setShadow(!1);this.foreground(a,0,0,b,c,d)};
5086mxShapeAws3dApplicationServer.prototype.background=function(a,d,e,b,c,f){a.setStrokeWidth(f);a.save();a.save();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.7236*c);a.lineTo(0,.2863*c);a.lineTo(.5*b,0);a.lineTo(b,.2863*c);a.lineTo(b,.7236*c);a.lineTo(.5*b,c);a.close();a.fillAndStroke()};
5087mxShapeAws3dApplicationServer.prototype.foreground=function(a,d,e,b,c,f){a.restore();a.setShadow(!1);a.setFillColor("#000000");d=mxUtils.getValue(this.state.style,mxShapeAws3dApplicationServer.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");e=mxUtils.getValue(this.state.style,"flipH","0");"0"==e?a.setAlpha(d[0]):a.setAlpha(d[1]);a.begin();a.moveTo(0,.2863*c);a.lineTo(.5*b,.5726*c);a.lineTo(.5*b,c);a.lineTo(0,.7177*c);a.close();a.fill();"0"==e?a.setAlpha(d[1]):a.setAlpha(d[0]);a.begin();
5088a.moveTo(b,.2863*c);a.lineTo(.5*b,.5726*c);a.lineTo(.5*b,c);a.lineTo(b,.7177*c);a.close();a.fill();a.restore();a.setShadow(!1);a.setLineJoin("round");a.begin();a.moveTo(0,.2863*c);a.lineTo(.5*b,.5726*c);a.lineTo(.5*b,c);a.lineTo(0,.7177*c);a.close();a.stroke();a.begin();a.moveTo(b,.2863*c);a.lineTo(.5*b,.5726*c);a.lineTo(.5*b,c);a.lineTo(b,.7177*c);a.close();a.stroke();a.setLineJoin("miter");d=mxUtils.getValue(this.state.style,"strokeColor","#000000");a.setFillColor(d);a.begin();a.moveTo(.374*b,.4435*
5089c);a.arcTo(.0325*b,.0202*c,0,0,1,.374*b,.4153*c);a.lineTo(.4797*b,.3548*c);a.arcTo(.0325*b,.0161*c,0,0,1,.5203*b,.3548*c);a.lineTo(.626*b,.4153*c);a.arcTo(.0325*b,.0202*c,0,0,1,.626*b,.4411*c);a.lineTo(.5203*b,.5016*c);a.arcTo(.0325*b,.0161*c,0,0,1,.4797*b,.5016*c);a.close();a.fill();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.7236*c);a.lineTo(0,.2863*c);a.lineTo(.5*b,0);a.lineTo(b,.2863*c);a.lineTo(b,.7236*c);a.lineTo(.5*b,c);a.close();a.stroke()};
5090mxCellRenderer.registerShape(mxShapeAws3dApplicationServer.prototype.cst.APPLICATION_SERVER,mxShapeAws3dApplicationServer);function mxShapeAws3dCloudFront(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dCloudFront,mxShape);mxShapeAws3dCloudFront.prototype.cst={CLOUDFRONT:"mxgraph.aws3d.cloudfront",SHADING_COLORS:"shadingCols"};
5091mxShapeAws3dCloudFront.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));e=d*b/103.8;d=d*c/169.8;var f=parseFloat(mxUtils.getValue(this.state.style,"shadow","0"));d=Math.min(e,d);a.setShadow(!1);a.setStrokeWidth(d);a.save();a.save();a.setStrokeWidth(2*d);a.setStrokeColor("#292929");a.setLineJoin("round");1==f&&a.setShadow(!0);a.begin();a.moveTo(0,.7915*c);a.lineTo(0,.7491*c);a.lineTo(.0588*b,.7279*c);a.lineTo(.0588*b,
5092.1036*c);a.lineTo(.3526*b,0);a.lineTo(.9422*b,.2073*c);a.lineTo(.9422*b,.8316*c);a.lineTo(b,.8539*c);a.lineTo(b,.894*c);a.lineTo(.7013*b,c);a.lineTo(.5877*b,c);a.close();a.fillAndStroke();a.restore();a.setFillColor("#000000");e=mxUtils.getValue(this.state.style,mxShapeAws3dCloudFront.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");f=mxUtils.getValue(this.state.style,"flipH","0");"0"==f?a.setAlpha(e[0]):a.setAlpha(e[1]);a.begin();a.moveTo(.0588*b,.106*c);a.lineTo(.6474*b,.3121*c);a.lineTo(.6474*
5093b,.9352*c);a.lineTo(.7052*b,c);a.lineTo(.5915*b,c);a.lineTo(0,.7915*c);a.lineTo(0,.7491*c);a.lineTo(.0588*b,.7279*c);a.close();a.fill();"0"==f?a.setAlpha(e[1]):a.setAlpha(e[0]);a.begin();a.moveTo(.6474*b,.3121*c);a.lineTo(.9422*b,.2073*c);a.lineTo(.9422*b,.8363*c);a.lineTo(b,.8539*c);a.lineTo(b,.894*c);a.lineTo(.7013*b,c);a.lineTo(.6474*b,.9305*c);a.close();a.fill();a.restore();a.setLineJoin("round");a.begin();a.moveTo(0,.7915*c);a.lineTo(.0559*b,.7291*c);a.lineTo(.6474*b,.9364*c);a.lineTo(.5896*
5094b,c);a.moveTo(.6493*b,.9364*c);a.lineTo(.9412*b,.8333*c);a.lineTo(b,.894*c);a.stroke();a.begin();a.moveTo(.0588*b,.106*c);a.lineTo(.6474*b,.3121*c);a.lineTo(.6474*b,.9352*c);a.lineTo(.7052*b,c);a.lineTo(.5915*b,c);a.lineTo(0,.7915*c);a.lineTo(0,.7491*c);a.lineTo(.0588*b,.7279*c);a.close();a.stroke();a.begin();a.moveTo(.6474*b,.3121*c);a.lineTo(.9422*b,.2073*c);a.lineTo(.9422*b,.8363*c);a.lineTo(b,.8539*c);a.lineTo(b,.894*c);a.lineTo(.7013*b,c);a.lineTo(.6474*b,.9305*c);a.close();a.stroke();e=mxUtils.getValue(this.state.style,
5095"strokeColor","#000000");a.setFillColor(e);a.begin();a.moveTo(.3333*b,.6643*c);a.arcTo(.3372*b,.2061*c,0,0,1,.2351*b,.6042*c);a.arcTo(.4528*b,.2768*c,0,0,1,.1724*b,.523*c);a.lineTo(.2428*b,.5677*c);a.lineTo(.2427*b,.5895*c);a.lineTo(.2765*b,.5995*c);a.close();a.moveTo(.1599*b,.4935*c);a.arcTo(.3372*b,.2061*c,0,0,1,.1522*b,.4146*c);a.arcTo(.1156*b,.0883*c,0,0,1,.2071*b,.3486*c);a.lineTo(.2013*b,.4187*c);a.lineTo(.1859*b,.4146*c);a.lineTo(.1859*b,.4464*c);a.lineTo(.1907*b,.4493*c);a.close();a.moveTo(.2235*
5096b,.3445*c);a.arcTo(.1927*b,.1767*c,0,0,1,.368*b,.361*c);a.arcTo(.3854*b,.2356*c,0,0,1,.468*b,.4299*c);a.lineTo(.368*b,.4034*c);a.lineTo(.368*b,.394*c);a.lineTo(.3256*b,.3799*c);a.lineTo(.3256*b,.3887*c);a.close();a.moveTo(.4855*b,.4499*c);a.arcTo(.3854*b,.2356*c,0,0,1,.5337*b,.5395*c);a.arcTo(.3854*b,.2356*c,0,0,1,.5328*b,.6302*c);a.lineTo(.4952*b,.5589*c);a.lineTo(.5019*b,.5595*c);a.lineTo(.5019*b,.5265*c);a.lineTo(.4855*b,.5194*c);a.close();a.moveTo(.5241*b,.6455*c);a.arcTo(.0963*b,.0589*c,0,0,
50971,.4663*b,.682*c);a.arcTo(.1445*b,.0883*c,0,0,1,.3642*b,.6761*c);a.lineTo(.4239*b,.6525*c);a.lineTo(.4566*b,.6643*c);a.lineTo(.4566*b,.6413*c);a.close();a.moveTo(.3507*b,.6667*c);a.lineTo(.2871*b,.5919*c);a.lineTo(.4123*b,.6366*c);a.close();a.moveTo(.2563*b,.5595*c);a.lineTo(.1753*b,.5088*c);a.lineTo(.2052*b,.4594*c);a.close();a.moveTo(.2139*b,.4229*c);a.lineTo(.2197*b,.3528*c);a.lineTo(.3256*b,.4028*c);a.lineTo(.2283*b,.4252*c);a.close();a.moveTo(.2264*b,.4417*c);a.lineTo(.3218*b,.4146*c);a.lineTo(.3353*
5098b,.4181*c);a.lineTo(.3353*b,.4971*c);a.lineTo(.3208*b,.4912*c);a.lineTo(.3208*b,.4965*c);a.lineTo(.2264*b,.4482*c);a.close();a.moveTo(.2697*b,.5618*c);a.lineTo(.2245*b,.4635*c);a.lineTo(.2331*b,.4588*c);a.lineTo(.3256*b,.5112*c);a.lineTo(.3237*b,.5241*c);a.close();a.moveTo(.2852*b,.576*c);a.lineTo(.2852*b,.5654*c);a.lineTo(.3391*b,.53*c);a.lineTo(.3516*b,.5347*c);a.lineTo(.4133*b,.6213*c);a.close();a.moveTo(.368*b,.5141*c);a.lineTo(.368*b,.5088*c);a.lineTo(.3526*b,.5029*c);a.lineTo(.3526*b,.4234*
5099c);a.lineTo(.3622*b,.4276*c);a.lineTo(.4547*b,.5177*c);a.lineTo(.4557*b,.5277*c);a.close();a.moveTo(.3671*b,.417*c);a.lineTo(.4692*b,.4411*c);a.lineTo(.4721*b,.52*c);a.close();a.moveTo(.368*b,.5253*c);a.lineTo(.4566*b,.5359*c);a.lineTo(.4566*b,.5453*c);a.lineTo(.4663*b,.5465*c);a.lineTo(.4335*b,.6201*c);a.lineTo(.422*b,.616*c);a.lineTo(.368*b,.5389*c);a.close();a.moveTo(.4798*b,.5583*c);a.lineTo(.5183*b,.629*c);a.lineTo(.4557*b,.6313*c);a.lineTo(.4557*b,.6237*c);a.lineTo(.447*b,.6225*c);a.close();
5100a.fill();a.setStrokeWidth(2*d);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.7915*c);a.lineTo(0,.7491*c);a.lineTo(.0588*b,.7279*c);a.lineTo(.0588*b,.1036*c);a.lineTo(.3526*b,0);a.lineTo(.9422*b,.2073*c);a.lineTo(.9422*b,.8316*c);a.lineTo(b,.8539*c);a.lineTo(b,.894*c);a.lineTo(.7013*b,c);a.lineTo(.5877*b,c);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeAws3dCloudFront.prototype.cst.CLOUDFRONT,mxShapeAws3dCloudFront);
5101function mxShapeAws3dDataCenter(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dDataCenter,mxShape);mxShapeAws3dDataCenter.prototype.cst={DATA_CENTER:"mxgraph.aws3d.dataCenter",SHADING_COLORS:"shadingCols"};
5102mxShapeAws3dDataCenter.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));e=d*b/123;d=d*c/142;var f=parseFloat(mxUtils.getValue(this.state.style,"shadow","0"));d=Math.min(e,d);a.setShadow(!1);a.setStrokeWidth(d);a.save();a.save();a.setStrokeWidth(2*d);a.setStrokeColor("#292929");a.setLineJoin("round");1==f&&a.setShadow(!0);a.begin();a.moveTo(0,.7465*c);a.lineTo(0,.25*c);a.lineTo(.5*b,0);a.lineTo(b,.25*c);a.lineTo(b,.7465*
5103c);a.lineTo(.5*b,c);a.close();a.fillAndStroke();a.restore();a.setFillColor("#000000");e=mxUtils.getValue(this.state.style,mxShapeAws3dDataCenter.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");f=mxUtils.getValue(this.state.style,"flipH","0");"0"==f?a.setAlpha(e[0]):a.setAlpha(e[1]);a.begin();a.moveTo(0,.7465*c);a.lineTo(0,.25*c);a.lineTo(.5*b,.5*c);a.lineTo(.5*b,c);a.close();a.fill();"0"==f?a.setAlpha(e[1]):a.setAlpha(e[0]);a.begin();a.moveTo(b,.7465*c);a.lineTo(b,.25*c);a.lineTo(.5*
5104b,.5*c);a.lineTo(.5*b,c);a.close();a.fill();a.restore();a.setLineJoin("round");a.begin();a.moveTo(0,.7465*c);a.lineTo(0,.25*c);a.lineTo(.5*b,.5*c);a.lineTo(.5*b,c);a.close();a.stroke();a.begin();a.moveTo(b,.7465*c);a.lineTo(b,.25*c);a.lineTo(.5*b,.5*c);a.lineTo(.5*b,c);a.close();a.stroke();a.setLineCap("round");a.setStrokeWidth(3*d);a.begin();a.moveTo(.0894*b,.3838*c);a.lineTo(.4187*b,.5493*c);a.moveTo(.0894*b,.4331*c);a.lineTo(.4187*b,.5986*c);a.moveTo(.0894*b,.4824*c);a.lineTo(.4187*b,.6479*c);
5105a.moveTo(.5854*b,.5493*c);a.lineTo(.9146*b,.3838*c);a.moveTo(.5854*b,.5986*c);a.lineTo(.9146*b,.4331*c);a.moveTo(.5854*b,.6479*c);a.lineTo(.9146*b,.4824*c);a.stroke();a.setStrokeWidth(2*d);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.7465*c);a.lineTo(0,.25*c);a.lineTo(.5*b,0);a.lineTo(b,.25*c);a.lineTo(b,.7465*c);a.lineTo(.5*b,c);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeAws3dDataCenter.prototype.cst.DATA_CENTER,mxShapeAws3dDataCenter);
5106function mxShapeAws3dDataServer(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dDataServer,mxShape);mxShapeAws3dDataServer.prototype.cst={DATA_SERVER:"mxgraph.aws3d.dataServer",SHADING_COLORS:"shadingCols"};
5107mxShapeAws3dDataServer.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));e=d*b/123;d=d*c/106;var f=parseFloat(mxUtils.getValue(this.state.style,"shadow","0"));d=Math.min(e,d);a.setShadow(!1);a.setStrokeWidth(d);a.save();a.save();a.setStrokeWidth(2*d);a.setStrokeColor("#292929");a.setLineJoin("round");1==f&&a.setShadow(!0);a.begin();a.moveTo(0,.6651*c);a.lineTo(0,.3349*c);a.lineTo(.5*b,0);a.lineTo(b,.3349*c);a.lineTo(b,
5108.6651*c);a.lineTo(.5*b,c);a.close();a.fillAndStroke();a.restore();a.setFillColor("#000000");e=mxUtils.getValue(this.state.style,mxShapeAws3dDataServer.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");f=mxUtils.getValue(this.state.style,"flipH","0");"0"==f?a.setAlpha(e[0]):a.setAlpha(e[1]);a.begin();a.moveTo(0,.6651*c);a.lineTo(0,.3349*c);a.lineTo(.5*b,.6698*c);a.lineTo(.5*b,c);a.close();a.fill();"0"==f?a.setAlpha(e[1]):a.setAlpha(e[0]);a.begin();a.moveTo(b,.6651*c);a.lineTo(b,.3349*c);
5109a.lineTo(.5*b,.6698*c);a.lineTo(.5*b,c);a.close();a.fill();a.restore();a.setLineJoin("round");a.begin();a.moveTo(0,.6651*c);a.lineTo(0,.3349*c);a.lineTo(.5*b,.6698*c);a.lineTo(.5*b,c);a.close();a.stroke();a.begin();a.moveTo(b,.6651*c);a.lineTo(b,.3349*c);a.lineTo(.5*b,.6698*c);a.lineTo(.5*b,c);a.close();a.stroke();a.setLineCap("round");a.setStrokeWidth(3*d);a.begin();a.moveTo(.0878*b,.4858*c);a.lineTo(.4187*b,.7094*c);a.moveTo(.587*b,.7094*c);a.lineTo(.9187*b,.4858*c);a.stroke();a.setStrokeWidth(2*
5110d);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.6651*c);a.lineTo(0,.3349*c);a.lineTo(.5*b,0);a.lineTo(b,.3349*c);a.lineTo(b,.6651*c);a.lineTo(.5*b,c);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeAws3dDataServer.prototype.cst.DATA_SERVER,mxShapeAws3dDataServer);function mxShapeAws3dElasticLoadBalancing(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dElasticLoadBalancing,mxShape);
5111mxShapeAws3dElasticLoadBalancing.prototype.cst={ELASTIC_LOAD_BALANCING:"mxgraph.aws3d.elasticLoadBalancing",SHADING_COLORS:"shadingCols"};
5112mxShapeAws3dElasticLoadBalancing.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);e=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));var f=e*b/92;e=e*c/88.17;d=mxUtils.getValue(this.state.style,"strokeColor","#000000");var g=parseFloat(mxUtils.getValue(this.state.style,"shadow","0"));e=Math.min(f,e);a.setShadow(!1);a.setStrokeWidth(e);a.save();a.save();a.save();a.save();a.setStrokeWidth(2*e);a.setStrokeColor("#292929");a.setLineJoin("round");1==g&&a.setShadow(!0);a.begin();
5113a.moveTo(0,.7996*c);a.lineTo(0,.1985*c);a.lineTo(.3315*b,0);a.lineTo(.6685*b,0);a.lineTo(b,.1985*c);a.lineTo(b,.7996*c);a.lineTo(.6685*b,c);a.lineTo(.3315*b,c);a.close();a.fillAndStroke();a.restore();a.setFillColor("#000000");f=mxUtils.getValue(this.state.style,mxShapeAws3dElasticLoadBalancing.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");g=mxUtils.getValue(this.state.style,"flipH","0");"0"==g?a.setAlpha(f[0]):a.setAlpha(f[1]);a.begin();a.moveTo(0,.4026*c);a.lineTo(.3315*b,.6011*c);
5114a.lineTo(.6685*b,.6011*c);a.lineTo(.6685*b,c);a.lineTo(.3315*b,c);a.lineTo(0,.7996*c);a.close();a.fill();"0"==g?a.setAlpha(f[1]):a.setAlpha(f[0]);a.begin();a.moveTo(.6685*b,.6011*c);a.lineTo(b,.4026*c);a.lineTo(b,.7996*c);a.lineTo(.6685*b,c);a.close();a.fill();a.restore();a.setLineJoin("round");a.begin();a.moveTo(0,.4026*c);a.lineTo(.3315*b,.6011*c);a.lineTo(.6685*b,.6011*c);a.lineTo(.6685*b,c);a.lineTo(.3315*b,c);a.lineTo(0,.7996*c);a.close();a.stroke();a.begin();a.moveTo(.6685*b,.6011*c);a.lineTo(b,
5115.4026*c);a.lineTo(b,.7996*c);a.lineTo(.6685*b,c);a.close();a.moveTo(.3315*b,.6011*c);a.lineTo(.3315*b,c);a.stroke();a.restore();a.setFillColor(d);a.begin();a.moveTo(.337*b,.1395*c);a.arcTo(.3043*b,.1928*c,0,0,1,.5*b,.1191*c);a.arcTo(.3043*b,.1928*c,0,0,1,.6739*b,.1645*c);a.arcTo(.3261*b,.2155*c,0,0,1,.8152*b,.3176*c);a.arcTo(.3261*b,.1701*c,0,0,1,.75*b,.4367*c);a.arcTo(.3261*b,.3403*c,0,0,1,.6033*b,.4854*c);a.arcTo(.3261*b,.2268*c,0,0,1,.4348*b,.4741*c);a.arcTo(.3261*b,.2268*c,0,0,1,.2848*b,.4094*
5116c);a.arcTo(.3261*b,.2268*c,0,0,1,.2065*b,.3062*c);a.arcTo(.3261*b,.1701*c,0,0,1,.2446*b,.1928*c);a.arcTo(.2717*b,.1701*c,0,0,1,.337*b,.1395*c);a.fill();a.restore();a.begin();a.moveTo(.2826*b,.372*c);a.lineTo(.362*b,.3232*c);a.lineTo(.4054*b,.3482*c);a.lineTo(.4457*b,.2654*c);a.lineTo(.4185*b,.2643*c);a.lineTo(.4728*b,.2132*c);a.lineTo(.4348*b,.1928*c);a.lineTo(.5141*b,.144*c);a.lineTo(.5837*b,.1883*c);a.lineTo(.5043*b,.2348*c);a.lineTo(.4848*b,.2223*c);a.lineTo(.4967*b,.2688*c);a.lineTo(.463*b,.2665*
5117c);a.lineTo(.4304*b,.3346*c);a.lineTo(.4946*b,.2949*c);a.lineTo(.4761*b,.2858*c);a.lineTo(.5511*b,.2631*c);a.lineTo(.5261*b,.2472*c);a.lineTo(.6043*b,.1996*c);a.lineTo(.6761*b,.2404*c);a.lineTo(.5978*b,.2892*c);a.lineTo(.5652*b,.2699*c);a.lineTo(.5293*b,.3198*c);a.lineTo(.5087*b,.3051*c);a.lineTo(.4543*b,.3391*c);a.lineTo(.563*b,.3221*c);a.lineTo(.5598*b,.3017*c);a.lineTo(.6326*b,.3096*c);a.lineTo(.6163*b,.2994*c);a.lineTo(.6957*b,.2529*c);a.lineTo(.7674*b,.2938*c);a.lineTo(.687*b,.3425*c);a.lineTo(.6489*
5118b,.321*c);a.lineTo(.5707*b,.3539*c);a.lineTo(.5674*b,.3369*c);a.lineTo(.4293*b,.3618*c);a.lineTo(.4641*b,.3834*c);a.lineTo(.3859*b,.4299*c);a.close();a.fill();a.setStrokeWidth(2*e);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.7996*c);a.lineTo(0,.1985*c);a.lineTo(.3315*b,0);a.lineTo(.6685*b,0);a.lineTo(b,.1985*c);a.lineTo(b,.7996*c);a.lineTo(.6685*b,c);a.lineTo(.3315*b,c);a.close();a.stroke()};
5119mxCellRenderer.registerShape(mxShapeAws3dElasticLoadBalancing.prototype.cst.ELASTIC_LOAD_BALANCING,mxShapeAws3dElasticLoadBalancing);function mxShapeAws3dInstance(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dInstance,mxShape);mxShapeAws3dInstance.prototype.cst={INSTANCE:"mxgraph.aws3d.instance",SHADING_COLORS:"shadingCols"};
5120mxShapeAws3dInstance.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));d=Math.min(d*b/123,d*c/97);this.background(a,0,0,b,c,d);a.setShadow(!1);this.foreground(a,0,0,b,c,d)};
5121mxShapeAws3dInstance.prototype.background=function(a,d,e,b,c,f){a.setStrokeWidth(f);a.save();a.save();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.634*c);a.lineTo(0,.2732*c);a.lineTo(.374*b,0);a.lineTo(.622*b,0);a.lineTo(b,.2732*c);a.lineTo(b,.634*c);a.lineTo(.5*b,c);a.close();a.fillAndStroke()};
5122mxShapeAws3dInstance.prototype.foreground=function(a,d,e,b,c,f){a.restore();a.setShadow(!1);a.setFillColor("#000000");d=mxUtils.getValue(this.state.style,mxShapeAws3dInstance.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");e=mxUtils.getValue(this.state.style,"flipH","0");"0"==e?a.setAlpha(d[0]):a.setAlpha(d[1]);a.begin();a.moveTo(0,.2732*c);a.lineTo(.5*b,.6392*c);a.lineTo(.5*b,c);a.lineTo(0,.634*c);a.close();a.fill();"0"==e?a.setAlpha(d[1]):a.setAlpha(d[0]);a.begin();a.moveTo(.5*b,.6392*
5123c);a.lineTo(b,.2732*c);a.lineTo(b,.6392*c);a.lineTo(.5*b,c);a.close();a.fill();a.restore();a.setShadow(!1);a.setLineJoin("round");a.begin();a.moveTo(0,.2732*c);a.lineTo(.5*b,.6392*c);a.lineTo(.5*b,c);a.lineTo(0,.634*c);a.close();a.stroke();a.begin();a.moveTo(.5*b,.6392*c);a.lineTo(b,.2732*c);a.lineTo(b,.6392*c);a.lineTo(.5*b,c);a.close();a.stroke();d=mxUtils.getValue(this.state.style,"strokeColor","#000000");a.setFillColor(d);a.begin();a.moveTo(.374*b,.4742*c);a.arcTo(.0325*b,.0258*c,0,0,1,.374*b,
5124.4381*c);a.lineTo(.4797*b,.3608*c);a.arcTo(.0325*b,.0206*c,0,0,1,.5203*b,.3608*c);a.lineTo(.626*b,.4381*c);a.arcTo(.0325*b,.0258*c,0,0,1,.626*b,.4711*c);a.lineTo(.5203*b,.5485*c);a.arcTo(.0325*b,.0206*c,0,0,1,.4797*b,.5485*c);a.close();a.fill();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.634*c);a.lineTo(0,.2732*c);a.lineTo(.374*b,0);a.lineTo(.622*b,0);a.lineTo(b,.2732*c);a.lineTo(b,.634*c);a.lineTo(.5*b,c);a.close();a.stroke()};
5125mxCellRenderer.registerShape(mxShapeAws3dInstance.prototype.cst.INSTANCE,mxShapeAws3dInstance);function mxShapeAws3dInternetGateway(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dInternetGateway,mxShape);mxShapeAws3dInternetGateway.prototype.cst={INTERNET_GATEWAY:"mxgraph.aws3d.internetGateway",SHADING_COLORS:"shadingCols"};
5126mxShapeAws3dInternetGateway.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));d=Math.min(d*b/116.7,d*c/102.8);this.background(a,0,0,b,c,d);a.setShadow(!1);this.foreground(a,0,0,b,c,d)};
5127mxShapeAws3dInternetGateway.prototype.background=function(a,d,e,b,c,f){a.setStrokeWidth(f);a.save();a.save();a.save();a.save();a.save();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(.4199*b,.5447*c);a.lineTo(.4199*b,.035*c);a.lineTo(.8946*b,0);a.lineTo(b,.0691*c);a.lineTo(b,.4134*c);a.lineTo(.6812*b,.7247*c);a.close();a.fillAndStroke();a.restore();a.save();a.setShadow(!1);a.setFillColor("#000000");d=mxUtils.getValue(this.state.style,mxShapeAws3dInternetGateway.prototype.cst.SHADING_COLORS,
5128"0.1,0.3").toString().split(",");e=mxUtils.getValue(this.state.style,"flipH","0");"0"==e?a.setAlpha(d[0]):a.setAlpha(d[1]);a.begin();a.moveTo(.4199*b,.5447*c);a.lineTo(.4199*b,.035*c);a.lineTo(.6838*b,.2072*c);a.lineTo(.6838*b,.7247*c);a.close();a.fill();"0"==e?a.setAlpha(d[1]):a.setAlpha(d[0]);a.begin();a.moveTo(.6838*b,.2072*c);a.lineTo(b,.0691*c);a.lineTo(b,.4134*c);a.lineTo(.6838*b,.7247*c);a.close();a.fill();a.restore();a.setShadow(!1);a.begin();a.moveTo(.4199*b,.5447*c);a.lineTo(.4199*b,.035*
5129c);a.lineTo(.6838*b,.2072*c);a.lineTo(.6838*b,.7247*c);a.close();a.stroke();a.restore();a.setLineJoin("round");a.setShadow(!1);a.begin();a.moveTo(.6838*b,.2072*c);a.lineTo(b,.0691*c);a.lineTo(b,.4134*c);a.lineTo(.6838*b,.7247*c);a.close();a.stroke();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.begin();a.moveTo(.4199*b,.5447*c);a.lineTo(.4199*b,.035*c);a.lineTo(.8946*b,0);a.lineTo(b,.0691*c);a.lineTo(b,.4134*c);a.lineTo(.6812*b,.7247*c);a.close();a.stroke();a.restore();a.setStrokeWidth(2*f);
5130a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.929*c);a.lineTo(0,.5866*c);a.lineTo(.3171*b,.1031*c);a.lineTo(.5784*b,.2753*c);a.lineTo(.5784*b,.7928*c);a.lineTo(.1054*b,c);a.close();a.fillAndStroke()};
5131mxShapeAws3dInternetGateway.prototype.foreground=function(a,d,e,b,c,f){a.restore();d=mxUtils.getValue(this.state.style,"strokeColor","#000000");a.setShadow(!1);a.setLineJoin("round");a.setFillColor("#000000");e=mxUtils.getValue(this.state.style,mxShapeAws3dInternetGateway.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");var g=mxUtils.getValue(this.state.style,"flipH","0");"0"==g?a.setAlpha(e[0]):a.setAlpha(e[1]);a.begin();a.moveTo(0,.929*c);a.lineTo(0,.5866*c);a.lineTo(.1054*b,.6537*
5132c);a.lineTo(.1054*b,c);a.close();a.fill();"0"==g?a.setAlpha(e[1]):a.setAlpha(e[0]);a.begin();a.moveTo(.1054*b,c);a.lineTo(.1054*b,.6537*c);a.lineTo(.5784*b,.2753*c);a.lineTo(.5784*b,.7928*c);a.close();a.fill();a.restore();a.setShadow(!1);a.setLineJoin("round");a.begin();a.moveTo(0,.929*c);a.lineTo(0,.5866*c);a.lineTo(.1054*b,.6537*c);a.lineTo(.1054*b,c);a.close();a.stroke();a.begin();a.moveTo(.1054*b,c);a.lineTo(.1054*b,.6537*c);a.lineTo(.5784*b,.2753*c);a.lineTo(.5784*b,.7928*c);a.close();a.stroke();
5133a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.929*c);a.lineTo(0,.5866*c);a.lineTo(.3171*b,.1031*c);a.lineTo(.5784*b,.2753*c);a.lineTo(.5784*b,.7928*c);a.lineTo(.1054*b,c);a.close();a.stroke();a.setFillColor(d);a.begin();a.moveTo(.7849*b,.5039*c);a.arcTo(.0343*b,.0632*c,0,0,1,.7481*b,.4796*c);a.arcTo(.0857*b,.0973*c,0,0,1,.7661*b,.3911*c);a.arcTo(.06*b,.0681*c,0,0,1,.7712*b,.3356*c);a.arcTo(.0257*b,.0292*c,0,0,1,.7952*b,.32*c);a.arcTo(.1285*b,.1459*
5134c,0,0,1,.8166*b,.2461*c);a.arcTo(.06*b,.0973*c,0,0,1,.8595*b,.2238*c);a.arcTo(.0514*b,.0973*c,0,0,1,.8937*b,.2743*c);a.arcTo(.0428*b,.0778*c,0,0,1,.9323*b,.3093*c);a.arcTo(.0686*b,.0778*c,0,0,1,.928*b,.3716*c);a.arcTo(.0857*b,.0973*c,0,0,1,.8972*b,.4125*c);a.close();a.fill()};mxCellRenderer.registerShape(mxShapeAws3dInternetGateway.prototype.cst.INTERNET_GATEWAY,mxShapeAws3dInternetGateway);
5135function mxShapeAws3dOracleDataCenter(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dOracleDataCenter,mxShape);mxShapeAws3dOracleDataCenter.prototype.cst={ORACLE_DATA_CENTER:"mxgraph.aws3d.oracleDataCenter"};
5136mxShapeAws3dOracleDataCenter.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));d=Math.min(d*b/123,d*c/142);a.setStrokeWidth(d);this.background(a,0,0,b,c,d);a.setShadow(!1);this.foreground(a,0,0,b,c,d)};
5137mxShapeAws3dOracleDataCenter.prototype.background=function(a,d,e,b,c,f){a.save();a.save();a.save();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.7464*c);a.lineTo(0,.25*c);a.lineTo(.5*b,0);a.lineTo(b,.25*c);a.lineTo(b,.7464*c);a.lineTo(.5*b,c);a.close();a.fillAndStroke()};
5138mxShapeAws3dOracleDataCenter.prototype.foreground=function(a,d,e,b,c,f){a.restore();a.setShadow(!1);a.setFillColor("#000000");a.setAlpha("0.1");a.begin();a.moveTo(0,.7464*c);a.lineTo(0,.25*c);a.lineTo(.5*b,.5*c);a.lineTo(.5*b,c);a.close();a.fill();a.setAlpha("0.3");a.begin();a.moveTo(.5*b,.5*c);a.lineTo(b,.25*c);a.lineTo(b,.7464*c);a.lineTo(.5*b,c);a.close();a.fill();a.restore();a.setShadow(!1);a.setLineJoin("round");a.setFillColor("#ff0000");a.begin();a.moveTo(0,.5866*c);a.lineTo(.5*b,.8359*c);a.lineTo(b,
5139.5866*c);a.lineTo(b,.6986*c);a.lineTo(.5*b,.9486*c);a.lineTo(0,.6986*c);a.fill();a.setStrokeWidth(.5*f);a.setStrokeColor("#ffffff");a.setFillColor("#ffffff");a.begin();a.moveTo(0,.5866*c);a.lineTo(.5*b,.8359*c);a.lineTo(b,.5866*c);a.moveTo(b,.6986*c);a.lineTo(.5*b,.9486*c);a.lineTo(0,.6986*c);a.stroke();a.begin();a.moveTo(.0813*b,.7113*c);a.arcTo(.0569*b,.0493*c,0,0,1,.065*b,.6831*c);a.arcTo(.065*b,.0563*c,0,0,1,.065*b,.6613*c);a.arcTo(.0163*b,.0141*c,0,0,1,.0797*b,.6549*c);a.lineTo(.122*b,.6754*
5140c);a.arcTo(.065*b,.0563*c,0,0,1,.1358*b,.6937*c);a.arcTo(.065*b,.0563*c,0,0,1,.139*b,.7232*c);a.arcTo(.0179*b,.0155*c,0,0,1,.1187*b,.7296*c);a.close();a.moveTo(.1163*b,.7183*c);a.arcTo(.0089*b,.0077*c,0,0,0,.1285*b,.7148*c);a.arcTo(.0407*b,.0352*c,0,0,0,.1293*b,.7021*c);a.arcTo(.0407*b,.0352*c,0,0,0,.1179*b,.6831*c);a.lineTo(.087*b,.6676*c);a.arcTo(.0081*b,.007*c,0,0,0,.0764*b,.6697*c);a.arcTo(.0325*b,.0352*c,0,0,0,.078*b,.6937*c);a.arcTo(.0407*b,.0352*c,0,0,0,.087*b,.7035*c);a.close();a.moveTo(.1439*
5141b,.743*c);a.lineTo(.1439*b,.6866*c);a.lineTo(.1846*b,.707*c);a.arcTo(.0407*b,.0352*c,0,0,1,.1967*b,.7183*c);a.arcTo(.0407*b,.0352*c,0,0,1,.2*b,.738*c);a.arcTo(.0138*b,.0155*c,0,0,1,.1813*b,.743*c);a.lineTo(.1992*b,.769*c);a.lineTo(.187*b,.7641*c);a.lineTo(.1577*b,.7218*c);a.lineTo(.1854*b,.7345*c);a.arcTo(.0041*b,.0035*c,0,0,0,.1911*b,.7317*c);a.arcTo(.0163*b,.0141*c,0,0,0,.1894*b,.7225*c);a.arcTo(.0325*b,.0282*c,0,0,0,.1821*b,.7155*c);a.lineTo(.1528*b,.7007*c);a.lineTo(.1528*b,.7472*c);a.close();
5142a.moveTo(.2008*b,.7711*c);a.lineTo(.2293*b,.7338*c);a.arcTo(.0065*b,.0056*c,0,0,1,.2382*b,.7324*c);a.arcTo(.0407*b,.0352*c,0,0,1,.2431*b,.7415*c);a.lineTo(.2699*b,.8035*c);a.lineTo(.2602*b,.8007*c);a.lineTo(.252*b,.7859*c);a.lineTo(.2293*b,.7754*c);a.lineTo(.2244*b,.7634*c);a.lineTo(.248*b,.7739*c);a.lineTo(.235*b,.7444*c);a.lineTo(.2122*b,.7768*c);a.close();a.moveTo(.3244*b,.8225*c);a.lineTo(.3171*b,.8289*c);a.lineTo(.2854*b,.8127*c);a.arcTo(.0407*b,.0352*c,0,0,1,.2724*b,.7986*c);a.arcTo(.0569*b,
5143.0493*c,0,0,1,.265*b,.7746*c);a.arcTo(.0407*b,.0352*c,0,0,1,.2683*b,.762*c);a.arcTo(.0163*b,.0141*c,0,0,1,.2829*b,.757*c);a.lineTo(.3228*b,.7761*c);a.lineTo(.3179*b,.7831*c);a.lineTo(.2878*b,.7683*c);a.arcTo(.0081*b,.007*c,0,0,0,.2789*b,.7697*c);a.arcTo(.0244*b,.0211*c,0,0,0,.2748*b,.7831*c);a.arcTo(.0407*b,.0352*c,0,0,0,.2878*b,.8042*c);a.close();a.moveTo(.3276*b,.7789*c);a.lineTo(.3366*b,.7831*c);a.lineTo(.3366*b,.8289*c);a.lineTo(.3805*b,.8507*c);a.lineTo(.3748*b,.857*c);a.lineTo(.3317*b,.8359*
5144c);a.arcTo(.0163*b,.0141*c,0,0,1,.3276*b,.8275*c);a.close();a.moveTo(.435*b,.8775*c);a.lineTo(.4325*b,.8866*c);a.lineTo(.3959*b,.8683*c);a.arcTo(.0407*b,.0352*c,0,0,1,.3862*b,.8563*c);a.arcTo(.0528*b,.0458*c,0,0,1,.3805*b,.8183*c);a.arcTo(.0163*b,.0141*c,0,0,1,.3951*b,.8134*c);a.lineTo(.435*b,.8324*c);a.lineTo(.4285*b,.838*c);a.lineTo(.4008*b,.8246*c);a.arcTo(.0098*b,.0085*c,0,0,0,.3878*b,.831*c);a.lineTo(.4333*b,.8542*c);a.lineTo(.426*b,.8606*c);a.lineTo(.3878*b,.8415*c);a.arcTo(.0325*b,.0282*c,
51450,0,0,.3976*b,.8585*c);a.close();a.moveTo(.6171*b,.8063*c);a.arcTo(.0163*b,.0141*c,0,0,1,.6366*b,.8092*c);a.arcTo(.0325*b,.0282*c,0,0,1,.639*b,.8303*c);a.arcTo(.065*b,.0563*c,0,0,1,.6211*b,.8592*c);a.lineTo(.5894*b,.8761*c);a.arcTo(.0203*b,.0176*c,0,0,1,.565*b,.8732*c);a.arcTo(.0407*b,.0352*c,0,0,1,.5659*b,.8458*c);a.arcTo(.0488*b,.0422*c,0,0,1,.5805*b,.8246*c);a.close();a.moveTo(.5886*b,.8296*c);a.arcTo(.0325*b,.0282*c,0,0,0,.5748*b,.8472*c);a.arcTo(.0325*b,.0282*c,0,0,0,.574*b,.862*c);a.arcTo(.0098*
5146b,.0085*c,0,0,0,.587*b,.8676*c);a.lineTo(.6163*b,.8528*c);a.arcTo(.0407*b,.0352*c,0,0,0,.6285*b,.8359*c);a.arcTo(.0244*b,.0211*c,0,0,0,.6293*b,.8225*c);a.arcTo(.0098*b,.0085*c,0,0,0,.6163*b,.8155*c);a.close();a.moveTo(.64*b,.85*c);a.lineTo(.64*b,.793*c);a.lineTo(.6854*b,.7718*c);a.arcTo(.0106*b,.0092*c,0,0,1,.7008*b,.7782*c);a.arcTo(.0407*b,.0352*c,0,0,1,.6959*b,.8*c);a.arcTo(.0407*b,.0352*c,0,0,1,.6805*b,.8127*c);a.lineTo(.6992*b,.8218*c);a.lineTo(.6854*b,.8282*c);a.lineTo(.6569*b,.8141*c);a.lineTo(.6805*
5147b,.8021*c);a.arcTo(.0203*b,.0176*c,0,0,0,.6894*b,.7923*c);a.arcTo(.0244*b,.0211*c,0,0,0,.6894*b,.7845*c);a.arcTo(.0041*b,.0035*c,0,0,0,.6837*b,.7831*c);a.lineTo(.6528*b,.7979*c);a.lineTo(.6528*b,.8437*c);a.close();a.moveTo(.7*b,.8204*c);a.lineTo(.7301*b,.7507*c);a.arcTo(.0098*b,.0085*c,0,0,1,.7358*b,.7444*c);a.arcTo(.0098*b,.0085*c,0,0,1,.7415*b,.7486*c);a.lineTo(.7699*b,.7852*c);a.lineTo(.7602*b,.7908*c);a.lineTo(.7537*b,.7838*c);a.lineTo(.7276*b,.7958*c);a.lineTo(.7228*b,.788*c);a.lineTo(.748*b,
5148.7768*c);a.lineTo(.7358*b,.7585*c);a.lineTo(.7114*b,.8155*c);a.close();a.moveTo(.8244*b,.7486*c);a.lineTo(.8171*b,.762*c);a.lineTo(.7894*b,.7761*c);a.arcTo(.0244*b,.0211*c,0,0,1,.7683*b,.7746*c);a.arcTo(.0407*b,.0352*c,0,0,1,.7667*b,.7507*c);a.arcTo(.0488*b,.0423*c,0,0,1,.7937*b,.7162*c);a.lineTo(.822*b,.7035*c);a.lineTo(.8171*b,.7155*c);a.lineTo(.7902*b,.7296*c);a.arcTo(.0325*b,.0282*c,0,0,0,.778*b,.743*c);a.arcTo(.0407*b,.0352*c,0,0,0,.7756*b,.7606*c);a.arcTo(.0077*b,.0067*c,0,0,0,.787*b,.767*c);
5149a.close();a.moveTo(.8366*b,.6949*c);a.lineTo(.8366*b,.7423*c);a.lineTo(.878*b,.7231*c);a.lineTo(.874*b,.7338*c);a.lineTo(.8333*b,.7535*c);a.arcTo(.0041*b,.0035*c,0,0,1,.8268*b,.75*c);a.lineTo(.8268*b,.7007*c);a.close();a.moveTo(.9342*b,.6472*c);a.lineTo(.9293*b,.6599*c);a.lineTo(.9033*b,.6725*c);a.arcTo(.0325*b,.0282*c,0,0,0,.8927*b,.6817*c);a.arcTo(.0406*b,.0352*c,0,0,0,.887*b,.6937*c);a.lineTo(.9309*b,.6725*c);a.lineTo(.9268*b,.6845*c);a.lineTo(.887*b,.7035*c);a.arcTo(.0089*b,.0077*c,0,0,0,.8992*
5150b,.7106*c);a.lineTo(.935*b,.693*c);a.lineTo(.9285*b,.7063*c);a.lineTo(.9008*b,.7197*c);a.arcTo(.0163*b,.0141*c,0,0,1,.8829*b,.7204*c);a.arcTo(.0407*b,.0352*c,0,0,1,.8764*b,.7028*c);a.arcTo(.065*b,.0563*c,0,0,1,.8959*b,.6669*c);a.fill();a.restore();a.setShadow(!1);a.setLineJoin("round");a.begin();a.moveTo(0,.7464*c);a.lineTo(0,.25*c);a.lineTo(.5*b,.5*c);a.lineTo(.5*b,c);a.close();a.stroke();a.begin();a.moveTo(.5*b,.5*c);a.lineTo(b,.25*c);a.lineTo(b,.7464*c);a.lineTo(.5*b,c);a.close();a.stroke();a.setStrokeWidth(2*
5151f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.7464*c);a.lineTo(0,.25*c);a.lineTo(.5*b,0);a.lineTo(b,.25*c);a.lineTo(b,.7464*c);a.lineTo(.5*b,c);a.close();a.stroke();a.restore();a.setShadow(!1);a.setStrokeWidth(3*f);a.setLineCap("round");a.begin();a.moveTo(.0894*b,.3838*c);a.lineTo(.4187*b,.5493*c);a.moveTo(.0894*b,.4331*c);a.lineTo(.4187*b,.5986*c);a.moveTo(.0894*b,.4824*c);a.lineTo(.4187*b,.6479*c);a.moveTo(.5854*b,.5492*c);a.lineTo(.9146*b,.3838*c);a.moveTo(.5854*b,
5152.5986*c);a.lineTo(.9146*b,.4331*c);a.moveTo(.5854*b,.6479*c);a.lineTo(.9146*b,.4824*c);a.stroke()};mxCellRenderer.registerShape(mxShapeAws3dOracleDataCenter.prototype.cst.ORACLE_DATA_CENTER,mxShapeAws3dOracleDataCenter);function mxShapeAws3dOracleDatabaseServer(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dOracleDatabaseServer,mxShape);mxShapeAws3dOracleDatabaseServer.prototype.cst={ORACLE_DB_SERVER:"mxgraph.aws3d.oracleDbServer"};
5153mxShapeAws3dOracleDatabaseServer.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));d=Math.min(d*b/123,d*c/142);a.setStrokeWidth(d);this.background(a,0,0,b,c,d);a.setShadow(!1);this.foreground(a,0,0,b,c,d)};
5154mxShapeAws3dOracleDatabaseServer.prototype.background=function(a,d,e,b,c,f){a.save();a.save();a.save();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.7331*c);a.lineTo(0,.3346*c);a.lineTo(.126*b,.1316*c);a.lineTo(.374*b,0);a.lineTo(.626*b,0);a.lineTo(.874*b,.1316*c);a.lineTo(b,.3346*c);a.lineTo(b,.7331*c);a.lineTo(.5*b,c);a.close();a.fillAndStroke()};
5155mxShapeAws3dOracleDatabaseServer.prototype.foreground=function(a,d,e,b,c,f){a.restore();a.setShadow(!1);a.setFillColor("#000000");a.setAlpha("0.1");a.begin();a.moveTo(.126*b,.1316*c);a.lineTo(.126*b,.267*c);a.lineTo(.378*b,.4023*c);a.lineTo(.5*b,.6015*c);a.lineTo(.5*b,c);a.lineTo(0,.7331*c);a.lineTo(0,.3346*c);a.close();a.moveTo(.874*b,.267*c);a.lineTo(.874*b,.1316*c);a.lineTo(b,.3308*c);a.fill();a.setAlpha("0.3");a.begin();a.moveTo(.5*b,c);a.lineTo(.5*b,.6015*c);a.lineTo(.622*b,.4023*c);a.lineTo(.874*
5156b,.267*c);a.lineTo(b,.3308*c);a.lineTo(b,.7331*c);a.close();a.fill();a.restore();a.setShadow(!1);a.setLineJoin("round");a.setFillColor("#ff0000");a.begin();a.moveTo(0,.5586*c);a.lineTo(.5*b,.8248*c);a.lineTo(b,.5586*c);a.lineTo(b,.6782*c);a.lineTo(.5*b,.9453*c);a.lineTo(0,.6782*c);a.fill();a.setStrokeWidth(.5*f);a.setStrokeColor("#ffffff");a.setFillColor("#ffffff");a.begin();a.moveTo(0,.5586*c);a.lineTo(.5*b,.8248*c);a.lineTo(b,.5586*c);a.moveTo(b,.6782*c);a.lineTo(.5*b,.9453*c);a.lineTo(0,.6782*
5157c);a.stroke();a.begin();a.moveTo(.0813*b,.6918*c);a.arcTo(.0569*b,.0526*c,0,0,1,.065*b,.6616*c);a.arcTo(.065*b,.0601*c,0,0,1,.065*b,.6384*c);a.arcTo(.0163*b,.0151*c,0,0,1,.0797*b,.6315*c);a.lineTo(.122*b,.6534*c);a.arcTo(.065*b,.0601*c,0,0,1,.1358*b,.673*c);a.arcTo(.065*b,.0601*c,0,0,1,.139*b,.7045*c);a.arcTo(.0179*b,.0165*c,0,0,1,.1187*b,.7113*c);a.close();a.moveTo(.1163*b,.6992*c);a.arcTo(.0089*b,.0082*c,0,0,0,.1285*b,.6955*c);a.arcTo(.0407*b,.0376*c,0,0,0,.1293*b,.6819*c);a.arcTo(.0407*b,.0376*
5158c,0,0,0,.1179*b,.6616*c);a.lineTo(.087*b,.6451*c);a.arcTo(.0081*b,.0075*c,0,0,0,.0764*b,.6473*c);a.arcTo(.0325*b,.0376*c,0,0,0,.078*b,.673*c);a.arcTo(.0407*b,.0376*c,0,0,0,.087*b,.6834*c);a.close();a.moveTo(.1439*b,.7256*c);a.lineTo(.1439*b,.6654*c);a.lineTo(.1846*b,.6872*c);a.arcTo(.0407*b,.0376*c,0,0,1,.1967*b,.6992*c);a.arcTo(.0407*b,.0376*c,0,0,1,.2*b,.7203*c);a.arcTo(.0138*b,.0165*c,0,0,1,.1813*b,.7256*c);a.lineTo(.1992*b,.7534*c);a.lineTo(.187*b,.7481*c);a.lineTo(.1577*b,.7029*c);a.lineTo(.1854*
5159b,.7165*c);a.arcTo(.0041*b,.0037*c,0,0,0,.1911*b,.7135*c);a.arcTo(.0163*b,.0151*c,0,0,0,.1894*b,.7037*c);a.arcTo(.0325*b,.0301*c,0,0,0,.1821*b,.6962*c);a.lineTo(.1528*b,.6804*c);a.lineTo(.1528*b,.7301*c);a.close();a.moveTo(.2008*b,.7556*c);a.lineTo(.2293*b,.7158*c);a.arcTo(.0065*b,.006*c,0,0,1,.2382*b,.7143*c);a.arcTo(.0407*b,.0376*c,0,0,1,.2431*b,.724*c);a.lineTo(.2699*b,.7902*c);a.lineTo(.2602*b,.7872*c);a.lineTo(.252*b,.7714*c);a.lineTo(.2293*b,.7602*c);a.lineTo(.2244*b,.7474*c);a.lineTo(.248*
5160b,.7586*c);a.lineTo(.235*b,.7271*c);a.lineTo(.2122*b,.7617*c);a.close();a.moveTo(.3244*b,.8105*c);a.lineTo(.3171*b,.8173*c);a.lineTo(.2854*b,.8*c);a.arcTo(.0407*b,.0376*c,0,0,1,.2724*b,.785*c);a.arcTo(.0569*b,.0526*c,0,0,1,.265*b,.7593*c);a.arcTo(.0407*b,.0376*c,0,0,1,.2683*b,.7459*c);a.arcTo(.0163*b,.0151*c,0,0,1,.2829*b,.7405*c);a.lineTo(.3228*b,.7609*c);a.lineTo(.3179*b,.7684*c);a.lineTo(.2878*b,.7526*c);a.arcTo(.0081*b,.0075*c,0,0,0,.2789*b,.7541*c);a.arcTo(.0244*b,.0225*c,0,0,0,.2748*b,.7684*
5161c);a.arcTo(.0407*b,.0376*c,0,0,0,.2878*b,.7909*c);a.close();a.moveTo(.3276*b,.7639*c);a.lineTo(.3366*b,.7684*c);a.lineTo(.3366*b,.8173*c);a.lineTo(.3805*b,.8406*c);a.lineTo(.3748*b,.8473*c);a.lineTo(.3317*b,.8248*c);a.arcTo(.0163*b,.0151*c,0,0,1,.3276*b,.8158*c);a.close();a.moveTo(.435*b,.8692*c);a.lineTo(.4325*b,.8789*c);a.lineTo(.3959*b,.8594*c);a.arcTo(.0407*b,.0376*c,0,0,1,.3862*b,.8466*c);a.arcTo(.0528*b,.0489*c,0,0,1,.3805*b,.806*c);a.arcTo(.0163*b,.0151*c,0,0,1,.3951*b,.8008*c);a.lineTo(.435*
5162b,.821*c);a.lineTo(.4285*b,.827*c);a.lineTo(.4008*b,.8127*c);a.arcTo(.0098*b,.0091*c,0,0,0,.3878*b,.8196*c);a.lineTo(.4333*b,.8443*c);a.lineTo(.426*b,.8512*c);a.lineTo(.3878*b,.8308*c);a.arcTo(.0325*b,.0301*c,0,0,0,.3976*b,.8489*c);a.close();a.moveTo(.6171*b,.7932*c);a.arcTo(.0163*b,.0151*c,0,0,1,.6366*b,.7963*c);a.arcTo(.0325*b,.0301*c,0,0,1,.639*b,.8188*c);a.arcTo(.065*b,.0601*c,0,0,1,.6211*b,.8497*c);a.lineTo(.5894*b,.8677*c);a.arcTo(.0203*b,.0188*c,0,0,1,.565*b,.8646*c);a.arcTo(.0407*b,.0376*
5163c,0,0,1,.5659*b,.8354*c);a.arcTo(.0488*b,.0451*c,0,0,1,.5805*b,.8127*c);a.close();a.moveTo(.5886*b,.8181*c);a.arcTo(.0325*b,.0301*c,0,0,0,.5748*b,.8368*c);a.arcTo(.0325*b,.0301*c,0,0,0,.574*b,.8527*c);a.arcTo(.0098*b,.0091*c,0,0,0,.587*b,.8586*c);a.lineTo(.6163*b,.8428*c);a.arcTo(.0407*b,.0376*c,0,0,0,.6285*b,.8248*c);a.arcTo(.0244*b,.0225*c,0,0,0,.6293*b,.8105*c);a.arcTo(.0098*b,.0091*c,0,0,0,.6163*b,.803*c);a.close();a.moveTo(.64*b,.8398*c);a.lineTo(.64*b,.779*c);a.lineTo(.6854*b,.7563*c);a.arcTo(.0106*
5164b,.0098*c,0,0,1,.7008*b,.7632*c);a.arcTo(.0407*b,.0376*c,0,0,1,.6959*b,.7865*c);a.arcTo(.0407*b,.0376*c,0,0,1,.6805*b,.8*c);a.lineTo(.6992*b,.8097*c);a.lineTo(.6854*b,.8166*c);a.lineTo(.6569*b,.8015*c);a.lineTo(.6805*b,.7887*c);a.arcTo(.0203*b,.0188*c,0,0,0,.6894*b,.7782*c);a.arcTo(.0244*b,.0225*c,0,0,0,.6894*b,.7699*c);a.arcTo(.0041*b,.0037*c,0,0,0,.6837*b,.7684*c);a.lineTo(.6528*b,.7842*c);a.lineTo(.6528*b,.8331*c);a.close();a.moveTo(.7*b,.8082*c);a.lineTo(.7301*b,.7338*c);a.arcTo(.0098*b,.0091*
5165c,0,0,1,.7358*b,.7271*c);a.arcTo(.0098*b,.0091*c,0,0,1,.7415*b,.7316*c);a.lineTo(.7699*b,.7707*c);a.lineTo(.7602*b,.7766*c);a.lineTo(.7537*b,.7692*c);a.lineTo(.7276*b,.782*c);a.lineTo(.7228*b,.7736*c);a.lineTo(.748*b,.7617*c);a.lineTo(.7358*b,.7421*c);a.lineTo(.7114*b,.803*c);a.close();a.moveTo(.8244*b,.7316*c);a.lineTo(.8171*b,.7459*c);a.lineTo(.7894*b,.7609*c);a.arcTo(.0244*b,.0225*c,0,0,1,.7683*b,.7593*c);a.arcTo(.0407*b,.0376*c,0,0,1,.7667*b,.7338*c);a.arcTo(.0488*b,.0452*c,0,0,1,.7937*b,.697*
5166c);a.lineTo(.822*b,.6834*c);a.lineTo(.8171*b,.6962*c);a.lineTo(.7902*b,.7113*c);a.arcTo(.0325*b,.0301*c,0,0,0,.778*b,.7256*c);a.arcTo(.0407*b,.0376*c,0,0,0,.7756*b,.7444*c);a.arcTo(.0077*b,.0072*c,0,0,0,.787*b,.7512*c);a.close();a.moveTo(.8366*b,.6742*c);a.lineTo(.8366*b,.7248*c);a.lineTo(.878*b,.7043*c);a.lineTo(.874*b,.7158*c);a.lineTo(.8333*b,.7368*c);a.arcTo(.0041*b,.0037*c,0,0,1,.8268*b,.7324*c);a.lineTo(.8268*b,.6804*c);a.close();a.moveTo(.9342*b,.6233*c);a.lineTo(.9293*b,.6369*c);a.lineTo(.9033*
5167b,.6503*c);a.arcTo(.0325*b,.0301*c,0,0,0,.8927*b,.6601*c);a.arcTo(.0406*b,.0376*c,0,0,0,.887*b,.6729*c);a.lineTo(.9309*b,.6503*c);a.lineTo(.9268*b,.6631*c);a.lineTo(.887*b,.6834*c);a.arcTo(.0089*b,.0082*c,0,0,0,.8992*b,.691*c);a.lineTo(.935*b,.6722*c);a.lineTo(.9285*b,.6864*c);a.lineTo(.9008*b,.7007*c);a.arcTo(.0163*b,.0151*c,0,0,1,.8829*b,.7015*c);a.arcTo(.0407*b,.0376*c,0,0,1,.8764*b,.6827*c);a.arcTo(.065*b,.0601*c,0,0,1,.8959*b,.6443*c);a.fill();a.restore();a.setShadow(!1);a.setLineJoin("round");
5168a.begin();a.moveTo(.126*b,.1316*c);a.lineTo(.126*b,.267*c);a.lineTo(.378*b,.4023*c);a.lineTo(.5*b,.6015*c);a.lineTo(.622*b,.4023*c);a.lineTo(.874*b,.267*c);a.lineTo(.874*b,.1316*c);a.moveTo(0,.3346*c);a.lineTo(.126*b,.267*c);a.moveTo(.5*b,.6015*c);a.lineTo(.5*b,c);a.moveTo(b,.3346*c);a.lineTo(.87*b,.267*c);a.moveTo(.378*b,.4023*c);a.lineTo(.622*b,.4023*c);a.stroke();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.begin();a.moveTo(0,.7331*c);a.lineTo(0,.3346*c);a.lineTo(.126*b,.1316*c);a.lineTo(.374*
5169b,0);a.lineTo(.626*b,0);a.lineTo(.874*b,.1316*c);a.lineTo(b,.3346*c);a.lineTo(b,.7331*c);a.lineTo(.5*b,c);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeAws3dOracleDatabaseServer.prototype.cst.ORACLE_DB_SERVER,mxShapeAws3dOracleDatabaseServer);function mxShapeAws3dRdsMaster(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dRdsMaster,mxShape);
5170mxShapeAws3dRdsMaster.prototype.cst={RDS_MASTER:"mxgraph.aws3d.rdsMaster",SHADING_COLORS:"shadingCols"};mxShapeAws3dRdsMaster.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));d=Math.min(d*b/123,d*c/133);a.setStrokeWidth(d);this.background(a,0,0,b,c,d);a.setShadow(!1);this.foreground(a,0,0,b,c,d)};
5171mxShapeAws3dRdsMaster.prototype.background=function(a,d,e,b,c,f){a.save();a.save();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.7331*c);a.lineTo(0,.3346*c);a.lineTo(.126*b,.1316*c);a.lineTo(.374*b,0);a.lineTo(.626*b,0);a.lineTo(.874*b,.1316*c);a.lineTo(b,.3346*c);a.lineTo(b,.7331*c);a.lineTo(.5*b,c);a.close();a.fillAndStroke()};
5172mxShapeAws3dRdsMaster.prototype.foreground=function(a,d,e,b,c,f){a.restore();a.setShadow(!1);a.setFillColor("#000000");d=mxUtils.getValue(this.state.style,mxShapeAws3dRdsMaster.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");e=mxUtils.getValue(this.state.style,"flipH","0");"0"==e?a.setAlpha(d[0]):a.setAlpha(d[1]);a.begin();a.moveTo(.126*b,.1316*c);a.lineTo(.126*b,.267*c);a.lineTo(.378*b,.4023*c);a.lineTo(.5*b,.6015*c);a.lineTo(.5*b,c);a.lineTo(0,.7331*c);a.lineTo(0,.3346*c);a.close();
5173a.moveTo(.874*b,.267*c);a.lineTo(.874*b,.1316*c);a.lineTo(b,.3308*c);a.fill();"0"==e?a.setAlpha(d[1]):a.setAlpha(d[0]);a.begin();a.moveTo(.5*b,c);a.lineTo(.5*b,.6015*c);a.lineTo(.622*b,.4023*c);a.lineTo(.874*b,.267*c);a.lineTo(b,.3308*c);a.lineTo(b,.7331*c);a.close();a.fill();a.restore();d=mxUtils.getValue(this.state.style,"strokeColor","#000000");a.setFillColor(d);a.setShadow(!1);a.begin();a.moveTo(.1878*b,.1932*c);a.lineTo(.4854*b,.0414*c);a.lineTo(.5886*b,.094*c);a.lineTo(.4455*b,.2308*c);a.lineTo(.7122*
5174b,.1579*c);a.lineTo(.8171*b,.2098*c);a.lineTo(.5187*b,.3617*c);a.lineTo(.4537*b,.3293*c);a.lineTo(.7016*b,.2053*c);a.lineTo(.3854*b,.2947*c);a.lineTo(.3187*b,.2602*c);a.lineTo(.4959*b,.0992*c);a.lineTo(.2504*b,.2256*c);a.close();a.fill();a.setLineJoin("round");a.begin();a.moveTo(.126*b,.1316*c);a.lineTo(.126*b,.267*c);a.lineTo(.378*b,.4023*c);a.lineTo(.5*b,.6015*c);a.lineTo(.622*b,.4023*c);a.lineTo(.874*b,.267*c);a.lineTo(.874*b,.1316*c);a.moveTo(0,.3346*c);a.lineTo(.126*b,.267*c);a.moveTo(.5*b,.6015*
5175c);a.lineTo(.5*b,c);a.moveTo(b,.3346*c);a.lineTo(.87*b,.267*c);a.moveTo(.378*b,.4023*c);a.lineTo(.622*b,.4023*c);a.stroke();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.begin();a.moveTo(0,.7331*c);a.lineTo(0,.3346*c);a.lineTo(.126*b,.1316*c);a.lineTo(.374*b,0);a.lineTo(.626*b,0);a.lineTo(.874*b,.1316*c);a.lineTo(b,.3346*c);a.lineTo(b,.7331*c);a.lineTo(.5*b,c);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeAws3dRdsMaster.prototype.cst.RDS_MASTER,mxShapeAws3dRdsMaster);
5176function mxShapeAws3dRds(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dRds,mxShape);mxShapeAws3dRds.prototype.cst={RDS:"mxgraph.aws3d.rds",SHADING_COLORS:"shadingCols"};
5177mxShapeAws3dRds.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));d=Math.min(d*b/123,d*c/133);a.setStrokeWidth(d);this.background(a,0,0,b,c,d);a.setShadow(!1);this.foreground(a,0,0,b,c,d)};
5178mxShapeAws3dRds.prototype.background=function(a,d,e,b,c,f){a.save();a.save();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.7331*c);a.lineTo(0,.3346*c);a.lineTo(.126*b,.1316*c);a.lineTo(.374*b,0);a.lineTo(.626*b,0);a.lineTo(.874*b,.1316*c);a.lineTo(b,.3346*c);a.lineTo(b,.7331*c);a.lineTo(.5*b,c);a.close();a.fillAndStroke()};
5179mxShapeAws3dRds.prototype.foreground=function(a,d,e,b,c,f){a.restore();a.setShadow(!1);a.setFillColor("#000000");d=mxUtils.getValue(this.state.style,mxShapeAws3dRds.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");e=mxUtils.getValue(this.state.style,"flipH","0");"0"==e?a.setAlpha(d[0]):a.setAlpha(d[1]);a.begin();a.moveTo(.126*b,.1316*c);a.lineTo(.126*b,.267*c);a.lineTo(.378*b,.4023*c);a.lineTo(.5*b,.6015*c);a.lineTo(.5*b,c);a.lineTo(0,.7331*c);a.lineTo(0,.3346*c);a.close();a.moveTo(.874*
5180b,.267*c);a.lineTo(.874*b,.1316*c);a.lineTo(b,.3308*c);a.fill();"0"==e?a.setAlpha(d[1]):a.setAlpha(d[0]);a.begin();a.moveTo(.5*b,c);a.lineTo(.5*b,.6015*c);a.lineTo(.622*b,.4023*c);a.lineTo(.874*b,.267*c);a.lineTo(b,.3308*c);a.lineTo(b,.7331*c);a.close();a.fill();a.restore();a.setFillColor("#ffffff");a.setShadow(!1);a.begin();a.moveTo(0,.6053*c);a.lineTo(.5*b,.8722*c);a.lineTo(b,.6053*c);a.lineTo(b,.6278*c);a.lineTo(.5*b,.8947*c);a.lineTo(0,.6278*c);a.close();a.fill();a.setLineJoin("round");a.begin();
5181a.moveTo(.126*b,.1316*c);a.lineTo(.126*b,.267*c);a.lineTo(.378*b,.4023*c);a.lineTo(.5*b,.6015*c);a.lineTo(.622*b,.4023*c);a.lineTo(.874*b,.267*c);a.lineTo(.874*b,.1316*c);a.moveTo(0,.3346*c);a.lineTo(.126*b,.267*c);a.moveTo(.5*b,.6015*c);a.lineTo(.5*b,c);a.moveTo(b,.3346*c);a.lineTo(.87*b,.267*c);a.moveTo(.378*b,.4023*c);a.lineTo(.622*b,.4023*c);a.stroke();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.begin();a.moveTo(0,.7331*c);a.lineTo(0,.3346*c);a.lineTo(.126*b,.1316*c);a.lineTo(.374*b,0);
5182a.lineTo(.626*b,0);a.lineTo(.874*b,.1316*c);a.lineTo(b,.3346*c);a.lineTo(b,.7331*c);a.lineTo(.5*b,c);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeAws3dRds.prototype.cst.RDS,mxShapeAws3dRds);function mxShapeAws3dRoute53(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dRoute53,mxShape);mxShapeAws3dRoute53.prototype.cst={ROUTE_53:"mxgraph.aws3d.route53",SHADING_COLORS:"shadingCols"};
5183mxShapeAws3dRoute53.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));d=Math.min(d*b/117,d*c/134.4);a.setStrokeWidth(d);this.background(a,0,0,b,c,d);a.setShadow(!1);this.foreground(a,0,0,b,c,d)};
5184mxShapeAws3dRoute53.prototype.background=function(a,d,e,b,c,f){a.save();a.save();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.6994*c);a.lineTo(0,.2009*c);a.lineTo(.0427*b,.0781*c);a.lineTo(.7974*b,0);a.lineTo(b,.1004*c);a.lineTo(b,.5915*c);a.lineTo(.8376*b,.9784*c);a.lineTo(.5983*b,c);a.close();a.fillAndStroke()};
5185mxShapeAws3dRoute53.prototype.foreground=function(a,d,e,b,c,f){a.restore();a.setShadow(!1);a.setFillColor("#000000");d=mxUtils.getValue(this.state.style,mxShapeAws3dRoute53.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");e=mxUtils.getValue(this.state.style,"flipH","0");"0"==e?a.setAlpha(d[0]):a.setAlpha(d[1]);a.begin();a.moveTo(0,.2009*c);a.lineTo(.6009*b,.5007*c);a.lineTo(.8376*b,.4799*c);a.lineTo(.8376*b,.9784*c);a.lineTo(.5966*b,c);a.lineTo(0,.6979*c);a.close();a.fill();"0"==e?a.setAlpha(d[1]):
5186a.setAlpha(d[0]);a.begin();a.moveTo(.8348*b,.4861*c);a.lineTo(.9985*b,.0992*c);a.lineTo(b,.5952*c);a.lineTo(.8404*b,.9747*c);a.close();a.fill();a.restore();a.setShadow(!1);a.setLineJoin("round");d=mxUtils.getValue(this.state.style,"strokeColor","#000000");a.setFillColor(d);a.begin();a.moveTo(.5855*b,.1079*c);a.arcTo(.094*b,.0744*c,0,0,0,.6863*b,.1548*c);a.arcTo(.0855*b,.0446*c,0,0,0,.7761*b,.2031*c);a.lineTo(.7726*b,.2455*c);a.arcTo(.0769*b,.0298*c,0,0,0,.694*b,.2693*c);a.arcTo(.0684*b,.0446*c,0,
51870,1,.5897*b,.3051*c);a.arcTo(.4274*b,.372*c,0,0,0,.4573*b,.2753*c);a.arcTo(.0855*b,.0744*c,0,0,0,.4188*b,.2344*c);a.lineTo(.3846*b,.2083*c);a.arcTo(.0769*b,.0372*c,0,0,1,.4103*b,.1525*c);a.arcTo(.0855*b,.0409*c,0,0,0,.4906*b,.1079*c);a.close();a.fill();a.begin();a.moveTo(0,.2009*c);a.lineTo(.6009*b,.5007*c);a.lineTo(.8376*b,.4799*c);a.lineTo(.8376*b,.9784*c);a.lineTo(.5966*b,c);a.lineTo(0,.6979*c);a.close();a.moveTo(.8348*b,.4861*c);a.lineTo(.9985*b,.0992*c);a.lineTo(b,.5952*c);a.lineTo(.8404*b,.9747*
5188c);a.close();a.moveTo(.6009*b,.5007*c);a.lineTo(.6009*b,c);a.stroke();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.begin();a.moveTo(0,.6994*c);a.lineTo(0,.2009*c);a.lineTo(.0427*b,.0781*c);a.lineTo(.7974*b,0);a.lineTo(b,.1004*c);a.lineTo(b,.5915*c);a.lineTo(.8376*b,.9784*c);a.lineTo(.5983*b,c);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeAws3dRoute53.prototype.cst.ROUTE_53,mxShapeAws3dRoute53);
5189function mxShapeAws3dS3Bucket(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dS3Bucket,mxShape);mxShapeAws3dS3Bucket.prototype.cst={S3_BUCKET:"mxgraph.aws3d.s3Bucket",SHADING_COLORS:"shadingCols"};
5190mxShapeAws3dS3Bucket.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));e=d*b/61.5;d=d*c/63.8;var f=parseFloat(mxUtils.getValue(this.state.style,"shadow","0"));d=Math.min(e,d);a.setShadow(!1);a.setStrokeWidth(d);a.save();a.save();a.setStrokeWidth(2*d);a.setStrokeColor("#292929");a.setLineJoin("round");1==f&&a.setShadow(!0);a.begin();a.moveTo(0,.2774*c);a.lineTo(.5*b,0);a.lineTo(b,.2774*c);a.lineTo(.7967*b,.8307*c);a.lineTo(.5*
5191b,c);a.lineTo(.1951*b,.8307*c);a.close();a.fillAndStroke();a.restore();a.setFillColor("#000000");e=mxUtils.getValue(this.state.style,mxShapeAws3dS3Bucket.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");f=mxUtils.getValue(this.state.style,"flipH","0");"0"==f?a.setAlpha(e[0]):a.setAlpha(e[1]);a.begin();a.moveTo(0,.2774*c);a.lineTo(.5*b,.5564*c);a.lineTo(.5*b,c);a.lineTo(.1984*b,.8307*c);a.close();a.fill();"0"==f?a.setAlpha(e[1]):a.setAlpha(e[0]);a.begin();a.moveTo(.5*b,.5533*c);a.lineTo(b,
5192.2774*c);a.lineTo(.7967*b,.8307*c);a.lineTo(.5*b,c);a.close();a.fill();a.restore();a.setLineJoin("round");a.begin();a.moveTo(0,.2774*c);a.lineTo(.5*b,.5564*c);a.lineTo(b,.2774*c);a.stroke();a.begin();a.moveTo(.5*b,.5564*c);a.lineTo(.5*b,c);a.stroke();a.setStrokeWidth(2*d);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.2774*c);a.lineTo(.5008*b,0);a.lineTo(b,.2774*c);a.lineTo(.7967*b,.8307*c);a.lineTo(.5008*b,c);a.lineTo(.1951*b,.8307*c);a.close();a.stroke()};
5193mxCellRenderer.registerShape(mxShapeAws3dS3Bucket.prototype.cst.S3_BUCKET,mxShapeAws3dS3Bucket);function mxShapeAws3dS3(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dS3,mxShape);mxShapeAws3dS3.prototype.cst={S3:"mxgraph.aws3d.s3",SHADING_COLORS:"shadingCols"};
5194mxShapeAws3dS3.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));d=Math.min(d*b/231.5,d*c/239);this.background(a,0,0,b,c,d);a.setShadow(!1);this.foreground(a,0,0,b,c,d)};
5195mxShapeAws3dS3.prototype.background=function(a,d,e,b,c,f){a.setStrokeWidth(f);a.save();a.save();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.7782*c);a.lineTo(0,.3406*c);a.lineTo(.5974*b,0);a.lineTo(b,.2218*c);a.lineTo(b,.6674*c);a.lineTo(.3991*b,c);a.close();a.fillAndStroke()};
5196mxShapeAws3dS3.prototype.foreground=function(a,d,e,b,c,f){a.restore();a.setShadow(!1);a.setFillColor("#000000");d=mxUtils.getValue(this.state.style,mxShapeAws3dS3.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");e=mxUtils.getValue(this.state.style,"flipH","0");"0"==e?a.setAlpha(d[0]):a.setAlpha(d[1]);a.begin();a.moveTo(0,.3406*c);a.lineTo(.3991*b,.5548*c);a.lineTo(.3991*b,c);a.lineTo(0,.7782*c);a.close();a.fill();"0"==e?a.setAlpha(d[1]):a.setAlpha(d[0]);a.begin();a.moveTo(.3991*b,.5548*
5197c);a.lineTo(b,.2218*c);a.lineTo(b,.6661*c);a.lineTo(.3991*b,c);a.close();a.fill();a.restore();a.setShadow(!1);a.setLineJoin("round");a.begin();a.moveTo(0,.3406*c);a.lineTo(.3991*b,.5548*c);a.lineTo(b,.2218*c);a.moveTo(.3991*b,.5548*c);a.lineTo(.3991*b,c);a.moveTo(.3991*b,.3335*c);a.lineTo(.2009*b,.448*c);a.lineTo(.2009*b,.8891*c);a.moveTo(.5983*b,.2209*c);a.lineTo(.7948*b,.1109*c);a.moveTo(.2022*b,.2218*c);a.lineTo(.5991*b,.4448*c);a.lineTo(.5991*b,.8891*c);a.moveTo(.4004*b,.1117*c);a.lineTo(.7978*
5198b,.3335*c);a.lineTo(.7978*b,.7791*c);a.stroke();d=mxUtils.getValue(this.state.style,"strokeColor","#000000");a.setFillColor(d);a.begin();a.moveTo(.4773*b,.2155*c);a.arcTo(.0086*b,.0046*c,0,0,1,.4903*b,.2096*c);a.arcTo(.2808*b,.272*c,0,0,1,.6004*b,.2619*c);a.arcTo(.108*b,.105*c,0,0,1,.6177*b,.277*c);a.arcTo(.0065*b,.0063*c,0,0,1,.6099*b,.2879*c);a.arcTo(.1944*b,.1883*c,0,0,1,.5378*b,.2607*c);a.arcTo(.216*b,.2092*c,0,0,1,.4773*b,.2155*c);a.close();a.fill();a.begin();a.moveTo(.4687*b,.2138*c);a.arcTo(.1512*
5199b,.1464*c,0,0,0,.4838*b,.2343*c);a.arcTo(.2376*b,.2301*c,0,0,0,.5529*b,.2774*c);a.arcTo(.1728*b,.1674*c,0,0,0,.6091*b,.2954*c);a.lineTo(.4946*b,.3339*c);a.arcTo(.1944*b,.1883*c,0,0,1,.4549*b,.3205*c);a.arcTo(.1944*b,.1883*c,0,0,1,.419*b,.3004*c);a.arcTo(.1944*b,.1883*c,0,0,1,.3965*b,.2795*c);a.close();a.fill();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.7782*c);a.lineTo(0,.3406*c);a.lineTo(.5974*b,0);a.lineTo(b,.2218*c);a.lineTo(b,.6674*c);a.lineTo(.3991*
5200b,c);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeAws3dS3.prototype.cst.S3,mxShapeAws3dS3);function mxShapeAws3dSimpleDB(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dSimpleDB,mxShape);mxShapeAws3dSimpleDB.prototype.cst={SIMPLE_DB:"mxgraph.aws3d.simpleDb",SHADING_COLORS:"shadingCols"};
5201mxShapeAws3dSimpleDB.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));d=Math.min(d*b/123,d*c/133);a.setStrokeWidth(d);this.background(a,0,0,b,c,d);a.setShadow(!1);this.foreground(a,0,0,b,c,d)};
5202mxShapeAws3dSimpleDB.prototype.background=function(a,d,e,b,c,f){a.save();a.save();a.save();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.7331*c);a.lineTo(0,.3346*c);a.lineTo(.126*b,.1316*c);a.lineTo(.374*b,0);a.lineTo(.626*b,0);a.lineTo(.874*b,.1316*c);a.lineTo(b,.3346*c);a.lineTo(b,.7331*c);a.lineTo(.5*b,c);a.close();a.fillAndStroke()};
5203mxShapeAws3dSimpleDB.prototype.foreground=function(a,d,e,b,c,f){a.restore();a.setShadow(!1);a.setFillColor("#000000");d=mxUtils.getValue(this.state.style,mxShapeAws3dSimpleDB.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");e=mxUtils.getValue(this.state.style,"flipH","0");"0"==e?a.setAlpha(d[0]):a.setAlpha(d[1]);a.begin();a.moveTo(.126*b,.1316*c);a.lineTo(.126*b,.267*c);a.lineTo(.378*b,.4023*c);a.lineTo(.5*b,.6015*c);a.lineTo(.5*b,c);a.lineTo(0,.7331*c);a.lineTo(0,.3346*c);a.close();
5204a.moveTo(.874*b,.267*c);a.lineTo(.874*b,.1316*c);a.lineTo(b,.3308*c);a.fill();"0"==e?a.setAlpha(d[1]):a.setAlpha(d[0]);a.begin();a.moveTo(.5*b,c);a.lineTo(.5*b,.6015*c);a.lineTo(.622*b,.4023*c);a.lineTo(.874*b,.267*c);a.lineTo(b,.3308*c);a.lineTo(b,.7331*c);a.close();a.fill();a.restore();d=mxUtils.getValue(this.state.style,"strokeColor","#000000");a.setFillColor(d);a.setShadow(!1);a.begin();a.moveTo(.1821*b,.182*c);a.lineTo(.4659*b,.0308*c);a.lineTo(.822*b,.2218*c);a.lineTo(.539*b,.3714*c);a.close();
5205a.fill();a.setLineJoin("round");a.begin();a.moveTo(.126*b,.1316*c);a.lineTo(.126*b,.267*c);a.lineTo(.378*b,.4023*c);a.lineTo(.5*b,.6015*c);a.lineTo(.622*b,.4023*c);a.lineTo(.874*b,.267*c);a.lineTo(.874*b,.1316*c);a.moveTo(0,.3346*c);a.lineTo(.126*b,.267*c);a.moveTo(.5*b,.6015*c);a.lineTo(.5*b,c);a.moveTo(b,.3346*c);a.lineTo(.87*b,.267*c);a.moveTo(.378*b,.4023*c);a.lineTo(.622*b,.4023*c);a.stroke();a.restore();a.setShadow(!1);d=mxUtils.getValue(this.state.style,"fillColor","#ffffff");a.setStrokeColor(d);
5206a.setStrokeWidth(2.2*f);a.begin();a.moveTo(.2382*b,.2218*c);a.lineTo(.5415*b,.0602*c);a.moveTo(.3821*b,.0564*c);a.lineTo(.7737*b,.2656*c);a.moveTo(.2967*b,.0915*c);a.lineTo(.7114*b,.312*c);a.moveTo(.2209*b,.1316*c);a.lineTo(.6179*b,.3434*c);a.stroke();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.begin();a.moveTo(0,.7331*c);a.lineTo(0,.3346*c);a.lineTo(.126*b,.1316*c);a.lineTo(.374*b,0);a.lineTo(.626*b,0);a.lineTo(.874*b,.1316*c);a.lineTo(b,.3346*c);a.lineTo(b,.7331*c);a.lineTo(.5*b,c);a.close();
5207a.stroke()};mxCellRenderer.registerShape(mxShapeAws3dSimpleDB.prototype.cst.SIMPLE_DB,mxShapeAws3dSimpleDB);function mxShapeAws3dSqs(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dSqs,mxShape);mxShapeAws3dSqs.prototype.cst={SQS:"mxgraph.aws3d.sqs",SHADING_COLORS:"shadingCols"};
5208mxShapeAws3dSqs.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));d=Math.min(d*b/184,d*c/212.75);this.background(a,0,0,b,c,d);a.setShadow(!1);this.foreground(a,0,0,b,c,d)};
5209mxShapeAws3dSqs.prototype.background=function(a,d,e,b,c,f){a.setStrokeWidth(f);a.save();a.save();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.7485*c);a.lineTo(0,.584*c);a.lineTo(.1658*b,.1666*c);a.lineTo(.5*b,0);a.lineTo(.8337*b,.1666*c);a.lineTo(b,.584*c);a.lineTo(b,.7485*c);a.lineTo(.5*b,c);a.close();a.fillAndStroke()};
5210mxShapeAws3dSqs.prototype.foreground=function(a,d,e,b,c,f){a.restore();a.setShadow(!1);a.setFillColor("#000000");d=mxUtils.getValue(this.state.style,mxShapeAws3dSqs.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");e=mxUtils.getValue(this.state.style,"flipH","0");"0"==e?a.setAlpha(d[0]):a.setAlpha(d[1]);a.begin();a.moveTo(.1658*b,.1671*c);a.lineTo(.5*b,.334*c);a.lineTo(.5*b,c);a.lineTo(0,.7485*c);a.lineTo(0,.584*c);a.close();a.fill();"0"==e?a.setAlpha(d[1]):a.setAlpha(d[0]);a.begin();
5211a.moveTo(.5*b,.3344*c);a.lineTo(.8332*b,.1671*c);a.lineTo(b,.584*c);a.lineTo(b,.7509*c);a.lineTo(.5*b,c);a.close();a.fill();a.restore();a.setShadow(!1);a.setLineJoin("round");a.begin();a.moveTo(.6674*b,.0844*c);a.lineTo(.3337*b,.2512*c);a.lineTo(.25*b,.7109*c);a.lineTo(.25*b,.8736*c);a.moveTo(.3326*b,.0839*c);a.lineTo(.6674*b,.2512*c);a.lineTo(.75*b,.7053*c);a.lineTo(.75*b,.874*c);a.moveTo(0,.584*c);a.lineTo(.5*b,.8331*c);a.lineTo(b,.584*c);a.moveTo(.1658*b,.1671*c);a.lineTo(.5*b,.334*c);a.lineTo(.8332*
5212b,.1671*c);a.moveTo(.5*b,.334*c);a.lineTo(.5*b,c);a.stroke();d=mxUtils.getValue(this.state.style,"strokeColor","#000000");a.setFillColor(d);a.begin();a.moveTo(.3337*b,.1511*c);a.lineTo(.4668*b,.0848*c);a.lineTo(.6663*b,.184*c);a.lineTo(.5337*b,.2503*c);a.close();a.fill();d=mxUtils.getValue(this.state.style,"fillColor","#000000");a.setFillColor(d);a.begin();a.moveTo(.3902*b,.153*c);a.lineTo(.4701*b,.113*c);a.lineTo(.4701*b,.153*c);a.close();a.moveTo(.4402*b,.1784*c);a.lineTo(.5196*b,.1384*c);a.lineTo(.5196*
5213b,.1784*c);a.close();a.moveTo(.4908*b,.2033*c);a.lineTo(.5701*b,.1633*c);a.lineTo(.5701*b,.2033*c);a.close();a.fill();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.7485*c);a.lineTo(0,.584*c);a.lineTo(.1658*b,.1666*c);a.lineTo(.5*b,0);a.lineTo(.8337*b,.1666*c);a.lineTo(b,.584*c);a.lineTo(b,.7485*c);a.lineTo(.5*b,c);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeAws3dSqs.prototype.cst.SQS,mxShapeAws3dSqs);
5214function mxShapeAws3dVpcGateway(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dVpcGateway,mxShape);mxShapeAws3dVpcGateway.prototype.cst={VPC_GATEWAY:"mxgraph.aws3d.vpcGateway",SHADING_COLORS:"shadingCols"};
5215mxShapeAws3dVpcGateway.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));d=Math.min(d*b/116.7,d*c/102.8);this.background(a,0,0,b,c,d);a.setShadow(!1);this.foreground(a,0,0,b,c,d)};
5216mxShapeAws3dVpcGateway.prototype.background=function(a,d,e,b,c,f){a.setStrokeWidth(f);a.save();a.save();a.save();a.save();a.save();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(.5801*b,.5447*c);a.lineTo(.5801*b,.035*c);a.lineTo(.1054*b,0);a.lineTo(0,.0691*c);a.lineTo(0,.4134*c);a.lineTo(.3188*b,.7247*c);a.close();a.fillAndStroke();a.restore();a.save();a.setShadow(!1);a.setFillColor("#000000");d=mxUtils.getValue(this.state.style,mxShapeAws3dVpcGateway.prototype.cst.SHADING_COLORS,
5217"0.1,0.3").toString().split(",");e=mxUtils.getValue(this.state.style,"flipH","0");"0"==e?a.setAlpha(d[1]):a.setAlpha(d[0]);a.begin();a.moveTo(.5801*b,.5447*c);a.lineTo(.5801*b,.035*c);a.lineTo(.3162*b,.2072*c);a.lineTo(.3162*b,.7247*c);a.close();a.fill();"0"==e?a.setAlpha(d[0]):a.setAlpha(d[1]);a.begin();a.moveTo(.3162*b,.2072*c);a.lineTo(0,.0691*c);a.lineTo(0,.4134*c);a.lineTo(.3162*b,.7247*c);a.close();a.fill();a.restore();a.setShadow(!1);a.begin();a.moveTo(.5801*b,.5447*c);a.lineTo(.5801*b,.035*
5218c);a.lineTo(.3162*b,.2072*c);a.lineTo(.3162*b,.7247*c);a.close();a.stroke();a.restore();a.setLineJoin("round");a.setShadow(!1);a.begin();a.moveTo(.3162*b,.2072*c);a.lineTo(0,.0691*c);a.lineTo(0,.4134*c);a.lineTo(.3162*b,.7247*c);a.close();a.stroke();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.begin();a.moveTo(.5801*b,.5447*c);a.lineTo(.5801*b,.035*c);a.lineTo(.1054*b,0);a.lineTo(0,.0691*c);a.lineTo(0,.4134*c);a.lineTo(.3188*b,.7247*c);a.close();a.stroke();a.restore();a.setStrokeWidth(2*f);
5219a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(b,.929*c);a.lineTo(b,.5866*c);a.lineTo(.6829*b,.1031*c);a.lineTo(.4216*b,.2753*c);a.lineTo(.4216*b,.7928*c);a.lineTo(.8946*b,c);a.close();a.fillAndStroke()};
5220mxShapeAws3dVpcGateway.prototype.foreground=function(a,d,e,b,c,f){a.restore();d=mxUtils.getValue(this.state.style,"strokeColor","#000000");a.setShadow(!1);a.setLineJoin("round");a.setFillColor("#000000");e=mxUtils.getValue(this.state.style,mxShapeAws3dVpcGateway.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");var g=mxUtils.getValue(this.state.style,"flipH","0");"0"==g?a.setAlpha(e[1]):a.setAlpha(e[0]);a.begin();a.moveTo(b,.929*c);a.lineTo(b,.5866*c);a.lineTo(.8946*b,.6537*c);a.lineTo(.8946*
5221b,c);a.close();a.fill();"0"==g?a.setAlpha(e[0]):a.setAlpha(e[1]);a.begin();a.moveTo(.8946*b,c);a.lineTo(.8946*b,.6537*c);a.lineTo(.4216*b,.2753*c);a.lineTo(.4216*b,.7928*c);a.close();a.fill();a.restore();a.setShadow(!1);a.setLineJoin("round");a.begin();a.moveTo(b,.929*c);a.lineTo(b,.5866*c);a.lineTo(.8946*b,.6537*c);a.lineTo(.8946*b,c);a.close();a.stroke();a.begin();a.moveTo(.8946*b,c);a.lineTo(.8946*b,.6537*c);a.lineTo(.4216*b,.2753*c);a.lineTo(.4216*b,.7928*c);a.close();a.stroke();a.setStrokeWidth(2*
5222f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(b,.929*c);a.lineTo(b,.5866*c);a.lineTo(.6829*b,.1031*c);a.lineTo(.4216*b,.2753*c);a.lineTo(.4216*b,.7928*c);a.lineTo(.8946*b,c);a.close();a.stroke();a.setFillColor(d);a.begin();a.moveTo(.5587*b,.7743*c);a.lineTo(.5587*b,.6274*c);a.lineTo(.5775*b,.6342*c);a.lineTo(.5775*b,.57*c);a.arcTo(.0428*b,.0486*c,0,0,1,.6058*b,.5253*c);a.arcTo(.0686*b,.0778*c,0,0,1,.6564*b,.5447*c);a.arcTo(.0857*b,.0973*c,0,0,1,.6847*b,.607*c);a.lineTo(.6847*
5223b,.6877*c);a.lineTo(.7001*b,.6946*c);a.lineTo(.7001*b,.8405*c);a.close();a.moveTo(.6564*b,.6741*c);a.lineTo(.6564*b,.6177*c);a.arcTo(.06*b,.0681*c,0,0,0,.6392*b,.57*c);a.arcTo(.0343*b,.0389*c,0,0,0,.6195*b,.5574*c);a.arcTo(.0111*b,.0126*c,0,0,0,.6058*b,.5691*c);a.lineTo(.6058*b,.6498*c);a.close();a.fill()};mxCellRenderer.registerShape(mxShapeAws3dVpcGateway.prototype.cst.VPC_GATEWAY,mxShapeAws3dVpcGateway);
5224function mxShapeAws3dWebServer(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dWebServer,mxShape);mxShapeAws3dWebServer.prototype.cst={WEB_SERVER:"mxgraph.aws3d.webServer",SHADING_COLORS:"shadingCols"};
5225mxShapeAws3dWebServer.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));d=Math.min(d*b/123,d*c/106);this.background(a,0,0,b,c,d);a.setShadow(!1);this.foreground(a,0,0,b,c,d)};
5226mxShapeAws3dWebServer.prototype.background=function(a,d,e,b,c,f){a.setStrokeWidth(f);a.save();a.save();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.6651*c);a.lineTo(0,.3349*c);a.lineTo(.5*b,0);a.lineTo(b,.3349*c);a.lineTo(b,.6651*c);a.lineTo(.5*b,c);a.close();a.fillAndStroke()};
5227mxShapeAws3dWebServer.prototype.foreground=function(a,d,e,b,c,f){a.restore();a.setShadow(!1);a.setFillColor("#000000");d=mxUtils.getValue(this.state.style,mxShapeAws3dWebServer.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");e=mxUtils.getValue(this.state.style,"flipH","0");"0"==e?a.setAlpha(d[0]):a.setAlpha(d[1]);a.begin();a.moveTo(0,.3349*c);a.lineTo(.5*b,.6651*c);a.lineTo(.5*b,c);a.lineTo(0,.6651*c);a.close();a.fill();"0"==e?a.setAlpha(d[1]):a.setAlpha(d[0]);a.begin();a.moveTo(.5*
5228b,.6651*c);a.lineTo(b,.3349*c);a.lineTo(b,.6651*c);a.lineTo(.5*b,c);a.close();a.fill();a.restore();a.setShadow(!1);a.setLineJoin("round");a.begin();a.moveTo(0,.3349*c);a.lineTo(.5*b,.6651*c);a.lineTo(.5*b,c);a.lineTo(0,.6651*c);a.close();a.stroke();a.begin();a.moveTo(.5*b,.6651*c);a.lineTo(b,.3349*c);a.lineTo(b,.6651*c);a.lineTo(.5*b,c);a.close();a.stroke();a.setLineJoin("miter");d=mxUtils.getValue(this.state.style,"strokeColor","#000000");a.setFillColor(d);a.begin();a.moveTo(.374*b,.5189*c);a.arcTo(.0325*
5229b,.0236*c,0,0,1,.374*b,.4858*c);a.lineTo(.4797*b,.4151*c);a.arcTo(.0325*b,.0236*c,0,0,1,.5203*b,.4151*c);a.lineTo(.626*b,.4858*c);a.arcTo(.0325*b,.0236*c,0,0,1,.626*b,.516*c);a.lineTo(.5203*b,.5868*c);a.arcTo(.0325*b,.0236*c,0,0,1,.4797*b,.5868*c);a.close();a.fill();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.6651*c);a.lineTo(0,.3349*c);a.lineTo(.5*b,0);a.lineTo(b,.3349*c);a.lineTo(b,.6651*c);a.lineTo(.5*b,c);a.close();a.stroke()};
5230mxCellRenderer.registerShape(mxShapeAws3dWebServer.prototype.cst.WEB_SERVER,mxShapeAws3dWebServer);function mxShapeAws3dDynamoDB(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dDynamoDB,mxShape);mxShapeAws3dDynamoDB.prototype.cst={DYNAMO_DB:"mxgraph.aws3d.dynamoDb",SHADING_COLORS:"shadingCols"};
5231mxShapeAws3dDynamoDB.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));d=Math.min(d*b/181.5,d*c/210);this.background(a,0,0,b,c,d);a.setShadow(!1);this.foreground(a,0,0,b,c,d)};
5232mxShapeAws3dDynamoDB.prototype.background=function(a,d,e,b,c,f){a.setStrokeWidth(f);a.save();a.save();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.8333*c);a.lineTo(0,.1667*c);a.lineTo(.3333*b,.0014*c);a.lineTo(.4986*b,.1667*c);a.lineTo(.6639*b,0);a.lineTo(b,.169*c);a.lineTo(b,.8333*c);a.lineTo(.6667*b,c);a.lineTo(.5014*b,.9162*c);a.lineTo(.3333*b,c);a.close();a.fillAndStroke()};
5233mxShapeAws3dDynamoDB.prototype.foreground=function(a,d,e,b,c,f){a.restore();a.setShadow(!1);a.setFillColor("#000000");d=mxUtils.getValue(this.state.style,mxShapeAws3dDynamoDB.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");e=mxUtils.getValue(this.state.style,"flipH","0");"0"==e?a.setAlpha(d[0]):a.setAlpha(d[1]);a.begin();a.moveTo(.168*b,.3333*c);a.lineTo(0,.3333*c);a.lineTo(.3333*b,.5*c);a.lineTo(.3333*b,c);a.lineTo(0,.8333*c);a.lineTo(0,.1714*c);a.close();a.moveTo(.4986*b,.1667*c);
5234a.lineTo(.6667*b,0);a.lineTo(b,.169*c);a.lineTo(.832*b,.3348*c);a.lineTo(b,.3333*c);a.lineTo(.6667*b,.5*c);a.lineTo(.5014*b,.5*c);a.lineTo(.832*b,.3348*c);a.fill();"0"==e?a.setAlpha(d[1]):a.setAlpha(d[0]);a.begin();a.moveTo(.3333*b,.5*c);a.lineTo(.4986*b,.5*c);a.lineTo(.4986*b,.9162*c);a.lineTo(.3333*b,c);a.close();a.moveTo(.6667*b,c);a.lineTo(.6667*b,.5*c);a.lineTo(b,.3333*c);a.lineTo(.832*b,.3348*c);a.lineTo(b,.169*c);a.lineTo(b,.831*c);a.close();a.fill();a.restore();a.setShadow(!1);a.setLineJoin("round");
5235a.begin();a.moveTo(.168*b,.3333*c);a.lineTo(0,.3333*c);a.lineTo(.3333*b,.5*c);a.lineTo(.3333*b,c);a.lineTo(0,.8333*c);a.lineTo(0,.1714*c);a.close();a.moveTo(.4986*b,.1667*c);a.lineTo(.6667*b,0);a.lineTo(b,.169*c);a.lineTo(.832*b,.3348*c);a.lineTo(b,.3333*c);a.lineTo(.6667*b,.5*c);a.lineTo(.5014*b,.5*c);a.lineTo(.832*b,.3348*c);a.close();a.moveTo(.3333*b,.5*c);a.lineTo(.4986*b,.5*c);a.lineTo(.4986*b,.9162*c);a.lineTo(.3333*b,c);a.close();a.moveTo(.6667*b,c);a.lineTo(.6667*b,.5*c);a.lineTo(b,.3333*
5236c);a.lineTo(b,.831*c);a.close();a.moveTo(.168*b,.3333*c);a.lineTo(.5*b,.1667*c);a.moveTo(.168*b,.3333*c);a.lineTo(.5014*b,.5*c);a.stroke();d=mxUtils.getValue(this.state.style,"strokeColor","#000000");a.setFillColor(d);a.begin();a.moveTo(.4876*b,.2262*c);a.arcTo(.303*b,.2619*c,0,0,1,.5647*b,.25*c);a.arcTo(.4407*b,.381*c,0,0,1,.6419*b,.2905*c);a.arcTo(.303*b,.2619*c,0,0,1,.6799*b,.32*c);a.arcTo(.0132*b,.0076*c,0,0,1,.6634*b,.3314*c);a.arcTo(.303*b,.2619*c,0,0,1,.5978*b,.3119*c);a.arcTo(.4408*b,.381*
5237c,0,0,1,.508*b,.2667*c);a.arcTo(.303*b,.2619*c,0,0,1,.4711*b,.2343*c);a.arcTo(.0132*b,.0076*c,0,0,1,.4876*b,.2262*c);a.close();a.fill();a.begin();a.moveTo(.5124*b,.4143*c);a.arcTo(.1102*b,.0952*c,0,0,1,.4683*b,.4095*c);a.arcTo(.4408*b,.381*c,0,0,1,.3829*b,.3757*c);a.arcTo(.4408*b,.381*c,0,0,1,.3196*b,.3371*c);a.arcTo(.0661*b,.0357*c,0,0,1,.3058*b,.3081*c);a.lineTo(.4612*b,.2333*c);a.arcTo(.0661*b,.0476*c,0,0,0,.4744*b,.2548*c);a.arcTo(.3306*b,.2857*c,0,0,0,.53*b,.2905*c);a.arcTo(.4408*b,.381*c,0,
52380,0,.6198*b,.3295*c);a.arcTo(.1102*b,.0952*c,0,0,0,.665*b,.3367*c);a.close();a.moveTo(.5052*b,.3714*c);a.arcTo(.0275*b,.019*c,0,0,1,.5135*b,.3581*c);a.arcTo(.0275*b,.0238*c,0,0,1,.5344*b,.3571*c);a.lineTo(.5405*b,.3471*c);a.arcTo(.0275*b,.0143*c,0,0,1,.5278*b,.3381*c);a.arcTo(.022*b,.0119*c,0,0,1,.5372*b,.3271*c);a.lineTo(.5306*b,.3186*c);a.arcTo(.0331*b,.0286*c,0,0,1,.5041*b,.3143*c);a.arcTo(.0275*b,.0143*c,0,0,1,.4975*b,.3029*c);a.lineTo(.4777*b,.2995*c);a.arcTo(.0331*b,.0286*c,0,0,1,.4628*b,.3033*
5239c);a.arcTo(.0331*b,.0286*c,0,0,1,.4408*b,.2967*c);a.lineTo(.4187*b,.3*c);a.arcTo(.011*b,.0081*c,0,0,1,.4132*b,.3124*c);a.arcTo(.0386*b,.0333*c,0,0,1,.395*b,.3129*c);a.lineTo(.3873*b,.3224*c);a.arcTo(.0165*b,.0143*c,0,0,1,.3994*b,.3333*c);a.arcTo(.0138*b,.0119*c,0,0,1,.3901*b,.3433*c);a.lineTo(.3994*b,.3514*c);a.arcTo(.0331*b,.0286*c,0,0,1,.4215*b,.3548*c);a.arcTo(.0165*b,.0119*c,0,0,1,.4298*b,.3667*c);a.lineTo(.449*b,.3714*c);a.arcTo(.0331*b,.0286*c,0,0,1,.4711*b,.3657*c);a.arcTo(.0331*b,.0286*c,
52400,0,1,.4887*b,.3724*c);a.close();a.moveTo(.4986*b,.351*c);a.arcTo(.0441*b,.0381*c,0,0,1,.4804*b,.3552*c);a.arcTo(.1102*b,.0952*c,0,0,1,.443*b,.349*c);a.lineTo(.4413*b,.3529*c);a.lineTo(.4242*b,.3371*c);a.arcTo(.1102*b,.0952*c,0,0,0,.4545*b,.3462*c);a.arcTo(.1102*b,.0952*c,0,0,0,.4793*b,.3476*c);a.arcTo(.0441*b,.0381*c,0,0,0,.4986*b,.3448*c);a.close();a.moveTo(.503*b,.3349*c);a.arcTo(.1102*b,.0952*c,0,0,0,.4766*b,.3233*c);a.arcTo(.0826*b,.0714*c,0,0,0,.4529*b,.32*c);a.arcTo(.0551*b,.0476*c,0,0,0,.4325*
5241b,.3238*c);a.lineTo(.427*b,.3195*c);a.arcTo(.0826*b,.0714*c,0,0,1,.4556*b,.3157*c);a.arcTo(.0826*b,.0714*c,0,0,1,.4851*b,.3232*c);a.lineTo(.4876*b,.3181*c);a.close();a.fill();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.8333*c);a.lineTo(0,.1667*c);a.lineTo(.3333*b,.0014*c);a.lineTo(.4986*b,.1667*c);a.lineTo(.6639*b,0);a.lineTo(b,.169*c);a.lineTo(b,.8333*c);a.lineTo(.6667*b,c);a.lineTo(.5014*b,.9162*c);a.lineTo(.3333*b,c);a.close();a.stroke()};
5242mxCellRenderer.registerShape(mxShapeAws3dDynamoDB.prototype.cst.DYNAMO_DB,mxShapeAws3dDynamoDB);function mxShapeAws3dElasticMapReduce(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dElasticMapReduce,mxShape);mxShapeAws3dElasticMapReduce.prototype.cst={ELASTIC_MAP_REDUCE:"mxgraph.aws3d.elasticMapReduce",SHADING_COLORS:"shadingCols"};
5243mxShapeAws3dElasticMapReduce.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));d=Math.min(d*b/123,d*c/133);a.setStrokeWidth(d);this.background(a,0,0,b,c,d);a.setShadow(!1);this.foreground(a,0,0,b,c,d)};
5244mxShapeAws3dElasticMapReduce.prototype.background=function(a,d,e,b,c,f){a.save();a.save();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.7331*c);a.lineTo(0,.3346*c);a.lineTo(.126*b,.1316*c);a.lineTo(.374*b,0);a.lineTo(.626*b,0);a.lineTo(.874*b,.1316*c);a.lineTo(b,.3346*c);a.lineTo(b,.7331*c);a.lineTo(.5*b,c);a.close();a.fillAndStroke()};
5245mxShapeAws3dElasticMapReduce.prototype.foreground=function(a,d,e,b,c,f){a.restore();a.setShadow(!1);a.setFillColor("#000000");d=mxUtils.getValue(this.state.style,mxShapeAws3dDynamoDB.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");e=mxUtils.getValue(this.state.style,"flipH","0");"0"==e?a.setAlpha(d[0]):a.setAlpha(d[1]);a.begin();a.moveTo(.126*b,.1316*c);a.lineTo(.126*b,.267*c);a.lineTo(.378*b,.4023*c);a.lineTo(.5*b,.6015*c);a.lineTo(.5*b,c);a.lineTo(0,.7331*c);a.lineTo(0,.3346*c);a.close();
5246a.moveTo(.874*b,.267*c);a.lineTo(.874*b,.1316*c);a.lineTo(b,.3308*c);a.fill();"0"==e?a.setAlpha(d[1]):a.setAlpha(d[0]);a.begin();a.moveTo(.5*b,c);a.lineTo(.5*b,.6015*c);a.lineTo(.622*b,.4023*c);a.lineTo(.874*b,.267*c);a.lineTo(b,.3308*c);a.lineTo(b,.7331*c);a.close();a.fill();a.restore();d=mxUtils.getValue(this.state.style,"strokeColor","#000000");a.setFillColor(d);a.setShadow(!1);a.begin();a.moveTo(.3336*b,.1789*c);a.arcTo(.0328*b,.0301*c,0,0,1,.359*b,.1789*c);a.lineTo(.4001*b,.2015*c);a.arcTo(.0074*
5247b,.0068*c,0,0,1,.4008*b,.2135*c);a.lineTo(.3574*b,.2368*c);a.arcTo(.0328*b,.0301*c,0,0,1,.3352*b,.2368*c);a.lineTo(.2934*b,.2143*c);a.arcTo(.0074*b,.0068*c,0,0,1,.2934*b,.2015*c);a.close();a.moveTo(.3705*b,.1729*c);a.arcTo(.0074*b,.0068*c,0,0,1,.3705*b,.1602*c);a.lineTo(.4139*b,.1368*c);a.arcTo(.0328*b,.0301*c,0,0,1,.4336*b,.1368*c);a.lineTo(.4811*b,.1617*c);a.arcTo(.0074*b,.0068*c,0,0,1,.4811*b,.1708*c);a.lineTo(.4328*b,.1955*c);a.arcTo(.0328*b,.0301*c,0,0,1,.4156*b,.1955*c);a.close();a.moveTo(.4467*
5248b,.1308*c);a.arcTo(.0074*b,.0068*c,0,0,1,.4467*b,.1203*c);a.lineTo(.491*b,.0962*c);a.arcTo(.0328*b,.0301*c,0,0,1,.5123*b,.0962*c);a.lineTo(.559*b,.1203*c);a.arcTo(.0074*b,.0068*c,0,0,1,.559*b,.1293*c);a.lineTo(.5123*b,.1549*c);a.arcTo(.0328*b,.0301*c,0,0,1,.4918*b,.1549*c);a.close();a.moveTo(.568*b,.1383*c);a.arcTo(.0328*b,.0301*c,0,0,1,.5918*b,.1383*c);a.lineTo(.6361*b,.1624*c);a.arcTo(.0074*b,.0068*c,0,0,1,.6366*b,.1714*c);a.lineTo(.5885*b,.1955*c);a.arcTo(.0328*b,.0301*c,0,0,1,.568*b,.1955*c);
5249a.lineTo(.523*b,.1714*c);a.arcTo(.0074*b,.0068*c,0,0,1,.523*b,.1616*c);a.close();a.moveTo(.6451*b,.1789*c);a.arcTo(.0328*b,.0301*c,0,0,1,.6697*b,.1789*c);a.lineTo(.7123*b,.2023*c);a.arcTo(.0074*b,.0068*c,0,0,1,.7123*b,.2128*c);a.lineTo(.6664*b,.2376*c);a.arcTo(.0328*b,.0301*c,0,0,1,.6492*b,.2376*c);a.lineTo(.6016*b,.2135*c);a.arcTo(.0074*b,.0068*c,0,0,1,.6016*b,.2023*c);a.close();a.moveTo(.6369*b,.2451*c);a.arcTo(.0074*b,.0068*c,0,0,1,.6369*b,.2526*c);a.lineTo(.5172*b,.3173*c);a.arcTo(.0328*b,.0301*
5250c,0,0,1,.4893*b,.3173*c);a.lineTo(.3697*b,.2541*c);a.arcTo(.0074*b,.0068*c,0,0,1,.3697*b,.2436*c);a.lineTo(.4918*b,.1782*c);a.arcTo(.0328*b,.0301*c,0,0,1,.5131*b,.1782*c);a.close();a.fill();a.moveTo(0*b,0*c);a.lineTo(0*b,0*c);a.arcTo(0*b,0*c,0,0,1,0*b,0*c);a.setLineJoin("round");a.begin();a.moveTo(.126*b,.1316*c);a.lineTo(.126*b,.267*c);a.lineTo(.378*b,.4023*c);a.lineTo(.5*b,.6015*c);a.lineTo(.622*b,.4023*c);a.lineTo(.874*b,.267*c);a.lineTo(.874*b,.1316*c);a.moveTo(0,.3346*c);a.lineTo(.126*b,.267*
5251c);a.moveTo(.5*b,.6015*c);a.lineTo(.5*b,c);a.moveTo(b,.3346*c);a.lineTo(.87*b,.267*c);a.moveTo(.378*b,.4023*c);a.lineTo(.622*b,.4023*c);a.stroke();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.begin();a.moveTo(0,.7331*c);a.lineTo(0,.3346*c);a.lineTo(.126*b,.1316*c);a.lineTo(.374*b,0);a.lineTo(.626*b,0);a.lineTo(.874*b,.1316*c);a.lineTo(b,.3346*c);a.lineTo(b,.7331*c);a.lineTo(.5*b,c);a.close();a.stroke()};
5252mxCellRenderer.registerShape(mxShapeAws3dElasticMapReduce.prototype.cst.ELASTIC_MAP_REDUCE,mxShapeAws3dElasticMapReduce);function mxShapeAws3dRdsSlave(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dRdsSlave,mxShape);mxShapeAws3dRdsSlave.prototype.cst={RDS_SLAVE:"mxgraph.aws3d.rdsSlave"};
5253mxShapeAws3dRdsSlave.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));d=Math.min(d*b/123,d*c/133);a.setStrokeWidth(d);this.background(a,0,0,b,c,d);a.setShadow(!1);this.foreground(a,0,0,b,c,d)};
5254mxShapeAws3dRdsSlave.prototype.background=function(a,d,e,b,c,f){a.save();a.save();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.7331*c);a.lineTo(0,.3346*c);a.lineTo(.126*b,.1316*c);a.lineTo(.374*b,0);a.lineTo(.626*b,0);a.lineTo(.874*b,.1316*c);a.lineTo(b,.3346*c);a.lineTo(b,.7331*c);a.lineTo(.5*b,c);a.close();a.fillAndStroke()};
5255mxShapeAws3dRdsSlave.prototype.foreground=function(a,d,e,b,c,f){a.restore();a.setShadow(!1);a.setFillColor("#000000");a.setAlpha("0.1");a.begin();a.moveTo(.126*b,.1316*c);a.lineTo(.126*b,.267*c);a.lineTo(.378*b,.4023*c);a.lineTo(.5*b,.6015*c);a.lineTo(.5*b,c);a.lineTo(0,.7331*c);a.lineTo(0,.3346*c);a.close();a.moveTo(.874*b,.267*c);a.lineTo(.874*b,.1316*c);a.lineTo(b,.3308*c);a.fill();a.setAlpha("0.3");a.begin();a.moveTo(.5*b,c);a.lineTo(.5*b,.6015*c);a.lineTo(.622*b,.4023*c);a.lineTo(.874*b,.267*
5256c);a.lineTo(b,.3308*c);a.lineTo(b,.7331*c);a.close();a.fill();a.restore();d=mxUtils.getValue(this.state.style,"strokeColor","#000000");a.setFillColor(d);a.setShadow(!1);a.begin();a.moveTo(.2457*b,.2137*c);a.lineTo(.5393*b,.0593*c);a.lineTo(.6875*b,.1377*c);a.arcTo(.0871*b,.0799*c,0,0,1,.7137*b,.1625*c);a.arcTo(.0348*b,.032*c,0,0,1,.7076*b,.1968*c);a.arcTo(.1743*b,.1599*c,0,0,1,.6597*b,.2249*c);a.arcTo(.1307*b,.1199*c,0,0,1,.5943*b,.232*c);a.arcTo(.1307*b,.1199*c,0,0,1,.5542*b,.2225*c);a.arcTo(.0871*
5257b,.0799*c,0,0,1,.5673*b,.2353*c);a.arcTo(.0261*b,.024*c,0,0,1,.5611*b,.2729*c);a.lineTo(.4889*b,.316*c);a.arcTo(.0261*b,.024*c,0,0,0,.4766*b,.3352*c);a.lineTo(.4052*b,.2992*c);a.arcTo(.0173*b,.0159*c,0,0,1,.4121*b,.2841*c);a.lineTo(.4914*b,.2368*c);a.arcTo(.0218*b,.02*c,0,0,0,.4897*b,.2129*c);a.lineTo(.4409*b,.1857*c);a.lineTo(.3145*b,.2529*c);a.close();a.moveTo(.4801*b,.1633*c);a.lineTo(.5263*b,.1865*c);a.arcTo(.0871*b,.0799*c,0,0,0,.583*b,.1905*c);a.arcTo(.1307*b,.1199*c,0,0,0,.6196*b,.1721*c);
5258a.arcTo(.0261*b,.024*c,0,0,0,.6117*b,.1441*c);a.lineTo(.5655*b,.1193*c);a.fill();a.setLineJoin("round");a.begin();a.moveTo(.126*b,.1316*c);a.lineTo(.126*b,.267*c);a.lineTo(.378*b,.4023*c);a.lineTo(.5*b,.6015*c);a.lineTo(.622*b,.4023*c);a.lineTo(.874*b,.267*c);a.lineTo(.874*b,.1316*c);a.moveTo(0,.3346*c);a.lineTo(.126*b,.267*c);a.moveTo(.5*b,.6015*c);a.lineTo(.5*b,c);a.moveTo(b,.3346*c);a.lineTo(.87*b,.267*c);a.moveTo(.378*b,.4023*c);a.lineTo(.622*b,.4023*c);a.stroke();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");
5259a.begin();a.moveTo(0,.7331*c);a.lineTo(0,.3346*c);a.lineTo(.126*b,.1316*c);a.lineTo(.374*b,0);a.lineTo(.626*b,0);a.lineTo(.874*b,.1316*c);a.lineTo(b,.3346*c);a.lineTo(b,.7331*c);a.lineTo(.5*b,c);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeAws3dRdsSlave.prototype.cst.RDS_SLAVE,mxShapeAws3dRdsSlave);function mxShapeAws3dAMI2(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dAMI2,mxShape);
5260mxShapeAws3dAMI2.prototype.cst={AMI_2:"mxgraph.aws3d.ami2",SHADING_COLORS:"shadingCols"};
5261mxShapeAws3dAMI2.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));e=parseFloat(mxUtils.getValue(this.state.style,"shadow","0"));d=Math.min(d*b/92,d*c/60);a.setStrokeWidth(d);a.setShadow(!1);a.save();a.save();a.setStrokeWidth(2*d);a.setStrokeColor("#292929");a.setLineJoin("round");1==e&&a.setShadow(!0);a.begin();a.moveTo(0,.572*c);a.lineTo(.0865*b,.284*c);a.lineTo(.4203*b,0);a.lineTo(.5865*b,0);a.lineTo(.919*b,.286*c);
5262a.lineTo(b,.566*c);a.lineTo(.5027*b,c);a.close();a.fillAndStroke();a.restore();a.setFillColor("#000000");e=mxUtils.getValue(this.state.style,mxShapeAws3dAMI2.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");var f=mxUtils.getValue(this.state.style,"flipH","0");"0"==f?a.setAlpha(e[0]):a.setAlpha(e[1]);a.begin();a.moveTo(0,.566*c);a.lineTo(.0892*b,.282*c);a.lineTo(.0878*b,.426*c);a.lineTo(.4216*b,.712*c);a.lineTo(.5865*b,.712*c);a.lineTo(.5027*b,c);a.close();a.fill();"0"==f?a.setAlpha(e[1]):
5263a.setAlpha(e[0]);a.begin();a.moveTo(.5027*b,c);a.lineTo(.5865*b,.712*c);a.lineTo(.9176*b,.43*c);a.lineTo(b,.566*c);a.close();a.fill();a.restore();a.setLineJoin("round");a.begin();a.moveTo(0,.566*c);a.lineTo(.0892*b,.282*c);a.lineTo(.0878*b,.426*c);a.lineTo(.4216*b,.712*c);a.lineTo(.5865*b,.712*c);a.lineTo(.5027*b,c);a.close();a.moveTo(.5027*b,c);a.lineTo(.5865*b,.712*c);a.lineTo(.9176*b,.43*c);a.lineTo(b,.566*c);a.close();a.moveTo(0,.572*c);a.lineTo(.0892*b,.422*c);a.moveTo(.5027*b,c);a.lineTo(.4189*
5264b,.708*c);a.moveTo(.9176*b,.43*c);a.lineTo(.9176*b,.29*c);a.stroke();a.setStrokeWidth(2*d);a.setLineJoin("round");a.begin();a.moveTo(.2095*b,.376*c);a.lineTo(.527*b,.104*c);a.lineTo(.6338*b,.194*c);a.lineTo(.3149*b,.468*c);a.close();a.moveTo(.3716*b,.518*c);a.lineTo(.6892*b,.246*c);a.lineTo(.796*b,.336*c);a.lineTo(.477*b,.61*c);a.close();a.moveTo(.3108*b,.282*c);a.lineTo(.4257*b,.38*c);a.moveTo(.4189*b,.194*c);a.lineTo(.5297*b,.288*c);a.moveTo(.5838*b,.338*c);a.lineTo(.6892*b,.426*c);a.moveTo(.4757*
5265b,.426*c);a.lineTo(.5838*b,.518*c);a.stroke();a.setStrokeColor("#292929");a.begin();a.moveTo(0,.572*c);a.lineTo(.0865*b,.284*c);a.lineTo(.4203*b,0);a.lineTo(.5865*b,0);a.lineTo(.919*b,.286*c);a.lineTo(b,.566*c);a.lineTo(.5027*b,c);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeAws3dAMI2.prototype.cst.AMI_2,mxShapeAws3dAMI2);function mxShapeAws3dEbs(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dEbs,mxShape);
5266mxShapeAws3dEbs.prototype.cst={EBS:"mxgraph.aws3d.ebs",SHADING_COLORS:"shadingCols"};
5267mxShapeAws3dEbs.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));e=d*b/92;d=d*c/60;var f=parseFloat(mxUtils.getValue(this.state.style,"shadow","0"));d=Math.min(e,d);a.setStrokeWidth(d);a.setShadow(!1);a.save();a.save();a.setStrokeWidth(2*d);a.setStrokeColor("#292929");a.setLineJoin("round");1==f&&a.setShadow(!0);a.begin();a.moveTo(0,.5276*c);a.lineTo(0,.4188*c);a.lineTo(.071*b,.2898*c);a.lineTo(.4033*b,0);a.lineTo(.9301*
5268b,.464*c);a.lineTo(b,.5863*c);a.lineTo(b,.7035*c);a.lineTo(.6667*b,c);a.lineTo(.5355*b,c);a.close();a.fillAndStroke();a.restore();a.setFillColor("#000000");e=mxUtils.getValue(this.state.style,mxShapeAws3dEbs.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");f=mxUtils.getValue(this.state.style,"flipH","0");"0"==f?a.setAlpha(e[0]):a.setAlpha(e[1]);a.begin();a.moveTo(.071*b,.2948*c);a.lineTo(.6011*b,.7621*c);a.lineTo(.6667*b,c);a.lineTo(.5355*b,c);a.lineTo(0,.5276*c);a.lineTo(0,.4137*c);
5269a.close();a.fill();"0"==f?a.setAlpha(e[1]):a.setAlpha(e[0]);a.begin();a.moveTo(.6011*b,.7655*c);a.lineTo(.9344*b,.4724*c);a.lineTo(b,.7035*c);a.lineTo(.6667*b,c);a.close();a.fill();a.restore();a.setLineJoin("round");a.begin();a.moveTo(.071*b,.2948*c);a.lineTo(.6011*b,.7621*c);a.lineTo(.6667*b,c);a.lineTo(.5355*b,c);a.lineTo(0,.5276*c);a.lineTo(0,.4137*c);a.close();a.moveTo(.6011*b,.7655*c);a.lineTo(.9344*b,.4724*c);a.lineTo(b,.7035*c);a.lineTo(.6667*b,c);a.close();a.moveTo(.0033*b,.5276*c);a.lineTo(.071*
5270b,.2898*c);a.moveTo(.5325*b,.9976*c);a.lineTo(.603*b,.7593*c);a.stroke();a.setStrokeWidth(2*d);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.5276*c);a.lineTo(0,.4188*c);a.lineTo(.071*b,.2898*c);a.lineTo(.4033*b,0);a.lineTo(.9301*b,.464*c);a.lineTo(b,.5863*c);a.lineTo(b,.7035*c);a.lineTo(.6667*b,c);a.lineTo(.5355*b,c);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeAws3dEbs.prototype.cst.EBS,mxShapeAws3dEbs);
5271function mxShapeAws3dOracleServer(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dOracleServer,mxShape);mxShapeAws3dOracleServer.prototype.cst={ORACLE_SERVER:"mxgraph.aws3d.oracleServer"};
5272mxShapeAws3dOracleServer.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));d=Math.min(d*b/123,d*c/133);a.setStrokeWidth(d);this.background(a,0,0,b,c,d);a.setShadow(!1);this.foreground(a,0,0,b,c,d)};
5273mxShapeAws3dOracleServer.prototype.background=function(a,d,e,b,c,f){a.save();a.save();a.save();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.7464*c);a.lineTo(0,.25*c);a.lineTo(.5*b,0);a.lineTo(b,.25*c);a.lineTo(b,.7464*c);a.lineTo(.5*b,c);a.close();a.fillAndStroke()};
5274mxShapeAws3dOracleServer.prototype.foreground=function(a,d,e,b,c,f){a.restore();a.setShadow(!1);a.setFillColor("#000000");a.setAlpha("0.1");a.begin();a.moveTo(0,.7464*c);a.lineTo(0,.25*c);a.lineTo(.5*b,.5*c);a.lineTo(.5*b,c);a.close();a.fill();a.setAlpha("0.3");a.begin();a.moveTo(.5*b,.5*c);a.lineTo(b,.25*c);a.lineTo(b,.7464*c);a.lineTo(.5*b,c);a.close();a.fill();a.restore();a.setShadow(!1);a.setLineJoin("round");a.setFillColor("#ff0000");a.begin();a.moveTo(0,.5866*c);a.lineTo(.5*b,.8359*c);a.lineTo(b,
5275.5866*c);a.lineTo(b,.6986*c);a.lineTo(.5*b,.9486*c);a.lineTo(0,.6986*c);a.fill();a.setStrokeWidth(.5*f);a.setStrokeColor("#ffffff");a.setFillColor("#ffffff");a.begin();a.moveTo(0,.5866*c);a.lineTo(.5*b,.8359*c);a.lineTo(b,.5866*c);a.moveTo(b,.6986*c);a.lineTo(.5*b,.9486*c);a.lineTo(0,.6986*c);a.stroke();a.begin();a.moveTo(.0813*b,.7113*c);a.arcTo(.0569*b,.0493*c,0,0,1,.065*b,.6831*c);a.arcTo(.065*b,.0563*c,0,0,1,.065*b,.6613*c);a.arcTo(.0163*b,.0141*c,0,0,1,.0797*b,.6549*c);a.lineTo(.122*b,.6754*
5276c);a.arcTo(.065*b,.0563*c,0,0,1,.1358*b,.6937*c);a.arcTo(.065*b,.0563*c,0,0,1,.139*b,.7232*c);a.arcTo(.0179*b,.0155*c,0,0,1,.1187*b,.7296*c);a.close();a.moveTo(.1163*b,.7183*c);a.arcTo(.0089*b,.0077*c,0,0,0,.1285*b,.7148*c);a.arcTo(.0407*b,.0352*c,0,0,0,.1293*b,.7021*c);a.arcTo(.0407*b,.0352*c,0,0,0,.1179*b,.6831*c);a.lineTo(.087*b,.6676*c);a.arcTo(.0081*b,.007*c,0,0,0,.0764*b,.6697*c);a.arcTo(.0325*b,.0352*c,0,0,0,.078*b,.6937*c);a.arcTo(.0407*b,.0352*c,0,0,0,.087*b,.7035*c);a.close();a.moveTo(.1439*
5277b,.743*c);a.lineTo(.1439*b,.6866*c);a.lineTo(.1846*b,.707*c);a.arcTo(.0407*b,.0352*c,0,0,1,.1967*b,.7183*c);a.arcTo(.0407*b,.0352*c,0,0,1,.2*b,.738*c);a.arcTo(.0138*b,.0155*c,0,0,1,.1813*b,.743*c);a.lineTo(.1992*b,.769*c);a.lineTo(.187*b,.7641*c);a.lineTo(.1577*b,.7218*c);a.lineTo(.1854*b,.7345*c);a.arcTo(.0041*b,.0035*c,0,0,0,.1911*b,.7317*c);a.arcTo(.0163*b,.0141*c,0,0,0,.1894*b,.7225*c);a.arcTo(.0325*b,.0282*c,0,0,0,.1821*b,.7155*c);a.lineTo(.1528*b,.7007*c);a.lineTo(.1528*b,.7472*c);a.close();
5278a.moveTo(.2008*b,.7711*c);a.lineTo(.2293*b,.7338*c);a.arcTo(.0065*b,.0056*c,0,0,1,.2382*b,.7324*c);a.arcTo(.0407*b,.0352*c,0,0,1,.2431*b,.7415*c);a.lineTo(.2699*b,.8035*c);a.lineTo(.2602*b,.8007*c);a.lineTo(.252*b,.7859*c);a.lineTo(.2293*b,.7754*c);a.lineTo(.2244*b,.7634*c);a.lineTo(.248*b,.7739*c);a.lineTo(.235*b,.7444*c);a.lineTo(.2122*b,.7768*c);a.close();a.moveTo(.3244*b,.8225*c);a.lineTo(.3171*b,.8289*c);a.lineTo(.2854*b,.8127*c);a.arcTo(.0407*b,.0352*c,0,0,1,.2724*b,.7986*c);a.arcTo(.0569*b,
5279.0493*c,0,0,1,.265*b,.7746*c);a.arcTo(.0407*b,.0352*c,0,0,1,.2683*b,.762*c);a.arcTo(.0163*b,.0141*c,0,0,1,.2829*b,.757*c);a.lineTo(.3228*b,.7761*c);a.lineTo(.3179*b,.7831*c);a.lineTo(.2878*b,.7683*c);a.arcTo(.0081*b,.007*c,0,0,0,.2789*b,.7697*c);a.arcTo(.0244*b,.0211*c,0,0,0,.2748*b,.7831*c);a.arcTo(.0407*b,.0352*c,0,0,0,.2878*b,.8042*c);a.close();a.moveTo(.3276*b,.7789*c);a.lineTo(.3366*b,.7831*c);a.lineTo(.3366*b,.8289*c);a.lineTo(.3805*b,.8507*c);a.lineTo(.3748*b,.857*c);a.lineTo(.3317*b,.8359*
5280c);a.arcTo(.0163*b,.0141*c,0,0,1,.3276*b,.8275*c);a.close();a.moveTo(.435*b,.8775*c);a.lineTo(.4325*b,.8866*c);a.lineTo(.3959*b,.8683*c);a.arcTo(.0407*b,.0352*c,0,0,1,.3862*b,.8563*c);a.arcTo(.0528*b,.0458*c,0,0,1,.3805*b,.8183*c);a.arcTo(.0163*b,.0141*c,0,0,1,.3951*b,.8134*c);a.lineTo(.435*b,.8324*c);a.lineTo(.4285*b,.838*c);a.lineTo(.4008*b,.8246*c);a.arcTo(.0098*b,.0085*c,0,0,0,.3878*b,.831*c);a.lineTo(.4333*b,.8542*c);a.lineTo(.426*b,.8606*c);a.lineTo(.3878*b,.8415*c);a.arcTo(.0325*b,.0282*c,
52810,0,0,.3976*b,.8585*c);a.close();a.moveTo(.6171*b,.8063*c);a.arcTo(.0163*b,.0141*c,0,0,1,.6366*b,.8092*c);a.arcTo(.0325*b,.0282*c,0,0,1,.639*b,.8303*c);a.arcTo(.065*b,.0563*c,0,0,1,.6211*b,.8592*c);a.lineTo(.5894*b,.8761*c);a.arcTo(.0203*b,.0176*c,0,0,1,.565*b,.8732*c);a.arcTo(.0407*b,.0352*c,0,0,1,.5659*b,.8458*c);a.arcTo(.0488*b,.0422*c,0,0,1,.5805*b,.8246*c);a.close();a.moveTo(.5886*b,.8296*c);a.arcTo(.0325*b,.0282*c,0,0,0,.5748*b,.8472*c);a.arcTo(.0325*b,.0282*c,0,0,0,.574*b,.862*c);a.arcTo(.0098*
5282b,.0085*c,0,0,0,.587*b,.8676*c);a.lineTo(.6163*b,.8528*c);a.arcTo(.0407*b,.0352*c,0,0,0,.6285*b,.8359*c);a.arcTo(.0244*b,.0211*c,0,0,0,.6293*b,.8225*c);a.arcTo(.0098*b,.0085*c,0,0,0,.6163*b,.8155*c);a.close();a.moveTo(.64*b,.85*c);a.lineTo(.64*b,.793*c);a.lineTo(.6854*b,.7718*c);a.arcTo(.0106*b,.0092*c,0,0,1,.7008*b,.7782*c);a.arcTo(.0407*b,.0352*c,0,0,1,.6959*b,.8*c);a.arcTo(.0407*b,.0352*c,0,0,1,.6805*b,.8127*c);a.lineTo(.6992*b,.8218*c);a.lineTo(.6854*b,.8282*c);a.lineTo(.6569*b,.8141*c);a.lineTo(.6805*
5283b,.8021*c);a.arcTo(.0203*b,.0176*c,0,0,0,.6894*b,.7923*c);a.arcTo(.0244*b,.0211*c,0,0,0,.6894*b,.7845*c);a.arcTo(.0041*b,.0035*c,0,0,0,.6837*b,.7831*c);a.lineTo(.6528*b,.7979*c);a.lineTo(.6528*b,.8437*c);a.close();a.moveTo(.7*b,.8204*c);a.lineTo(.7301*b,.7507*c);a.arcTo(.0098*b,.0085*c,0,0,1,.7358*b,.7444*c);a.arcTo(.0098*b,.0085*c,0,0,1,.7415*b,.7486*c);a.lineTo(.7699*b,.7852*c);a.lineTo(.7602*b,.7908*c);a.lineTo(.7537*b,.7838*c);a.lineTo(.7276*b,.7958*c);a.lineTo(.7228*b,.788*c);a.lineTo(.748*b,
5284.7768*c);a.lineTo(.7358*b,.7585*c);a.lineTo(.7114*b,.8155*c);a.close();a.moveTo(.8244*b,.7486*c);a.lineTo(.8171*b,.762*c);a.lineTo(.7894*b,.7761*c);a.arcTo(.0244*b,.0211*c,0,0,1,.7683*b,.7746*c);a.arcTo(.0407*b,.0352*c,0,0,1,.7667*b,.7507*c);a.arcTo(.0488*b,.0423*c,0,0,1,.7937*b,.7162*c);a.lineTo(.822*b,.7035*c);a.lineTo(.8171*b,.7155*c);a.lineTo(.7902*b,.7296*c);a.arcTo(.0325*b,.0282*c,0,0,0,.778*b,.743*c);a.arcTo(.0407*b,.0352*c,0,0,0,.7756*b,.7606*c);a.arcTo(.0077*b,.0067*c,0,0,0,.787*b,.767*c);
5285a.close();a.moveTo(.8366*b,.6949*c);a.lineTo(.8366*b,.7423*c);a.lineTo(.878*b,.7231*c);a.lineTo(.874*b,.7338*c);a.lineTo(.8333*b,.7535*c);a.arcTo(.0041*b,.0035*c,0,0,1,.8268*b,.75*c);a.lineTo(.8268*b,.7007*c);a.close();a.moveTo(.9342*b,.6472*c);a.lineTo(.9293*b,.6599*c);a.lineTo(.9033*b,.6725*c);a.arcTo(.0325*b,.0282*c,0,0,0,.8927*b,.6817*c);a.arcTo(.0406*b,.0352*c,0,0,0,.887*b,.6937*c);a.lineTo(.9309*b,.6725*c);a.lineTo(.9268*b,.6845*c);a.lineTo(.887*b,.7035*c);a.arcTo(.0089*b,.0077*c,0,0,0,.8992*
5286b,.7106*c);a.lineTo(.935*b,.693*c);a.lineTo(.9285*b,.7063*c);a.lineTo(.9008*b,.7197*c);a.arcTo(.0163*b,.0141*c,0,0,1,.8829*b,.7204*c);a.arcTo(.0407*b,.0352*c,0,0,1,.8764*b,.7028*c);a.arcTo(.065*b,.0563*c,0,0,1,.8959*b,.6669*c);a.fill();a.restore();a.setShadow(!1);a.setLineJoin("round");a.begin();a.moveTo(0,.7464*c);a.lineTo(0,.25*c);a.lineTo(.5*b,.5*c);a.lineTo(.5*b,c);a.close();a.moveTo(.5*b,.5*c);a.lineTo(b,.25*c);a.lineTo(b,.7464*c);a.lineTo(.5*b,c);a.close();a.stroke();a.setLineJoin("miter");
5287d=mxUtils.getValue(this.state.style,"strokeColor","#000000");a.setFillColor(d);a.begin();a.moveTo(.374*b,.3873*c);a.arcTo(.0325*b,.01764*c,0,0,1,.374*b,.3626*c);a.lineTo(.4797*b,.3098*c);a.arcTo(.0325*b,.0141*c,0,0,1,.5203*b,.3098*c);a.lineTo(.626*b,.3626*c);a.arcTo(.0325*b,.01764*c,0,0,1,.626*b,.3852*c);a.lineTo(.5203*b,.438*c);a.arcTo(.0325*b,.0141*c,0,0,1,.4797*b,.438*c);a.close();a.fill();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.7464*c);a.lineTo(0,
5288.25*c);a.lineTo(.5*b,0);a.lineTo(b,.25*c);a.lineTo(b,.7464*c);a.lineTo(.5*b,c);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeAws3dOracleServer.prototype.cst.ORACLE_SERVER,mxShapeAws3dOracleServer);function mxShapeAws3dSecureConnection(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dSecureConnection,mxShape);mxShapeAws3dSecureConnection.prototype.cst={SECURE_CONNECTION:"mxgraph.aws3d.secureConnection"};
5289mxShapeAws3dSecureConnection.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));d=Math.min(d*b/57,d*c/34);a.setStrokeWidth(d);this.background(a,0,0,b,c,d);a.setShadow(!1);this.foreground(a,0,0,b,c,d)};
5290mxShapeAws3dSecureConnection.prototype.background=function(a,d,e,b,c,f){a.begin();a.moveTo(.0058*b,.3889*c);a.arcTo(.2096*b,.3536*c,0,0,1,.0774*b,.1856*c);a.arcTo(.5241*b,.8839*c,0,0,1,.308*b,.0262*c);a.arcTo(.8735*b,1.4732*c,0,0,1,.6417*b,.056*c);a.arcTo(.6988*b,1.1786*c,0,0,1,.9106*b,.277*c);a.arcTo(.2621*b,.442*c,0,0,1,b,.5451*c);a.arcTo(.2096*b,.3536*c,0,0,1,.9474*b,.7808*c);a.arcTo(.4368*b,.7366*c,0,0,1,.7186*b,.9605*c);a.arcTo(.8735*b,1.4732*c,0,0,1,.3045*b,.9104*c);a.arcTo(.6115*b,1.0312*c,
52910,0,1,.0687*b,.6747*c);a.arcTo(.2096*b,.3536*c,0,0,1,.0058*b,.3889*c);a.close();a.fill()};
5292mxShapeAws3dSecureConnection.prototype.foreground=function(a,d,e,b,c,f){d=mxUtils.getValue(this.state.style,"strokeColor","#000000");a.setFillColor(d);a.begin();a.moveTo(.2661*b,.5068*c);a.lineTo(.5002*b,.7336*c);a.lineTo(.6626*b,.5775*c);a.lineTo(.6469*b,.5539*c);a.lineTo(.6958*b,.5097*c);a.arcTo(.0874*b,.1473*c,0,0,0,.7325*b,.4066*c);a.arcTo(.0874*b,.1473*c,0,0,0,.6889*b,.3153*c);a.arcTo(.1747*b,.2946*c,0,0,0,.5928*b,.2622*c);a.arcTo(.1398*b,.2357*c,0,0,0,.5107*b,.3005*c);a.lineTo(.446*b,.3654*
5293c);a.lineTo(.4268*b,.3477*c);a.close();a.moveTo(.4949*b,.4184*c);a.lineTo(.5491*b,.3624*c);a.arcTo(.1222*b,.2062*c,0,0,1,.6277*b,.3536*c);a.arcTo(.0874*b,.1179*c,0,0,1,.6679*b,.3978*c);a.arcTo(.0175*b,.0295*c,0,0,1,.6626*b,.439*c);a.lineTo(.5928*b,.5068*c);a.close();a.fill()};mxCellRenderer.registerShape(mxShapeAws3dSecureConnection.prototype.cst.SECURE_CONNECTION,mxShapeAws3dSecureConnection);
5294function mxShapeAws3dEmailService(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dEmailService,mxShape);mxShapeAws3dEmailService.prototype.cst={EMAIL_SERVICE:"mxgraph.aws3d.email_service",SHADING_COLORS:"shadingCols"};
5295mxShapeAws3dEmailService.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));d=Math.min(d*b/151,d*c/192);this.background(a,0,0,b,c,d);a.setShadow(!1);this.foreground(a,0,0,b,c,d)};
5296mxShapeAws3dEmailService.prototype.background=function(a,d,e,b,c,f){a.setStrokeWidth(f);a.save();a.save();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.8182*c);a.lineTo(0,.1818*c);a.lineTo(.4007*b,0);a.lineTo(.606*b,0);a.lineTo(b,.1792*c);a.lineTo(b,.8182*c);a.lineTo(.5993*b,c);a.lineTo(.4007*b,c);a.close();a.fillAndStroke()};
5297mxShapeAws3dEmailService.prototype.foreground=function(a,d,e,b,c,f){a.restore();a.setShadow(!1);a.setFillColor("#000000");d=mxUtils.getValue(this.state.style,mxShapeAws3dEmailService.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");e=mxUtils.getValue(this.state.style,"flipH","0");"0"==e?a.setAlpha(d[0]):a.setAlpha(d[1]);a.begin();a.moveTo(0,.2727*c);a.lineTo(.4007*b,.4546*c);a.lineTo(.5993*b,.4546*c);a.lineTo(.5993*b,c);a.lineTo(.4007*b,c);a.lineTo(0,.8182*c);a.close();a.fill();"0"==
5298e?a.setAlpha(d[1]):a.setAlpha(d[0]);a.begin();a.moveTo(.5993*b,.4546*c);a.lineTo(b,.2727*c);a.lineTo(.8013*b,.1792*c);a.lineTo(.8013*b,.0883*c);a.lineTo(b,.1792*c);a.lineTo(b,.8182*c);a.lineTo(.5993*b,c);a.close();a.fill();a.restore();a.setShadow(!1);a.setLineJoin("round");a.begin();a.moveTo(0,.2727*c);a.lineTo(.4007*b,.4546*c);a.lineTo(.5993*b,.4546*c);a.lineTo(.5993*b,c);a.lineTo(.4007*b,c);a.lineTo(0,.8182*c);a.close();a.stroke();a.begin();a.moveTo(.5993*b,.4546*c);a.lineTo(b,.2727*c);a.lineTo(.8013*
5299b,.1792*c);a.lineTo(.8013*b,.0883*c);a.lineTo(b,.1792*c);a.lineTo(b,.8182*c);a.lineTo(.5993*b,c);a.close();a.stroke();a.begin();a.moveTo(.202*b,.0883*c);a.lineTo(.202*b,.1818*c);a.lineTo(.4007*b,.2727*c);a.lineTo(.5993*b,.2727*c);a.lineTo(.798*b,.1818*c);a.moveTo(.2053*b,.1818*c);a.lineTo(.0033*b,.2714*c);a.moveTo(.4007*b,.2727*c);a.lineTo(.4007*b,.9961*c);a.moveTo(.5993*b,.2727*c);a.lineTo(.5993*b,.4546*c);a.stroke();a.setLineJoin("miter");d=mxUtils.getValue(this.state.style,"strokeColor","#000000");
5300a.setFillColor(d);a.begin();a.moveTo(.4437*b,.0779*c);a.arcTo(.0662*b,.0519*c,0,0,1,.404*b,.0706*c);a.arcTo(.0464*b,.0364*c,0,0,1,.3815*b,.0421*c);a.arcTo(.053*b,.026*c,0,0,1,.4205*b,.0187*c);a.arcTo(.1987*b,.1558*c,0,0,1,.4768*b,.0203*c);a.arcTo(.0795*b,.0364*c,0,0,1,.5199*b,.0494*c);a.arcTo(.0265*b,.0208*c,0,0,1,.5099*b,.0649*c);a.arcTo(.0795*b,.0623*c,0,0,1,.4536*b,.0727*c);a.arcTo(.0199*b,.0156*c,0,0,1,.4404*b,.0597*c);a.arcTo(.0265*b,.0208*c,0,0,1,.4219*b,.0566*c);a.arcTo(.0199*b,.0114*c,0,0,
53011,.4172*b,.0431*c);a.arcTo(.0265*b,.0208*c,0,0,1,.4483*b,.0416*c);a.arcTo(.0132*b,.0104*c,0,0,1,.457*b,.053*c);a.arcTo(.0132*b,.0104*c,0,0,0,.4669*b,.0431*c);a.arcTo(.0166*b,.0166*c,0,0,0,.4464*b,.0358*c);a.lineTo(.4437*b,.0338*c);a.arcTo(.0199*b,.0156*c,0,0,1,.4603*b,.0322*c);a.arcTo(.0397*b,.0156*c,0,0,1,.4755*b,.0462*c);a.arcTo(.0199*b,.0156*c,0,0,1,.4669*b,.0545*c);a.arcTo(.053*b,.0416*c,0,0,1,.453*b,.0608*c);a.arcTo(.0099*b,.0078*c,0,0,0,.4636*b,.0675*c);a.arcTo(.0662*b,.0519*c,0,0,0,.498*b,
5302.0623*c);a.arcTo(.0185*b,.0145*c,0,0,0,.5079*b,.0457*c);a.arcTo(.053*b,.0416*c,0,0,0,.4848*b,.0296*c);a.arcTo(.0993*b,.0779*c,0,0,0,.455*b,.0234*c);a.arcTo(.1325*b,.1039*c,0,0,0,.4172*b,.026*c);a.arcTo(.0397*b,.0312*c,0,0,0,.3927*b,.039*c);a.arcTo(.0265*b,.0208*c,0,0,0,.3974*b,.0571*c);a.arcTo(.053*b,.0416*c,0,0,0,.4205*b,.0701*c);a.arcTo(.0331*b,.026*c,0,0,0,.4404*b,.0722*c);a.moveTo(.42*b,.049*c);a.arcTo(.02*b,.02*c,0,0,0,.435*b,.055*c);a.arcTo(.02*b,.02*c,0,0,0,.45*b,.049*c);a.arcTo(.02*b,.02*
5303c,0,0,0,.435*b,.043*c);a.arcTo(.02*b,.02*c,0,0,0,.42*b,.049*c);a.close();a.moveTo(.4669*b,.0894*c);a.arcTo(.1325*b,.1039*c,0,0,0,.5099*b,.0831*c);a.lineTo(.6689*b,.1543*c);a.lineTo(.4887*b,.1371*c);a.close();a.moveTo(.3887*b,.0769*c);a.arcTo(.0662*b,.0519*c,0,0,0,.4205*b,.0888*c);a.arcTo(.0662*b,.026*c,0,0,0,.447*b,.0894*c);a.lineTo(.4735*b,.1512*c);a.lineTo(.6689*b,.1688*c);a.lineTo(.5199*b,.2364*c);a.lineTo(.2815*b,.1273*c);a.close();a.fill();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");
5304a.begin();a.moveTo(0,.8182*c);a.lineTo(0,.1818*c);a.lineTo(.4007*b,0);a.lineTo(.606*b,0);a.lineTo(b,.1792*c);a.lineTo(b,.8182*c);a.lineTo(.5993*b,c);a.lineTo(.4007*b,c);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeAws3dEmailService.prototype.cst.EMAIL_SERVICE,mxShapeAws3dEmailService);function mxShapeAws3dWorker(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dWorker,mxShape);
5305mxShapeAws3dWorker.prototype.cst={WORKER:"mxgraph.aws3d.worker",SHADING_COLORS:"shadingCols"};
5306mxShapeAws3dWorker.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));e=parseFloat(mxUtils.getValue(this.state.style,"shadow","0"));d=Math.min(d*b/74,d*c/50);a.setStrokeWidth(d);a.setShadow(!1);a.save();a.save();a.setStrokeWidth(2*d);a.setStrokeColor("#292929");a.setLineJoin("round");1==e&&a.setShadow(!0);a.begin();a.moveTo(0,.572*c);a.lineTo(.0865*b,.284*c);a.lineTo(.4203*b,0);a.lineTo(.5865*b,0);a.lineTo(.919*b,.286*
5307c);a.lineTo(b,.566*c);a.lineTo(.5027*b,c);a.close();a.fillAndStroke();a.restore();a.setFillColor("#000000");e=mxUtils.getValue(this.state.style,mxShapeAws3dWorker.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");var f=mxUtils.getValue(this.state.style,"flipH","0");"0"==f?a.setAlpha(e[0]):a.setAlpha(e[1]);a.begin();a.moveTo(0,.566*c);a.lineTo(.0892*b,.282*c);a.lineTo(.0878*b,.426*c);a.lineTo(.4216*b,.712*c);a.lineTo(.5865*b,.712*c);a.lineTo(.5027*b,c);a.close();a.fill();"0"==f?a.setAlpha(e[1]):
5308a.setAlpha(e[0]);a.begin();a.moveTo(.5027*b,c);a.lineTo(.5865*b,.712*c);a.lineTo(.9176*b,.43*c);a.lineTo(b,.566*c);a.close();a.fill();a.restore();a.setLineJoin("round");a.begin();a.moveTo(0,.566*c);a.lineTo(.0892*b,.282*c);a.lineTo(.0878*b,.426*c);a.lineTo(.4216*b,.712*c);a.lineTo(.5865*b,.712*c);a.lineTo(.5027*b,c);a.close();a.moveTo(.5027*b,c);a.lineTo(.5865*b,.712*c);a.lineTo(.9176*b,.43*c);a.lineTo(b,.566*c);a.close();a.moveTo(0,.572*c);a.lineTo(.0892*b,.422*c);a.moveTo(.5027*b,c);a.lineTo(.4189*
5309b,.708*c);a.moveTo(.9176*b,.43*c);a.lineTo(.9176*b,.29*c);a.stroke();e=mxUtils.getValue(this.state.style,"strokeColor","#000000");a.setFillColor(e);a.setLineJoin("round");a.begin();a.moveTo(.2892*b,.2104*c);a.lineTo(.3595*b,.1503*c);a.lineTo(.3973*b,.1844*c);a.arcTo(.2703*b,.4008*c,0,0,1,.4486*b,.1703*c);a.lineTo(.4486*b,.1242*c);a.lineTo(.5527*b,.1242*c);a.lineTo(.5527*b,.1703*c);a.arcTo(.2703*b,.4008*c,0,0,1,.6149*b,.1924*c);a.lineTo(.6527*b,.1603*c);a.lineTo(.7257*b,.2224*c);a.lineTo(.6892*b,.2545*
5310c);a.arcTo(.2027*b,.3006*c,0,0,1,.7162*b,.3106*c);a.lineTo(.7676*b,.3106*c);a.lineTo(.7676*b,.3988*c);a.lineTo(.7162*b,.3988*c);a.arcTo(.2027*b,.3006*c,0,0,1,.6973*b,.4409*c);a.lineTo(.7378*b,.475*c);a.lineTo(.6635*b,.5371*c);a.lineTo(.6297*b,.505*c);a.arcTo(.2703*b,.4008*c,0,0,1,.5527*b,.5351*c);a.lineTo(.5527*b,.5812*c);a.lineTo(.45*b,.5812*c);a.lineTo(.45*b,.5351*c);a.arcTo(.2703*b,.4008*c,0,0,1,.3878*b,.513*c);a.lineTo(.3514*b,.5431*c);a.lineTo(.2784*b,.481*c);a.lineTo(.3149*b,.4509*c);a.arcTo(.2027*
5311b,.3006*c,0,0,1,.2865*b,.3968*c);a.lineTo(.2351*b,.3968*c);a.lineTo(.2351*b,.3086*c);a.lineTo(.2865*b,.3086*c);a.arcTo(.2027*b,.3006*c,0,0,1,.3203*b,.2425*c);a.close();a.moveTo(.4054*b,.2445*c);a.arcTo(.1351*b,.2004*c,0,0,0,.3554*b,.2986*c);a.arcTo(.0676*b,.1002*c,0,0,0,.3432*b,.3567*c);a.arcTo(.0811*b,.1202*c,0,0,0,.3635*b,.4208*c);a.arcTo(.1351*b,.2004*c,0,0,0,.4122*b,.4649*c);a.arcTo(.2027*b,.3006*c,0,0,0,.4122*b,.4649*c);a.arcTo(.2027*b,.3006*c,0,0,0,.5676*b,.4749*c);a.arcTo(.1351*b,.2004*c,0,
53120,0,.6351*b,.4228*c);a.arcTo(.0676*b,.1002*c,0,0,0,.6595*b,.3467*c);a.arcTo(.0811*b,.1202*c,0,0,0,.6149*b,.2605*c);a.arcTo(.2027*b,.3006*c,0,0,0,.5419*b,.2204*c);a.arcTo(.3378*b,.501*c,0,0,0,.4649*b,.2184*c);a.arcTo(.2027*b,.3006*c,0,0,0,.4054*b,.2445*c);a.close();a.moveTo(.473*b,.2806*c);a.arcTo(.2027*b,.3006*c,0,0,1,.55*b,.2866*c);a.arcTo(.0676*b,.1002*c,0,0,1,.5892*b,.3307*c);a.arcTo(.0338*b,.0501*c,0,0,1,.5824*b,.3888*c);a.arcTo(.0946*b,.1403*c,0,0,1,.5216*b,.4269*c);a.arcTo(.1622*b,.2405*c,0,
53130,1,.4432*b,.4128*c);a.arcTo(.0541*b,.0802*c,0,0,1,.4108*b,.3527*c);a.arcTo(.0541*b,.0802*c,0,0,1,.4351*b,.2986*c);a.arcTo(.0811*b,.1202*c,0,0,1,.473*b,.2806*c);a.close();a.fill();a.setStrokeWidth(2*d);a.setStrokeColor("#292929");a.begin();a.moveTo(0,.572*c);a.lineTo(.0865*b,.284*c);a.lineTo(.4203*b,0);a.lineTo(.5865*b,0);a.lineTo(.919*b,.286*c);a.lineTo(b,.566*c);a.lineTo(.5027*b,c);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeAws3dWorker.prototype.cst.WORKER,mxShapeAws3dWorker);
5314function mxShapeAws3dApplication2(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dApplication2,mxShape);mxShapeAws3dApplication2.prototype.cst={APPLICATION2:"mxgraph.aws3d.application2",SHADING_COLORS:"shadingCols"};
5315mxShapeAws3dApplication2.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));e=d*b/62;d=d*c/53.5;var f=parseFloat(mxUtils.getValue(this.state.style,"shadow","0"));d=Math.min(e,d);a.setShadow(!1);a.setStrokeWidth(d);a.save();a.save();a.setStrokeWidth(2*d);a.setStrokeColor("#292929");a.setLineJoin("round");1==f&&a.setShadow(!0);a.begin();a.moveTo(0,.6766*c);a.lineTo(0,.3271*c);a.lineTo(.5*b,0);a.lineTo(b,.3271*c);a.lineTo(b,
5316.6766*c);a.lineTo(.5*b,c);a.close();a.fillAndStroke();a.restore();a.setFillColor("#000000");e=mxUtils.getValue(this.state.style,mxShapeAws3dApplication2.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");f=mxUtils.getValue(this.state.style,"flipH","0");"0"==f?a.setAlpha(e[0]):a.setAlpha(e[1]);a.begin();a.moveTo(0,.3271*c);a.lineTo(.5*b,.6449*c);a.lineTo(.5*b,c);a.lineTo(0,.6766*c);a.close();a.fill();"0"==f?a.setAlpha(e[1]):a.setAlpha(e[0]);a.begin();a.moveTo(.5*b,.6449*c);a.lineTo(b,.3271*
5317c);a.lineTo(b,.6766*c);a.lineTo(.5*b,c);a.close();a.fill();a.restore();a.setLineJoin("round");a.begin();a.moveTo(0,.3271*c);a.lineTo(.5*b,.6449*c);a.lineTo(.5*b,c);a.lineTo(0,.6766*c);a.close();a.stroke();a.begin();a.moveTo(.5*b,.6449*c);a.lineTo(b,.3271*c);a.lineTo(b,.6766*c);a.lineTo(.5*b,c);a.close();a.stroke();a.setLineJoin("miter");e=mxUtils.getValue(this.state.style,"strokeColor","#000000");a.setFillColor(e);a.begin();a.moveTo(.1742*b,.6355*c);a.lineTo(.1742*b,.4393*c);a.lineTo(.6726*b,.1121*
5318c);a.lineTo(.7661*b,.1738*c);a.lineTo(.2661*b,.4991*c);a.lineTo(.2661*b,.6916*c);a.close();a.moveTo(.2871*b,.7084*c);a.lineTo(.2871*b,.514*c);a.lineTo(.7823*b,.1869*c);a.lineTo(.8629*b,.2374*c);a.lineTo(.379*b,.5626*c);a.lineTo(.379*b,.7607*c);a.close();a.fill();a.setStrokeWidth(2*d);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.6766*c);a.lineTo(0,.3271*c);a.lineTo(.5*b,0);a.lineTo(b,.3271*c);a.lineTo(b,.6766*c);a.lineTo(.5*b,c);a.close();a.stroke()};
5319mxCellRenderer.registerShape(mxShapeAws3dApplication2.prototype.cst.APPLICATION2,mxShapeAws3dApplication2);function mxShapeAws3dElasticBeanstalk(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dElasticBeanstalk,mxShape);mxShapeAws3dElasticBeanstalk.prototype.cst={ELASTIC_BEANSTALK:"mxgraph.aws3d.elasticBeanstalk",SHADING_COLORS:"shadingCols"};
5320mxShapeAws3dElasticBeanstalk.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));e=d*b/181.5;d=d*c/140;var f=parseFloat(mxUtils.getValue(this.state.style,"shadow","0"));d=Math.min(e,d);a.setShadow(!1);a.setStrokeWidth(d);a.save();a.save();a.save();a.setStrokeWidth(2*d);a.setStrokeColor("#292929");a.setLineJoin("round");1==f&&a.setShadow(!0);a.begin();a.moveTo(0,.6239*c);a.lineTo(0,.3754*c);a.lineTo(.5*b,0);a.lineTo(b,.3754*
5321c);a.lineTo(b,.6239*c);a.lineTo(.5*b,c);a.close();a.fillAndStroke();a.restore();a.setFillColor("#000000");e=mxUtils.getValue(this.state.style,mxShapeAws3dElasticBeanstalk.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");f=mxUtils.getValue(this.state.style,"flipH","0");"0"==f?a.setAlpha(e[0]):a.setAlpha(e[1]);a.begin();a.moveTo(0,.3754*c);a.lineTo(.5*b,.7514*c);a.lineTo(.5*b,c);a.lineTo(0,.6239*c);a.close();a.fill();"0"==f?a.setAlpha(e[1]):a.setAlpha(e[0]);a.begin();a.moveTo(.5*b,.7514*
5322c);a.lineTo(b,.3754*c);a.lineTo(b,.6239*c);a.lineTo(.5*b,c);a.close();a.fill();a.restore();a.setLineJoin("round");a.begin();a.moveTo(0,.3754*c);a.lineTo(.5*b,.7514*c);a.lineTo(.5*b,c);a.lineTo(0,.6239*c);a.close();a.moveTo(.5*b,.7514*c);a.lineTo(b,.3754*c);a.lineTo(b,.6239*c);a.lineTo(.5*b,c);a.close();a.moveTo(.2485*b,.187*c);a.lineTo(.7493*b,.5623*c);a.lineTo(.7493*b,.8123*c);a.stroke();a.setLineJoin("miter");e=mxUtils.getValue(this.state.style,"strokeColor","#000000");a.setFillColor(e);a.begin();
5323a.moveTo(.7763*b,.2063*c);a.lineTo(.2749*b,.5817*c);a.lineTo(.2749*b,.8309*c);a.lineTo(.2204*b,.7894*c);a.lineTo(.2204*b,.5394*c);a.lineTo(.7185*b,.1619*c);a.close();a.fill();a.restore();a.begin();a.moveTo(.1713*b,.543*c);a.arcTo(.1653*b,.2149*c,0,0,1,.2028*b,.5723*c);a.arcTo(.1653*b,.2149*c,0,0,1,.2281*b,.6096*c);a.arcTo(.1102*b,.1433*c,0,0,1,.2402*b,.644*c);a.arcTo(.1102*b,.1433*c,0,0,1,.2424*b,.6848*c);a.arcTo(.1653*b,.2149*c,0,0,1,.216*b,.6612*c);a.arcTo(.1653*b,.2149*c,0,0,1,.1895*b,.6239*c);
5324a.arcTo(.1102*b,.1433*c,0,0,1,.1719*b,.5824*c);a.arcTo(.0826*b,.1074*c,0,0,1,.1713*b,.543*c);a.close();a.moveTo(.2507*b,.7794*c);a.arcTo(.1653*b,.2149*c,0,0,1,.254*b,.7421*c);a.arcTo(.022*b,.0287*c,0,0,1,.27*b,.7264*c);a.arcTo(.0551*b,.0716*c,0,0,1,.2986*b,.73*c);a.arcTo(.1653*b,.2149*c,0,0,1,.3234*b,.7457*c);a.arcTo(.1653*b,.2149*c,0,0,1,.3218*b,.7815*c);a.arcTo(.022*b,.0287*c,0,0,1,.3019*b,.7987*c);a.arcTo(.0826*b,.1074*c,0,0,1,.27*b,.7923*c);a.arcTo(.1653*b,.2149*c,0,0,1,.2507*b,.7794*c);a.close();
5325a.moveTo(.2799*b,.5265*c);a.arcTo(.1102*b,.1433*c,0,0,1,.3003*b,.515*c);a.arcTo(.0826*b,.1074*c,0,0,1,.3317*b,.515*c);a.arcTo(.1653*b,.2149*c,0,0,1,.3774*b,.5315*c);a.arcTo(.1653*b,.2149*c,0,0,1,.4033*b,.5487*c);a.arcTo(.0826*b,.1074*c,0,0,1,.3906*b,.5595*c);a.arcTo(.0826*b,.1074*c,0,0,1,.3493*b,.5616*c);a.arcTo(.1653*b,.2149*c,0,0,1,.3069*b,.5444*c);a.arcTo(.1653*b,.2149*c,0,0,1,.2799*b,.5265*c);a.close();a.moveTo(.2887*b,.3933*c);a.arcTo(.1653*b,.2149*c,0,0,1,.314*b,.414*c);a.arcTo(.1653*b,.2149*
5326c,0,0,1,.3322*b,.4391*c);a.arcTo(.0193*b,.0251*c,0,0,1,.3344*b,.4699*c);a.arcTo(.0551*b,.0716*c,0,0,1,.3196*b,.485*c);a.arcTo(.1653*b,.2149*c,0,0,1,.2887*b,.4592*c);a.arcTo(.1102*b,.1433*c,0,0,1,.27*b,.4269*c);a.arcTo(.0165*b,.0215*c,0,0,1,.2727*b,.4054*c);a.arcTo(.0551*b,.0716*c,0,0,1,.2887*b,.3933*c);a.close();a.moveTo(.4613*b,.262*c);a.arcTo(.1653*b,.2149*c,0,0,1,.4867*b,.2827*c);a.arcTo(.1653*b,.2149*c,0,0,1,.5049*b,.3078*c);a.arcTo(.0193*b,.0251*c,0,0,1,.5071*b,.3386*c);a.arcTo(.0551*b,.0716*
5327c,0,0,1,.4922*b,.3537*c);a.arcTo(.1653*b,.2149*c,0,0,1,.4613*b,.3279*c);a.arcTo(.1102*b,.1433*c,0,0,1,.4426*b,.2956*c);a.arcTo(.0165*b,.0215*c,0,0,1,.4453*b,.2741*c);a.arcTo(.0551*b,.0716*c,0,0,1,.4613*b,.262*c);a.close();a.moveTo(.4525*b,.3952*c);a.arcTo(.1102*b,.1433*c,0,0,1,.4729*b,.3837*c);a.arcTo(.0826*b,.1074*c,0,0,1,.5043*b,.3837*c);a.arcTo(.1653*b,.2149*c,0,0,1,.55*b,.4002*c);a.arcTo(.1653*b,.2149*c,0,0,1,.5759*b,.4174*c);a.arcTo(.0826*b,.1074*c,0,0,1,.5633*b,.4282*c);a.arcTo(.0826*b,.1074*
5328c,0,0,1,.5219*b,.4303*c);a.arcTo(.1653*b,.1074*c,0,0,1,.4795*b,.4131*c);a.arcTo(.1653*b,.2149*c,0,0,1,.4525*b,.3952*c);a.close();a.moveTo(.6217*b,.1426*c);a.arcTo(.1653*b,.2149*c,0,0,1,.6471*b,.1633*c);a.arcTo(.1653*b,.2149*c,0,0,1,.6652*b,.1884*c);a.arcTo(.0193*b,.0251*c,0,0,1,.6674*b,.2192*c);a.arcTo(.0551*b,.0716*c,0,0,1,.6526*b,.2342*c);a.arcTo(.1653*b,.2149*c,0,0,1,.6217*b,.2085*c);a.arcTo(.1102*b,.1433*c,0,0,1,.603*b,.1762*c);a.arcTo(.0165*b,.0215*c,0,0,1,.6057*b,.1547*c);a.arcTo(.0551*b,.0716*
5329c,0,0,1,.6217*b,.1426*c);a.close();a.moveTo(.6129*b,.2758*c);a.arcTo(.1102*b,.1433*c,0,0,1,.6333*b,.2643*c);a.arcTo(.0826*b,.1433*c,0,0,1,.6647*b,.2643*c);a.arcTo(.1653*b,.2149*c,0,0,1,.7104*b,.2808*c);a.arcTo(.1653*b,.2149*c,0,0,1,.7363*b,.298*c);a.arcTo(.0826*b,.2149*c,0,0,1,.7363*b,.298*c);a.arcTo(.0826*b,.1074*c,0,0,1,.6823*b,.3109*c);a.arcTo(.1653*b,.2149*c,0,0,1,.6399*b,.2937*c);a.arcTo(.1653*b,.2149*c,0,0,1,.6129*b,.2758*c);a.close();a.fillAndStroke();a.setStrokeWidth(2*d);a.setStrokeColor("#292929");
5330a.setLineJoin("round");a.begin();a.moveTo(0,.6239*c);a.lineTo(0,.3754*c);a.lineTo(.5*b,0);a.lineTo(b,.3754*c);a.lineTo(b,.6239*c);a.lineTo(.5*b,c);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeAws3dElasticBeanstalk.prototype.cst.ELASTIC_BEANSTALK,mxShapeAws3dElasticBeanstalk);function mxShapeAws3dSimpleDB2(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dSimpleDB2,mxShape);
5331mxShapeAws3dSimpleDB2.prototype.cst={SIMPLE_DB_2:"mxgraph.aws3d.simpleDb2",SHADING_COLORS:"shadingCols"};mxShapeAws3dSimpleDB2.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));d=Math.min(d*b/181.5,d*c/210);this.background(a,0,0,b,c,d);a.setShadow(!1);this.foreground(a,0,0,b,c,d)};
5332mxShapeAws3dSimpleDB2.prototype.background=function(a,d,e,b,c,f){a.setStrokeWidth(f);a.save();a.save();a.save();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.8183*c);a.lineTo(0,.1848*c);a.lineTo(.3366*b,0);a.lineTo(.6293*b,.0021*c);a.lineTo(b,.1833*c);a.lineTo(b,.8183*c);a.lineTo(.6694*b,c);a.lineTo(.4986*b,.9091*c);a.lineTo(.3333*b,c);a.close();a.fillAndStroke()};
5333mxShapeAws3dSimpleDB2.prototype.foreground=function(a,d,e,b,c,f){a.restore();a.setShadow(!1);a.setFillColor("#000000");d=mxUtils.getValue(this.state.style,mxShapeAws3dSimpleDB2.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");e=mxUtils.getValue(this.state.style,"flipH","0");"0"==e?a.setAlpha(d[0]):a.setAlpha(d[1]);a.begin();a.moveTo(0,.1848*c);a.lineTo(.168*b,.1833*c);a.lineTo(0,.365*c);a.lineTo(.3333*b,.5467*c);a.lineTo(.3333*b,c);a.lineTo(0,.8183*c);a.close();a.moveTo(.4986*b,.9078*
5334c);a.lineTo(.4986*b,.3655*c);a.lineTo(.6667*b,.5457*c);a.lineTo(.6667*b,c);a.close();a.fill();"0"==e?a.setAlpha(d[1]):a.setAlpha(d[0]);a.begin();a.moveTo(.3333*b,.5467*c);a.lineTo(.4986*b,.3655*c);a.lineTo(.4986*b,.9076*c);a.lineTo(.3333*b,c);a.close();a.moveTo(.8292*b,.1822*c);a.lineTo(b,.1848*c);a.lineTo(b,.8183*c);a.lineTo(.6667*b,c);a.lineTo(.6667*b,.5441*c);a.lineTo(b,.3666*c);a.close();a.fill();a.restore();a.setShadow(!1);a.setLineJoin("round");a.begin();a.moveTo(0,.1848*c);a.lineTo(.168*b,
5335.1833*c);a.lineTo(0,.365*c);a.lineTo(.3333*b,.5467*c);a.lineTo(.3333*b,c);a.lineTo(0,.8183*c);a.close();a.moveTo(.4986*b,.9078*c);a.lineTo(.4986*b,.3655*c);a.lineTo(.6667*b,.5457*c);a.lineTo(.6667*b,c);a.close();a.moveTo(.3333*b,.5467*c);a.lineTo(.4986*b,.3655*c);a.lineTo(.4986*b,.9076*c);a.lineTo(.3333*b,c);a.close();a.moveTo(.8292*b,.1822*c);a.lineTo(b,.1848*c);a.lineTo(b,.8183*c);a.lineTo(.6667*b,c);a.lineTo(.6667*b,.5441*c);a.lineTo(b,.3666*c);a.close();a.moveTo(.1669*b,.1828*c);a.lineTo(.4986*
5336b,.3655*c);a.lineTo(.8314*b,.1833*c);a.lineTo(.4986*b,.0031*c);a.close();a.stroke();d=mxUtils.getValue(this.state.style,"strokeColor","#000000");a.setFillColor(d);a.begin();a.moveTo(.2634*b,.1833*c);a.lineTo(.5003*b,.0535*c);a.lineTo(.7394*b,.1833*c);a.lineTo(.5003*b,.3136*c);a.close();a.fill();d=mxUtils.getValue(this.state.style,"fillColor","#000000");a.restore();a.setShadow(!1);a.setStrokeWidth(3*f);a.setStrokeColor(d);a.begin();a.moveTo(.3003*b,.2108*c);a.lineTo(.5642*b,.068*c);a.moveTo(.4429*
5337b,.0693*c);a.lineTo(.7059*b,.2121*c);a.moveTo(.6667*b,.2458*c);a.lineTo(.3974*b,.0992*c);a.moveTo(.3499*b,.1277*c);a.lineTo(.6088*b,.2698*c);a.moveTo(.3009*b,.1556*c);a.lineTo(.5496*b,.2913*c);a.stroke();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.8183*c);a.lineTo(0,.1848*c);a.lineTo(.3366*b,0);a.lineTo(.6293*b,.0021*c);a.lineTo(b,.1833*c);a.lineTo(b,.8183*c);a.lineTo(.6694*b,c);a.lineTo(.4986*b,.9091*c);a.lineTo(.3333*b,c);a.close();a.stroke()};
5338mxCellRenderer.registerShape(mxShapeAws3dSimpleDB2.prototype.cst.SIMPLE_DB_2,mxShapeAws3dSimpleDB2);function mxShapeAws3dWorkflowService(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dWorkflowService,mxShape);mxShapeAws3dWorkflowService.prototype.cst={WORKFLOW_SERVICE:"mxgraph.aws3d.workflowService",SHADING_COLORS:"shadingCols"};
5339mxShapeAws3dWorkflowService.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));d=Math.min(d*b/181.5,d*c/210);this.background(a,0,0,b,c,d);a.setShadow(!1);this.foreground(a,0,0,b,c,d)};
5340mxShapeAws3dWorkflowService.prototype.background=function(a,d,e,b,c,f){a.setStrokeWidth(f);a.save();a.save();a.save();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.6456*c);a.lineTo(.2481*b,0);a.lineTo(.7497*b,0);a.lineTo(b,.6456*c);a.lineTo(.4984*b,c);a.close();a.fillAndStroke()};
5341mxShapeAws3dWorkflowService.prototype.foreground=function(a,d,e,b,c,f){a.restore();a.setShadow(!1);a.setFillColor("#000000");d=mxUtils.getValue(this.state.style,mxShapeAws3dWorkflowService.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");e=mxUtils.getValue(this.state.style,"flipH","0");"0"==e?a.setAlpha(d[0]):a.setAlpha(d[1]);a.begin();a.moveTo(0,.6456*c);a.lineTo(.2486*b,0);a.lineTo(.2486*b,.3531*c);a.lineTo(.4984*b,c);a.close();a.moveTo(.7497*b,.3531*c);a.lineTo(.7497*b,0);a.lineTo(b,
5342.6456*c);a.close();a.fill();"0"==e?a.setAlpha(d[1]):a.setAlpha(d[0]);a.begin();a.moveTo(.4984*b,c);a.lineTo(.7486*b,.3531*c);a.lineTo(b,.6456*c);a.lineTo(.4967*b,c);a.close();a.fill();a.restore();a.setShadow(!1);a.setLineJoin("round");a.begin();a.moveTo(.7497*b,.3531*c);a.lineTo(.7497*b,0);a.lineTo(b,.6456*c);a.close();a.moveTo(0,.6456*c);a.lineTo(.2486*b,0);a.lineTo(.2486*b,.3531*c);a.lineTo(.4984*b,c);a.lineTo(.7486*b,.3531*c);a.lineTo(b,.6456*c);a.lineTo(.4967*b,c);a.close();a.moveTo(.2486*b,.3531*
5343c);a.lineTo(.7508*b,.3531*c);a.moveTo(.2488*b,.353*c);a.lineTo(0,.6486*c);a.stroke();a.restore();a.setShadow(!1);d=mxUtils.getValue(this.state.style,"strokeColor","#000000");a.setFillColor(d);a.setStrokeWidth(2*f);a.begin();a.ellipse(.2925*b,.031*c,.4116*b,.2925*c);a.fill();d=mxUtils.getValue(this.state.style,"fillColor","#ffffff");a.setStrokeColor(d);a.begin();a.moveTo(.5252*b,.0465*c);a.lineTo(.5873*b,.0903*c);a.lineTo(.5483*b,.1173*c);a.lineTo(.4874*b,.0728*c);a.close();a.moveTo(.4896*b,.1132*
5344c);a.lineTo(.5005*b,.1705*c);a.lineTo(.4182*b,.1631*c);a.lineTo(.4122*b,.1058*c);a.close();a.moveTo(.3584*b,.1631*c);a.lineTo(.4204*b,.2062*c);a.lineTo(.3825*b,.2332*c);a.lineTo(.32*b,.19*c);a.close();a.moveTo(.4594*b,.2338*c);a.lineTo(.5214*b,.2783*c);a.lineTo(.4835*b,.3053*c);a.lineTo(.4215*b,.2608*c);a.close();a.moveTo(.5187*b,.0943*c);a.lineTo(.4879*b,.1152*c);a.moveTo(.421*b,.1624*c);a.lineTo(.3895*b,.1846*c);a.moveTo(.5*b,.1698*c);a.lineTo(.5554*b,.2089*c);a.lineTo(.4885*b,.2567*c);a.stroke();
5345a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.6456*c);a.lineTo(.2481*b,0);a.lineTo(.7497*b,0);a.lineTo(b,.6456*c);a.lineTo(.4984*b,c);a.close();a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeAws3dWorkflowService.prototype.cst.WORKFLOW_SERVICE,mxShapeAws3dWorkflowService);function mxShapeAws3dDecider(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dDecider,mxShape);
5346mxShapeAws3dDecider.prototype.cst={DECIDER:"mxgraph.aws3d.decider",SHADING_COLORS:"shadingCols"};
5347mxShapeAws3dDecider.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));e=parseFloat(mxUtils.getValue(this.state.style,"shadow","0"));d=Math.min(d*b/74,d*c/50);a.setStrokeWidth(d);a.setShadow(!1);a.save();a.save();a.setStrokeWidth(2*d);a.setStrokeColor("#292929");a.setLineJoin("round");1==e&&a.setShadow(!0);a.begin();a.moveTo(0,.572*c);a.lineTo(.0865*b,.284*c);a.lineTo(.4203*b,0);a.lineTo(.5865*b,0);a.lineTo(.919*b,.286*
5348c);a.lineTo(b,.566*c);a.lineTo(.5027*b,c);a.close();a.fillAndStroke();a.restore();a.setFillColor("#000000");e=mxUtils.getValue(this.state.style,mxShapeAws3dDecider.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");var f=mxUtils.getValue(this.state.style,"flipH","0");"0"==f?a.setAlpha(e[0]):a.setAlpha(e[1]);a.begin();a.moveTo(0,.566*c);a.lineTo(.0892*b,.282*c);a.lineTo(.0878*b,.426*c);a.lineTo(.4216*b,.712*c);a.lineTo(.5865*b,.712*c);a.lineTo(.5027*b,c);a.close();a.fill();"0"==f?a.setAlpha(e[1]):
5349a.setAlpha(e[0]);a.begin();a.moveTo(.5027*b,c);a.lineTo(.5865*b,.712*c);a.lineTo(.9176*b,.43*c);a.lineTo(b,.566*c);a.close();a.fill();a.restore();a.setLineJoin("round");a.begin();a.moveTo(0,.566*c);a.lineTo(.0892*b,.282*c);a.lineTo(.0878*b,.426*c);a.lineTo(.4216*b,.712*c);a.lineTo(.5865*b,.712*c);a.lineTo(.5027*b,c);a.close();a.moveTo(.5027*b,c);a.lineTo(.5865*b,.712*c);a.lineTo(.9176*b,.43*c);a.lineTo(b,.566*c);a.close();a.moveTo(0,.572*c);a.lineTo(.0892*b,.422*c);a.moveTo(.5027*b,c);a.lineTo(.4189*
5350b,.708*c);a.moveTo(.9176*b,.43*c);a.lineTo(.9176*b,.29*c);a.stroke();a.setStrokeWidth(1.6*d);a.setLineJoin("square");a.begin();a.moveTo(.4973*b,.1523*c);a.lineTo(.5608*b,.0982*c);a.lineTo(.6581*b,.1844*c);a.lineTo(.5986*b,.2365*c);a.close();a.moveTo(.3784*b,.2164*c);a.lineTo(.5054*b,.2305*c);a.lineTo(.5203*b,.3407*c);a.lineTo(.3892*b,.3246*c);a.close();a.moveTo(.2932*b,.3246*c);a.lineTo(.3919*b,.4128*c);a.lineTo(.3334*b,.4647*c);a.lineTo(.2357*b,.38*c);a.close();a.moveTo(.4568*b,.4649*c);a.lineTo(.5554*
5351b,.5511*c);a.lineTo(.4932*b,.6032*c);a.lineTo(.3946*b,.517*c);a.close();a.moveTo(.5473*b,.1924*c);a.lineTo(.5027*b,.2365*c);a.moveTo(.4*b,.3186*c);a.lineTo(.3446*b,.3667*c);a.moveTo(.5189*b,.3387*c);a.lineTo(.6081*b,.4148*c);a.lineTo(.5068*b,.501*c);a.stroke();a.setStrokeColor("#292929");a.begin();a.moveTo(0,.572*c);a.lineTo(.0865*b,.284*c);a.lineTo(.4203*b,0);a.lineTo(.5865*b,0);a.lineTo(.919*b,.286*c);a.lineTo(b,.566*c);a.lineTo(.5027*b,c);a.close();a.stroke()};
5352mxCellRenderer.registerShape(mxShapeAws3dDecider.prototype.cst.DECIDER,mxShapeAws3dDecider);function mxShapeAws3dSearchEngine(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dSearchEngine,mxShape);mxShapeAws3dSearchEngine.prototype.cst={SEARCH_ENGINE:"mxgraph.aws3d.searchEngine",SHADING_COLORS:"shadingCols"};
5353mxShapeAws3dSearchEngine.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));d=Math.min(d*b/180,d*c/192);this.background(a,0,0,b,c,d);a.setShadow(!1);this.foreground(a,0,0,b,c,d)};
5354mxShapeAws3dSearchEngine.prototype.background=function(a,d,e,b,c,f){a.setStrokeWidth(f);a.save();a.save();a.save();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.7281*c);a.lineTo(.1667*b,.5444*c);a.lineTo(.1667*b,.1832*c);a.lineTo(.5011*b,0);a.lineTo(.8333*b,.1832*c);a.lineTo(.8333*b,.5446*c);a.lineTo(b,.7281*c);a.lineTo(.7486*b,.7735*c);a.lineTo(.5819*b,.8617*c);a.lineTo(.5011*b,c);a.lineTo(.4169*b,.8653*c);a.lineTo(.2475*b,.7704*c);a.close();a.fillAndStroke()};
5355mxShapeAws3dSearchEngine.prototype.foreground=function(a,d,e,b,c,f){a.restore();a.setShadow(!1);a.setFillColor("#000000");d=mxUtils.getValue(this.state.style,mxShapeAws3dSearchEngine.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");e=mxUtils.getValue(this.state.style,"flipH","0");"0"==e?a.setAlpha(d[0]):a.setAlpha(d[1]);a.begin();a.moveTo(.1672*b,.1837*c);a.lineTo(.4989*b,.3638*c);a.lineTo(.4989*b,.7291*c);a.lineTo(.5825*b,.8633*c);a.lineTo(.4989*b,c);a.lineTo(.4164*b,.8622*c);a.lineTo(.2458*
5356b,.7719*c);a.lineTo(0,.7276*c);a.lineTo(.1661*b,.5454*c);a.close();a.moveTo(.7486*b,.7714*c);a.lineTo(.8317*b,.5459*c);a.lineTo(b,.727*c);a.close();a.fill();"0"==e?a.setAlpha(d[1]):a.setAlpha(d[0]);a.begin();a.moveTo(.4989*b,.3643*c);a.lineTo(.8317*b,.1827*c);a.lineTo(.8317*b,.5465*c);a.lineTo(.7508*b,.7714*c);a.lineTo(.5836*b,.8633*c);a.lineTo(.4989*b,.727*c);a.close();a.fill();a.restore();a.setShadow(!1);a.setLineJoin("round");a.begin();a.moveTo(.1672*b,.1837*c);a.lineTo(.4989*b,.3638*c);a.lineTo(.4989*
5357b,.7291*c);a.lineTo(.5825*b,.8633*c);a.lineTo(.4989*b,c);a.lineTo(.4164*b,.8622*c);a.lineTo(.2458*b,.7719*c);a.lineTo(0,.7276*c);a.lineTo(.1661*b,.5454*c);a.close();a.moveTo(.7486*b,.7714*c);a.lineTo(.8317*b,.5459*c);a.lineTo(b,.727*c);a.close();a.moveTo(.4989*b,.3643*c);a.lineTo(.8317*b,.1827*c);a.lineTo(.8317*b,.5465*c);a.lineTo(.7508*b,.7714*c);a.lineTo(.5836*b,.8633*c);a.lineTo(.4989*b,.727*c);a.close();a.moveTo(.1667*b,.5459*c);a.lineTo(.2486*b,.7704*c);a.moveTo(.4164*b,.8633*c);a.lineTo(.4989*
5358b,.727*c);a.lineTo(.4989*b,c);a.stroke();a.restore();a.setShadow(!1);d=mxUtils.getValue(this.state.style,"strokeColor","#000000");a.setFillColor(d);a.begin();a.moveTo(.3427*b,.179*c);a.arcTo(.0277*b,.0261*c,0,0,1,.3267*b,.1487*c);a.arcTo(.0664*b,.0365*c,0,0,1,.3621*b,.1227*c);a.arcTo(.1052*b,.0992*c,0,0,1,.4247*b,.1195*c);a.arcTo(.1274*b,.12*c,0,0,1,.4884*b,.1018*c);a.arcTo(.1329*b,.1253*c,0,0,1,.5548*b,.1112*c);a.arcTo(.0377*b,.0344*c,0,0,1,.572*b,.166*c);a.arcTo(.0388*b,.0365*c,0,0,1,.6047*b,.1775*
5359c);a.arcTo(.021*b,.0198*c,0,0,1,.5936*b,.2046*c);a.arcTo(.0332*b,.0313*c,0,0,1,.6008*b,.2416*c);a.arcTo(.072*b,.0678*c,0,0,1,.5437*b,.2677*c);a.arcTo(.1052*b,.0939*c,0,0,1,.4828*b,.2563*c);a.close();a.moveTo(.448*b,.2156*c);a.arcTo(.0111*b,.0104*c,0,0,0,.459*b,.2255*c);a.arcTo(.0138*b,.013*c,0,0,0,.4729*b,.2182*c);a.lineTo(.4773*b,.1874*c);a.arcTo(.0664*b,.0626*c,0,0,0,.5116*b,.1759*c);a.arcTo(.0277*b,.0626*c,0,0,0,.5233*b,.1503*c);a.arcTo(.0554*b,.0261*c,0,0,0,.5022*b,.1336*c);a.arcTo(.0886*b,.0835*
5360c,0,0,0,.4607*b,.1305*c);a.arcTo(.0664*b,.0626*c,0,0,0,.4313*b,.142*c);a.arcTo(.0332*b,.0313*c,0,0,0,.4175*b,.1597*c);a.arcTo(.0249*b,.0235*c,0,0,0,.4313*b,.1822*c);a.arcTo(.0443*b,.0418*c,0,0,0,.4535*b,.1884*c);a.close();a.moveTo(.4718*b,.1764*c);a.arcTo(.0443*b,.0418*c,0,0,1,.4496*b,.1754*c);a.arcTo(.0221*b,.0157*c,0,0,1,.4369*b,.1634*c);a.arcTo(.0221*b,.0183*c,0,0,1,.4496*b,.1467*c);a.arcTo(.0609*b,.0574*c,0,0,1,.4759*b,.1414*c);a.arcTo(.0388*b,.0365*c,0,0,1,.5033*b,.1514*c);a.arcTo(.0443*b,.0209*
5361c,0,0,1,.495*b,.1701*c);a.arcTo(.0388*b,.0365*c,0,0,1,.4718*b,.1764*c);a.close();a.fill();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.7281*c);a.lineTo(.1667*b,.5444*c);a.lineTo(.1667*b,.1832*c);a.lineTo(.5011*b,0);a.lineTo(.8333*b,.1832*c);a.lineTo(.8333*b,.5446*c);a.lineTo(b,.7281*c);a.lineTo(.7486*b,.7735*c);a.lineTo(.5819*b,.8617*c);a.lineTo(.5011*b,c);a.lineTo(.4169*b,.8653*c);a.lineTo(.2475*b,.7704*c);a.close();a.stroke()};
5362mxCellRenderer.registerShape(mxShapeAws3dSearchEngine.prototype.cst.SEARCH_ENGINE,mxShapeAws3dSearchEngine);function mxShapeAws3dSecurityTokenService(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dSecurityTokenService,mxShape);mxShapeAws3dSecurityTokenService.prototype.cst={SECURITY_TOKEN_SERVICE:"mxgraph.aws3d.securityTokenService",SHADING_COLORS:"shadingCols"};
5363mxShapeAws3dSecurityTokenService.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));d=Math.min(d*b/180,d*c/192);this.background(a,0,0,b,c,d);a.setShadow(!1);this.foreground(a,0,0,b,c,d)};
5364mxShapeAws3dSecurityTokenService.prototype.background=function(a,d,e,b,c,f){a.setStrokeWidth(f);a.save();a.save();a.save();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.7281*c);a.lineTo(.1667*b,.5444*c);a.lineTo(.1667*b,.1832*c);a.lineTo(.5011*b,0);a.lineTo(.8333*b,.1832*c);a.lineTo(.8333*b,.5446*c);a.lineTo(b,.7281*c);a.lineTo(.7486*b,.7735*c);a.lineTo(.5819*b,.8617*c);a.lineTo(.5011*b,c);a.lineTo(.4169*b,.8653*c);a.lineTo(.2475*b,.7704*c);a.close();
5365a.fillAndStroke()};
5366mxShapeAws3dSecurityTokenService.prototype.foreground=function(a,d,e,b,c,f){a.restore();a.setShadow(!1);a.setFillColor("#000000");d=mxUtils.getValue(this.state.style,mxShapeAws3dSecurityTokenService.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");e=mxUtils.getValue(this.state.style,"flipH","0");"0"==e?a.setAlpha(d[0]):a.setAlpha(d[1]);a.begin();a.moveTo(.1672*b,.1837*c);a.lineTo(.4989*b,.3638*c);a.lineTo(.4989*b,.7291*c);a.lineTo(.5825*b,.8633*c);a.lineTo(.4989*b,c);a.lineTo(.4164*b,
5367.8622*c);a.lineTo(.2458*b,.7719*c);a.lineTo(0,.7276*c);a.lineTo(.1661*b,.5454*c);a.close();a.moveTo(.7486*b,.7714*c);a.lineTo(.8317*b,.5459*c);a.lineTo(b,.727*c);a.close();a.fill();"0"==e?a.setAlpha(d[1]):a.setAlpha(d[0]);a.begin();a.moveTo(.4989*b,.3643*c);a.lineTo(.8317*b,.1827*c);a.lineTo(.8317*b,.5465*c);a.lineTo(.7508*b,.7714*c);a.lineTo(.5836*b,.8633*c);a.lineTo(.4989*b,.727*c);a.close();a.fill();a.restore();a.setShadow(!1);a.setLineJoin("round");a.begin();a.moveTo(.1672*b,.1837*c);a.lineTo(.4989*
5368b,.3638*c);a.lineTo(.4989*b,.7291*c);a.lineTo(.5825*b,.8633*c);a.lineTo(.4989*b,c);a.lineTo(.4164*b,.8622*c);a.lineTo(.2458*b,.7719*c);a.lineTo(0,.7276*c);a.lineTo(.1661*b,.5454*c);a.close();a.moveTo(.7486*b,.7714*c);a.lineTo(.8317*b,.5459*c);a.lineTo(b,.727*c);a.close();a.moveTo(.4989*b,.3643*c);a.lineTo(.8317*b,.1827*c);a.lineTo(.8317*b,.5465*c);a.lineTo(.7508*b,.7714*c);a.lineTo(.5836*b,.8633*c);a.lineTo(.4989*b,.727*c);a.close();a.moveTo(.1667*b,.5459*c);a.lineTo(.2486*b,.7704*c);a.moveTo(.4164*
5369b,.8633*c);a.lineTo(.4989*b,.727*c);a.lineTo(.4989*b,c);a.stroke();a.restore();a.setShadow(!1);d=mxUtils.getValue(this.state.style,"strokeColor","#000000");a.setFillColor(d);a.begin();a.moveTo(.4773*b,.1915*c);a.arcTo(.1274*b,.12*c,0,0,1,.4358*b,.1968*c);a.arcTo(.1107*b,.1044*c,0,0,1,.3937*b,.1905*c);a.arcTo(.0554*b,.0522*c,0,0,1,.3682*b,.1707*c);a.arcTo(.0332*b,.0313*c,0,0,1,.3699*b,.1414*c);a.arcTo(.0775*b,.0731*c,0,0,1,.4009*b,.118*c);a.arcTo(.1107*b,.1044*c,0,0,1,.4524*b,.1059*c);a.arcTo(.1107*
5370b,.1044*c,0,0,1,.5028*b,.1112*c);a.arcTo(.0664*b,.0626*c,0,0,1,.531*b,.1315*c);a.arcTo(.0332*b,.0313*c,0,0,1,.531*b,.1597*c);a.lineTo(.5615*b,.1754*c);a.lineTo(.5526*b,.1905*c);a.lineTo(.5759*b,.1999*c);a.lineTo(.5753*b,.2109*c);a.lineTo(.5792*b,.2161*c);a.lineTo(.6135*b,.2182*c);a.lineTo(.6113*b,.2416*c);a.lineTo(.5819*b,.2474*c);a.close();a.moveTo(.4756*b,.1816*c);a.arcTo(.0554*b,.0522*c,0,0,0,.5*b,.1691*c);a.arcTo(.0332*b,.0313*c,0,0,0,.5144*b,.1435*c);a.arcTo(.0277*b,.0261*c,0,0,0,.4967*b,.1247*
5371c);a.arcTo(.0554*b,.0522*c,0,0,0,.4729*b,.1174*c);a.arcTo(.1107*b,.1044*c,0,0,0,.4452*b,.1169*c);a.arcTo(.0831*b,.0783*c,0,0,0,.4197*b,.1232*c);a.arcTo(.0554*b,.0522*c,0,0,0,.397*b,.1357*c);a.arcTo(.0388*b,.0365*c,0,0,0,.3859*b,.1555*c);a.arcTo(.0305*b,.0287*c,0,0,0,.4053*b,.178*c);a.arcTo(.072*b,.0678*c,0,0,0,.4385*b,.1863*c);a.arcTo(.0831*b,.0783*c,0,0,0,.4596*b,.1848*c);a.arcTo(.0664*b,.0626*c,0,0,0,.4756*b,.1816*c);a.fill();a.setStrokeWidth(1.5*f);a.setLineJoin("round");a.setLineCap("round");
5372a.begin();a.moveTo(.4939*b,.1326*c);a.lineTo(.4474*b,.1508*c);a.lineTo(.4812*b,.1576*c);a.moveTo(.4889*b,.1733*c);a.lineTo(.4939*b,.1775*c);a.moveTo(.5061*b,.1576*c);a.lineTo(.5199*b,.1597*c);a.moveTo(.5094*b,.1394*c);a.lineTo(.5244*b,.1378*c);a.moveTo(.4945*b,.1247*c);a.lineTo(.4994*b,.1185*c);a.moveTo(.4679*b,.1175*c);a.lineTo(.4707*b,.1117*c);a.moveTo(.4396*b,.1195*c);a.lineTo(.4374*b,.1138*c);a.moveTo(.412*b,.1284*c);a.lineTo(.4059*b,.1232*c);a.moveTo(.3948*b,.1441*c);a.lineTo(.3804*b,.1425*c);
5373a.moveTo(.3931*b,.1608*c);a.lineTo(.3804*b,.1649*c);a.moveTo(.4059*b,.1754*c);a.lineTo(.3998*b,.1801*c);a.moveTo(.4308*b,.1822*c);a.lineTo(.4286*b,.1884*c);a.moveTo(.4618*b,.1827*c);a.lineTo(.4635*b,.1868*c);a.stroke();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.begin();a.moveTo(0,.7281*c);a.lineTo(.1667*b,.5444*c);a.lineTo(.1667*b,.1832*c);a.lineTo(.5011*b,0);a.lineTo(.8333*b,.1832*c);a.lineTo(.8333*b,.5446*c);a.lineTo(b,.7281*c);a.lineTo(.7486*b,.7735*c);a.lineTo(.5819*b,.8617*c);a.lineTo(.5011*
5374b,c);a.lineTo(.4169*b,.8653*c);a.lineTo(.2475*b,.7704*c);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeAws3dSecurityTokenService.prototype.cst.SECURITY_TOKEN_SERVICE,mxShapeAws3dSecurityTokenService);function mxShapeAws3dGlacier(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dGlacier,mxShape);mxShapeAws3dGlacier.prototype.cst={GLACIER:"mxgraph.aws3d.glacier",SHADING_COLORS:"shadingCols"};
5375mxShapeAws3dGlacier.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));d=Math.min(d*b/180,d*c/192);this.background(a,0,0,b,c,d);a.setShadow(!1);this.foreground(a,0,0,b,c,d)};
5376mxShapeAws3dGlacier.prototype.background=function(a,d,e,b,c,f){a.setStrokeWidth(f);a.save();a.save();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.8177*c);a.lineTo(0,.5448*c);a.lineTo(.168*b,.1792*c);a.lineTo(.5008*b,0);a.lineTo(.8309*b,.1812*c);a.lineTo(b,.5469*c);a.lineTo(b,.8188*c);a.lineTo(.6661*b,c);a.lineTo(.3333*b,c);a.close();a.fillAndStroke()};
5377mxShapeAws3dGlacier.prototype.foreground=function(a,d,e,b,c,f){a.restore();a.setShadow(!1);a.setFillColor("#000000");d=mxUtils.getValue(this.state.style,mxShapeAws3dGlacier.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");e=mxUtils.getValue(this.state.style,"flipH","0");"0"==e?a.setAlpha(d[0]):a.setAlpha(d[1]);a.begin();a.moveTo(.1658*b,.1802*c);a.lineTo(.5008*b,.3651*c);a.lineTo(.6661*b,.9089*c);a.lineTo(.6661*b,c);a.lineTo(.3339*b,c);a.lineTo(0,.8177*c);a.lineTo(0,.5427*c);a.close();
5378a.fill();"0"==e?a.setAlpha(d[1]):a.setAlpha(d[0]);a.begin();a.moveTo(.5008*b,.362*c);a.lineTo(.8314*b,.1823*c);a.lineTo(b,.5469*c);a.lineTo(b,.8177*c);a.lineTo(.6661*b,c);a.lineTo(.6661*b,.9089*c);a.close();a.fill();a.restore();a.setShadow(!1);a.setLineJoin("round");a.begin();a.moveTo(.1658*b,.1802*c);a.lineTo(.5008*b,.3651*c);a.lineTo(.6661*b,.9089*c);a.lineTo(.6661*b,c);a.lineTo(.3339*b,c);a.lineTo(0,.8177*c);a.lineTo(0,.5427*c);a.close();a.moveTo(.5008*b,.362*c);a.lineTo(.8314*b,.1823*c);a.lineTo(b,
5379.5469*c);a.lineTo(b,.8177*c);a.lineTo(.6661*b,c);a.lineTo(.6661*b,.9089*c);a.close();a.moveTo(.1675*b,.1797*c);a.lineTo(0,.7281*c);a.lineTo(.3284*b,.9089*c);a.lineTo(.6661*b,.9089*c);a.lineTo(b,.7266*c);a.lineTo(.8309*b,.1823*c);a.moveTo(.5003*b,.362*c);a.lineTo(.3311*b,.9089*c);a.lineTo(.3311*b,c);a.stroke();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.begin();a.moveTo(0,.8177*c);a.lineTo(0,.5448*c);a.lineTo(.168*b,.1792*c);a.lineTo(.5008*b,0);a.lineTo(.8309*b,.1812*c);a.lineTo(b,.5469*c);
5380a.lineTo(b,.8188*c);a.lineTo(.6661*b,c);a.lineTo(.3333*b,c);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeAws3dGlacier.prototype.cst.GLACIER,mxShapeAws3dGlacier);function mxShapeAws3dCustomerGateway(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dCustomerGateway,mxShape);mxShapeAws3dCustomerGateway.prototype.cst={CUSTOMER_GATEWAY:"mxgraph.aws3d.customerGateway",SHADING_COLORS:"shadingCols"};
5381mxShapeAws3dCustomerGateway.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));d=Math.min(d*b/116.7,d*c/102.8);this.background(a,0,0,b,c,d);a.setShadow(!1);this.foreground(a,0,0,b,c,d)};
5382mxShapeAws3dCustomerGateway.prototype.background=function(a,d,e,b,c,f){a.setStrokeWidth(f);a.save();a.save();a.save();a.save();a.save();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(.4199*b,.5447*c);a.lineTo(.4199*b,.035*c);a.lineTo(.8946*b,0);a.lineTo(b,.0691*c);a.lineTo(b,.4134*c);a.lineTo(.6812*b,.7247*c);a.close();a.fillAndStroke();a.restore();a.save();a.setShadow(!1);a.setFillColor("#000000");d=mxUtils.getValue(this.state.style,mxShapeAws3dCustomerGateway.prototype.cst.SHADING_COLORS,
5383"0.1,0.3").toString().split(",");e=mxUtils.getValue(this.state.style,"flipH","0");"0"==e?a.setAlpha(d[0]):a.setAlpha(d[1]);a.begin();a.moveTo(.4199*b,.5447*c);a.lineTo(.4199*b,.035*c);a.lineTo(.6838*b,.2072*c);a.lineTo(.6838*b,.7247*c);a.close();a.fill();"0"==e?a.setAlpha(d[1]):a.setAlpha(d[0]);a.begin();a.moveTo(.6838*b,.2072*c);a.lineTo(b,.0691*c);a.lineTo(b,.4134*c);a.lineTo(.6838*b,.7247*c);a.close();a.fill();a.restore();a.setShadow(!1);a.begin();a.moveTo(.4199*b,.5447*c);a.lineTo(.4199*b,.035*
5384c);a.lineTo(.6838*b,.2072*c);a.lineTo(.6838*b,.7247*c);a.close();a.stroke();a.restore();a.setLineJoin("round");a.setShadow(!1);a.begin();a.moveTo(.6838*b,.2072*c);a.lineTo(b,.0691*c);a.lineTo(b,.4134*c);a.lineTo(.6838*b,.7247*c);a.close();a.stroke();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.begin();a.moveTo(.4199*b,.5447*c);a.lineTo(.4199*b,.035*c);a.lineTo(.8946*b,0);a.lineTo(b,.0691*c);a.lineTo(b,.4134*c);a.lineTo(.6812*b,.7247*c);a.close();a.stroke();a.restore();a.setStrokeWidth(2*f);
5385a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.929*c);a.lineTo(0,.5866*c);a.lineTo(.3171*b,.1031*c);a.lineTo(.5784*b,.2753*c);a.lineTo(.5784*b,.7928*c);a.lineTo(.1054*b,c);a.close();a.fillAndStroke()};
5386mxShapeAws3dCustomerGateway.prototype.foreground=function(a,d,e,b,c,f){a.restore();d=mxUtils.getValue(this.state.style,"strokeColor","#000000");a.setShadow(!1);a.setLineJoin("round");a.setFillColor("#000000");e=mxUtils.getValue(this.state.style,mxShapeAws3dCustomerGateway.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");var g=mxUtils.getValue(this.state.style,"flipH","0");"0"==g?a.setAlpha(e[0]):a.setAlpha(e[1]);a.begin();a.moveTo(0,.929*c);a.lineTo(0,.5866*c);a.lineTo(.1054*b,.6537*
5387c);a.lineTo(.1054*b,c);a.close();a.fill();"0"==g?a.setAlpha(e[1]):a.setAlpha(e[0]);a.begin();a.moveTo(.1054*b,c);a.lineTo(.1054*b,.6537*c);a.lineTo(.5784*b,.2753*c);a.lineTo(.5784*b,.7928*c);a.close();a.fill();a.restore();a.setShadow(!1);a.setLineJoin("round");a.begin();a.moveTo(0,.929*c);a.lineTo(0,.5866*c);a.lineTo(.1054*b,.6537*c);a.lineTo(.1054*b,c);a.close();a.stroke();a.begin();a.moveTo(.1054*b,c);a.lineTo(.1054*b,.6537*c);a.lineTo(.5784*b,.2753*c);a.lineTo(.5784*b,.7928*c);a.close();a.stroke();
5388a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.929*c);a.lineTo(0,.5866*c);a.lineTo(.3171*b,.1031*c);a.lineTo(.5784*b,.2753*c);a.lineTo(.5784*b,.7928*c);a.lineTo(.1054*b,c);a.close();a.stroke();a.setFillColor(d);a.begin();a.moveTo(.7575*b,.3969*c);a.arcTo(.2142*b,.2432*c,0,0,1,.7686*b,.3259*c);a.arcTo(.2142*b,.2432*c,0,0,1,.8055*b,.2481*c);a.arcTo(.2142*b,.2432*c,0,0,1,.8406*b,.2091*c);a.lineTo(.8269*b,.2665*c);a.lineTo(.8372*b,.2607*c);a.lineTo(.8372*
5389b,.3444*c);a.lineTo(.7832*b,.3804*c);a.lineTo(.7832*b,.3658*c);a.close();a.moveTo(.8466*b,.2082*c);a.arcTo(.0514*b,.0584*c,0,0,1,.8766*b,.1955*c);a.arcTo(.0514*b,.0584*c,0,0,1,.9186*b,.2286*c);a.arcTo(.12*b,.1362*c,0,0,1,.9297*b,.2821*c);a.lineTo(.9006*b,.2831*c);a.lineTo(.9006*b,.3016*c);a.lineTo(.85*b,.3366*c);a.lineTo(.85*b,.251*c);a.lineTo(.8586*b,.2471*c);a.close();a.moveTo(.9297*b,.2967*c);a.arcTo(.2142*b,.2432*c,0,0,1,.9195*b,.3667*c);a.arcTo(.2571*b,.2918*c,0,0,1,.8869*b,.4436*c);a.arcTo(.1714*
5390b,.1946*c,0,0,1,.8466*b,.4903*c);a.lineTo(.8595*b,.4358*c);a.lineTo(.8492*b,.4416*c);a.lineTo(.8492*b,.357*c);a.lineTo(.9006*b,.32004*c);a.lineTo(.9006*b,.3346*c);a.close();a.moveTo(.838*b,.4942*c);a.arcTo(.0857*b,.0973*c,0,0,1,.8072*b,.5049*c);a.arcTo(.0514*b,.0584*c,0,0,1,.7712*b,.4815*c);a.arcTo(.1714*b,.1946*c,0,0,1,.7566*b,.4163*c);a.lineTo(.7832*b,.4173*c);a.lineTo(.7832*b,.4008*c);a.lineTo(.8372*b,.3638*c);a.lineTo(.8372*b,.4494*c);a.lineTo(.8278*b,.4562*c);a.close();a.fill()};
5391mxCellRenderer.registerShape(mxShapeAws3dCustomerGateway.prototype.cst.CUSTOMER_GATEWAY,mxShapeAws3dCustomerGateway);function mxShapeAws3dRedshift(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dRedshift,mxShape);mxShapeAws3dRedshift.prototype.cst={REDSHIFT:"mxgraph.aws3d.redshift",SHADING_COLORS:"shadingCols"};
5392mxShapeAws3dRedshift.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));d=Math.min(d*b/149.5,d*c/187.5);this.background(a,0,0,b,c,d);a.setShadow(!1);this.foreground(a,0,0,b,c,d)};
5393mxShapeAws3dRedshift.prototype.background=function(a,d,e,b,c,f){a.setStrokeWidth(f);a.save();a.save();a.save();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.6517*c);a.lineTo(0,.0912*c);a.lineTo(.0368*b,.0155*c);a.lineTo(.2047*b,0);a.lineTo(.3378*b,.0619*c);a.lineTo(.3378*b,.0912*c);a.lineTo(.3819*b,.0693*c);a.lineTo(.6154*b,.0693*c);a.lineTo(.8502*b,.1776*c);a.lineTo(.8502*b,.3083*c);a.lineTo(.8682*b,.3061*c);a.lineTo(b,.3664*c);a.lineTo(b,.9099*c);
5394a.lineTo(.9672*b,.9861*c);a.lineTo(.7926*b,c);a.lineTo(.6629*b,.9392*c);a.lineTo(.6629*b,.9099*c);a.lineTo(.6167*b,.9317*c);a.lineTo(.3813*b,.9317*c);a.lineTo(.1478*b,.8219*c);a.lineTo(.1478*b,.7093*c);a.lineTo(.1365*b,.7163*c);a.close();a.fillAndStroke()};
5395mxShapeAws3dRedshift.prototype.foreground=function(a,d,e,b,c,f){a.restore();a.setShadow(!1);a.setFillColor("#000000");d=mxUtils.getValue(this.state.style,mxShapeAws3dRedshift.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");e=mxUtils.getValue(this.state.style,"flipH","0");"0"==e?a.setAlpha(d[0]):a.setAlpha(d[1]);a.begin();a.moveTo(0,.6541*c);a.lineTo(0,.0933*c);a.lineTo(.1371*b,.1573*c);a.lineTo(.1371*b,.7157*c);a.close();a.moveTo(.1485*b,.8219*c);a.lineTo(.1485*b,.2864*c);a.lineTo(.3846*
5396b,.3941*c);a.lineTo(.3846*b,.9317*c);a.close();a.moveTo(.6642*b,.9392*c);a.lineTo(.6642*b,.4011*c);a.lineTo(.796*b,.4597*c);a.lineTo(.796*b,c);a.close();a.fill();"0"==e?a.setAlpha(d[1]):a.setAlpha(d[0]);a.begin();a.moveTo(.1371*b,.7157*c);a.lineTo(.1371*b,.1568*c);a.lineTo(.2027*b,.1525*c);a.lineTo(.1498*b,.1771*c);a.lineTo(.1498*b,.7061*c);a.close();a.moveTo(.3846*b,.3941*c);a.lineTo(.614*b,.3941*c);a.lineTo(.6809*b,.3632*c);a.lineTo(.6642*b,.4*c);a.lineTo(.6642*b,.9067*c);a.lineTo(.6191*b,.9317*
5397c);a.lineTo(.3833*b,.9317*c);a.close();a.moveTo(.796*b,.4608*c);a.lineTo(.9639*b,.4469*c);a.lineTo(b,.3691*c);a.lineTo(b,.9077*c);a.lineTo(.9686*b,.9856*c);a.lineTo(.796*b,c);a.close();a.moveTo(.3378*b,.0608*c);a.lineTo(.3378*b,.0907*c);a.lineTo(.3197*b,.1008*c);a.close();a.moveTo(.8502*b,.2843*c);a.lineTo(.8502*b,.3083*c);a.lineTo(.794*b,.3136*c);a.close();a.fill();a.restore();a.setShadow(!1);a.setLineJoin("round");a.begin();a.moveTo(0,.6541*c);a.lineTo(0,.0933*c);a.lineTo(.1371*b,.1573*c);a.lineTo(.1371*
5398b,.7157*c);a.close();a.moveTo(.1485*b,.8219*c);a.lineTo(.1485*b,.2864*c);a.lineTo(.3846*b,.3941*c);a.lineTo(.3846*b,.9317*c);a.close();a.moveTo(.6642*b,.9392*c);a.lineTo(.6642*b,.4011*c);a.lineTo(.796*b,.4597*c);a.lineTo(.796*b,c);a.close();a.moveTo(.1371*b,.7157*c);a.lineTo(.1371*b,.1568*c);a.lineTo(.2027*b,.1525*c);a.lineTo(.1498*b,.1771*c);a.lineTo(.1498*b,.7061*c);a.close();a.moveTo(.3846*b,.3941*c);a.lineTo(.614*b,.3941*c);a.lineTo(.6809*b,.3632*c);a.lineTo(.6642*b,.4*c);a.lineTo(.6642*b,.9067*
5399c);a.lineTo(.6191*b,.9317*c);a.lineTo(.3833*b,.9317*c);a.close();a.moveTo(.796*b,.4608*c);a.lineTo(.9639*b,.4469*c);a.lineTo(b,.3691*c);a.lineTo(b,.9077*c);a.lineTo(.9686*b,.9856*c);a.lineTo(.796*b,c);a.close();a.moveTo(.3378*b,.0608*c);a.lineTo(.3378*b,.0907*c);a.lineTo(.3197*b,.1008*c);a.close();a.moveTo(.8502*b,.2843*c);a.lineTo(.8502*b,.3083*c);a.lineTo(.794*b,.3136*c);a.close();a.moveTo(.6167*b,.3941*c);a.lineTo(.6167*b,.9317*c);a.moveTo(.9652*b,.4448*c);a.lineTo(.9652*b,.9851*c);a.stroke();
5400a.restore();a.setShadow(!1);d=mxUtils.getValue(this.state.style,"strokeColor","#000000");a.setFillColor(d);a.begin();a.moveTo(.4903*b,.1259*c);a.arcTo(.01*b,.008*c,0,0,1,.5023*b,.1189*c);a.arcTo(.2007*b,.16*c,0,0,1,.5639*b,.1333*c);a.arcTo(.602*b,.48*c,0,0,1,.7157*b,.2005*c);a.arcTo(.2006*b,.16*c,0,0,1,.7565*b,.2315*c);a.arcTo(.01*b,.008*c,0,0,1,.7445*b,.2421*c);a.arcTo(.2676*b,.2133*c,0,0,1,.6742*b,.2251*c);a.arcTo(.602*b,.48*c,0,0,1,.5204*b,.1541*c);a.arcTo(.1338*b,.1067*c,0,0,1,.4903*b,.1259*c);
5401a.close();a.moveTo(.4789*b,.1275*c);a.arcTo(.0334*b,.0267*c,0,0,0,.487*b,.1461*c);a.arcTo(.1672*b,.1333*c,0,0,0,.5237*b,.1728*c);a.arcTo(.6689*b,.5333*c,0,0,0,.6609*b,.2352*c);a.arcTo(.2676*b,.2133*c,0,0,0,.7244*b,.2501*c);a.arcTo(.0201*b,.016*c,0,0,0,.7411*b,.2475*c);a.lineTo(.5385*b,.3408*c);a.arcTo(.0669*b,.05333*c,0,0,1,.512*b,.3397*c);a.arcTo(.2676*b,.2133*c,0,0,1,.4548*b,.3248*c);a.arcTo(.6689*b,.5333*c,0,0,1,.3084*b,.2565*c);a.arcTo(.1672*b,.1333*c,0,0,1,.2776*b,.2304*c);a.arcTo(.01*b,.008*
5402c,0,0,1,.2776*b,.2197*c);a.close();a.fill();d=mxUtils.getValue(this.state.style,"fillColor","#ffffff");a.setFillColor(d);a.setLineJoin("round");a.setLineCap("round");a.begin();a.moveTo(.3398*b,.2421*c);a.lineTo(.4769*b,.1797*c);a.lineTo(.6341*b,.2512*c);a.lineTo(.4936*b,.3147*c);a.fill();a.begin();a.moveTo(.4334*b,.1941*c);a.lineTo(.6207*b,.2811*c);a.moveTo(.5338*b,.1995*c);a.lineTo(.3866*b,.2688*c);a.moveTo(.5873*b,.2235*c);a.lineTo(.4334*b,.2955*c);a.stroke();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");
5403a.begin();a.moveTo(0,.6517*c);a.lineTo(0,.0912*c);a.lineTo(.0368*b,.0155*c);a.lineTo(.2047*b,0);a.lineTo(.3378*b,.0619*c);a.lineTo(.3378*b,.0912*c);a.lineTo(.3819*b,.0693*c);a.lineTo(.6154*b,.0693*c);a.lineTo(.8502*b,.1776*c);a.lineTo(.8502*b,.3083*c);a.lineTo(.8682*b,.3061*c);a.lineTo(b,.3664*c);a.lineTo(b,.9099*c);a.lineTo(.9672*b,.9861*c);a.lineTo(.7926*b,c);a.lineTo(.6629*b,.9392*c);a.lineTo(.6629*b,.9099*c);a.lineTo(.6167*b,.9317*c);a.lineTo(.3813*b,.9317*c);a.lineTo(.1478*b,.8219*c);a.lineTo(.1478*
5404b,.7093*c);a.lineTo(.1365*b,.7163*c);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeAws3dRedshift.prototype.cst.REDSHIFT,mxShapeAws3dRedshift);function mxShapeAws3dLambda(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dLambda,mxShape);mxShapeAws3dLambda.prototype.cst={LAMBDA:"mxgraph.aws3d.lambda",SHADING_COLORS:"shadingCols"};
5405mxShapeAws3dLambda.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));d=Math.min(d*b/92,d*c/109.5);this.background(a,0,0,b,c,d);a.setShadow(!1);this.foreground(a,0,0,b,c,d)};
5406mxShapeAws3dLambda.prototype.background=function(a,d,e,b,c,f){a.setStrokeWidth(f);a.save();a.save();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.1671*c);a.lineTo(.3424*b,0);a.lineTo(.663*b,0);a.lineTo(b,.1671*c);a.lineTo(b,.8365*c);a.lineTo(.663*b,c);a.lineTo(.3424*b,c);a.lineTo(0,.8365*c);a.close();a.fillAndStroke()};
5407mxShapeAws3dLambda.prototype.foreground=function(a,d,e,b,c,f){a.restore();a.setShadow(!1);a.setFillColor("#000000");d=mxUtils.getValue(this.state.style,mxShapeAws3dLambda.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");e=mxUtils.getValue(this.state.style,"flipH","0");"0"==e?a.setAlpha(d[0]):a.setAlpha(d[1]);a.begin();a.moveTo(0,.3242*c);a.lineTo(.3424*b,.4895*c);a.lineTo(.663*b,.4895*c);a.lineTo(.663*b,c);a.lineTo(.3424*b,c);a.lineTo(0,.8365*c);a.close();a.moveTo(0*b,0*c);a.lineTo(0*
5408b,0*c);a.lineTo(0*b,0*c);a.lineTo(0*b,0*c);a.lineTo(0*b,0*c);a.lineTo(0*b,0*c);a.close();a.moveTo(0*b,0*c);a.lineTo(0*b,0*c);a.lineTo(0*b,0*c);a.lineTo(0*b,0*c);a.lineTo(0*b,0*c);a.lineTo(0*b,0*c);a.close();a.fill();"0"==e?a.setAlpha(d[1]):a.setAlpha(d[0]);a.begin();a.moveTo(.663*b,.4895*c);a.lineTo(b,.3242*c);a.lineTo(b,.8365*c);a.lineTo(.663*b,c);a.close();a.fill();a.restore();a.setShadow(!1);a.setLineJoin("round");a.begin();a.moveTo(0,.3242*c);a.lineTo(.3424*b,.4895*c);a.lineTo(.663*b,.4895*c);
5409a.lineTo(b,.3242*c);a.moveTo(.3424*b,.4895*c);a.lineTo(.3424*b,c);a.moveTo(.663*b,.4895*c);a.lineTo(.663*b,c);a.stroke();a.setFillColor("#5E5E5E");a.begin();a.moveTo(.3804*b,.1169*c);a.arcTo(.5435*b,.4566*c,0,0,1,.6087*b,.1123*c);a.arcTo(.33804*b,.3196*c,0,0,1,.725*b,.1553*c);a.arcTo(.1304*b,.1096*c,0,0,1,.7924*b,.2402*c);a.arcTo(.1522*b,.1279*c,0,0,1,.725*b,.3333*c);a.arcTo(.4416*b,.274*c,0,0,1,.6087*b,.3772*c);a.arcTo(.5435*b,.4566*c,0,0,1,.3804*b,.3708*c);a.arcTo(.3804*b,.3196*c,0,0,1,.2772*b,
5410.3324*c);a.arcTo(.1522*b,.1279*c,0,0,1,.2163*b,.2539*c);a.arcTo(.1522*b,.1279*c,0,0,1,.2663*b,.1644*c);a.arcTo(.3804*b,.3196*c,0,0,1,.3804*b,.1169*c);a.fill();a.setFillColor("#ffffff");a.begin();a.moveTo(.5565*b,.2174*c);a.arcTo(.0652*b,.0548*c,0,0,0,.5837*b,.1945*c);a.arcTo(.0326*b,.0274*c,0,0,0,.5793*b,.1671*c);a.arcTo(.0652*b,.0548*c,0,0,0,.525*b,.1598*c);a.arcTo(.0652*b,.0548*c,0,0,1,.5543*b,.1443*c);a.arcTo(.0761*b,.0639*c,0,0,1,.6163*b,.1662*c);a.arcTo(.0598*b,.0502*c,0,0,1,.6087*b,.2091*c);
5411a.lineTo(.5*b,.3032*c);a.arcTo(.0978*b,.0822*c,0,0,0,.4728*b,.3379*c);a.arcTo(.0272*b,.0228*c,0,0,0,.4924*b,.3571*c);a.arcTo(.0326*b,.0274*c,0,0,1,.4489*b,.3571*c);a.arcTo(.038*b,.032*c,0,0,1,.437*b,.3242*c);a.arcTo(.1087*b,.0913*c,0,0,1,.4674*b,.2886*c);a.lineTo(.5141*b,.2557*c);a.lineTo(.3185*b,.2895*c);a.lineTo(.2641*b,.2648*c);a.close();a.fill();a.setStrokeWidth(2*f);a.setStrokeColor("#292929");a.begin();a.moveTo(0,.1671*c);a.lineTo(.3424*b,0);a.lineTo(.663*b,0);a.lineTo(b,.1671*c);a.lineTo(b,
5412.8365*c);a.lineTo(.663*b,c);a.lineTo(.3424*b,c);a.lineTo(0,.8365*c);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeAws3dLambda.prototype.cst.LAMBDA,mxShapeAws3dLambda);function mxShapeAws3dEbs2(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws3dEbs2,mxShape);mxShapeAws3dEbs2.prototype.cst={EBS2:"mxgraph.aws3d.ebs2",SHADING_COLORS:"shadingCols"};
5413mxShapeAws3dEbs2.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.state.style,"strokeWidth","1"));e=d*b/92;d=d*c/60;var f=parseFloat(mxUtils.getValue(this.state.style,"shadow","0"));d=Math.min(e,d);a.setStrokeWidth(d);a.setShadow(!1);a.save();a.save();a.setStrokeWidth(2*d);a.setStrokeColor("#292929");a.setLineJoin("round");1==f&&a.setShadow(!0);a.begin();a.moveTo(0,.5276*c);a.lineTo(0,.4188*c);a.lineTo(.071*b,.2898*c);a.lineTo(.4033*b,0);a.lineTo(.9301*
5414b,.464*c);a.lineTo(b,.5863*c);a.lineTo(b,.7035*c);a.lineTo(.6667*b,c);a.lineTo(.5355*b,c);a.close();a.fillAndStroke();a.restore();a.setFillColor("#000000");e=mxUtils.getValue(this.state.style,mxShapeAws3dEbs2.prototype.cst.SHADING_COLORS,"0.1,0.3").toString().split(",");f=mxUtils.getValue(this.state.style,"flipH","0");"0"==f?a.setAlpha(e[0]):a.setAlpha(e[1]);a.begin();a.moveTo(.071*b,.2948*c);a.lineTo(.6011*b,.7621*c);a.lineTo(.6667*b,c);a.lineTo(.5355*b,c);a.lineTo(0,.5276*c);a.lineTo(0,.4137*c);
5415a.close();a.fill();"0"==f?a.setAlpha(e[1]):a.setAlpha(e[0]);a.begin();a.moveTo(.6011*b,.7655*c);a.lineTo(.9344*b,.4724*c);a.lineTo(b,.7035*c);a.lineTo(.6667*b,c);a.close();a.fill();a.restore();a.setLineJoin("round");a.begin();a.moveTo(.071*b,.2948*c);a.lineTo(.6011*b,.7621*c);a.lineTo(.6667*b,c);a.lineTo(.5355*b,c);a.lineTo(0,.5276*c);a.lineTo(0,.4137*c);a.close();a.moveTo(.6011*b,.7655*c);a.lineTo(.9344*b,.4724*c);a.lineTo(b,.7035*c);a.lineTo(.6667*b,c);a.close();a.moveTo(.0033*b,.5276*c);a.lineTo(.071*
5416b,.2898*c);a.moveTo(.5325*b,.9976*c);a.lineTo(.603*b,.7593*c);a.stroke();a.setStrokeWidth(2*d);a.setLineCap("round");a.begin();a.moveTo(.3388*b,.3802*c);a.lineTo(.5027*b,.2345*c);a.lineTo(.6667*b,.3802*c);a.lineTo(.5027*b,.526*c);a.close();a.moveTo(.4426*b,.3802*c);a.lineTo(.5027*b,.3266*c);a.lineTo(.5628*b,.3802*c);a.lineTo(.5027*b,.4338*c);a.close();a.moveTo(.3867*b,.3284*c);a.lineTo(.3541*b,.2998*c);a.moveTo(.4436*b,.2748*c);a.lineTo(.4077*b,.2412*c);a.moveTo(.5704*b,.2803*c);a.lineTo(.5992*b,
5417.2513*c);a.moveTo(.6231*b,.3284*c);a.lineTo(.6503*b,.3032*c);a.moveTo(.622*b,.4338*c);a.lineTo(.6557*b,.4606*c);a.moveTo(.5667*b,.4845*c);a.lineTo(.5992*b,.5156*c);a.moveTo(.4414*b,.4874*c);a.lineTo(.412*b,.5159*c);a.moveTo(.3889*b,.4405*c);a.lineTo(.3607*b,.4657*c);a.stroke();a.setStrokeColor("#292929");a.setLineJoin("round");a.begin();a.moveTo(0,.5276*c);a.lineTo(0,.4188*c);a.lineTo(.071*b,.2898*c);a.lineTo(.4033*b,0);a.lineTo(.9301*b,.464*c);a.lineTo(b,.5863*c);a.lineTo(b,.7035*c);a.lineTo(.6667*
5418b,c);a.lineTo(.5355*b,c);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeAws3dEbs2.prototype.cst.EBS2,mxShapeAws3dEbs2);function mxShapeAws4ProductIcon(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws4ProductIcon,mxShape);mxShapeAws4ProductIcon.prototype.cst={PRODUCT_ICON:"mxgraph.aws4.productIcon"};
5419mxShapeAws4ProductIcon.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);var f=e=d=parseFloat(mxUtils.getValue(this.style,"opacity","100"));"none"==g&&(e=0);"none"==h&&(f=0);d=mxUtils.getValue(this.state.style,"strokeColor","none");a.setFillColor(d);a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fill();a.setShadow(!1);var g=mxUtils.getValue(this.state.style,"fillColor","#ffffff"),h=mxUtils.getValue(this.state.style,"gradientColor",g),k=mxUtils.getValue(this.state.style,
5420"gradientDirection","south");a.setFillColor(g);a.setGradient(g,h,0,0,b,c,k,e,f);a.begin();a.moveTo(1,1);a.lineTo(b-1,1);a.lineTo(b-1,b-1);a.lineTo(1,b-1);a.close();a.fill();c=mxUtils.getValue(this.state.style,"prIcon","");c=mxStencilRegistry.getStencil(c);null!=c&&(a.setFillColor(d),a.setStrokeColor("none"),c.drawShape(a,this,1+.15*b,1+.15*b,.7*b-2,.7*b-2))};mxCellRenderer.registerShape(mxShapeAws4ProductIcon.prototype.cst.PRODUCT_ICON,mxShapeAws4ProductIcon);
5421function mxShapeAws4ResourceIcon(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws4ResourceIcon,mxShape);mxShapeAws4ResourceIcon.prototype.cst={RESOURCE_ICON:"mxgraph.aws4.resourceIcon"};
5422mxShapeAws4ResourceIcon.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fill();a.setShadow(!1);d=mxUtils.getValue(this.state.style,"resIcon","");d=mxStencilRegistry.getStencil(d);null!=d&&(e=mxUtils.getValue(this.state.style,"strokeColor","#000000"),a.setFillColor(e),a.setStrokeColor("none"),d.drawShape(a,this,.1*b,.1*c,.8*b,.8*c))};
5423mxCellRenderer.registerShape(mxShapeAws4ResourceIcon.prototype.cst.RESOURCE_ICON,mxShapeAws4ResourceIcon);function mxShapeAws4Group(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws4Group,mxShape);mxShapeAws4Group.prototype.cst={GROUP:"mxgraph.aws4.group"};
5424mxShapeAws4Group.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=mxUtils.getValue(this.state.style,"grStroke","1");null!=this.style&&"0"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")&&(a.pointerEvents=!1);a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,c);a.lineTo(0,c);a.close();"1"==d?a.fillAndStroke():a.fill();a.pointerEvents=!0;a.setShadow(!1);b=mxUtils.getValue(this.state.style,"grIcon","");b=mxStencilRegistry.getStencil(b);null!=b&&(c=mxUtils.getValue(this.state.style,
5425"strokeColor","#000000"),a.setFillColor(c),a.setStrokeColor("none"),b.drawShape(a,this,0,0,25,25))};mxCellRenderer.registerShape(mxShapeAws4Group.prototype.cst.GROUP,mxShapeAws4Group);function mxShapeAws4GroupCenter(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws4GroupCenter,mxShape);mxShapeAws4GroupCenter.prototype.cst={GROUP_CENTER:"mxgraph.aws4.groupCenter"};
5426mxShapeAws4GroupCenter.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=mxUtils.getValue(this.state.style,"grStroke","1");a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,c);a.lineTo(0,c);a.close();"1"==d?a.fillAndStroke():a.fill();a.setShadow(!1);c=mxUtils.getValue(this.state.style,"grIcon","");c=mxStencilRegistry.getStencil(c);null!=c&&(d=mxUtils.getValue(this.state.style,"strokeColor","#000000"),a.setFillColor(d),a.setStrokeColor("none"),c.drawShape(a,this,.5*(b-25),0,25,25))};
5427mxCellRenderer.registerShape(mxShapeAws4GroupCenter.prototype.cst.GROUP_CENTER,mxShapeAws4GroupCenter);function mxShapeAws4Group2(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAws4Group2,mxShape);mxShapeAws4Group2.prototype.cst={GROUP2:"mxgraph.aws4.group2"};
5428mxShapeAws4Group2.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fillAndStroke();a.setShadow(!1);d=mxUtils.getValue(this.state.style,"strokeColor","#000000");a.setFillColor(d);a.begin();a.moveTo(0,0);a.lineTo(25,0);a.lineTo(25,25);a.lineTo(0,25);a.close();a.fill();d=mxUtils.getValue(this.state.style,"grIcon","");d=mxStencilRegistry.getStencil(d);null!=d&&(a.setFillColor("#ffffff"),a.setStrokeColor("none"),
5429d.drawShape(a,this,2.5,2.5,20,20))};mxCellRenderer.registerShape(mxShapeAws4Group2.prototype.cst.GROUP2,mxShapeAws4Group2);function mxShapeAndroidTabBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAndroidTabBar,mxShape);
5430mxShapeAndroidTabBar.prototype.cst={MAIN_TEXT:"mainText",SHAPE_TAB_BAR:"mxgraph.android.tabBar",TEXT_COLOR:"textColor",TEXT_COLOR2:"textColor2",STROKE_COLOR2:"strokeColor2",FILL_COLOR2:"fillColor2",SELECTED:"+",TEXT_SIZE:"textSize"};
5431mxShapeAndroidTabBar.prototype.paintVertexShape=function(a,d,e,b,c){for(var f=mxUtils.getValue(this.style,mxShapeAndroidTabBar.prototype.cst.MAIN_TEXT,"+Tab 1, Tab 2, Tab 3").toString().split(","),g=mxUtils.getValue(this.style,mxShapeAndroidTabBar.prototype.cst.TEXT_COLOR,"none"),h=mxUtils.getValue(this.style,mxShapeAndroidTabBar.prototype.cst.TEXT_COLOR2,"none"),k=mxUtils.getValue(this.style,mxShapeAndroidTabBar.prototype.cst.TEXT_SIZE,"17").toString(),l=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,
5432"none"),m=mxUtils.getValue(this.style,mxShapeAndroidTabBar.prototype.cst.STROKE_COLOR2,"none"),n=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"none"),p=mxUtils.getValue(this.style,mxShapeAndroidTabBar.prototype.cst.FILL_COLOR2,"none"),q=f.length,t=Array(q),u=0,v=-1,r=0;r<q;r++){var w=f[r];w.charAt(0)===mxShapeAndroidTabBar.prototype.cst.SELECTED&&(w=f[r].substring(1),v=r);t[r]=mxUtils.getSizeForString(w,k,mxConstants.DEFAULT_FONTFAMILY).width;u+=t[r]}c=Math.max(c,1.5*k,7);u=10*q+u;b=Math.max(b,
5433u);a.translate(d,e);this.background(a,b,c,q,t,5,u,l,m,n,p,v);a.setShadow(!1);a.setFontStyle(mxConstants.FONT_BOLD);for(r=d=0;r<q;r++)r===v?a.setFontColor(h):a.setFontColor(g),d+=5,this.buttonText(a,d,c,f[r],t[r],k,u,b),d=d+t[r]+5};
5434mxShapeAndroidTabBar.prototype.background=function(a,d,e,b,c,f,g,h,k,l,m,n){a.begin();a.setStrokeColor(h);a.setFillColor(l);a.rect(0,0,d,e);a.fillAndStroke();a.setStrokeColor(k);a.begin();for(h=1;h<b;h++)if(h!==n&&h!==n+1){for(l=k=0;l<h;l++)k+=c[l]+2*f;k=k*d/g;a.moveTo(k,.2*e);a.lineTo(k,.8*e)}a.stroke();b=0;a.setFillColor(m);for(h=0;h<n;h++)b+=c[h]+2*f;b=b*d/g;d=(c[n]+2*f)*d/g;d+=b;a.rect(b,0,d-b,e);a.fill();a.setAlpha(1);a.setFillColor("#33b5e5");a.rect(b,.9*e,d-b,.1*e);a.fill()};
5435mxShapeAndroidTabBar.prototype.buttonText=function(a,d,e,b,c,f,g,h){b.charAt(0)===mxShapeAndroidTabBar.prototype.cst.SELECTED&&(b=b.substring(1));a.begin();a.setFontSize(f);a.text((d+.5*c)*h/g,.5*e,0,0,b,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape(mxShapeAndroidTabBar.prototype.cst.SHAPE_TAB_BAR,mxShapeAndroidTabBar);function mxShapeAndroidPhone(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
5436mxUtils.extend(mxShapeAndroidPhone,mxShape);mxShapeAndroidPhone.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.roundrect(0,0,b,c,25,25);a.fillAndStroke();a.setShadow(!1);this.foreground(a,d,e,b,c,25)};
5437mxShapeAndroidPhone.prototype.foreground=function(a,d,e,b,c,f){a.rect(.0625*b,.15*c,.875*b,.7*c);a.stroke();a.ellipse(.4875*b,.04125*c,.025*b,.0125*c);a.stroke();a.roundrect(.375*b,.075*c,.25*b,.01875*c,.02*b,.01*c);a.stroke();a.ellipse(.4*b,.875*c,.2*b,.1*c);a.stroke();a.roundrect(.4575*b,.905*c,.085*b,.04375*c,.00625*c,.00625*c);a.stroke()};mxCellRenderer.registerShape("mxgraph.android.phone",mxShapeAndroidPhone);
5438function mxShapeAndroidStatusBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAndroidStatusBar,mxShape);mxShapeAndroidStatusBar.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};mxShapeAndroidStatusBar.prototype.background=function(a,d,e,b,c){a.rect(0,0,b,c);a.fill()};
5439mxShapeAndroidStatusBar.prototype.foreground=function(a,d,e,b,c){a.rect(0,0,b,c);a.fill();a.setFontColor(mxUtils.getValue(this.style,mxConstants.STYLE_FONTCOLOR,"#222222"));a.setFontSize(mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"5"));a.text(b-30,.5*c+1,0,0,"12:00",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.setFillColor("#444444");a.begin();a.moveTo(b-37,.5*c+6);a.lineTo(b-37,.5*c-5);a.lineTo(b-36,.5*c-5);a.lineTo(b-36,.5*c-6);a.lineTo(b-32,.5*c-6);a.lineTo(b-32,
5440.5*c-5);a.lineTo(b-31,.5*c-5);a.lineTo(b-31,.5*c+6);a.close();a.fill();a.setFillColor(mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"none"));a.ellipse(b-56,.5*c+2,2,2);a.fillAndStroke();a.setStrokeWidth(2);a.begin();a.moveTo(b-52,.5*c+1);a.arcTo(3.5,3.5,0,0,0,b-58,.5*c+1);a.stroke();a.begin();a.moveTo(b-50,.5*c-1);a.arcTo(6,6,0,0,0,b-60,.5*c-1);a.stroke();a.setStrokeWidth(1);a.rect(b-51,.5*c+5,2,1);a.fill();a.rect(b-48,.5*c+2,2,4);a.fill();a.rect(b-45,.5*c-1,2,7);a.fill();a.rect(b-42,
5441.5*c-4,2,10);a.fill();a.rect(b-37,.5*c-2,6,8);a.fill()};mxCellRenderer.registerShape("mxgraph.android.statusBar",mxShapeAndroidStatusBar);function mxShapeAndroidCheckboxGroup(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAndroidCheckboxGroup,mxShape);mxShapeAndroidCheckboxGroup.prototype.cst={STYLE_TEXTCOLOR2:"textColor2",STYLE_STROKECOLOR2:"strokeColor2",BUTTON_TEXT:"buttonText",SELECTED:"+"};
5442mxShapeAndroidCheckboxGroup.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);var f=mxUtils.getValue(this.style,mxConstants.STYLE_TEXTCOLOR,"#666666"),g=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"8").toString();d=mxUtils.getValue(this.style,mxShapeAndroidCheckboxGroup.prototype.cst.BUTTON_TEXT,"Option 1").toString().split(",");var h=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"none");e=mxUtils.getValue(this.style,mxShapeAndroidCheckboxGroup.prototype.cst.STYLE_STROKECOLOR2,
5443"none");a.setStrokeColor(e);e=d.length;var k=Math.max(1.5*g,5),l=0,m=-1,n=e*k;c=Math.max(c,n);for(var p=0;p<e;p++){var q=d[p];q.charAt(0)===mxShapeAndroidCheckboxGroup.prototype.cst.SELECTED&&(q=d[p].substring(1),m=p);q=mxUtils.getSizeForString(q,g,mxConstants.DEFAULT_FONTFAMILY).width;q>l&&(l=q)}a.roundrect(0,0,Math.max(b,5+l+10),c,2.5,2.5);a.fillAndStroke();a.setShadow(!1);a.setFontSize(g);a.setFontColor(f);a.setStrokeColor(h);for(p=0;p<e;p++)b=(p*k+.5*k)*c/n,q=d[p],q.charAt(0)===mxShapeAndroidCheckboxGroup.prototype.cst.SELECTED&&
5444(q=d[p].substring(1),m=p),a.text(12.5,b,0,0,q,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),b-=2.5,m===p?(a.rect(2.5,b,5,5),a.fillAndStroke(),a.begin(),a.moveTo(3.75,b+2.5),a.lineTo(5,b+3.75),a.lineTo(6.25,b+1.25),a.stroke()):(a.rect(2.5,b,5,5),a.fillAndStroke()),m=-1};mxCellRenderer.registerShape("mxgraph.android.checkboxGroup",mxShapeAndroidCheckboxGroup);
5445function mxShapeAndroidRadioGroup(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAndroidRadioGroup,mxShape);mxShapeAndroidRadioGroup.prototype.cst={STYLE_TEXTCOLOR2:"textColor2",STYLE_STROKECOLOR2:"strokeColor2",BUTTON_TEXT:"buttonText",SELECTED:"+"};
5446mxShapeAndroidRadioGroup.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);var f=mxUtils.getValue(this.style,mxConstants.STYLE_TEXTCOLOR,"#666666"),g=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"8").toString();d=mxUtils.getValue(this.style,mxShapeAndroidRadioGroup.prototype.cst.BUTTON_TEXT,"Option 1").toString().split(",");var h=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"none");e=mxUtils.getValue(this.style,mxShapeAndroidRadioGroup.prototype.cst.STYLE_STROKECOLOR2,
5447"none");a.setStrokeColor(e);e=d.length;var k=Math.max(1.5*g,5),l=0,m=-1,n=e*k;c=Math.max(c,n);for(var p=0;p<e;p++){var q=d[p];q.charAt(0)===mxShapeAndroidRadioGroup.prototype.cst.SELECTED&&(q=d[p].substring(1),m=p);q=mxUtils.getSizeForString(q,g,mxConstants.DEFAULT_FONTFAMILY).width;q>l&&(l=q)}a.roundrect(0,0,Math.max(b,5+l+10),c,2.5,2.5);a.fillAndStroke();a.setShadow(!1);a.setFontSize(g);a.setFontColor(f);a.setStrokeColor(h);a.setFillColor(h);for(p=0;p<e;p++)b=(p*k+.5*k)*c/n,q=d[p],q.charAt(0)===
5448mxShapeAndroidRadioGroup.prototype.cst.SELECTED&&(q=d[p].substring(1),m=p),a.text(12.5,b,0,0,q,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),b-=2.5,m===p?(a.ellipse(2.5,b,5,5),a.stroke(),a.ellipse(3.75,b+1.25,2.5,2.5),a.fillAndStroke()):(a.ellipse(2.5,b,5,5),a.stroke())};mxCellRenderer.registerShape("mxgraph.android.radioGroup",mxShapeAndroidRadioGroup);function mxShapeAndroidMenuBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
5449mxUtils.extend(mxShapeAndroidMenuBar,mxShape);mxShapeAndroidMenuBar.prototype.cst={MENU_TEXT:"menuText"};
5450mxShapeAndroidMenuBar.prototype.paintVertexShape=function(a,d,e,b,c){for(var f=mxUtils.getValue(this.style,mxShapeAndroidMenuBar.prototype.cst.MENU_TEXT,"Item 1, Item 2, Item 3").toString().split(","),g=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"12"),h=f.length,k=0,l=0;l<h;l++){var m=mxUtils.getSizeForString(f[l],g,mxConstants.DEFAULT_FONTFAMILY).width;m>k&&(k=m)}g*=1.5;k=h*g;c=Math.max(c,k);a.translate(d,e);a.rect(0,0,b,c);a.fillAndStroke();a.setShadow(!1);a.begin();for(l=1;l<h;l++)d=
5451l*g*c/k,a.moveTo(0,d),a.lineTo(b,d);a.stroke();for(l=0;l<h;l++)m+=2.5,d=(l*g+.5*g)*c/k,a.text(10,d,0,0,f[l],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape("mxgraph.android.menuBar",mxShapeAndroidMenuBar);function mxShapeAndroidTextSelHandles(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAndroidTextSelHandles,mxShape);
5452mxShapeAndroidTextSelHandles.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"none");a.translate(d,e);d=Math.max(0,c-22.5);a.setAlpha(.5);a.rect(15,0,b-30,d);a.fill();a.begin();a.moveTo(0,c-15);a.lineTo(7.5,c-22.5);a.lineTo(15,c-15);a.close();a.moveTo(b-15,c-15);a.lineTo(b-7.5,c-22.5);a.lineTo(b,c-15);a.close();a.fill();a.setFillColor(f);a.rect(0,c-15,15,15);a.fill();a.rect(b-15,c-15,15,15);a.fill()};
5453mxCellRenderer.registerShape("mxgraph.android.textSelHandles",mxShapeAndroidTextSelHandles);function mxShapeAndroidIndeterminateSpinner(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAndroidIndeterminateSpinner,mxShape);mxShapeAndroidIndeterminateSpinner.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};
5454mxShapeAndroidIndeterminateSpinner.prototype.background=function(a,d,e,b,c){a.setGradient("#aaaaaa","#dddddd",.325*b,0,.675*b,.5*c,mxConstants.DIRECTION_SOUTH,1,1);a.begin();a.moveTo(.5*b,.1*c);a.arcTo(.4*b,.4*c,0,0,0,.5*b,.9*c);a.lineTo(.5*b,c);a.arcTo(.5*b,.5*c,0,0,1,.5*b,0);a.close();a.fill();a.setGradient("#ffffff","#dddddd",.325*b,0,.675*b,.5*c,mxConstants.DIRECTION_SOUTH,1,1);a.begin();a.moveTo(.5*b,.1*c);a.arcTo(.4*b,.4*c,0,0,1,.5*b,.9*c);a.lineTo(.5*b,c);a.arcTo(.5*b,.5*c,0,0,0,.5*b,0);a.close();
5455a.fill()};mxCellRenderer.registerShape("mxgraph.android.indeterminateSpinner",mxShapeAndroidIndeterminateSpinner);function mxShapeAndroidAnchor(a,d,e,b){mxShape.call(this);this.bounds=a}mxUtils.extend(mxShapeAndroidAnchor,mxShape);mxShapeAndroidAnchor.prototype.cst={ANCHOR:"mxgraph.android.anchor"};mxShapeAndroidAnchor.prototype.paintVertexShape=function(a,d,e,b,c){};mxCellRenderer.registerShape(mxShapeAndroidAnchor.prototype.cst.ANCHOR,mxShapeAndroidAnchor);
5456function mxShapeAndroidRRect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAndroidRRect,mxShape);mxShapeAndroidRRect.prototype.cst={RRECT:"mxgraph.android.rrect",R_SIZE:"rSize"};mxShapeAndroidRRect.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeAndroidRRect.prototype.cst.R_SIZE,"10"));a.roundrect(0,0,b,c,d);a.fillAndStroke()};
5457mxCellRenderer.registerShape(mxShapeAndroidRRect.prototype.cst.RRECT,mxShapeAndroidRRect);function mxShapeAndroidCheckbox(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAndroidCheckbox,mxShape);mxShapeAndroidCheckbox.prototype.cst={CHECKBOX:"mxgraph.android.checkbox"};
5458mxShapeAndroidCheckbox.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.rect(0,0,b,c);a.fillAndStroke();a.begin();a.moveTo(.8*b,.2*c);a.lineTo(.4*b,.8*c);a.lineTo(.25*b,.6*c);a.stroke()};mxCellRenderer.registerShape(mxShapeAndroidCheckbox.prototype.cst.CHECKBOX,mxShapeAndroidCheckbox);function mxShapeAndroidProgressBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx1=.8;this.dx2=.6}mxUtils.extend(mxShapeAndroidProgressBar,mxShape);
5459mxShapeAndroidProgressBar.prototype.customProperties=[{name:"dx1",dispName:"Middle Bar Length",type:"float",min:0,max:1,defVal:.8},{name:"dx2",dispName:"Left Bar Length",type:"float",min:0,max:1,defVal:.6}];mxShapeAndroidProgressBar.prototype.cst={PROGRESS_BAR:"mxgraph.android.progressBar"};
5460mxShapeAndroidProgressBar.prototype.paintVertexShape=function(a,d,e,b,c){var f=b*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1)))),g=b*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2))));a.translate(d,e);a.save();a.save();a.setStrokeColor("#444444");a.begin();a.moveTo(0,.5*c);a.lineTo(b,.5*c);a.stroke();a.restore();a.setShadow(!1);a.begin();a.moveTo(0,.5*c);a.lineTo(f,.5*c);a.stroke();a.setStrokeColor("#000000");a.setAlpha("0.2");a.begin();
5461a.moveTo(0,.5*c);a.lineTo(f,.5*c);a.stroke();a.restore();a.setShadow(!1);a.begin();a.moveTo(0,.5*c);a.lineTo(g,.5*c);a.stroke()};mxCellRenderer.registerShape(mxShapeAndroidProgressBar.prototype.cst.PROGRESS_BAR,mxShapeAndroidProgressBar);mxShapeAndroidProgressBar.prototype.constraints=null;
5462Graph.handleFactory[mxShapeAndroidProgressBar.prototype.cst.PROGRESS_BAR]=function(a){var d=[Graph.createHandle(a,["dx1"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1))));return new mxPoint(a.x+b*a.width,a.y+a.height/2)},function(a,b){this.state.style.dx1=Math.round(100*Math.max(0,Math.min(1,(b.x-a.x)/a.width)))/100})];a=Graph.createHandle(a,["dx2"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx1))));
5463return new mxPoint(a.x+b*a.width,a.y+a.height/2)},function(a,b){this.state.style.dx2=Math.round(100*Math.max(0,Math.min(1,(b.x-a.x)/a.width)))/100});d.push(a);return d};function mxShapeAndroidProgressScrubberDisabled(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.3}mxUtils.extend(mxShapeAndroidProgressScrubberDisabled,mxShape);
5464mxShapeAndroidProgressScrubberDisabled.prototype.customProperties=[{name:"dx",dispName:"Handle Position",type:"float",min:0,max:1,defVal:.3}];mxShapeAndroidProgressScrubberDisabled.prototype.cst={PROGRESS_SCRUBBER_DISABLED:"mxgraph.android.progressScrubberDisabled"};
5465mxShapeAndroidProgressScrubberDisabled.prototype.paintVertexShape=function(a,d,e,b,c){var f=b*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));a.translate(d,e);a.save();a.save();a.setStrokeColor("#444444");a.begin();a.moveTo(0,.5*c);a.lineTo(b,.5*c);a.stroke();a.restore();a.setShadow(!1);a.setAlpha("0.5");a.setFillColor("#666666");a.begin();d=Math.min(c,.1*b)/2;a.ellipse(f-d,.5*c-d,2*d,2*d);a.fill();a.restore();a.setShadow(!1);a.begin();d=Math.min(c,.1*b)/8;a.ellipse(f-
5466d,.5*c-d,2*d,2*d);a.fill()};mxCellRenderer.registerShape(mxShapeAndroidProgressScrubberDisabled.prototype.cst.PROGRESS_SCRUBBER_DISABLED,mxShapeAndroidProgressScrubberDisabled);mxShapeAndroidProgressScrubberDisabled.prototype.constraints=null;
5467Graph.handleFactory[mxShapeAndroidProgressScrubberDisabled.prototype.cst.PROGRESS_SCRUBBER_DISABLED]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d*a.width,a.y+a.height/2)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(1,(e.x-a.x)/a.width)))/100})]};
5468function mxShapeAndroidProgressScrubberFocused(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.3}mxUtils.extend(mxShapeAndroidProgressScrubberFocused,mxShape);mxShapeAndroidProgressScrubberFocused.prototype.customProperties=[{name:"dx",dispName:"Handle Position",type:"float",min:0,max:1,defVal:.3}];mxShapeAndroidProgressScrubberFocused.prototype.cst={PROGRESS_SCRUBBER_FOCUSED:"mxgraph.android.progressScrubberFocused"};
5469mxShapeAndroidProgressScrubberFocused.prototype.paintVertexShape=function(a,d,e,b,c){var f=b*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),g=mxUtils.getValue(this.style,"fillColor","#ffffff");a.translate(d,e);a.save();a.save();a.setStrokeColor("#444444");a.begin();a.moveTo(0,.5*c);a.lineTo(b,.5*c);a.stroke();a.restore();a.setShadow(!1);a.setAlpha("0.75");a.begin();d=Math.min(c,.1*b)/2;a.ellipse(f-d,.5*c-d,2*d,2*d);a.fill();a.restore();a.setShadow(!1);a.setStrokeColor(g);
5470a.begin();a.moveTo(0,.5*c);a.lineTo(f,.5*c);a.stroke();a.begin();d=Math.min(c,.1*b)/8;a.ellipse(f-d,.5*c-d,2*d,2*d);a.fill()};mxCellRenderer.registerShape(mxShapeAndroidProgressScrubberFocused.prototype.cst.PROGRESS_SCRUBBER_FOCUSED,mxShapeAndroidProgressScrubberFocused);mxShapeAndroidProgressScrubberFocused.prototype.constraints=null;
5471Graph.handleFactory[mxShapeAndroidProgressScrubberFocused.prototype.cst.PROGRESS_SCRUBBER_FOCUSED]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d*a.width,a.y+a.height/2)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(1,(e.x-a.x)/a.width)))/100})]};
5472function mxShapeAndroidProgressScrubberPressed(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.3}mxUtils.extend(mxShapeAndroidProgressScrubberPressed,mxShape);mxShapeAndroidProgressScrubberPressed.prototype.customProperties=[{name:"dx",dispName:"Handle Position",type:"float",min:0,max:1,defVal:.3}];mxShapeAndroidProgressScrubberPressed.prototype.cst={PROGRESS_SCRUBBER_PRESSED:"mxgraph.android.progressScrubberPressed"};
5473mxShapeAndroidProgressScrubberPressed.prototype.paintVertexShape=function(a,d,e,b,c){var f=b*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),g=mxUtils.getValue(this.style,"fillColor","#ffffff");a.translate(d,e);a.save();a.save();a.setStrokeColor("#444444");a.begin();a.moveTo(0,.5*c);a.lineTo(b,.5*c);a.stroke();a.restore();a.setShadow(!1);a.setStrokeColor(g);a.setAlpha("0.5");a.begin();d=Math.min(c,.1*b)/2;a.ellipse(f-d,.5*c-d,2*d,2*d);a.fillAndStroke();a.restore();a.setShadow(!1);
5474a.setStrokeColor(g);a.begin();a.moveTo(0,.5*c);a.lineTo(f,.5*c);a.stroke();a.begin();d=Math.min(c,.1*b)/8;a.ellipse(f-d,.5*c-d,2*d,2*d);a.fill()};mxCellRenderer.registerShape(mxShapeAndroidProgressScrubberPressed.prototype.cst.PROGRESS_SCRUBBER_PRESSED,mxShapeAndroidProgressScrubberPressed);mxShapeAndroidProgressScrubberPressed.prototype.constraints=null;
5475Graph.handleFactory[mxShapeAndroidProgressScrubberPressed.prototype.cst.PROGRESS_SCRUBBER_PRESSED]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d*a.width,a.y+a.height/2)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(1,(e.x-a.x)/a.width)))/100})]};
5476function mxShapeAndroidQuickscroll2(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dy=.5}mxUtils.extend(mxShapeAndroidQuickscroll2,mxShape);mxShapeAndroidQuickscroll2.prototype.customProperties=[{name:"dy",dispName:"Handle Position",type:"float",min:0,max:1,defVal:.5}];mxShapeAndroidQuickscroll2.prototype.cst={QUICKSCROLL:"mxgraph.android.quickscroll2"};
5477mxShapeAndroidQuickscroll2.prototype.paintVertexShape=function(a,d,e,b,c){var f=Math.min(c-20,Math.max(20,c*Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))))));mxUtils.getValue(this.style,"fillColor","#ffffff");a.translate(d,e);a.save();a.save();a.setStrokeColor("#cccccc");a.begin();a.moveTo(b-3,0);a.lineTo(b-3,c);a.stroke();a.restore();a.begin();a.roundrect(b-6,f-10,6,20,1,1);a.fillAndStroke();a.setFillColor("#cccccc");a.begin();a.rect(0,f-20,b-18,40);a.fill();a.setFillColor("#666666");
5478a.begin();a.moveTo(b-18,f-20);a.lineTo(b-6,f);a.lineTo(b-18,f+20);a.close();a.fill();a.setFontSize("12");a.text(.5*(b-18),f,0,0,"Aa",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape(mxShapeAndroidQuickscroll2.prototype.cst.QUICKSCROLL,mxShapeAndroidQuickscroll2);mxShapeAndroidQuickscroll2.prototype.constraints=null;
5479Graph.handleFactory[mxShapeAndroidQuickscroll2.prototype.cst.QUICKSCROLL]=function(a){return[Graph.createHandle(a,["dy"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+a.width-3,a.y+Math.min(a.height-20,Math.max(20,d*a.height)))},function(a,e){this.state.style.dy=Math.round(1E3*Math.max(0,Math.min(1,(e.y-a.y)/a.height)))/1E3})]};
5480function mxShapeAndroidQuickscroll3(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dy=.5}mxUtils.extend(mxShapeAndroidQuickscroll3,mxShape);mxShapeAndroidQuickscroll3.prototype.customProperties=[{name:"dy",dispName:"Handle Position",type:"float",min:0,max:1,defVal:.5}];mxShapeAndroidQuickscroll3.prototype.cst={QUICKSCROLL:"mxgraph.android.quickscroll3"};
5481mxShapeAndroidQuickscroll3.prototype.paintVertexShape=function(a,d,e,b,c){var f=Math.min(c-10,Math.max(10,c*Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))))));mxUtils.getValue(this.style,"fillColor","#ffffff");a.translate(d,e);a.save();a.setStrokeColor("#cccccc");a.begin();a.moveTo(.5*b,0);a.lineTo(.5*b,c);a.stroke();a.restore();a.begin();a.roundrect(.5*b-3,f-10,6,20,1,1);a.fillAndStroke()};
5482mxCellRenderer.registerShape(mxShapeAndroidQuickscroll3.prototype.cst.QUICKSCROLL,mxShapeAndroidQuickscroll3);mxShapeAndroidQuickscroll3.prototype.constraints=null;
5483Graph.handleFactory[mxShapeAndroidQuickscroll3.prototype.cst.QUICKSCROLL]=function(a){return[Graph.createHandle(a,["dy"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+.5*a.width,a.y+Math.min(a.height-10,Math.max(10,d*a.height)))},function(a,e){this.state.style.dy=Math.round(1E3*Math.max(0,Math.min(1,(e.y-a.y)/a.height)))/1E3})]};
5484function mxShapeAndroidScrollbars2(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAndroidScrollbars2,mxShape);mxShapeAndroidScrollbars2.prototype.cst={SCROLLBARS:"mxgraph.android.scrollbars2"};mxShapeAndroidScrollbars2.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.rect(b-5,0,5,c-7);a.fillAndStroke();a.begin();a.rect(0,c-5,b-7,5);a.fillAndStroke()};
5485mxCellRenderer.registerShape(mxShapeAndroidScrollbars2.prototype.cst.SCROLLBARS,mxShapeAndroidScrollbars2);mxShapeAndroidScrollbars2.prototype.constraints=null;function mxShapeAndroidSpinner2(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeAndroidSpinner2,mxShape);mxShapeAndroidSpinner2.prototype.cst={SPINNER:"mxgraph.android.spinner2"};
5486mxShapeAndroidSpinner2.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(0,c);a.lineTo(b,c);a.stroke();d=Math.min(b/10,c);a.begin();a.moveTo(b-d,c);a.lineTo(b,c-d);a.lineTo(b,c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeAndroidSpinner2.prototype.cst.SPINNER,mxShapeAndroidSpinner2);mxShapeAndroidSpinner2.prototype.constraints=null;
5487function mxArchiMateLocation(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMateLocation,mxShape);mxArchiMateLocation.prototype.cst={LOCATION:"mxgraph.archimate.location"};mxArchiMateLocation.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1);a.translate(b-20,5);this.foreground(a,b-20,5,15,15)};
5488mxArchiMateLocation.prototype.background=function(a,d,e,b,c){a.rect(0,0,b,c);a.fillAndStroke()};mxArchiMateLocation.prototype.foreground=function(a,d,e,b,c){a.setDashed(!1);a.translate(3,0);b-=6;a.begin();a.moveTo(.5*b,c);a.arcTo(.1775*b,.3*c,0,0,0,.345*b,.7*c);a.arcTo(.538*b,.364*c,0,0,1,.5*b,0);a.arcTo(.538*b,.364*c,0,0,1,.655*b,.7*c);a.arcTo(.1775*b,.3*c,0,0,0,.5*b,c);a.stroke()};mxCellRenderer.registerShape(mxArchiMateLocation.prototype.cst.LOCATION,mxArchiMateLocation);
5489mxArchiMateLocation.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,
5490.75),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.25),!1));return a};
5491function mxArchiMateBusiness(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMateBusiness,mxShape);mxArchiMateBusiness.prototype.cst={BUSINESS:"mxgraph.archimate.business",TYPE:"busType",PROCESS:"process",FUNCTION:"function",INTERACTION:"interaction",EVENT:"event",SERVICE:"service"};
5492mxArchiMateBusiness.prototype.customProperties=[{name:"busType",dispName:"Business Type",type:"enum",enumList:[{val:"process",dispName:"Process"},{val:"function",dispName:"Function"},{val:"interaction",dispName:"Interaction"},{val:"event",dispName:"Event"},{val:"service",dispName:"Service"}]}];mxArchiMateBusiness.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1);a.translate(b-20,5);this.foreground(a,b-20,5,15,15)};
5493mxArchiMateBusiness.prototype.background=function(a,d,e,b,c){a.roundrect(0,0,b,c,10,10);a.fillAndStroke()};
5494mxArchiMateBusiness.prototype.foreground=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxArchiMateBusiness.prototype.cst.TYPE,mxArchiMateBusiness.prototype.cst.PROCESS);a.setDashed(!1);d===mxArchiMateBusiness.prototype.cst.PROCESS?(a.translate(0,2),c-=4,a.begin(),a.moveTo(0,.15*c),a.lineTo(.65*b,.15*c),a.lineTo(.65*b,0),a.lineTo(b,.5*c),a.lineTo(.65*b,c),a.lineTo(.65*b,.85*c),a.lineTo(0,.85*c),a.close(),a.stroke()):d===mxArchiMateBusiness.prototype.cst.FUNCTION?(a.translate(2,0),b-=4,a.begin(),
5495a.moveTo(0,.15*c),a.lineTo(.5*b,0),a.lineTo(b,.15*c),a.lineTo(b,c),a.lineTo(.5*b,.85*c),a.lineTo(0,c),a.close(),a.stroke()):d===mxArchiMateBusiness.prototype.cst.INTERACTION?(a.begin(),a.moveTo(.55*b,0),a.arcTo(.45*b,.5*c,0,0,1,.55*b,c),a.close(),a.moveTo(.45*b,0),a.arcTo(.45*b,.5*c,0,0,0,.45*b,c),a.close(),a.stroke()):d===mxArchiMateBusiness.prototype.cst.EVENT?(a.translate(0,3),c-=6,a.begin(),a.moveTo(b-.5*c,0),a.arcTo(.5*c,.5*c,0,0,1,b-.5*c,c),a.lineTo(0,c),a.arcTo(.5*c,.5*c,0,0,0,0,0),a.close(),
5496a.stroke()):d===mxArchiMateBusiness.prototype.cst.SERVICE&&(a.translate(0,3),c-=6,a.begin(),a.moveTo(b-.5*c,0),a.arcTo(.5*c,.5*c,0,0,1,b-.5*c,c),a.lineTo(0,c),a.arcTo(.5*c,.5*c,0,0,1,0,0),a.close(),a.stroke())};mxCellRenderer.registerShape(mxArchiMateBusiness.prototype.cst.BUSINESS,mxArchiMateBusiness);
5497mxArchiMateBusiness.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2.9,2.9));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,-2.9,2.9));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,
5498.75),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,-2.9,-2.9));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,2.9,-2.9));a.push(new mxConnectionConstraint(new mxPoint(0,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.25),!1));return a};
5499function mxArchiMateBusinessObject(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMateBusinessObject,mxShape);mxArchiMateBusinessObject.prototype.cst={BUSINESS_OBJECT:"mxgraph.archimate.businessObject"};mxArchiMateBusinessObject.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1);this.foreground(a,0,0,b,c)};
5500mxArchiMateBusinessObject.prototype.background=function(a,d,e,b,c){a.rect(0,0,b,c);a.fillAndStroke()};mxArchiMateBusinessObject.prototype.foreground=function(a,d,e,b,c){15<=c&&(a.begin(),a.moveTo(0,15),a.lineTo(b,15),a.stroke())};mxCellRenderer.registerShape(mxArchiMateBusinessObject.prototype.cst.BUSINESS_OBJECT,mxArchiMateBusinessObject);
5501mxArchiMateBusinessObject.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2.9,2.9));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,-2.9,2.9));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,
5502.75),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,-2.9,-2.9));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,2.9,-2.9));a.push(new mxConnectionConstraint(new mxPoint(0,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.25),!1));return a};
5503function mxArchiMateRepresentation(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMateRepresentation,mxShape);mxArchiMateRepresentation.prototype.cst={REPRESENTATION:"mxgraph.archimate.representation"};mxArchiMateRepresentation.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c)};
5504mxArchiMateRepresentation.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,.85*c);a.arcTo(.35*b,.35*c,0,0,0,.5*b,.85*c);a.arcTo(.35*b,.35*c,0,0,1,0,.85*c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxArchiMateRepresentation.prototype.cst.REPRESENTATION,mxArchiMateRepresentation);
5505mxArchiMateRepresentation.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,
5506.75),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.85),!1,null));a.push(new mxConnectionConstraint(new mxPoint(.75,.745),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,.85),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,.955),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.85),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.25),!1));return a};
5507function mxArchiMateProduct(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMateProduct,mxShape);mxArchiMateProduct.prototype.cst={PRODUCT:"mxgraph.archimate.product"};mxArchiMateProduct.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1);this.foreground(a,0,0,b,c)};mxArchiMateProduct.prototype.background=function(a,d,e,b,c){a.rect(0,0,b,c);a.fillAndStroke()};
5508mxArchiMateProduct.prototype.foreground=function(a,d,e,b,c){15<=c&&(a.begin(),a.moveTo(0,15),a.lineTo(.6*b,15),a.lineTo(.6*b,0),a.stroke())};mxCellRenderer.registerShape(mxArchiMateProduct.prototype.cst.PRODUCT,mxArchiMateProduct);function mxArchiMateApplication(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMateApplication,mxShape);
5509mxArchiMateApplication.prototype.cst={APPLICATION:"mxgraph.archimate.application",TYPE:"appType",COMPONENT:"comp",INTERFACE:"interface",INTERFACE2:"interface2",FUNCTION:"function",INTERACTION:"interaction",SERVICE:"service",NODE:"node",NETWORK:"network",COMM_PATH:"commPath",SYS_SW:"sysSw",ARTIFACT:"artifact",ACTOR:"actor",ROLE:"role",COLLABORATION:"collab"};
5510mxArchiMateApplication.prototype.customProperties=[{name:"appType",dispName:"App Type",type:"enum",enumList:[{val:"comp",dispName:"Component"},{val:"interface",dispName:"Interface"},{val:"interface2",dispName:"Interface2"},{val:"function",dispName:"Function"},{val:"interaction",dispName:"Interaction"},{val:"service",dispName:"Service"},{val:"node",dispName:"Node"},{val:"network",dispName:"Network"},{val:"commPath",dispName:"Comm Path"},{val:"artifact",dispName:"Artifact"},{val:"sysSw",dispName:"System Sw"},
5511{val:"path",dispName:"Path"},{val:"actor",dispName:"Actor"},{val:"role",dispName:"Role"},{val:"collab",dispName:"Collaboration"}]}];mxArchiMateApplication.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1);a.translate(b-20,5);this.foreground(a,b-20,5,15,15)};mxArchiMateApplication.prototype.background=function(a,d,e,b,c){a.rect(0,0,b,c);a.fillAndStroke()};
5512mxArchiMateApplication.prototype.foreground=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxArchiMateApplication.prototype.cst.TYPE,mxArchiMateApplication.prototype.cst.COMPONENT);a.setDashed(!1);d===mxArchiMateApplication.prototype.cst.COMPONENT?(a.translate(1,0),b-=2,a.rect(.25*b,0,.75*b,c),a.stroke(),a.rect(0,.25*c,.5*b,.15*c),a.fillAndStroke(),a.rect(0,.6*c,.5*b,.15*c),a.fillAndStroke()):d===mxArchiMateApplication.prototype.cst.COLLABORATION?(a.translate(0,3),c-=6,a.ellipse(0,0,.6*b,c),a.stroke(),
5513a.ellipse(.4*b,0,.6*b,c),a.fillAndStroke()):d===mxArchiMateApplication.prototype.cst.INTERFACE?(a.translate(0,4),c-=8,a.ellipse(.5*b,0,.5*b,c),a.stroke(),a.begin(),a.moveTo(0,.5*c),a.lineTo(.5*b,.5*c),a.stroke()):d===mxArchiMateApplication.prototype.cst.INTERFACE2?(a.translate(0,1),c-=2,a.begin(),a.moveTo(0,.5*c),a.lineTo(.6*b,.5*c),a.moveTo(b,0),a.arcTo(.4*b,.5*c,0,0,0,b,c),a.stroke()):d===mxArchiMateApplication.prototype.cst.FUNCTION?(a.begin(),a.moveTo(.5*b,0),a.lineTo(b,.2*c),a.lineTo(b,c),a.lineTo(.5*
5514b,.8*c),a.lineTo(0,c),a.lineTo(0,.2*c),a.close(),a.stroke()):d===mxArchiMateApplication.prototype.cst.INTERACTION?(a.begin(),a.moveTo(.55*b,0),a.arcTo(.45*b,.5*c,0,0,1,.55*b,c),a.close(),a.moveTo(.45*b,0),a.arcTo(.45*b,.5*c,0,0,0,.45*b,c),a.close(),a.stroke()):d===mxArchiMateApplication.prototype.cst.SERVICE?(a.translate(0,3),c-=6,a.begin(),a.moveTo(b-.5*c,0),a.arcTo(.5*c,.5*c,0,0,1,b-.5*c,c),a.lineTo(0,c),a.arcTo(.5*c,.5*c,0,0,1,0,0),a.close(),a.stroke()):d===mxArchiMateApplication.prototype.cst.NODE?
5515(a.begin(),a.moveTo(0,.25*c),a.lineTo(.25*b,0),a.lineTo(b,0),a.lineTo(b,.75*c),a.lineTo(.75*b,c),a.lineTo(0,c),a.close(),a.moveTo(0,.25*c),a.lineTo(.75*b,.25*c),a.lineTo(.75*b,c),a.moveTo(b,0),a.lineTo(.75*b,.25*c),a.stroke()):d===mxArchiMateApplication.prototype.cst.NETWORK?(a.translate(0,2),c-=4,a.begin(),a.moveTo(.4*b,.2*c),a.lineTo(.85*b,.2*c),a.lineTo(.6*b,.8*c),a.lineTo(.15*b,.8*c),a.close(),a.stroke(),e=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),a.setFillColor(e),
5516a.ellipse(.25*b,0,.3*b,.4*c),a.fill(),a.ellipse(.7*b,0,.3*b,.4*c),a.fill(),a.ellipse(0,.6*c,.3*b,.4*c),a.fill(),a.ellipse(.45*b,.6*c,.3*b,.4*c),a.fill()):d===mxArchiMateApplication.prototype.cst.COMM_PATH?(a.translate(0,5),c-=10,a.begin(),a.moveTo(.1*b,0),a.lineTo(0,.5*c),a.lineTo(.1*b,c),a.moveTo(.9*b,0),a.lineTo(b,.5*c),a.lineTo(.9*b,c),a.stroke(),a.setDashed(!0),a.begin(),a.moveTo(0,.5*c),a.lineTo(b,.5*c),a.stroke()):d===mxArchiMateApplication.prototype.cst.SYS_SW?(a.ellipse(.3*b,0,.7*b,.7*c),
5517a.stroke(),a.ellipse(0,.02*c,.98*b,.98*c),a.fillAndStroke()):d===mxArchiMateApplication.prototype.cst.ARTIFACT?(a.translate(2,0),b-=4,a.begin(),a.moveTo(0,0),a.lineTo(.7*b,0),a.lineTo(b,.22*c),a.lineTo(b,c),a.lineTo(0,c),a.close(),a.moveTo(.7*b,0),a.lineTo(.7*b,.22*c),a.lineTo(b,.22*c),a.stroke()):d===mxArchiMateApplication.prototype.cst.ACTOR&&(a.translate(3,0),b-=6,a.ellipse(.2*b,0,.6*b,.3*c),a.stroke(),a.begin(),a.moveTo(.5*b,.3*c),a.lineTo(.5*b,.75*c),a.moveTo(0,.45*c),a.lineTo(b,.45*c),a.moveTo(0,
5518c),a.lineTo(.5*b,.75*c),a.lineTo(b,c),a.stroke());d===mxArchiMateApplication.prototype.cst.ROLE&&(a.translate(0,4),c-=8,a.begin(),a.moveTo(.8*b,0),a.lineTo(.2*b,0),a.arcTo(.2*b,.5*c,0,0,0,.2*b,c),a.lineTo(.8*b,c),a.stroke(),a.ellipse(.6*b,0,.4*b,c),a.stroke())};mxCellRenderer.registerShape(mxArchiMateApplication.prototype.cst.APPLICATION,mxArchiMateApplication);
5519mxArchiMateApplication.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,
5520.75),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.25),!1));return a};
5521function mxArchiMateTech(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMateTech,mxShape);mxArchiMateTech.prototype.cst={TECH:"mxgraph.archimate.tech",TYPE:"techType",DEVICE:"device",PLATEAU:"plateau"};mxArchiMateTech.prototype.customProperties=[{name:"techType",dispName:"Tech Type",type:"enum",enumList:[{val:"device",dispName:"Device"},{val:"plateau",dispName:"Plateau"}]}];
5522mxArchiMateTech.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1);a.translate(b-30,15);this.foreground(a,b-30,15,15,15)};mxArchiMateTech.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(0,10);a.lineTo(10,0);a.lineTo(b,0);a.lineTo(b,c-10);a.lineTo(b-10,c);a.lineTo(0,c);a.close();a.moveTo(0,10);a.lineTo(b-10,10);a.lineTo(b-10,c);a.moveTo(b,0);a.lineTo(b-10,10);a.fillAndStroke()};
5523mxArchiMateTech.prototype.foreground=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxArchiMateTech.prototype.cst.TYPE,mxArchiMateTech.prototype.cst.DEVICE);a.setDashed(!1);d===mxArchiMateTech.prototype.cst.DEVICE?(a.roundrect(0,0,b,.88*c,.05*b,.05*c),a.stroke(),a.begin(),a.moveTo(.1*b,.88*c),a.lineTo(0,c),a.lineTo(b,c),a.lineTo(.9*b,.88*c),a.stroke()):d===mxArchiMateTech.prototype.cst.PLATEAU&&(d=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),a.setFillColor(d),a.rect(.4*
5524b,0,.6*b,.2*c),a.fill(),a.rect(.2*b,.4*c,.6*b,.2*c),a.fill(),a.rect(0,.8*c,.6*b,.2*c),a.fill())};mxCellRenderer.registerShape(mxArchiMateTech.prototype.cst.TECH,mxArchiMateTech);
5525mxArchiMateTech.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,10));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,10,0));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(1,
5526.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,0,-10));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,-10,0));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
5527.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.25),!1));return a};function mxArchiMateMotivational(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMateMotivational,mxShape);mxArchiMateMotivational.prototype.cst={MOTIV:"mxgraph.archimate.motiv",TYPE:"motivType",STAKE:"stake",DRIVER:"driver",ASSESSMENT:"assess",GOAL:"goal",REQUIREMENT:"req",CONSTRAINT:"const",PRINCIPLE:"princ"};
5528mxArchiMateMotivational.prototype.customProperties=[{name:"motivType",dispName:"Motivational Type",type:"enum",enumList:[{val:"stake",dispName:"Stake"},{val:"driver",dispName:"Driver"},{val:"assess",dispName:"Assessment"},{val:"goal",dispName:"Goal"},{val:"req",dispName:"Requirement"},{val:"const",dispName:"Constraint"},{val:"princ",dispName:"Principle"}]}];
5529mxArchiMateMotivational.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1);a.translate(b-20,5);this.foreground(a,b-20,5,15,15)};mxArchiMateMotivational.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(10,0);a.lineTo(b-10,0);a.lineTo(b,10);a.lineTo(b,c-10);a.lineTo(b-10,c);a.lineTo(10,c);a.lineTo(0,c-10);a.lineTo(0,10);a.close();a.fillAndStroke()};
5530mxArchiMateMotivational.prototype.foreground=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxArchiMateMotivational.prototype.cst.TYPE,mxArchiMateMotivational.prototype.cst.STAKE);a.setDashed(!1);d===mxArchiMateMotivational.prototype.cst.STAKE?(a.translate(0,4),c-=8,a.begin(),a.moveTo(.8*b,0),a.lineTo(.2*b,0),a.arcTo(.2*b,.5*c,0,0,0,.2*b,c),a.lineTo(.8*b,c),a.stroke(),a.ellipse(.6*b,0,.4*b,c),a.stroke()):d===mxArchiMateMotivational.prototype.cst.DRIVER?(a.ellipse(.1*b,.1*c,.8*b,.8*c),a.stroke(),
5531a.begin(),a.moveTo(0,.5*c),a.lineTo(b,.5*c),a.moveTo(.5*b,0),a.lineTo(.5*b,c),a.moveTo(.145*b,.145*c),a.lineTo(.855*b,.855*c),a.moveTo(.145*b,.855*c),a.lineTo(.855*b,.145*c),a.stroke(),d=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),a.setFillColor(d),a.ellipse(.35*b,.35*c,.3*b,.3*c),a.fillAndStroke()):d===mxArchiMateMotivational.prototype.cst.ASSESSMENT?(a.ellipse(.2*b,0,.8*b,.8*c),a.stroke(),a.begin(),a.moveTo(0,c),a.lineTo(.32*b,.68*c),a.stroke()):d===mxArchiMateMotivational.prototype.cst.GOAL?
5532(a.ellipse(0,0,b,c),a.stroke(),a.ellipse(.15*b,.15*c,.7*b,.7*c),a.stroke(),d=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),a.setFillColor(d),a.ellipse(.3*b,.3*c,.4*b,.4*c),a.fillAndStroke()):d===mxArchiMateMotivational.prototype.cst.REQUIREMENT?(a.translate(0,4),c-=8,a.begin(),a.moveTo(.25*b,0),a.lineTo(b,0),a.lineTo(.75*b,c),a.lineTo(0,c),a.close(),a.stroke()):d===mxArchiMateMotivational.prototype.cst.CONSTRAINT?(a.translate(0,4),c-=8,a.begin(),a.moveTo(.25*b,0),a.lineTo(b,
55330),a.lineTo(.75*b,c),a.lineTo(0,c),a.close(),a.moveTo(.45*b,0),a.lineTo(.2*b,c),a.stroke()):d===mxArchiMateMotivational.prototype.cst.PRINCIPLE&&(a.begin(),a.moveTo(.05*b,.05*c),a.arcTo(2.3*b,2.3*c,0,0,1,.95*b,.05*c),a.arcTo(2.3*b,2.3*c,0,0,1,.95*b,.95*c),a.arcTo(2.3*b,2.3*c,0,0,1,.05*b,.95*c),a.arcTo(2.3*b,2.3*c,0,0,1,.05*b,.05*c),a.close(),a.stroke(),d=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),a.setFillColor(d),a.begin(),a.moveTo(.45*b,.7*c),a.lineTo(.42*b,.15*c),a.lineTo(.58*
5534b,.15*c),a.lineTo(.55*b,.7*c),a.close(),a.fill(),a.rect(.45*b,.75*c,.1*b,.1*c),a.fill())};mxCellRenderer.registerShape(mxArchiMateMotivational.prototype.cst.MOTIV,mxArchiMateMotivational);
5535mxArchiMateMotivational.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,5,5));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,-5,5));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,
5536.75),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,-5,-5));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,5,-5));a.push(new mxConnectionConstraint(new mxPoint(0,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.25),!1));return a};
5537function mxArchiMateGap(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMateGap,mxShape);mxArchiMateGap.prototype.cst={GAP:"mxgraph.archimate.gap"};mxArchiMateGap.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1);a.translate(b-20,5);this.foreground(a,b-20,5,15,15)};
5538mxArchiMateGap.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,.85*c);a.arcTo(.35*b,.35*c,0,0,0,.5*b,.85*c);a.arcTo(.35*b,.35*c,0,0,1,0,.85*c);a.close();a.fillAndStroke()};mxArchiMateGap.prototype.foreground=function(a,d,e,b,c){a.setDashed(!1);a.translate(0,2);c-=4;a.ellipse(.15*b,0,.7*b,c);a.stroke();a.begin();a.moveTo(0,.35*c);a.lineTo(b,.35*c);a.moveTo(0,.65*c);a.lineTo(b,.65*c);a.stroke()};
5539mxCellRenderer.registerShape(mxArchiMateGap.prototype.cst.GAP,mxArchiMateGap);
5540mxArchiMateGap.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,
5541.75),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.85),!1,null));a.push(new mxConnectionConstraint(new mxPoint(.75,.745),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,.85),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,.955),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.85),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.25),!1));return a};
5542function mxArchiMate3Application(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMate3Application,mxShape);
5543mxArchiMate3Application.prototype.cst={APPLICATION:"mxgraph.archimate3.application",TYPE:"appType",COMPONENT:"comp",COLLABORATION:"collab",INTERFACE:"interface",INTERFACE2:"interface2",LOCATION:"location",FUNCTION:"func",INTERACTION:"interaction",SERVICE:"serv",EVENT:"event",EVENT2:"event2",NODE:"node",NETWORK:"netw",COMM_PATH:"commPath",ACTOR:"actor",ASSESSMENT:"assess",GOAL:"goal",OUTCOME:"outcome",ROLE:"role",PROCESS:"proc",DRIVER:"driver",PRINCIPLE:"principle",REQUIREMENT:"requirement",CONSTRAINT:"constraint",
5544RESOURCE:"resource",CAPABILITY:"capability",COURSE:"course",MATERIAL:"material",DISTRIBUTION:"distribution",SYS_SW:"sysSw",ARTIFACT:"artifact",PATH:"path",ARCHI_TYPE:"archiType",TYPE_SQUARE:"square",TYPE_ROUNDED:"rounded",TYPE_OCT:"oct"};
5545mxArchiMate3Application.prototype.customProperties=[{name:"archiType",dispName:"Type",type:"enum",enumList:[{val:"square",dispName:"Square"},{val:"rounded",dispName:"Rounded"},{val:"oct",dispName:"Octagonal"}]},{name:"appType",dispName:"App Type",type:"enum",enumList:[{val:"comp",dispName:"Component"},{val:"collab",dispName:"Collaboration"},{val:"interface",dispName:"Interface"},{val:"interface2",dispName:"Interface2"},{val:"func",dispName:"Function"},{val:"interaction",dispName:"Interaction"},{val:"location",
5546dispName:"Location"},{val:"serv",dispName:"Service"},{val:"event",dispName:"Event"},{val:"event2",dispName:"Event2"},{val:"node",dispName:"Node"},{val:"netw",dispName:"Network"},{val:"commPath",dispName:"Comm Path"},{val:"actor",dispName:"Actor"},{val:"assess",dispName:"Assessment"},{val:"goal",dispName:"Goal"},{val:"outcome",dispName:"Outcome"},{val:"role",dispName:"Role"},{val:"proc",dispName:"Process"},{val:"driver",dispName:"Driver"},{val:"principle",dispName:"Principle"},{val:"requirement",dispName:"Requirement"},
5547{val:"constraint",dispName:"Constraint"},{val:"resource",dispName:"Resource"},{val:"capability",dispName:"Capability"},{val:"course",dispName:"Course"},{val:"material",dispName:"Material"},{val:"distribution",dispName:"Distribution"},{val:"sysSw",dispName:"System Sw"},{val:"artifact",dispName:"Artifact"},{val:"path",dispName:"Path"}]}];
5548mxArchiMate3Application.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1);a.translate(b-20,5);this.foreground(a,b-20,5,15,15)};
5549mxArchiMate3Application.prototype.background=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxArchiMate3Application.prototype.cst.ARCHI_TYPE,"square");"rounded"===d?a.roundrect(0,0,b,c,10,10):"oct"===d&&20<=b&&20<=c?(a.begin(),a.moveTo(0,10),a.lineTo(10,0),a.lineTo(b-10,0),a.lineTo(b,10),a.lineTo(b,c-10),a.lineTo(b-10,c),a.lineTo(10,c),a.lineTo(0,c-10),a.close(),a.fillAndStroke()):a.rect(0,0,b,c);a.fillAndStroke()};
5550mxArchiMate3Application.prototype.foreground=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxArchiMate3Application.prototype.cst.TYPE,"");a.setDashed(!1);f===mxArchiMate3Application.prototype.cst.COMPONENT?(a.translate(1,0),mxArchiMate3Component.prototype.background(a,d,e,b-2,c)):f===mxArchiMate3Application.prototype.cst.COLLABORATION?(a.translate(0,3),mxArchiMate3Collaboration.prototype.background(a,d,e,b,c-6)):f===mxArchiMate3Application.prototype.cst.INTERFACE?(a.translate(0,4),mxArchiMate3Interface.prototype.background(a,
5551d,e,b,c-8)):f===mxArchiMate3Application.prototype.cst.INTERFACE2?(a.translate(0,1),c-=2,a.begin(),a.moveTo(0,.5*c),a.lineTo(.6*b,.5*c),a.moveTo(b,0),a.arcTo(.4*b,.5*c,0,0,0,b,c),a.stroke()):f===mxArchiMate3Application.prototype.cst.FUNCTION?mxArchiMate3Function.prototype.background(a,d,e,b,c):f===mxArchiMate3Application.prototype.cst.INTERACTION?mxArchiMate3Interaction.prototype.background(a,d,e,b,c):f===mxArchiMate3Application.prototype.cst.LOCATION?(a.translate(3,0),b-=6,a.begin(),a.moveTo(.5*b,
5552c),a.arcTo(.1775*b,.3*c,0,0,0,.345*b,.7*c),a.arcTo(.538*b,.364*c,0,0,1,.5*b,0),a.arcTo(.538*b,.364*c,0,0,1,.655*b,.7*c),a.arcTo(.1775*b,.3*c,0,0,0,.5*b,c),a.stroke()):f===mxArchiMate3Application.prototype.cst.SERVICE?(a.translate(0,3),mxArchiMate3Service.prototype.background(a,d,e,b,c-6)):f===mxArchiMate3Application.prototype.cst.EVENT?(a.translate(0,3),mxArchiMate3Event.prototype.background(a,d,e,b,c-6)):f===mxArchiMate3Application.prototype.cst.EVENT2?(a.translate(0,3),mxArchiMate3Event2.prototype.background(a,
5553d,e,b,c-6)):f===mxArchiMate3Application.prototype.cst.NODE?mxArchiMate3Node.prototype.background(a,d,e,b,c):f===mxArchiMate3Application.prototype.cst.NETWORK?(a.translate(0,2),c-=4,a.begin(),a.moveTo(.4*b,.2*c),a.lineTo(.85*b,.2*c),a.lineTo(.6*b,.8*c),a.lineTo(.15*b,.8*c),a.close(),a.stroke(),d=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),a.setFillColor(d),a.ellipse(.25*b,0,.3*b,.4*c),a.fill(),a.ellipse(.7*b,0,.3*b,.4*c),a.fill(),a.ellipse(0,.6*c,.3*b,.4*c),a.fill(),a.ellipse(.45*
5554b,.6*c,.3*b,.4*c),a.fill()):f===mxArchiMate3Application.prototype.cst.COMM_PATH?(a.translate(0,5),c-=10,a.begin(),a.moveTo(.1*b,0),a.lineTo(0,.5*c),a.lineTo(.1*b,c),a.moveTo(.9*b,0),a.lineTo(b,.5*c),a.lineTo(.9*b,c),a.stroke(),a.setDashed(!0),a.begin(),a.moveTo(0,.5*c),a.lineTo(b,.5*c),a.stroke()):f===mxArchiMate3Application.prototype.cst.ARTIFACT?(a.translate(2,0),b-=4,a.begin(),a.moveTo(0,0),a.lineTo(.7*b,0),a.lineTo(b,.22*c),a.lineTo(b,c),a.lineTo(0,c),a.close(),a.moveTo(.7*b,0),a.lineTo(.7*b,
5555.22*c),a.lineTo(b,.22*c),a.stroke()):f===mxArchiMate3Application.prototype.cst.ACTOR?(a.translate(3,0),mxArchiMate3Actor.prototype.background(a,d,e,b-6,c)):f===mxArchiMate3Application.prototype.cst.ROLE?(a.translate(0,4),mxArchiMate3Role.prototype.background(a,d,e,b,c-8)):f===mxArchiMate3Application.prototype.cst.PROCESS?(a.translate(0,3),mxArchiMate3Process.prototype.background(a,d,e,b,c-6)):f===mxArchiMate3Application.prototype.cst.DRIVER?(a.ellipse(.1*b,.1*c,.8*b,.8*c),a.stroke(),a.begin(),a.moveTo(0,
5556.5*c),a.lineTo(b,.5*c),a.moveTo(.5*b,0),a.lineTo(.5*b,c),a.moveTo(.145*b,.145*c),a.lineTo(.855*b,.855*c),a.moveTo(.145*b,.855*c),a.lineTo(.855*b,.145*c),a.stroke(),d=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),a.setFillColor(d),a.ellipse(.35*b,.35*c,.3*b,.3*c),a.fillAndStroke()):f===mxArchiMate3Application.prototype.cst.ASSESSMENT?(a.ellipse(.2*b,0,.8*b,.8*c),a.stroke(),a.begin(),a.moveTo(0,c),a.lineTo(.32*b,.68*c),a.stroke()):f===mxArchiMate3Application.prototype.cst.GOAL?
5557(a.ellipse(0,0,b,c),a.stroke(),a.ellipse(.15*b,.15*c,.7*b,.7*c),a.stroke(),d=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),a.setFillColor(d),a.ellipse(.3*b,.3*c,.4*b,.4*c),a.fillAndStroke()):f===mxArchiMate3Application.prototype.cst.OUTCOME?(a.ellipse(0,.2*b,.8*b,.8*c),a.stroke(),a.ellipse(.15*b,.35*b,.5*b,.5*c),a.stroke(),a.ellipse(.3*b,.5*b,.2*b,.2*c),a.stroke(),a.begin(),a.moveTo(.4*b,.6*c),a.lineTo(.9*b,.1*c),a.moveTo(.42*b,.4*c),a.lineTo(.4*b,.6*c),a.lineTo(.6*b,.58*c),
5558a.moveTo(.8*b,0),a.lineTo(.75*b,.25*c),a.lineTo(b,.2*c),a.stroke()):f===mxArchiMate3Application.prototype.cst.PRINCIPLE?(a.begin(),a.moveTo(.05*b,.05*c),a.arcTo(2.3*b,2.3*c,0,0,1,.95*b,.05*c),a.arcTo(2.3*b,2.3*c,0,0,1,.95*b,.95*c),a.arcTo(2.3*b,2.3*c,0,0,1,.05*b,.95*c),a.arcTo(2.3*b,2.3*c,0,0,1,.05*b,.05*c),a.close(),a.stroke(),d=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),a.setFillColor(d),a.begin(),a.moveTo(.45*b,.7*c),a.lineTo(.42*b,.15*c),a.lineTo(.58*b,.15*c),a.lineTo(.55*
5559b,.7*c),a.close(),a.fill(),a.rect(.45*b,.75*c,.1*b,.1*c),a.fill()):f===mxArchiMate3Application.prototype.cst.REQUIREMENT?(a.translate(0,4),mxArchiMate3Requirement.prototype.background(a,d,e,b,c-8)):f===mxArchiMate3Application.prototype.cst.CONSTRAINT?(a.translate(0,4),mxArchiMate3Constraint.prototype.background(a,d,e,b,c-8)):f===mxArchiMate3Application.prototype.cst.MATERIAL?(a.translate(0,1),c-=2,a.begin(),a.moveTo(0,.5*c),a.lineTo(.25*b,0),a.lineTo(.75*b,0),a.lineTo(b,.5*c),a.lineTo(.75*b,c),a.lineTo(.25*
5560b,c),a.close(),a.moveTo(.15*b,.5*c),a.lineTo(.31*b,.2*c),a.moveTo(.69*b,.2*c),a.lineTo(.85*b,.5*c),a.moveTo(.68*b,.8*c),a.lineTo(.32*b,.8*c),a.stroke()):f===mxArchiMate3Application.prototype.cst.DISTRIBUTION?(a.translate(0,4),mxArchiMate3Distribution.prototype.background(a,d,e,b,c-8)):f===mxArchiMate3Application.prototype.cst.RESOURCE?(a.translate(0,1),mxArchiMate3Resource.prototype.background(a,d,e,b,c-2)):f===mxArchiMate3Application.prototype.cst.CAPABILITY?mxArchiMate3Capability.prototype.background(a,
5561d,e,b,c):f===mxArchiMate3Application.prototype.cst.COURSE?mxArchiMate3Course.prototype.background(a,d,e,b,c):f===mxArchiMate3Application.prototype.cst.SYS_SW?mxArchiMate3SysSw.prototype.background(a,d,e,b,c):f===mxArchiMate3Application.prototype.cst.ARTIFACT?(a.translate(2,0),mxArchiMate3Artifact.prototype.background(a,d,e,b-4,c)):f===mxArchiMate3Application.prototype.cst.PATH&&(a.translate(0,5),mxArchiMate3Path.prototype.background(a,d,e,b,c-10))};
5562mxCellRenderer.registerShape(mxArchiMate3Application.prototype.cst.APPLICATION,mxArchiMate3Application);
5563mxArchiMate3Application.prototype.getConstraints=function(a,d,e){a=[];var b=mxUtils.getValue(this.style,mxArchiMate3Application.prototype.cst.ARCHI_TYPE,"square");a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.75),
5564!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.25),!1));"rounded"===b?(a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2.9,2.9)),a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,-2.9,2.9)),
5565a.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,-2.9,-2.9)),a.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,2.9,-2.9))):"oct"===b&&20<=d&&20<=e?(a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,5,5)),a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,-5,5)),a.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,-5,-5)),a.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,5,-5))):(a.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(1,
55660),!1)),a.push(new mxConnectionConstraint(new mxPoint(1,1),!1)),a.push(new mxConnectionConstraint(new mxPoint(0,1),!1)));return a};function mxArchiMate3Component(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMate3Component,mxShape);mxArchiMate3Component.prototype.cst={COMPONENT:"mxgraph.archimate3.component"};mxArchiMate3Component.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1)};
5567mxArchiMate3Component.prototype.background=function(a,d,e,b,c){a.rect(.25*b,0,.75*b,c);a.fillAndStroke();a.rect(0,.25*c,.5*b,.15*c);a.fillAndStroke();a.rect(0,.6*c,.5*b,.15*c);a.fillAndStroke()};mxCellRenderer.registerShape(mxArchiMate3Component.prototype.cst.COMPONENT,mxArchiMate3Component);
5568mxArchiMate3Component.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(.625,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.625,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.325),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.675),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,
55691),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));return a};function mxArchiMate3Collaboration(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMate3Collaboration,mxShape);mxArchiMate3Collaboration.prototype.cst={COLLABORATION:"mxgraph.archimate3.collaboration"};mxArchiMate3Collaboration.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1)};
5570mxArchiMate3Collaboration.prototype.background=function(a,d,e,b,c){a.ellipse(0,0,.6*b,c);a.fillAndStroke();a.ellipse(.4*b,0,.6*b,c);a.fillAndStroke()};mxCellRenderer.registerShape(mxArchiMate3Collaboration.prototype.cst.COLLABORATION,mxArchiMate3Collaboration);
5571mxArchiMate3Collaboration.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(.11,.11),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,.125),!1));a.push(new mxConnectionConstraint(new mxPoint(.89,.11),!1));a.push(new mxConnectionConstraint(new mxPoint(.11,.89),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,.875),!1));a.push(new mxConnectionConstraint(new mxPoint(.89,.89),!1));a.push(new mxConnectionConstraint(new mxPoint(.3,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.7,
55720),!1));a.push(new mxConnectionConstraint(new mxPoint(.3,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.7,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));return a};function mxArchiMate3Interface(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMate3Interface,mxShape);mxArchiMate3Interface.prototype.cst={INTERFACE:"mxgraph.archimate3.interface"};
5573mxArchiMate3Interface.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1)};mxArchiMate3Interface.prototype.background=function(a,d,e,b,c){a.ellipse(.5*b,0,.5*b,c);a.fillAndStroke();a.begin();a.moveTo(0,.5*c);a.lineTo(.5*b,.5*c);a.stroke()};mxCellRenderer.registerShape(mxArchiMate3Interface.prototype.cst.INTERFACE,mxArchiMate3Interface);
5574mxArchiMate3Interface.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return a};function mxArchiMate3Process(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMate3Process,mxShape);
5575mxArchiMate3Process.prototype.cst={PROCESS:"mxgraph.archimate3.process"};mxArchiMate3Process.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1)};mxArchiMate3Process.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(0,.3*c);a.lineTo(.6*b,.3*c);a.lineTo(.6*b,0);a.lineTo(b,.5*c);a.lineTo(.6*b,c);a.lineTo(.6*b,.7*c);a.lineTo(0,.7*c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxArchiMate3Process.prototype.cst.PROCESS,mxArchiMate3Process);
5576mxArchiMate3Process.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,.3),!1));a.push(new mxConnectionConstraint(new mxPoint(.3,.3),!1));a.push(new mxConnectionConstraint(new mxPoint(.6,.3),!1));a.push(new mxConnectionConstraint(new mxPoint(.6,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.6,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.6,.7),!1));a.push(new mxConnectionConstraint(new mxPoint(.3,
5577.7),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.7),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));return a};function mxArchiMate3Function(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMate3Function,mxShape);mxArchiMate3Function.prototype.cst={FUNCTION:"mxgraph.archimate3.function"};mxArchiMate3Function.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1)};
5578mxArchiMate3Function.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(.5*b,0);a.lineTo(b,.2*c);a.lineTo(b,c);a.lineTo(.5*b,.8*c);a.lineTo(0,c);a.lineTo(0,.2*c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxArchiMate3Function.prototype.cst.FUNCTION,mxArchiMate3Function);
5579mxArchiMate3Function.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.2),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.6),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,.8),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.6),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
5580.2),!1));return a};function mxArchiMate3Interaction(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMate3Interaction,mxShape);mxArchiMate3Interaction.prototype.cst={INTERACTION:"mxgraph.archimate3.interaction"};mxArchiMate3Interaction.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1)};
5581mxArchiMate3Interaction.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(.55*b,0);a.arcTo(.45*b,.5*c,0,0,1,.55*b,c);a.close();a.moveTo(.45*b,0);a.arcTo(.45*b,.5*c,0,0,0,.45*b,c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxArchiMate3Interaction.prototype.cst.INTERACTION,mxArchiMate3Interaction);
5582mxArchiMate3Interaction.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.86,.14),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.86,.86),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.14,.86),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.14,
5583.14),!1));return a};function mxArchiMate3Service(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMate3Service,mxShape);mxArchiMate3Service.prototype.cst={SERVICE:"mxgraph.archimate3.service"};mxArchiMate3Service.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1)};
5584mxArchiMate3Service.prototype.background=function(a,d,e,b,c){d=Math.max(b-.5*c,.5*b);b=Math.min(.5*c,.5*b);a.begin();a.moveTo(d,0);a.arcTo(.5*c,.5*c,0,0,1,d,c);a.lineTo(b,c);a.arcTo(.5*c,.5*c,0,0,1,b,0);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxArchiMate3Service.prototype.cst.SERVICE,mxArchiMate3Service);
5585mxArchiMate3Service.prototype.getConstraints=function(a,d,e){a=[];var b=Math.max(d-.5*e,.5*d);d=Math.min(.5*e,.5*d);a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,0));a.push(new mxConnectionConstraint(new mxPoint(0,
55860),!1,null,b+.355*e,.145*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b+.5*e,.5*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b+.355*e,.855*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.355*e,.145*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.5*e,.5*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.355*e,.855*e));return a};
5587function mxArchiMate3Requirement(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMate3Requirement,mxShape);mxArchiMate3Requirement.prototype.cst={REQUIREMENT:"mxgraph.archimate3.requirement"};mxArchiMate3Requirement.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1)};
5588mxArchiMate3Requirement.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(.25*b,0);a.lineTo(b,0);a.lineTo(.75*b,c);a.lineTo(0,c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxArchiMate3Requirement.prototype.cst.REQUIREMENT,mxArchiMate3Requirement);
5589mxArchiMate3Requirement.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.9375,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(.875,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.8125,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,
55901),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.0625,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(.125,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.1875,.25),!1));return a};
5591function mxArchiMate3Constraint(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMate3Constraint,mxShape);mxArchiMate3Constraint.prototype.cst={CONSTRAINT:"mxgraph.archimate3.constraint"};mxArchiMate3Constraint.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1)};
5592mxArchiMate3Constraint.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(.25*b,0);a.lineTo(b,0);a.lineTo(.75*b,c);a.lineTo(0,c);a.close();a.moveTo(.45*b,0);a.lineTo(.2*b,c);a.fillAndStroke()};mxCellRenderer.registerShape(mxArchiMate3Constraint.prototype.cst.CONSTRAINT,mxArchiMate3Constraint);
5593mxArchiMate3Constraint.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.9375,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(.875,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.8125,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,
55941),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.0625,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(.125,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.1875,.25),!1));return a};function mxArchiMate3Event(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
5595mxUtils.extend(mxArchiMate3Event,mxShape);mxArchiMate3Event.prototype.cst={EVENT:"mxgraph.archimate3.event"};mxArchiMate3Event.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1)};mxArchiMate3Event.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(b-.5*c,0);a.arcTo(.5*c,.5*c,0,0,1,b-.5*c,c);a.lineTo(0,c);a.lineTo(.5*c,.5*c);a.lineTo(0,0);a.close();a.fillAndStroke()};
5596mxCellRenderer.registerShape(mxArchiMate3Event.prototype.cst.EVENT,mxArchiMate3Event);
5597mxArchiMate3Event.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.5*e,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.5*e,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*e,.5*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
55980),!1,null,.5*(d-.5*e),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-.5*e),e));return a};function mxArchiMate3Event2(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMate3Event2,mxShape);mxArchiMate3Event2.prototype.cst={EVENT2:"mxgraph.archimate3.event2"};mxArchiMate3Event2.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1)};
5599mxArchiMate3Event2.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(b-.5*c,0);a.arcTo(.5*c,.5*c,0,0,1,b-.5*c,c);a.lineTo(0,c);a.arcTo(.5*c,.5*c,0,0,0,0,0);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxArchiMate3Event2.prototype.cst.EVENT2,mxArchiMate3Event2);function mxArchiMate3Actor(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMate3Actor,mxShape);mxArchiMate3Actor.prototype.cst={ACTOR:"mxgraph.archimate3.actor"};
5600mxArchiMate3Actor.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1)};mxArchiMate3Actor.prototype.background=function(a,d,e,b,c){a.ellipse(.2*b,0,.6*b,.3*c);a.fillAndStroke();a.begin();a.moveTo(.5*b,.3*c);a.lineTo(.5*b,.75*c);a.moveTo(0,.45*c);a.lineTo(b,.45*c);a.moveTo(0,c);a.lineTo(.5*b,.75*c);a.lineTo(b,c);a.stroke()};mxCellRenderer.registerShape(mxArchiMate3Actor.prototype.cst.ACTOR,mxArchiMate3Actor);
5601mxArchiMate3Actor.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(.2,.15),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.8,.15),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.45),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.45),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));return a};
5602function mxArchiMate3Role(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMate3Role,mxShape);mxArchiMate3Role.prototype.cst={ROLE:"mxgraph.archimate3.role"};mxArchiMate3Role.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1)};
5603mxArchiMate3Role.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(.8*b,0);a.lineTo(.2*b,0);a.arcTo(.2*b,.5*c,0,0,0,.2*b,c);a.lineTo(.8*b,c);a.fillAndStroke();a.ellipse(.6*b,0,.4*b,c);a.fillAndStroke()};mxCellRenderer.registerShape(mxArchiMate3Role.prototype.cst.ROLE,mxArchiMate3Role);
5604mxArchiMate3Role.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(.2,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.8,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.8,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.2,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
5605.5),!1));return a};function mxArchiMate3BusinessObject(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMate3BusinessObject,mxShape);mxArchiMate3BusinessObject.prototype.cst={BUSINESS_OBJECT:"mxgraph.archimate3.businessObject"};mxArchiMate3BusinessObject.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1);this.foreground(a,0,0,b,c)};
5606mxArchiMate3BusinessObject.prototype.background=function(a,d,e,b,c){a.rect(0,0,b,c);a.fillAndStroke()};mxArchiMate3BusinessObject.prototype.foreground=function(a,d,e,b,c){15<=c&&(a.begin(),a.moveTo(0,15),a.lineTo(b,15),a.stroke())};mxCellRenderer.registerShape(mxArchiMate3BusinessObject.prototype.cst.BUSINESS_OBJECT,mxArchiMate3BusinessObject);
5607mxArchiMate3BusinessObject.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,
5608.75),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.25),!1));return a};
5609function mxArchiMate3Contract(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMate3Contract,mxShape);mxArchiMate3Contract.prototype.cst={CONTRACT:"mxgraph.archimate3.contract"};mxArchiMate3Contract.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1);this.foreground(a,0,0,b,c)};mxArchiMate3Contract.prototype.background=function(a,d,e,b,c){a.rect(0,0,b,c);a.fillAndStroke()};
5610mxArchiMate3Contract.prototype.foreground=function(a,d,e,b,c){15<=c&&(a.begin(),a.moveTo(0,15),a.lineTo(b,15),a.stroke());30<=c&&(a.begin(),a.moveTo(0,c-15),a.lineTo(b,c-15),a.stroke())};mxCellRenderer.registerShape(mxArchiMate3Contract.prototype.cst.CONTRACT,mxArchiMate3Contract);
5611mxArchiMate3Contract.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,
5612.75),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.25),!1));return a};
5613function mxArchiMate3Product(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMate3Product,mxShape);mxArchiMate3Product.prototype.cst={PRODUCT:"mxgraph.archimate3.product"};mxArchiMate3Product.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1);this.foreground(a,0,0,b,c)};mxArchiMate3Product.prototype.background=function(a,d,e,b,c){a.rect(0,0,b,c);a.fillAndStroke()};
5614mxArchiMate3Product.prototype.foreground=function(a,d,e,b,c){15<=c&&(a.begin(),a.moveTo(0,15),a.lineTo(.6*b,15),a.lineTo(.6*b,0),a.stroke())};mxCellRenderer.registerShape(mxArchiMate3Product.prototype.cst.PRODUCT,mxArchiMate3Product);
5615mxArchiMate3Product.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,
5616.75),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.25),!1));return a};
5617function mxArchiMate3Representation(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMate3Representation,mxShape);mxArchiMate3Representation.prototype.cst={REPRESENTATION:"mxgraph.archimate3.representation"};mxArchiMate3Representation.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c)};
5618mxArchiMate3Representation.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,.85*c);a.arcTo(.35*b,.35*c,0,0,0,.5*b,.85*c);a.arcTo(.35*b,.35*c,0,0,1,0,.85*c);a.close();a.fillAndStroke();20<=c&&a.begin();a.moveTo(0,15);a.lineTo(b,15);a.stroke()};mxCellRenderer.registerShape(mxArchiMate3Representation.prototype.cst.REPRESENTATION,mxArchiMate3Representation);
5619mxArchiMate3Representation.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,
5620.75),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.85),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,.745),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,.85),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,.955),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.85),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.25),!1));return a};
5621function mxArchiMate3Deliverable(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMate3Deliverable,mxShape);mxArchiMate3Deliverable.prototype.cst={DELIVERABLE:"mxgraph.archimate3.deliverable"};mxArchiMate3Deliverable.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c)};
5622mxArchiMate3Deliverable.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,.85*c);a.arcTo(.35*b,.35*c,0,0,0,.5*b,.85*c);a.arcTo(.35*b,.35*c,0,0,1,0,.85*c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxArchiMate3Deliverable.prototype.cst.DELIVERABLE,mxArchiMate3Deliverable);
5623mxArchiMate3Deliverable.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,
5624.75),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.85),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,.745),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,.85),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,.955),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.85),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.25),!1));return a};
5625function mxArchiMate3Location(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMate3Location,mxShape);mxArchiMate3Location.prototype.cst={LOCATION:"mxgraph.archimate3.location"};mxArchiMate3Location.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1);a.translate(b-20,5);this.foreground(a,b-20,5,15,15)};
5626mxArchiMate3Location.prototype.background=function(a,d,e,b,c){a.rect(0,0,b,c);a.fillAndStroke()};mxArchiMate3Location.prototype.foreground=function(a,d,e,b,c){a.setDashed(!1);a.translate(3,0);b-=6;a.begin();a.moveTo(.5*b,c);a.arcTo(.1775*b,.3*c,0,0,0,.345*b,.7*c);a.arcTo(.538*b,.364*c,0,0,1,.5*b,0);a.arcTo(.538*b,.364*c,0,0,1,.655*b,.7*c);a.arcTo(.1775*b,.3*c,0,0,0,.5*b,c);a.stroke()};mxCellRenderer.registerShape(mxArchiMate3Location.prototype.cst.LOCATION,mxArchiMate3Location);
5627function mxArchiMate3Gap(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMate3Gap,mxShape);mxArchiMate3Gap.prototype.cst={GAP:"mxgraph.archimate3.gap"};mxArchiMate3Gap.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1);a.translate(b-20,5);this.foreground(a,b-20,5,15,15)};
5628mxArchiMate3Gap.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,.85*c);a.arcTo(.35*b,.35*c,0,0,0,.5*b,.85*c);a.arcTo(.35*b,.35*c,0,0,1,0,.85*c);a.close();a.fillAndStroke()};mxArchiMate3Gap.prototype.foreground=function(a,d,e,b,c){a.setDashed(!1);a.translate(0,2);c-=4;a.ellipse(.15*b,0,.7*b,c);a.stroke();a.begin();a.moveTo(0,.35*c);a.lineTo(b,.35*c);a.moveTo(0,.65*c);a.lineTo(b,.65*c);a.stroke()};
5629mxCellRenderer.registerShape(mxArchiMate3Gap.prototype.cst.GAP,mxArchiMate3Gap);
5630mxArchiMate3Gap.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,
5631.75),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.85),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,.745),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,.85),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,.955),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.85),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.25),!1));return a};
5632function mxArchiMate3Tech(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMate3Tech,mxShape);mxArchiMate3Tech.prototype.cst={TECH:"mxgraph.archimate3.tech",TYPE:"techType",DEVICE:"device",PLATEAU:"plateau",FACILITY:"facility",EQUIPMENT:"equipment",SYS_SW:"sysSw"};
5633mxArchiMate3Tech.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1);a.translate(b-30,15);this.foreground(a,b-30,15,15,15)};mxArchiMate3Tech.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(0,10);a.lineTo(10,0);a.lineTo(b,0);a.lineTo(b,c-10);a.lineTo(b-10,c);a.lineTo(0,c);a.close();a.moveTo(0,10);a.lineTo(b-10,10);a.lineTo(b-10,c);a.moveTo(b,0);a.lineTo(b-10,10);a.fillAndStroke()};
5634mxArchiMate3Tech.prototype.foreground=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxArchiMate3Tech.prototype.cst.TYPE,mxArchiMate3Tech.prototype.cst.DEVICE);a.setDashed(!1);f===mxArchiMate3Tech.prototype.cst.PLATEAU?(d=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"),a.setFillColor(d),a.rect(.4*b,0,.6*b,.2*c),a.fill(),a.rect(.2*b,.4*c,.6*b,.2*c),a.fill(),a.rect(0,.8*c,.6*b,.2*c),a.fill()):f===mxArchiMate3Tech.prototype.cst.FACILITY?(a.begin(),a.moveTo(0,c),a.lineTo(0,
56350),a.lineTo(.13*b,0),a.lineTo(.13*b,.7*c),a.lineTo(.42*b,.55*c),a.lineTo(.42*b,.7*c),a.lineTo(.71*b,.55*c),a.lineTo(.71*b,.7*c),a.lineTo(b,.55*c),a.lineTo(b,c),a.close(),a.stroke()):f===mxArchiMate3Tech.prototype.cst.EQUIPMENT?(a.begin(),a.moveTo(.72*b,.38*c),a.curveTo(.78*b,.38*b,.85*b,.34*c,.85*b,.26*c),a.curveTo(.85*b,.18*b,.78*b,.14*c,.73*b,.14*c),a.curveTo(.64*b,.14*b,.59*b,.2*c,.59*b,.26*c),a.curveTo(.59*b,.33*c,.65*b,.38*b,.72*b,.38*c),a.close(),a.moveTo(.68*b,.52*c),a.lineTo(.67*b,.45*c),
5636a.lineTo(.61*b,.43*c),a.lineTo(.56*b,.48*c),a.lineTo(.5*b,.42*c),a.lineTo(.54*b,.36*c),a.lineTo(.52*b,.31*c),a.lineTo(.45*b,.31*c),a.lineTo(.45*b,.22*c),a.lineTo(.52*b,.21*c),a.lineTo(.54*b,.16*c),a.lineTo(.5*b,.11*c),a.lineTo(.56*b,.05*c),a.lineTo(.62*b,.09*c),a.lineTo(.67*b,.07*c),a.lineTo(.68*b,0),a.lineTo(.77*b,0),a.lineTo(.78*b,.07*c),a.lineTo(.83*b,.09*c),a.lineTo(.89*b,.05*c),a.lineTo(.95*b,.11*c),a.lineTo(.91*b,.16*c),a.lineTo(.93*b,.21*c),a.lineTo(b,.22*c),a.lineTo(b,.31*c),a.lineTo(.93*
5637b,.31*c),a.lineTo(.91*b,.36*c),a.lineTo(.95*b,.41*c),a.lineTo(.89*b,.47*c),a.lineTo(.83*b,.43*c),a.lineTo(.78*b,.45*c),a.lineTo(.77*b,.52*c),a.lineTo(.68*b,.52*c),a.close(),a.moveTo(.36*b,.81*c),a.curveTo(.44*b,.81*c,.52*b,.75*c,.52*b,.67*c),a.curveTo(.52*b,.59*c,.45*b,.51*c,.35*b,.51*c),a.curveTo(.27*b,.51*c,.19*b,.58*c,.19*b,.67*c),a.curveTo(.19*b,.74*c,.27*b,.82*c,.36*b,.81*c),a.close(),a.moveTo(.21*b,.98*c),a.lineTo(.22*b,.89*c),a.lineTo(.16*b,.85*c),a.lineTo(.08*b,.88*c),a.lineTo(.02*b,.79*c),
5638a.lineTo(.09*b,.74*c),a.lineTo(.08*b,.67*c),a.lineTo(0,.63*c),a.lineTo(.03*b,.53*c),a.lineTo(.12*b,.54*c),a.lineTo(.16*b,.48*c),a.lineTo(.13*b,.4*c),a.lineTo(.22*b,.35*c),a.lineTo(.28*b,.42*c),a.lineTo(.36*b,.41*c),a.lineTo(.39*b,.33*c),a.lineTo(.5*b,.36*c),a.lineTo(.49*b,.45*c),a.lineTo(.55*b,.49*c),a.lineTo(.63*b,.45*c),a.lineTo(.69*b,.54*c),a.lineTo(.62*b,.6*c),a.lineTo(.63*b,.67*c),a.lineTo(.71*b,.7*c),a.lineTo(.68*b,.8*c),a.lineTo(.59*b,.79*c),a.lineTo(.55*b,.85*c),a.lineTo(.59*b,.79*c),a.lineTo(.55*
5639b,.85*c),a.lineTo(.59*b,.93*c),a.lineTo(.49*b,.98*c),a.lineTo(.43*b,.91*c),a.lineTo(.36*b,.92*c),a.lineTo(.32*b,c),a.lineTo(.21*b,.98*c),a.close(),a.stroke()):f===mxArchiMate3Tech.prototype.cst.SYS_SW?mxArchiMate3SysSw.prototype.background(a,d,e,b,c):f===mxArchiMate3Tech.prototype.cst.DEVICE&&mxArchiMate3Device.prototype.background(a,d,e,b,c)};mxCellRenderer.registerShape(mxArchiMate3Tech.prototype.cst.TECH,mxArchiMate3Tech);
5640mxArchiMate3Tech.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,10,0));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,
5641.75),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,0,-10));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,-10,0));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
5642.25),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,10));return a};function mxArchiMate3Distribution(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMate3Distribution,mxShape);mxArchiMate3Distribution.prototype.cst={DISTRIBUTION:"mxgraph.archimate3.distribution"};mxArchiMate3Distribution.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1)};
5643mxArchiMate3Distribution.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(.1*b,.25*c);a.lineTo(.9*b,.25*c);a.lineTo(b,.5*c);a.lineTo(.9*b,.75*c);a.lineTo(.1*b,.75*c);a.lineTo(0,.5*c);a.fillAndStroke();a.begin();a.moveTo(.2*b,0);a.lineTo(0,.5*c);a.lineTo(.2*b,c);a.moveTo(.8*b,0);a.lineTo(b,.5*c);a.lineTo(.8*b,c);a.stroke()};mxCellRenderer.registerShape(mxArchiMate3Distribution.prototype.cst.DISTRIBUTION,mxArchiMate3Distribution);
5644mxArchiMate3Distribution.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.2,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(.8,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.8,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(.2,
56451),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));return a};function mxArchiMate3Resource(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMate3Resource,mxShape);mxArchiMate3Resource.prototype.cst={RESOURCE:"mxgraph.archimate3.resource"};mxArchiMate3Resource.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1)};
5646mxArchiMate3Resource.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(.51*b,.34*c);a.lineTo(.51*b,.65*c);a.moveTo(.35*b,.34*c);a.lineTo(.35*b,.65*c);a.moveTo(.19*b,.34*c);a.lineTo(.19*b,.65*c);a.moveTo(.91*b,.4*c);a.curveTo(.93*b,.39*c,.95*b,.39*c,.97*b,.4*c);a.curveTo(.99*b,.4*c,b,.41*c,b,.43*c);a.curveTo(b,.48*c,b,.52*c,b,.57*c);a.curveTo(b,.58*c,.99*b,.59*c,.98*b,.6*c);a.curveTo(.96*b,.6*c,.93*b,.6*c,.91*b,.6*c);a.moveTo(0,.73*c);a.curveTo(0,.6*c,0,.43*c,0,.27*c);a.curveTo(0,.24*c,.03*
5647b,.21*c,.08*b,.21*c);a.curveTo(.33*b,.2*c,.61*b,.2*c,.84*b,.21*c);a.curveTo(.88*b,.22*c,.89*b,.24*c,.9*b,.26*c);a.curveTo(.91*b,.41*c,.91*b,.57*c,.9*b,.72*c);a.curveTo(.9*b,.74*c,.88*b,.78*c,.83*b,.79*c);a.curveTo(.57*b,.79*c,.32*b,.79*c,.06*b,.79*c);a.curveTo(.02*b,.78*c,0,.76*c,0,.73*c);a.close();a.stroke()};mxCellRenderer.registerShape(mxArchiMate3Resource.prototype.cst.RESOURCE,mxArchiMate3Resource);
5648function mxArchiMate3Capability(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMate3Capability,mxShape);mxArchiMate3Capability.prototype.cst={CAPABILITY:"mxgraph.archimate3.capability"};mxArchiMate3Capability.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1)};
5649mxArchiMate3Capability.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(b,0);a.lineTo(b,c);a.lineTo(0,c);a.lineTo(0,.67*c);a.lineTo(.33*b,.67*c);a.lineTo(.33*b,.33*c);a.lineTo(.67*b,.33*c);a.lineTo(.67*b,0);a.close();a.moveTo(.67*b,.33*c);a.lineTo(b,.33*c);a.moveTo(.33*b,.67*c);a.lineTo(b,.67*c);a.moveTo(.33*b,.67*c);a.lineTo(.33*b,c);a.moveTo(.67*b,.33*c);a.lineTo(.67*b,c);a.stroke()};mxCellRenderer.registerShape(mxArchiMate3Capability.prototype.cst.CAPABILITY,mxArchiMate3Capability);
5650function mxArchiMate3Course(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMate3Course,mxShape);mxArchiMate3Course.prototype.cst={COURSE:"mxgraph.archimate3.course"};mxArchiMate3Course.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1)};
5651mxArchiMate3Course.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(0,c);a.arcTo(.7*b,.7*c,0,0,1,.41*b,.56*c);a.moveTo(.14*b,.54*c);a.lineTo(.41*b,.56*c);a.lineTo(.3*b,.78*c);a.stroke();a.ellipse(.4*b,0,.6*b,.6*c);a.stroke();a.ellipse(.5*b,.1*c,.4*b,.4*c);a.stroke();d=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#000000");a.setFillColor(d);a.ellipse(.6*b,.2*c,.2*b,.2*c);a.fill()};mxCellRenderer.registerShape(mxArchiMate3Course.prototype.cst.COURSE,mxArchiMate3Course);
5652function mxArchiMate3Node(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMate3Node,mxShape);mxArchiMate3Node.prototype.cst={NODE:"mxgraph.archimate3.node"};mxArchiMate3Node.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1)};
5653mxArchiMate3Node.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(0,.25*c);a.lineTo(.25*b,0);a.lineTo(b,0);a.lineTo(b,.75*c);a.lineTo(.75*b,c);a.lineTo(0,c);a.close();a.moveTo(0,.25*c);a.lineTo(.75*b,.25*c);a.lineTo(.75*b,c);a.moveTo(b,0);a.lineTo(.75*b,.25*c);a.fillAndStroke()};mxCellRenderer.registerShape(mxArchiMate3Node.prototype.cst.NODE,mxArchiMate3Node);
5654mxArchiMate3Node.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,
56551),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
5656.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.25),!1));return a};function mxArchiMate3Device(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMate3Device,mxShape);mxArchiMate3Device.prototype.cst={DEVICE:"mxgraph.archimate3.device"};mxArchiMate3Device.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1)};
5657mxArchiMate3Device.prototype.background=function(a,d,e,b,c){a.roundrect(0,0,b,.88*c,.1*b,.1*c);a.fillAndStroke();a.begin();a.moveTo(.1*b,.88*c);a.lineTo(0,c);a.lineTo(b,c);a.lineTo(.9*b,.88*c);a.fillAndStroke()};mxCellRenderer.registerShape(mxArchiMate3Device.prototype.cst.DEVICE,mxArchiMate3Device);
5658mxArchiMate3Device.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(.03,.03),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.97,.03),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,
5659.75),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.25),!1));return a};
5660function mxArchiMate3SysSw(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMate3SysSw,mxShape);mxArchiMate3SysSw.prototype.cst={SYS_SW:"mxgraph.archimate3.sysSw"};mxArchiMate3SysSw.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1)};mxArchiMate3SysSw.prototype.background=function(a,d,e,b,c){a.ellipse(.3*b,0,.7*b,.7*c);a.stroke();a.ellipse(0,.02*c,.98*b,.98*c);a.fillAndStroke()};
5661mxCellRenderer.registerShape(mxArchiMate3SysSw.prototype.cst.SYS_SW,mxArchiMate3SysSw);function mxArchiMate3Artifact(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMate3Artifact,mxShape);mxArchiMate3Artifact.prototype.cst={ARTIFACT:"mxgraph.archimate3.artifact"};mxArchiMate3Artifact.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1)};
5662mxArchiMate3Artifact.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(0,0);a.lineTo(.7*b,0);a.lineTo(b,.22*c);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fillAndStroke();a.begin();a.moveTo(.7*b,0);a.lineTo(.7*b,.22*c);a.lineTo(b,.22*c);a.stroke()};mxCellRenderer.registerShape(mxArchiMate3Artifact.prototype.cst.ARTIFACT,mxArchiMate3Artifact);
5663mxArchiMate3Artifact.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.7,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.85,.11),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.22),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,
5664.75),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.25),!1));return a};
5665function mxArchiMate3CommNetw(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMate3CommNetw,mxShape);mxArchiMate3CommNetw.prototype.cst={COMM_NETW:"mxgraph.archimate3.commNetw"};mxArchiMate3CommNetw.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1)};
5666mxArchiMate3CommNetw.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(.2*b,c);a.lineTo(0,.5*c);a.lineTo(.2*b,0);a.moveTo(.8*b,c);a.lineTo(b,.5*c);a.lineTo(.8*b,0);a.moveTo(0,.5*c);a.lineTo(b,.5*c);a.stroke()};mxCellRenderer.registerShape(mxArchiMate3CommNetw.prototype.cst.COMM_NETW,mxArchiMate3CommNetw);mxArchiMate3CommNetw.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));return a};
5667function mxArchiMate3Path(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxArchiMate3Path,mxShape);mxArchiMate3Path.prototype.cst={PATH:"mxgraph.archimate3.path"};mxArchiMate3Path.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1)};
5668mxArchiMate3Path.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(.2*b,c);a.lineTo(0,.5*c);a.lineTo(.2*b,0);a.moveTo(.8*b,c);a.lineTo(b,.5*c);a.lineTo(.8*b,0);a.stroke();a.setDashed(!0);a.begin();a.moveTo(0,.5*c);a.lineTo(b,.5*c);a.stroke()};mxCellRenderer.registerShape(mxArchiMate3Path.prototype.cst.PATH,mxArchiMate3Path);
5669mxArchiMate3Path.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));return a};function mxShapeArrows2Arrow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=this.dy=.5;this.notch=0}mxUtils.extend(mxShapeArrows2Arrow,mxActor);
5670mxShapeArrows2Arrow.prototype.customProperties=[{name:"dx",dispName:"Arrowhead Length",type:"float",min:0,defVal:40},{name:"dy",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.6},{name:"notch",dispName:"Notch",type:"float",min:0,defVal:0},{name:"headCrossline",dispName:"Head Crossline",type:"bool",defVal:!1},{name:"tailCrossline",dispName:"Tail Crossline",type:"bool",defVal:!1}];mxShapeArrows2Arrow.prototype.cst={ARROW:"mxgraph.arrows2.arrow"};
5671mxShapeArrows2Arrow.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=.5*c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));e=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));var f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),g=mxUtils.getValue(this.style,"headCrossline",!1),h=mxUtils.getValue(this.style,"tailCrossline",!1);a.begin();a.moveTo(0,d);a.lineTo(b-e,d);a.lineTo(b-e,0);a.lineTo(b,
5672.5*c);a.lineTo(b-e,c);a.lineTo(b-e,c-d);a.lineTo(0,c-d);a.lineTo(f,.5*c);a.close();a.fillAndStroke();a.setShadow(!1);g&&(a.begin(),a.moveTo(b-e,d),a.lineTo(b-e,c-d),a.stroke());h&&(a.begin(),a.moveTo(f,d),a.lineTo(f,c-d),a.stroke())};
5673mxShapeArrows2Arrow.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=a.width,e=a.height,b,c,f=this.direction||mxConstants.DIRECTION_EAST;mxUtils.getValue(this.style,"flipH",!1)&&(f==mxConstants.DIRECTION_WEST?f=mxConstants.DIRECTION_EAST:f==mxConstants.DIRECTION_EAST&&(f=mxConstants.DIRECTION_WEST));mxUtils.getValue(this.style,"flipV",!1)&&(f==mxConstants.DIRECTION_NORTH?f=mxConstants.DIRECTION_SOUTH:f==mxConstants.DIRECTION_SOUTH&&(f=mxConstants.DIRECTION_NORTH));
5674f==mxConstants.DIRECTION_NORTH||f==mxConstants.DIRECTION_SOUTH?(b=.5*d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))))):(b=.5*e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))));return f==mxConstants.DIRECTION_EAST?new mxRectangle(a.x,a.y+b,d-c,e-2*b):f==mxConstants.DIRECTION_WEST?
5675new mxRectangle(a.x+c,a.y+b,d-c,e-2*b):f==mxConstants.DIRECTION_NORTH?new mxRectangle(a.x+b,a.y+c,d-2*b,e-c):new mxRectangle(a.x+b,a.y,d-2*b,e-c)}return a};mxCellRenderer.registerShape(mxShapeArrows2Arrow.prototype.cst.ARROW,mxShapeArrows2Arrow);
5676Graph.handleFactory[mxShapeArrows2Arrow.prototype.cst.ARROW]=function(a){var d=[Graph.createHandle(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+a.width-b,a.y+c*a.height/2)},function(a,b){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.width-parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch)),
5677a.x+a.width-b.x)))/100;this.state.style.dy=Math.round(100*Math.max(0,Math.min(1,(b.y-a.y)/a.height*2)))/100})];a=Graph.createHandle(a,["notch"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))));return new mxPoint(a.x+b,a.y+a.height/2)},function(a,b){this.state.style.notch=Math.round(100*Math.max(0,Math.min(a.width-parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)),b.x-a.x)))/100});d.push(a);return d};
5678mxShapeArrows2Arrow.prototype.getConstraints=function(a,d,e){a=[];var b=.5*e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
56790,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,e-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),e-b));return a};
5680function mxShapeArrows2TwoWayArrow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=this.dy=.5}mxUtils.extend(mxShapeArrows2TwoWayArrow,mxActor);mxShapeArrows2TwoWayArrow.prototype.cst={TWO_WAY_ARROW:"mxgraph.arrows2.twoWayArrow"};mxShapeArrows2TwoWayArrow.prototype.customProperties=[{name:"dx",dispName:"Arrowhead Length",type:"float",min:0,defVal:35},{name:"dy",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.6}];
5681mxShapeArrows2TwoWayArrow.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=.5*c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));e=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));a.begin();a.moveTo(e,d);a.lineTo(b-e,d);a.lineTo(b-e,0);a.lineTo(b,.5*c);a.lineTo(b-e,c);a.lineTo(b-e,c-d);a.lineTo(e,c-d);a.lineTo(e,c);a.lineTo(0,.5*c);a.lineTo(e,0);a.close();a.fillAndStroke()};
5682mxShapeArrows2TwoWayArrow.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var d=a.width,e=a.height,b=this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH,c,f;b?(c=.5*d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))))):(c=.5*e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),f=Math.max(0,Math.min(d,
5683parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))));return b?new mxRectangle(a.x+c,a.y+f,d-2*c,e-2*f):new mxRectangle(a.x+f,a.y+c,d-2*f,e-2*c)}return a};mxCellRenderer.registerShape(mxShapeArrows2TwoWayArrow.prototype.cst.TWO_WAY_ARROW,mxShapeArrows2TwoWayArrow);mxShapeArrows2TwoWayArrow.prototype.constraints=null;
5684Graph.handleFactory[mxShapeArrows2TwoWayArrow.prototype.cst.TWO_WAY_ARROW]=function(a){return[Graph.createHandle(a,["dx","dy"],function(a){var d=Math.max(0,Math.min(a.width/2,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+a.width-d,a.y+b*a.height/2)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.width/2,a.x+a.width-e.x)))/100;this.state.style.dy=Math.round(100*
5685Math.max(0,Math.min(1,(e.y-a.y)/a.height*2)))/100})]};
5686mxShapeArrows2TwoWayArrow.prototype.getConstraints=function(a,d,e){a=[];var b=.5*e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e));a.push(new mxConnectionConstraint(new mxPoint(0,
56870),!1,null,c,e-b));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,e-b));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,0,e-b));return a};
5688function mxShapeArrows2StylisedArrow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=this.dy=.5;this.notch=0;this.feather=.5}mxUtils.extend(mxShapeArrows2StylisedArrow,mxActor);
5689mxShapeArrows2StylisedArrow.prototype.customProperties=[{name:"dx",dispName:"Arrowhead Length",type:"float",min:0,defVal:40},{name:"dy",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.6},{name:"notch",dispName:"Notch",type:"float",min:0,defVal:0},{name:"feather",dispName:"Feather",type:"float",min:0,max:1,defVal:.4}];mxShapeArrows2StylisedArrow.prototype.cst={STYLISED_ARROW:"mxgraph.arrows2.stylisedArrow"};
5690mxShapeArrows2StylisedArrow.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=.5*c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));e=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));var f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),g=.5*c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"feather",this.feather))));a.begin();a.moveTo(0,g);a.lineTo(b-e,d);a.lineTo(b-e-10,0);
5691a.lineTo(b,.5*c);a.lineTo(b-e-10,c);a.lineTo(b-e,c-d);a.lineTo(0,c-g);a.lineTo(f,.5*c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeArrows2StylisedArrow.prototype.cst.STYLISED_ARROW,mxShapeArrows2StylisedArrow);mxShapeArrows2StylisedArrow.prototype.constraints=null;
5692Graph.handleFactory[mxShapeArrows2StylisedArrow.prototype.cst.STYLISED_ARROW]=function(a){var d=[Graph.createHandle(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width-10,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+a.width-b,a.y+d*a.height/2)},function(a,c){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.width-10,a.width-parseFloat(mxUtils.getValue(this.state.style,
5693"notch",this.notch)),a.x+a.width-c.x)))/100;this.state.style.dy=Math.round(100*Math.max(0,Math.min(1,(c.y-a.y)/a.height*2)))/100})],e=Graph.createHandle(a,["notch"],function(a){var b=Math.max(0,Math.min(a.width-parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)),parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))));return new mxPoint(a.x+b,a.y+a.height/2)},function(a,c){this.state.style.notch=Math.round(100*Math.max(0,Math.min(a.width-parseFloat(mxUtils.getValue(this.state.style,
5694"dx",this.dx)),c.x-a.x)))/100});d.push(e);a=Graph.createHandle(a,["feather"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"feather",this.dy))));return new mxPoint(a.x,a.y+b*a.height/2)},function(a,c){this.state.style.feather=Math.round(100*Math.max(0,Math.min(1,(c.y-a.y)/a.height*2)))/100});d.push(a);return d};
5695mxShapeArrows2StylisedArrow.prototype.getConstraints=function(a,d,e){a=[];var b=.5*e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),g=.5*e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"feather",this.feather))));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
5696.5),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e-g));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c-10,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,e-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c-10,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),.5*(b+g)));
5697a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),e-.5*(b+g)));return a};function mxShapeArrows2SharpArrow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx2=this.dx1=this.dy1=.5;this.notch=0}mxUtils.extend(mxShapeArrows2SharpArrow,mxActor);mxShapeArrows2SharpArrow.prototype.cst={SHARP_ARROW:"mxgraph.arrows2.sharpArrow"};
5698mxShapeArrows2SharpArrow.prototype.customProperties=[{name:"dx1",dispName:"Arrowhead Arrow Width",type:"float",min:0,defVal:18},{name:"dy1",dispName:"Arrow Arrow Width",type:"float",min:0,max:1,defVal:.67},{name:"dx2",dispName:"Arrowhead Angle",type:"float",min:0,defVal:18},{name:"notch",dispName:"Notch",type:"float",min:0,defVal:0}];
5699mxShapeArrows2SharpArrow.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=.5*c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1))));e=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1))));var f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2)))),g=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),h=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1)))),
5700k=.5*c*Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1)))),l=0;0!=c&&(l=h+f*k*2/c);a.begin();a.moveTo(0,d);a.lineTo(b-e,d);a.lineTo(b-l,0);a.lineTo(b-f,0);a.lineTo(b,.5*c);a.lineTo(b-f,c);a.lineTo(b-l,c);a.lineTo(b-e,c-d);a.lineTo(0,c-d);a.lineTo(g,.5*c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeArrows2SharpArrow.prototype.cst.SHARP_ARROW,mxShapeArrows2SharpArrow);mxShapeArrows2SharpArrow.prototype.constraints=null;
5701Graph.handleFactory[mxShapeArrows2SharpArrow.prototype.cst.SHARP_ARROW]=function(a){var d=[Graph.createHandle(a,["dx1","dy1"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1)))),d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1))));return new mxPoint(a.x+a.width-b,a.y+d*a.height/2)},function(a,c){this.state.style.dx1=Math.round(100*Math.max(0,Math.min(a.width-parseFloat(mxUtils.getValue(this.state.style,"notch",
5702this.notch)),a.x+a.width-c.x)))/100;this.state.style.dy1=Math.round(100*Math.max(0,Math.min(1,(c.y-a.y)/a.height*2)))/100})],e=Graph.createHandle(a,["notch"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))));return new mxPoint(a.x+b,a.y+a.height/2)},function(a,c){this.state.style.notch=Math.round(100*Math.max(0,Math.min(a.width-parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1)),c.x-a.x)))/100});d.push(e);a=Graph.createHandle(a,
5703["dx2"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx2))));return new mxPoint(a.x+a.width-b,a.y)},function(a,c){this.state.style.dx2=Math.round(100*Math.max(0,Math.min(a.width-parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch)),a.x+a.width-c.x)))/100});d.push(a);return d};
5704mxShapeArrows2SharpArrow.prototype.getConstraints=function(a,d,e){a=[];var b=.5*e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1)))),c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1)))),f=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2)))),g=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),h=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1)))),k=.5*e*
5705Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1)))),l=0;0!=e&&(l=h+f*k*2/e);a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,g,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-l,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-f,0));a.push(new mxConnectionConstraint(new mxPoint(0,
57060),!1,null,0,e-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,e-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-l,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-f,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),e-b));return a};
5707function mxShapeArrows2SharpArrow2(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx3=this.dy3=this.dx2=this.dx1=this.dy1=.5;this.notch=0}mxUtils.extend(mxShapeArrows2SharpArrow2,mxActor);
5708mxShapeArrows2SharpArrow2.prototype.customProperties=[{name:"dx1",dispName:"Arrowhead Arrow Width",type:"float",min:0,defVal:18},{name:"dy1",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.67},{name:"dx2",dispName:"Arrowhead Angle",type:"float",min:0,defVal:18},{name:"dx3",dispName:"Arrowhead Edge X",type:"float",min:0,defVal:27},{name:"dy3",dispName:"Arrowhead Edge Y",type:"float",min:0,max:1,defVal:.15},{name:"notch",dispName:"Notch",type:"float",min:0,defVal:0}];
5709mxShapeArrows2SharpArrow2.prototype.cst={SHARP_ARROW2:"mxgraph.arrows2.sharpArrow2"};
5710mxShapeArrows2SharpArrow2.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=.5*c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1))));e=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1))));var f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2)))),g=.5*c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy3",this.dy3)))),h=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx3",
5711this.dx3)))),k=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1));parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1));a.begin();a.moveTo(0,d);a.lineTo(b-e,d);a.lineTo(b-h,g);a.lineTo(b-f,0);a.lineTo(b,.5*c);a.lineTo(b-f,c);a.lineTo(b-h,c-g);a.lineTo(b-e,c-d);a.lineTo(0,c-d);a.lineTo(k,.5*c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeArrows2SharpArrow2.prototype.cst.SHARP_ARROW2,mxShapeArrows2SharpArrow2);
5712mxShapeArrows2SharpArrow2.prototype.constraints=null;
5713Graph.handleFactory[mxShapeArrows2SharpArrow2.prototype.cst.SHARP_ARROW2]=function(a){var d=[Graph.createHandle(a,["dx1","dy1"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1)))),d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1))));return new mxPoint(a.x+a.width-b,a.y+d*a.height/2)},function(a,c){this.state.style.dx1=Math.round(100*Math.max(0,Math.min(a.width-parseFloat(mxUtils.getValue(this.state.style,
5714"notch",this.notch)),a.x+a.width-c.x)))/100;this.state.style.dy1=Math.round(100*Math.max(0,Math.min(1,(c.y-a.y)/a.height*2)))/100})],e=Graph.createHandle(a,["notch"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))));return new mxPoint(a.x+b,a.y+a.height/2)},function(a,c){this.state.style.notch=Math.round(100*Math.max(0,Math.min(a.width-parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1)),c.x-a.x)))/100});d.push(e);e=Graph.createHandle(a,
5715["dx2"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx2))));return new mxPoint(a.x+a.width-b,a.y)},function(a,c){this.state.style.dx2=Math.round(100*Math.max(0,Math.min(a.width-parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch)),a.x+a.width-c.x)))/100});d.push(e);a=Graph.createHandle(a,["dx3","dy3"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx3",this.dx3)))),d=Math.max(0,Math.min(1-
5716parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1))/2,parseFloat(mxUtils.getValue(this.state.style,"dy3",this.dy3))));return new mxPoint(a.x+a.width-b,a.y+d*a.height/2)},function(a,c){this.state.style.dx3=Math.round(100*Math.max(parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx2)),Math.min(a.width,a.x+a.width-c.x)))/100;this.state.style.dy3=Math.round(100*Math.max(0,Math.min(parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1)),(c.y-a.y)/a.height*2)))/100});d.push(a);return d};
5717mxShapeArrows2SharpArrow2.prototype.getConstraints=function(a,d,e){a=[];var b=.5*e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1)))),c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1)))),f=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2)))),g=.5*e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy3",this.dy3)))),h=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx3",this.dx3)))),k=Math.max(0,
5718Math.min(d,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1));parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,k,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-
5719h,g));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,e-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-h,e-g));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-f,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),e-b));return a};
5720function mxShapeArrows2CalloutArrow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=this.dy=.5;this.arrowHead=this.notch=0}mxUtils.extend(mxShapeArrows2CalloutArrow,mxActor);
5721mxShapeArrows2CalloutArrow.prototype.customProperties=[{name:"dx",dispName:"Arrowhead Length",type:"float",min:0,defVal:20},{name:"arrowHead",dispName:"Arrowhead Width",type:"float",min:0,defVal:10},{name:"dy",dispName:"Arrow Width",type:"float",min:0,defVal:10},{name:"notch",dispName:"Rectangle Width",type:"float",min:0,defVal:60}];mxShapeArrows2CalloutArrow.prototype.cst={CALLOUT_ARROW:"mxgraph.arrows2.calloutArrow"};
5722mxShapeArrows2CalloutArrow.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));e=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));var f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),g=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead))));a.begin();a.moveTo(0,0);a.lineTo(f,0);a.lineTo(f,.5*c-d);a.lineTo(b-
5723e,.5*c-d);a.lineTo(b-e,.5*c-d-g);a.lineTo(b,.5*c);a.lineTo(b-e,.5*c+d+g);a.lineTo(b-e,.5*c+d);a.lineTo(f,.5*c+d);a.lineTo(f,c);a.lineTo(0,c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeArrows2CalloutArrow.prototype.cst.CALLOUT_ARROW,mxShapeArrows2CalloutArrow);mxShapeArrows2CalloutArrow.prototype.constraints=null;
5724Graph.handleFactory[mxShapeArrows2CalloutArrow.prototype.cst.CALLOUT_ARROW]=function(a){var d=[Graph.createHandle(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.height/2,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)))),d=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),b=Math.max(0,Math.min(a.height/2-b,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+a.width-d,a.y+a.height/2-b)},function(a,
5725c){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.width-parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch)),a.x+a.width-c.x)))/100;this.state.style.dy=Math.round(100*Math.max(0,Math.min(a.height/2-parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)),a.y+a.height/2-c.y)))/100})],e=Graph.createHandle(a,["notch"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))));return new mxPoint(a.x+b,a.y+a.height/
57262)},function(a,c){this.state.style.notch=Math.round(100*Math.max(0,Math.min(a.width-parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)),c.x-a.x)))/100});d.push(e);a=Graph.createHandle(a,["arrowHead"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),d=Math.max(0,Math.min(a.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)))),e=Math.max(0,Math.min(a.height/2,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",
5727this.arrowHead))));return new mxPoint(a.x+a.width-b,a.y+a.height/2-d-e)},function(a,c){this.state.style.arrowHead=Math.round(100*Math.max(0,Math.min(a.height/2-parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)),a.y+a.height/2-parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))-c.y)))/100});d.push(a);return d};
5728mxShapeArrows2CalloutArrow.prototype.getConstraints=function(a,d,e){a=[];var b=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),g=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
57290),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,.5*e-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,.5*e-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,.5*e-b-g));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,.5*e+b+g));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,.5*e+b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,
5730null,f,.5*e+b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*f,e));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,.5*(f+d-c),-b));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,.5*(f+d-c),b));return a};
5731function mxShapeArrows2BendArrow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=this.dy=.5;this.notch=0;this.arrowHead=40}mxUtils.extend(mxShapeArrows2BendArrow,mxActor);
5732mxShapeArrows2BendArrow.prototype.customProperties=[{name:"dx",dispName:"Arrowhead Length",type:"float",min:0,defVal:38},{name:"dy",dispName:"Arrow Width",type:"float",min:0,defVal:15},{name:"notch",dispName:"Notch",type:"float",min:0,defVal:0},{name:"arrowHead",dispName:"Arrowhead Width",type:"float",min:0,defVal:55},{name:"rounded",dispName:"Rounded",type:"boolean",defVal:!1}];mxShapeArrows2BendArrow.prototype.cst={BEND_ARROW:"mxgraph.arrows2.bendArrow"};
5733mxShapeArrows2BendArrow.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));e=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));var f=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),g=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead)))),h=mxUtils.getValue(this.style,"rounded","0");a.begin();a.moveTo(b-e,0);
5734a.lineTo(b,.5*g);a.lineTo(b-e,g);a.lineTo(b-e,g/2+d);"1"==h?(a.lineTo(2.2*d,g/2+d),a.arcTo(.2*d,.2*d,0,0,0,2*d,g/2+1.2*d)):a.lineTo(2*d,g/2+d);a.lineTo(2*d,c);a.lineTo(d,c-f);a.lineTo(0,c);"1"==h?(a.lineTo(0,g/2+d),a.arcTo(2*d,2*d,0,0,1,2*d,g/2-d)):a.lineTo(0,g/2-d);a.lineTo(b-e,g/2-d);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeArrows2BendArrow.prototype.cst.BEND_ARROW,mxShapeArrows2BendArrow);mxShapeArrows2BendArrow.prototype.constraints=null;
5735Graph.handleFactory[mxShapeArrows2BendArrow.prototype.cst.BEND_ARROW]=function(a){var d=[Graph.createHandle(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)))),d=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),e=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+a.width-d,a.y+b/2-e)},function(a,c){this.state.style.dx=
5736Math.round(100*Math.max(0,Math.min(a.width-2.2*parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)),a.x+a.width-c.x)))/100;this.state.style.dy=Math.round(100*Math.max(0,Math.min(parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))/2,a.y+parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))/2-c.y)))/100})],e=Graph.createHandle(a,["notch"],function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)))),
5737d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)))),b=Math.max(0,Math.min(a.height-b/2-d,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))));return new mxPoint(a.x+d,a.y+a.height-b)},function(a,c){this.state.style.notch=Math.round(100*Math.max(0,Math.min(a.height-parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))/2-parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)),a.y+a.height-c.y)))/100});d.push(e);a=Graph.createHandle(a,
5738["arrowHead"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),d=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))));return new mxPoint(a.x+a.width-b,a.y+d)},function(a,c){this.state.style.arrowHead=Math.round(100*Math.max(2*parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)),Math.min(a.height,c.y-a.y)))/100});d.push(a);return d};
5739mxShapeArrows2BendArrow.prototype.getConstraints=function(a,d,e){a=[];var b=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),g=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead)))),h=mxUtils.getValue(this.style,"rounded","0");a.push(new mxConnectionConstraint(new mxPoint(0,
57400),!1,null,.5*(d-c+2*b),g/2-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,g/2-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*g));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,g));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,g/2+b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c+2*b),g/2+b));a.push(new mxConnectionConstraint(new mxPoint(0,
57410),!1,null,2*b,.5*(e-g/2-b)+g/2+b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2*b,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,e-f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(e-g/2-b)+g/2+b));"1"==h?(a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.586*b,g/2-.414*b)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2*b+.0586*b,g/2+b+.0586*b))):(a.push(new mxConnectionConstraint(new mxPoint(0,
57420),!1,null,0,g/2-b)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2*b,g/2+b)));return a};function mxShapeArrows2BendDoubleArrow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=this.dy=.5;this.notch=0;this.arrowHead=40}mxUtils.extend(mxShapeArrows2BendDoubleArrow,mxActor);
5743mxShapeArrows2BendDoubleArrow.prototype.customProperties=[{name:"dx",dispName:"Arrowhead Length",type:"float",min:0,defVal:38},{name:"dy",dispName:"Arrow Width",type:"float",min:0,defVal:15},{name:"arrowHead",dispName:"Arrowhead Width",type:"float",min:0,defVal:55},{name:"rounded",dispName:"Rounded",type:"boolean",defVal:!1}];mxShapeArrows2BendDoubleArrow.prototype.cst={BEND_DOUBLE_ARROW:"mxgraph.arrows2.bendDoubleArrow"};
5744mxShapeArrows2BendDoubleArrow.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));e=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));var f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead)))),g=mxUtils.getValue(this.style,"rounded","0");a.begin();a.moveTo(b-e,0);a.lineTo(b,.5*f);a.lineTo(b-e,f);a.lineTo(b-e,f/2+d);"1"==g?(a.lineTo(f/2+1.2*
5745d,f/2+d),a.arcTo(.2*d,.2*d,0,0,0,f/2+d,f/2+1.2*d)):a.lineTo(f/2+d,f/2+d);a.lineTo(f/2+d,c-e);a.lineTo(f,c-e);a.lineTo(f/2,c);a.lineTo(0,c-e);a.lineTo(f/2-d,c-e);"1"==g?(a.lineTo(f/2-d,f/2+d),a.arcTo(2*d,2*d,0,0,1,f/2+d,f/2-d)):a.lineTo(f/2-d,f/2-d);a.lineTo(b-e,f/2-d);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeArrows2BendDoubleArrow.prototype.cst.BEND_DOUBLE_ARROW,mxShapeArrows2BendDoubleArrow);mxShapeArrows2BendDoubleArrow.prototype.constraints=null;
5746Graph.handleFactory[mxShapeArrows2BendDoubleArrow.prototype.cst.BEND_DOUBLE_ARROW]=function(a){var d=[Graph.createHandle(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(Math.min(a.height,a.width)-parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)),parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)))),c=Math.max(0,Math.min(Math.min(a.width,a.height)-b,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.state.style,
5747"dy",this.dy))));return new mxPoint(a.x+a.width-c,a.y+b/2-d)},function(a,b){this.state.style.dx=Math.round(100*Math.max(0,Math.min(Math.min(a.width,a.height)-parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)),a.x+a.width-b.x)))/100;this.state.style.dy=Math.round(100*Math.max(0,Math.min(parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))/2,a.y+parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))/2-b.y)))/100})];a=Graph.createHandle(a,
5748["arrowHead"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),c=Math.max(0,Math.min(Math.min(a.height,a.width)-b,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))));return new mxPoint(a.x+a.width-b,a.y+c)},function(a,b){this.state.style.arrowHead=Math.round(100*Math.max(2*parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)),Math.min(Math.min(a.height,a.width)-parseFloat(mxUtils.getValue(this.state.style,"dx",
5749this.dx)),b.y-a.y)))/100});d.push(a);return d};
5750mxShapeArrows2BendDoubleArrow.prototype.getConstraints=function(a,d,e){a=[];var b=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead)))),g=mxUtils.getValue(this.style,"rounded","0");a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
5751d,.5*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,f/2+b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(f/2+b+d-c),f/2+b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(f/2+b+d-c),f/2-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f/2+b,.5*(f/2+b+e-c)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f/2-b,.5*(f/2+b+e-c)));a.push(new mxConnectionConstraint(new mxPoint(0,
57520),!1,null,f/2+b,e-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,e-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f/2,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f/2-b,e-c));"1"==g?(a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f/2-.414*b,f/2-.414*b)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f/2+b+.0586*b,f/2+b+.0586*b))):(a.push(new mxConnectionConstraint(new mxPoint(0,
57530),!1,null,f/2-b,f/2-b)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f/2+b,f/2+b)));return a};function mxShapeArrows2CalloutDoubleArrow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=this.dy=.5;this.arrowHead=this.notch=0}mxUtils.extend(mxShapeArrows2CalloutDoubleArrow,mxActor);
5754mxShapeArrows2CalloutDoubleArrow.prototype.customProperties=[{name:"dx",dispName:"Arrowhead Length",type:"float",min:0,defVal:20},{name:"dy",dispName:"Arrow Width",type:"float",min:0,defVal:10},{name:"arrowHead",dispName:"Arrowhead Width",type:"float",min:0,defVal:10},{name:"notch",dispName:"Rect Size",type:"float",min:0,defVal:24}];mxShapeArrows2CalloutDoubleArrow.prototype.cst={CALLOUT_DOUBLE_ARROW:"mxgraph.arrows2.calloutDoubleArrow"};
5755mxShapeArrows2CalloutDoubleArrow.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));e=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));var f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),g=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead))));a.begin();a.moveTo(b/2-f,0);a.lineTo(b/2+f,0);a.lineTo(b/2+f,
5756.5*c-d);a.lineTo(b-e,.5*c-d);a.lineTo(b-e,.5*c-d-g);a.lineTo(b,.5*c);a.lineTo(b-e,.5*c+d+g);a.lineTo(b-e,.5*c+d);a.lineTo(b/2+f,.5*c+d);a.lineTo(b/2+f,c);a.lineTo(b/2-f,c);a.lineTo(b/2-f,.5*c+d);a.lineTo(e,.5*c+d);a.lineTo(e,.5*c+d+g);a.lineTo(0,.5*c);a.lineTo(e,.5*c-d-g);a.lineTo(e,.5*c-d);a.lineTo(b/2-f,.5*c-d);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeArrows2CalloutDoubleArrow.prototype.cst.CALLOUT_DOUBLE_ARROW,mxShapeArrows2CalloutDoubleArrow);
5757mxShapeArrows2CalloutDoubleArrow.prototype.constraints=null;
5758Graph.handleFactory[mxShapeArrows2CalloutDoubleArrow.prototype.cst.CALLOUT_DOUBLE_ARROW]=function(a){var d=[Graph.createHandle(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.height/2,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)))),d=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),b=Math.max(0,Math.min(a.height/2-b,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+a.width-d,a.y+a.height/
57592-b)},function(a,c){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.width/2-parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch)),a.x+a.width-c.x)))/100;this.state.style.dy=Math.round(100*Math.max(0,Math.min(a.height/2-parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)),a.y+a.height/2-c.y)))/100})],e=Graph.createHandle(a,["notch"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))));return new mxPoint(a.x+
5760a.width/2+b,a.y+a.height/2)},function(a,c){this.state.style.notch=Math.round(100*Math.max(0,Math.min(a.width/2-parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)),c.x-a.x-a.width/2)))/100});d.push(e);a=Graph.createHandle(a,["arrowHead"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),d=Math.max(0,Math.min(a.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)))),e=Math.max(0,Math.min(a.height/2,parseFloat(mxUtils.getValue(this.state.style,
5761"arrowHead",this.arrowHead))));return new mxPoint(a.x+a.width-b,a.y+a.height/2-d-e)},function(a,c){this.state.style.arrowHead=Math.round(100*Math.max(0,Math.min(a.height/2-parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)),a.y+a.height/2-parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))-c.y)))/100});d.push(a);return d};
5762mxShapeArrows2CalloutDoubleArrow.prototype.getConstraints=function(a,d,e){a=[];var b=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),g=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead))));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,
57631),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d/2-f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d/2+f,0));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,d/2-f,0));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,d/2+f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,.5*e-b-g));a.push(new mxConnectionConstraint(new mxPoint(0,
57640),!1,null,d-c,.5*e+b+g));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*e-b-g));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*e+b+g));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(1.5*d-c+f),.5*e-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(1.5*d-c+f),.5*e+b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(.5*d+c-f),.5*e-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(.5*d+c-f),.5*e+b));return a};
5765function mxShapeArrows2CalloutQuadArrow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=this.dy=.5;this.arrowHead=this.notch=0}mxUtils.extend(mxShapeArrows2CalloutQuadArrow,mxActor);
5766mxShapeArrows2CalloutQuadArrow.prototype.customProperties=[{name:"dx",dispName:"Arrowhead Length",type:"float",min:0,defVal:20},{name:"dy",dispName:"Arrow Width",type:"float",min:0,defVal:10},{name:"notch",dispName:"Rect Size",type:"float",min:0,defVal:24},{name:"arrowHead",dispName:"Arrowhead Width",type:"float",min:0,defVal:10}];mxShapeArrows2CalloutQuadArrow.prototype.cst={CALLOUT_QUAD_ARROW:"mxgraph.arrows2.calloutQuadArrow"};
5767mxShapeArrows2CalloutQuadArrow.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));e=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));var f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),g=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead))));a.begin();a.moveTo(.5*b+d,.5*c-f);a.lineTo(.5*b+f,.5*c-f);a.lineTo(.5*
5768b+f,.5*c-d);a.lineTo(b-e,.5*c-d);a.lineTo(b-e,.5*c-d-g);a.lineTo(b,.5*c);a.lineTo(b-e,.5*c+d+g);a.lineTo(b-e,.5*c+d);a.lineTo(.5*b+f,.5*c+d);a.lineTo(.5*b+f,.5*c+f);a.lineTo(.5*b+d,.5*c+f);a.lineTo(.5*b+d,c-e);a.lineTo(.5*b+d+g,c-e);a.lineTo(.5*b,c);a.lineTo(.5*b-d-g,c-e);a.lineTo(.5*b-d,c-e);a.lineTo(.5*b-d,.5*c+f);a.lineTo(.5*b-f,.5*c+f);a.lineTo(.5*b-f,.5*c+d);a.lineTo(e,.5*c+d);a.lineTo(e,.5*c+d+g);a.lineTo(0,.5*c);a.lineTo(e,.5*c-d-g);a.lineTo(e,.5*c-d);a.lineTo(.5*b-f,.5*c-d);a.lineTo(.5*b-
5769f,.5*c-f);a.lineTo(.5*b-d,.5*c-f);a.lineTo(.5*b-d,e);a.lineTo(.5*b-d-g,e);a.lineTo(.5*b,0);a.lineTo(.5*b+d+g,e);a.lineTo(.5*b+d,e);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeArrows2CalloutQuadArrow.prototype.cst.CALLOUT_QUAD_ARROW,mxShapeArrows2CalloutQuadArrow);mxShapeArrows2CalloutQuadArrow.prototype.constraints=null;
5770Graph.handleFactory[mxShapeArrows2CalloutQuadArrow.prototype.cst.CALLOUT_QUAD_ARROW]=function(a){var d=[Graph.createHandle(a,["dx","dy"],function(a){parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead));var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),d=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+a.width-b,a.y+a.height/2-d)},function(a,c){this.state.style.dx=Math.round(100*
5771Math.max(0,Math.min(Math.min(a.width,a.height)/2-Math.max(parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch)),parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))),a.x+a.width-c.x)))/100;this.state.style.dy=Math.round(100*Math.max(0,Math.min(parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch)),a.y+a.height/2-c.y)))/100})],e=Graph.createHandle(a,["notch"],function(a){var b=Math.max(parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)),Math.min(Math.min(a.width,
5772a.height),parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))));return new mxPoint(a.x+a.width/2+b,a.y+a.height/2)},function(a,c){this.state.style.notch=Math.round(100*Math.max(parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)),Math.min(Math.min(a.width,a.height)/2-parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)),c.x-a.x-a.width/2)))/100});d.push(e);a=Graph.createHandle(a,["arrowHead"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,
5773"dx",this.dx)))),d=Math.max(0,Math.min(a.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)))),e=Math.max(0,Math.min(a.height/2,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))));return new mxPoint(a.x+a.width-b,a.y+a.height/2-d-e)},function(a,c){this.state.style.arrowHead=Math.round(100*Math.max(0,Math.min(a.height/2-parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)),a.y+a.height/2-c.y)))/100});d.push(a);return d};
5774mxShapeArrows2CalloutQuadArrow.prototype.getConstraints=function(a,d,e){a=[];var b=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),g=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead))));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,
57751),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d+b,.5*e-f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d+f,.5*e-f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d+f,.5*e-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d+b,.5*e+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d+f,.5*e+f));a.push(new mxConnectionConstraint(new mxPoint(0,
57760),!1,null,.5*d+f,.5*e+b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d-b,.5*e+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d-f,.5*e+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d-f,.5*e+b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d-b,.5*e-f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d-f,.5*e-f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d-f,.5*e-b));a.push(new mxConnectionConstraint(new mxPoint(0,
57770),!1,null,d-c,.5*e-b-g));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,.5*e+b+g));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d-b-g,e-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d+b+g,e-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*e-b-g));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*e+b+g));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d-b-g,c));a.push(new mxConnectionConstraint(new mxPoint(0,
57780),!1,null,.5*d+b+g,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*d+.5*(f-c),.5*e-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*d+.5*(f-c),.5*e+b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d-b,.75*e+.5*(f-c)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d+b,.75*e+.5*(f-c)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*d-.5*(f-c),.5*e-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*
5779d-.5*(f-c),.5*e+b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d-b,.25*e-.5*(f-c)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d+b,.25*e-.5*(f-c)));return a};function mxShapeArrows2CalloutDouble90Arrow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx1=this.dy1=.5;this.arrowHead=this.dy2=this.dx2=0}mxUtils.extend(mxShapeArrows2CalloutDouble90Arrow,mxActor);
5780mxShapeArrows2CalloutDouble90Arrow.prototype.customProperties=[{name:"dx1",dispName:"Arrowhead Length",type:"float",min:0,defVal:20},{name:"dy1",dispName:"Arrow Width",type:"float",min:0,defVal:10},{name:"dx2",dispName:"Callout Width",type:"float",min:0,defVal:70},{name:"dy2",dispName:"Callout Height",type:"float",min:0,defVal:70},{name:"arrowHead",dispName:"ArrowHead Width",type:"float",min:0,defVal:10}];mxShapeArrows2CalloutDouble90Arrow.prototype.cst={CALLOUT_DOUBLE_90_ARROW:"mxgraph.arrows2.calloutDouble90Arrow"};
5781mxShapeArrows2CalloutDouble90Arrow.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1))));e=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1))));var f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2)))),g=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dy2",this.dy2)))),h=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"arrowHead",
5782this.arrowHead))));a.begin();a.moveTo(0,0);a.lineTo(f,0);a.lineTo(f,.5*g-d);a.lineTo(b-e,.5*g-d);a.lineTo(b-e,.5*g-d-h);a.lineTo(b,.5*g);a.lineTo(b-e,.5*g+d+h);a.lineTo(b-e,.5*g+d);a.lineTo(f,.5*g+d);a.lineTo(f,g);a.lineTo(f/2+d,g);a.lineTo(f/2+d,c-e);a.lineTo(f/2+d+h,c-e);a.lineTo(f/2,c);a.lineTo(f/2-d-h,c-e);a.lineTo(f/2-d,c-e);a.lineTo(f/2-d,g);a.lineTo(0,g);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeArrows2CalloutDouble90Arrow.prototype.cst.CALLOUT_DOUBLE_90_ARROW,mxShapeArrows2CalloutDouble90Arrow);
5783mxShapeArrows2CalloutDouble90Arrow.prototype.constraints=null;
5784Graph.handleFactory[mxShapeArrows2CalloutDouble90Arrow.prototype.cst.CALLOUT_DOUBLE_90_ARROW]=function(a){var d=[Graph.createHandle(a,["dx1","dy1"],function(a){var b=Math.max(0,Math.min(parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2))/2,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)))),d=Math.max(0,Math.min(a.width-parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx2)),parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1)))),b=Math.max(0,Math.min(parseFloat(mxUtils.getValue(this.state.style,
5785"dy2",this.dy2))/2-b,parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1))));return new mxPoint(a.x+a.width-d,a.y+parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2))/2-b)},function(a,c){this.state.style.dx1=Math.round(100*Math.max(0,Math.min(a.width-parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx2)),a.height-parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2)),a.x+a.width-c.x)))/100;this.state.style.dy1=Math.round(100*Math.max(0,Math.min(parseFloat(mxUtils.getValue(this.state.style,
5786"dy2",this.dy2))/2-parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)),a.y+parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2))/2-c.y)))/100})],e=Graph.createHandle(a,["dx2","dy2"],function(a){var b=Math.max(parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1))+parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)),Math.min(a.width-parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1)),parseFloat(mxUtils.getValue(this.state.style,"dx2",
5787this.dx2)))),d=Math.max(parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1))+parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)),Math.min(a.height-parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1)),parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2))));return new mxPoint(a.x+b,a.y+d)},function(a,c){this.state.style.dx2=Math.round(100*Math.max(parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1))+parseFloat(mxUtils.getValue(this.state.style,
5788"arrowHead",this.arrowHead)),Math.min(a.width-parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1)),c.x-a.x)))/100;this.state.style.dy2=Math.round(100*Math.max(parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1))+parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)),Math.min(a.height-parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1)),c.y-a.y)))/100});d.push(e);a=Graph.createHandle(a,["arrowHead"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,
5789"dx1",this.dx1)))),d=Math.max(0,Math.min(parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2))/2,parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1)))),e=Math.max(0,Math.min(parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2))/2,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))));return new mxPoint(a.x+a.width-b,a.y+parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2))/2-d-e)},function(a,c){this.state.style.arrowHead=Math.round(100*Math.max(0,
5790Math.min(parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2))/2-parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1)),a.y+parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2))/2-parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1))-c.y)))/100});d.push(a);return d};
5791mxShapeArrows2CalloutDouble90Arrow.prototype.getConstraints=function(a,d,e){a=[];var b=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1)))),c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1)))),f=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2)))),g=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dy2",this.dy2)))),h=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead))));
5792a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c+f),.5*g-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,.5*g-b-h));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*g));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,.5*g+b+h));a.push(new mxConnectionConstraint(new mxPoint(0,
57930),!1,null,.5*(d-c+f),.5*g+b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,g));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*f+b,.5*(e-c+g)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*f-b,.5*(e-c+g)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f/2+b+h,e-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f/2,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f/2-b-h,e-c));a.push(new mxConnectionConstraint(new mxPoint(0,
57940),!1,null,0,g));return a};function mxShapeArrows2QuadArrow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=this.dy=.5;this.arrowHead=this.notch=0}mxUtils.extend(mxShapeArrows2QuadArrow,mxActor);
5795mxShapeArrows2QuadArrow.prototype.customProperties=[{name:"dx",dispName:"Arrowhead Length",type:"float",min:0,defVal:20},{name:"dy",dispName:"Arrow Width",type:"float",min:0,defVal:10},{name:"arrowHead",dispName:"Arrowhead Width",type:"float",min:0,defVal:10}];mxShapeArrows2QuadArrow.prototype.cst={QUAD_ARROW:"mxgraph.arrows2.quadArrow"};
5796mxShapeArrows2QuadArrow.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));e=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));var f=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead))));a.begin();a.moveTo(.5*b+d,.5*c-d);a.lineTo(b-e,.5*c-d);a.lineTo(b-e,.5*c-d-f);a.lineTo(b,.5*c);a.lineTo(b-e,.5*c+d+f);a.lineTo(b-e,.5*c+d);a.lineTo(.5*b+d,
5797.5*c+d);a.lineTo(.5*b+d,c-e);a.lineTo(.5*b+d+f,c-e);a.lineTo(.5*b,c);a.lineTo(.5*b-d-f,c-e);a.lineTo(.5*b-d,c-e);a.lineTo(.5*b-d,.5*c+d);a.lineTo(e,.5*c+d);a.lineTo(e,.5*c+d+f);a.lineTo(0,.5*c);a.lineTo(e,.5*c-d-f);a.lineTo(e,.5*c-d);a.lineTo(.5*b-d,.5*c-d);a.lineTo(.5*b-d,e);a.lineTo(.5*b-d-f,e);a.lineTo(.5*b,0);a.lineTo(.5*b+d+f,e);a.lineTo(.5*b+d,e);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeArrows2QuadArrow.prototype.cst.QUAD_ARROW,mxShapeArrows2QuadArrow);
5798mxShapeArrows2QuadArrow.prototype.constraints=null;
5799Graph.handleFactory[mxShapeArrows2QuadArrow.prototype.cst.QUAD_ARROW]=function(a){var d=[Graph.createHandle(a,["dx","dy"],function(a){parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead));var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),c=Math.max(0,Math.min(a.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+a.width-b,a.y+a.height/2-c)},function(a,b){this.state.style.dx=Math.round(100*Math.max(0,
5800Math.min(Math.min(a.width,a.height)/2-parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))-parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)),a.x+a.width-b.x)))/100;this.state.style.dy=Math.round(100*Math.max(0,Math.min(a.height/2-parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)),a.y+a.height/2-b.y)))/100})];a=Graph.createHandle(a,["arrowHead"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),
5801c=Math.max(0,Math.min(a.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)))),d=Math.max(0,Math.min(a.height/2,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))));return new mxPoint(a.x+a.width-b,a.y+a.height/2-c-d)},function(a,b){this.state.style.arrowHead=Math.round(100*Math.max(0,Math.min(a.height/2-parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)),a.y+a.height/2-b.y)))/100});d.push(a);return d};
5802mxShapeArrows2QuadArrow.prototype.getConstraints=function(a,d,e){a=[];var b=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead))));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,
5803.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,.5*e-b-f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,.5*e+b+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*e-b-f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*e+b+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d-b-f,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d+b+f,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
5804.5*d-b-f,e-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d+b+f,e-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d-b,.5*(c-b)+.25*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d+b,.5*(c-b)+.25*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d-b,.5*(b-c)+.75*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d+b,.5*(b-c)+.75*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-b)+.25*d,.5*e-b));
5805a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(c-b)+.25*d,.5*e+b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b-c)+.75*d,.5*e-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(b-c)+.75*d,.5*e+b));return a};function mxShapeArrows2TriadArrow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=this.dy=.5;this.arrowHead=0}mxUtils.extend(mxShapeArrows2TriadArrow,mxActor);
5806mxShapeArrows2TriadArrow.prototype.customProperties=[{name:"dx",dispName:"Arrowhead Length",type:"float",min:0,defVal:20},{name:"dy",dispName:"Arrow Width",type:"float",min:0,defVal:10},{name:"arrowHead",dispName:"Arrowhead Width",type:"float",min:0,defVal:40}];mxShapeArrows2TriadArrow.prototype.cst={TRIAD_ARROW:"mxgraph.arrows2.triadArrow"};
5807mxShapeArrows2TriadArrow.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));e=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));var f=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead))));a.begin();a.moveTo(.5*b+.5*f-d,c-f+d);a.lineTo(b-e,c-f+d);a.lineTo(b-e,c-f);a.lineTo(b,c-.5*f);a.lineTo(b-e,c);a.lineTo(b-e,c-d);a.lineTo(e,c-d);a.lineTo(e,
5808c);a.lineTo(0,c-.5*f);a.lineTo(e,c-f);a.lineTo(e,c-f+d);a.lineTo(.5*b-.5*f+d,c-f+d);a.lineTo(.5*b-.5*f+d,e);a.lineTo(.5*b-.5*f,e);a.lineTo(.5*b,0);a.lineTo(.5*b+.5*f,e);a.lineTo(.5*b+.5*f-d,e);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeArrows2TriadArrow.prototype.cst.TRIAD_ARROW,mxShapeArrows2TriadArrow);mxShapeArrows2TriadArrow.prototype.constraints=null;
5809Graph.handleFactory[mxShapeArrows2TriadArrow.prototype.cst.TRIAD_ARROW]=function(a){var d=[Graph.createHandle(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.height/2,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)))),c=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),b=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+a.width-c,a.y+a.height-b)},function(a,b){this.state.style.dx=
5810Math.round(100*Math.max(0,Math.min(Math.min(a.height-parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)),a.width/2-parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))/2),a.x+a.width-b.x)))/100;this.state.style.dy=Math.round(100*Math.max(0,Math.min(parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))/2,a.y+a.height-b.y)))/100})];a=Graph.createHandle(a,["arrowHead"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,
5811"dx",this.dx))));parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy));var c=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))));return new mxPoint(a.x+a.width-b,a.y+a.height-c)},function(a,b){this.state.style.arrowHead=Math.round(100*Math.max(2*parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)),Math.min(a.height-parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)),a.width-2*parseFloat(mxUtils.getValue(this.state.style,"dx",
5812this.dx)),a.y+a.height-b.y)))/100});d.push(a);return d};
5813mxShapeArrows2TriadArrow.prototype.getConstraints=function(a,d,e){a=[];var b=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead))));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,.5*-f,c));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
58140),!1,null,.5*d,e-b));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,.5*f,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,e-f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e-.5*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e-f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e-.5*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e));a.push(new mxConnectionConstraint(new mxPoint(0,
58150),!1,null,.5*(1.5*d-c+.5*f-b),e-f+b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(1.5*d-c+.5*f-b),e-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(.5*d+c-.5*f+b),e-f+b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(.5*d+c-.5*f+b),e-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d-.5*f+b,.5*(c+e-f+b)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d+.5*f-b,.5*(c+e-f+b)));return a};
5816function mxShapeArrows2TailedArrow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=this.dy=.5;this.arrowHead=this.notch=0}mxUtils.extend(mxShapeArrows2TailedArrow,mxActor);
5817mxShapeArrows2TailedArrow.prototype.customProperties=[{name:"dx1",dispName:"Arrowhead Length",type:"float",min:0,defVal:20},{name:"dy1",dispName:"Arrow Width",type:"float",min:0,defVal:10},{name:"dx2",dispName:"Tail Length",type:"float",min:0,defVal:25},{name:"dy2",dispName:"Tail Width",type:"float",min:0,defVal:30},{name:"notch",dispName:"Notch",type:"float",min:0,defVal:0},{name:"arrowHead",dispName:"Arrowhead Width",type:"float",min:0,defVal:20}];mxShapeArrows2TailedArrow.prototype.cst={TAILED_ARROW:"mxgraph.arrows2.tailedArrow"};
5818mxShapeArrows2TailedArrow.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1))));e=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1))));var f=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy2",this.dy2)))),g=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2)))),h=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),
5819k=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead)))),l=0;0!=f&&(l=g+f*(f-d)/f);a.begin();a.moveTo(0,.5*c-f);a.lineTo(g,.5*c-f);a.lineTo(l,.5*c-d);a.lineTo(b-e,.5*c-d);a.lineTo(b-e,.5*c-d-k);a.lineTo(b,.5*c);a.lineTo(b-e,.5*c+d+k);a.lineTo(b-e,.5*c+d);a.lineTo(l,.5*c+d);a.lineTo(g,.5*c+f);a.lineTo(0,.5*c+f);a.lineTo(h,.5*c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeArrows2TailedArrow.prototype.cst.TAILED_ARROW,mxShapeArrows2TailedArrow);
5820mxShapeArrows2TailedArrow.prototype.constraints=null;
5821Graph.handleFactory[mxShapeArrows2TailedArrow.prototype.cst.TAILED_ARROW]=function(a){var d=[Graph.createHandle(a,["dx1","dy1"],function(a){var b=Math.max(0,Math.min(a.height/2,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)))),d=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1)))),b=Math.max(0,Math.min(a.height/2-b,parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1))));return new mxPoint(a.x+a.width-d,a.y+a.height/2-b)},function(a,
5822c){this.state.style.dx1=Math.round(100*Math.max(0,Math.min(a.width-parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch)),a.width-parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx2)),a.x+a.width-c.x)))/100;this.state.style.dy1=Math.round(100*Math.max(0,Math.min(a.height/2-parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)),parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2)),a.y+a.height/2-c.y)))/100})],e=Graph.createHandle(a,["notch"],function(a){var b=
5823Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))));return new mxPoint(a.x+b,a.y+a.height/2)},function(a,c){this.state.style.notch=Math.round(100*Math.max(0,Math.min(a.width-parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1)),parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx2)),c.x-a.x)))/100});d.push(e);e=Graph.createHandle(a,["arrowHead"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx1",
5824this.dx1)))),d=Math.max(0,Math.min(a.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1)))),e=Math.max(0,Math.min(a.height/2,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))));return new mxPoint(a.x+a.width-b,a.y+a.height/2-d-e)},function(a,c){this.state.style.arrowHead=Math.round(100*Math.max(0,Math.min(a.height/2-parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1)),a.y+a.height/2-c.y)))/100});d.push(e);a=Graph.createHandle(a,["dx2","dy2"],function(a){var b=
5825Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx2)))),d=Math.max(0,Math.min(a.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2))));return new mxPoint(a.x+b,a.y+a.height/2-d)},function(a,c){this.state.style.dx2=Math.round(100*Math.max(parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch)),Math.min(a.width-parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1))-parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2))+parseFloat(mxUtils.getValue(this.state.style,
5826"dy1",this.dy1))-1,c.x-a.x)))/100;this.state.style.dy2=Math.round(100*Math.max(parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1)),Math.min(a.height/2,a.y+a.height/2-c.y)))/100});d.push(a);return d};
5827mxShapeArrows2TailedArrow.prototype.getConstraints=function(a,d,e){a=[];var b=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1)))),c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1)))),f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy2",this.dy2)))),g=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2)))),h=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),k=Math.max(0,
5828Math.min(e,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead)))),l=0;0!=f&&(l=g+f*(f-b)/f);a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,h,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*e-f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,.5*e-f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c+l),.5*e-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,.5*e-b-k));a.push(new mxConnectionConstraint(new mxPoint(0,
58290),!1,null,0,.5*e+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,.5*e+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c+l),.5*e+b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,.5*e+b+k));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));return a};function mxShapeArrows2TailedNotchedArrow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=this.dy=.5;this.arrowHead=this.notch=0}
5830mxUtils.extend(mxShapeArrows2TailedNotchedArrow,mxActor);
5831mxShapeArrows2TailedNotchedArrow.prototype.customProperties=[{name:"dx1",dispName:"Arrowhead Length",type:"float",mix:0,defVal:20},{name:"dy1",dispName:"Arrow Width",type:"float",min:0,defVal:10},{name:"dx2",dispName:"Tail Length",type:"float",min:0,defVal:25},{name:"dy2",dispName:"Tail Width",type:"float",min:0,defVal:30},{name:"notch",dispName:"Notch",type:"float",min:0,defVal:20},{name:"arrowHead",dispName:"Arrowhead Width",type:"float",min:0,defVal:20}];
5832mxShapeArrows2TailedNotchedArrow.prototype.cst={TAILED_NOTCHED_ARROW:"mxgraph.arrows2.tailedNotchedArrow"};
5833mxShapeArrows2TailedNotchedArrow.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1))));e=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1))));var f=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy2",this.dy2)))),g=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2)))),h=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),
5834k=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead)))),l=0;0!=f&&(l=g+h*(f-d)/f);a.begin();a.moveTo(0,.5*c-f);a.lineTo(g,.5*c-f);a.lineTo(l,.5*c-d);a.lineTo(b-e,.5*c-d);a.lineTo(b-e,.5*c-d-k);a.lineTo(b,.5*c);a.lineTo(b-e,.5*c+d+k);a.lineTo(b-e,.5*c+d);a.lineTo(l,.5*c+d);a.lineTo(g,.5*c+f);a.lineTo(0,.5*c+f);a.lineTo(h,.5*c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeArrows2TailedNotchedArrow.prototype.cst.TAILED_NOTCHED_ARROW,mxShapeArrows2TailedNotchedArrow);
5835mxShapeArrows2TailedNotchedArrow.prototype.constraints=null;
5836Graph.handleFactory[mxShapeArrows2TailedNotchedArrow.prototype.cst.TAILED_NOTCHED_ARROW]=function(a){var d=[Graph.createHandle(a,["dx1","dy1"],function(a){var b=Math.max(0,Math.min(a.height/2,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)))),d=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1)))),b=Math.max(0,Math.min(a.height/2-b,parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1))));return new mxPoint(a.x+a.width-d,a.y+a.height/
58372-b)},function(a,c){this.state.style.dx1=Math.round(100*Math.max(0,Math.min(a.width-parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))-parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx2)),a.x+a.width-c.x)))/100;this.state.style.dy1=Math.round(100*Math.max(0,Math.min(a.height/2-parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)),parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2)),a.y+a.height/2-c.y)))/100})],e=Graph.createHandle(a,["notch"],function(a){var b=
5838Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))));return new mxPoint(a.x+b,a.y+a.height/2)},function(a,c){this.state.style.notch=Math.round(100*Math.max(0,Math.min(a.width-parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1)),c.x-a.x)))/100});d.push(e);e=Graph.createHandle(a,["arrowHead"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1)))),d=Math.max(0,Math.min(a.height/2,parseFloat(mxUtils.getValue(this.state.style,
5839"dy1",this.dy1)))),e=Math.max(0,Math.min(a.height/2,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))));return new mxPoint(a.x+a.width-b,a.y+a.height/2-d-e)},function(a,c){this.state.style.arrowHead=Math.round(100*Math.max(0,Math.min(a.height/2-parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1)),a.y+a.height/2-c.y)))/100});d.push(e);a=Graph.createHandle(a,["dx2","dy2"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx2",
5840this.dx2)))),d=Math.max(0,Math.min(a.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy2",this.dy2))));return new mxPoint(a.x+b,a.y+a.height/2-d)},function(a,c){this.state.style.dx2=Math.round(100*Math.max(0,Math.min(a.width-parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))-parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1)),c.x-a.x)))/100;this.state.style.dy2=Math.round(100*Math.max(parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1)),Math.min(a.height/2,
5841a.y+a.height/2-c.y)))/100});d.push(a);return d};
5842mxShapeArrows2TailedNotchedArrow.prototype.getConstraints=function(a,d,e){a=[];var b=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1)))),c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1)))),f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy2",this.dy2)))),g=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2)))),h=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),k=Math.max(0,
5843Math.min(e,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead)))),l=0;0!=f&&(l=g+h*(f-b)/f);a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,h,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*e-f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,.5*e-f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c+l),.5*e-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,.5*e-b-k));a.push(new mxConnectionConstraint(new mxPoint(0,
58440),!1,null,0,.5*e+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,.5*e+f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c+l),.5*e+b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,.5*e+b+k));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));return a};function mxShapeArrows2StripedArrow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=this.dy=.5;this.notch=0}
5845mxUtils.extend(mxShapeArrows2StripedArrow,mxActor);mxShapeArrows2StripedArrow.prototype.customProperties=[{name:"dx",dispName:"Arrowhead Length",type:"float",min:0,defVal:40},{name:"dy",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.6},{name:"notch",dispName:"Stripes Length",type:"float",min:0,defVal:25}];mxShapeArrows2StripedArrow.prototype.cst={STRIPED_ARROW:"mxgraph.arrows2.stripedArrow"};
5846mxShapeArrows2StripedArrow.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=.5*c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));e=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));var f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));a.begin();a.moveTo(f,d);a.lineTo(b-e,d);a.lineTo(b-e,0);a.lineTo(b,.5*c);a.lineTo(b-e,c);a.lineTo(b-e,c-d);a.lineTo(f,c-d);a.close();a.moveTo(0,c-d);a.lineTo(.16*
5847f,c-d);a.lineTo(.16*f,d);a.lineTo(0,d);a.close();a.moveTo(.32*f,c-d);a.lineTo(.8*f,c-d);a.lineTo(.8*f,d);a.lineTo(.32*f,d);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeArrows2StripedArrow.prototype.cst.STRIPED_ARROW,mxShapeArrows2StripedArrow);mxShapeArrows2StripedArrow.prototype.constraints=null;
5848Graph.handleFactory[mxShapeArrows2StripedArrow.prototype.cst.STRIPED_ARROW]=function(a){var d=[Graph.createHandle(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),c=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+a.width-b,a.y+c*a.height/2)},function(a,b){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.width-parseFloat(mxUtils.getValue(this.state.style,"notch",
5849this.notch)),a.x+a.width-b.x)))/100;this.state.style.dy=Math.round(100*Math.max(0,Math.min(1,(b.y-a.y)/a.height*2)))/100})];a=Graph.createHandle(a,["notch"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))));return new mxPoint(a.x+b,a.y+a.height/2)},function(a,b){this.state.style.notch=Math.round(100*Math.max(0,Math.min(a.width-parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)),b.x-a.x)))/100});d.push(a);return d};
5850mxShapeArrows2StripedArrow.prototype.getConstraints=function(a,d,e){a=[];var b=.5*e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));parseFloat(mxUtils.getValue(this.style,"notch",this.notch));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,0,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(0,
58510),!1,null,0,e-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,e-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),e-b));return a};
5852function mxShapeArrows2JumpInArrow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=this.dy=.5;this.arrowHead=40}mxUtils.extend(mxShapeArrows2JumpInArrow,mxActor);mxShapeArrows2JumpInArrow.prototype.customProperties=[{name:"dx",dispName:"Arrowhead Length",type:"float",min:0,defVal:38},{name:"dy",dispName:"Arrow Width",type:"float",min:0,defVal:15},{name:"arrowHead",dispName:"Arrowhead Width",type:"float",min:0,defVal:55}];
5853mxShapeArrows2JumpInArrow.prototype.cst={JUMP_IN_ARROW:"mxgraph.arrows2.jumpInArrow"};
5854mxShapeArrows2JumpInArrow.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));e=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));var f=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead))));a.begin();a.moveTo(b-e,0);a.lineTo(b,.5*f);a.lineTo(b-e,f);a.lineTo(b-e,f/2+d);a.arcTo(b-e,c-f/2-d,0,0,0,0,c);a.arcTo(b-e,c-f/2+d,0,0,1,b-e,f/2-d);a.close();
5855a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeArrows2JumpInArrow.prototype.cst.JUMP_IN_ARROW,mxShapeArrows2JumpInArrow);mxShapeArrows2JumpInArrow.prototype.constraints=null;
5856Graph.handleFactory[mxShapeArrows2JumpInArrow.prototype.cst.JUMP_IN_ARROW]=function(a){var d=[Graph.createHandle(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)))),c=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+a.width-c,a.y+b/2-d)},function(a,b){this.state.style.dx=
5857Math.round(100*Math.max(0,Math.min(a.width,a.x+a.width-b.x)))/100;this.state.style.dy=Math.round(100*Math.max(0,Math.min(parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))/2,a.y+parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))/2-b.y)))/100})];a=Graph.createHandle(a,["arrowHead"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),c=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,
5858"arrowHead",this.arrowHead))));return new mxPoint(a.x+a.width-b,a.y+c)},function(a,b){this.state.style.arrowHead=Math.round(100*Math.max(2*parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)),Math.min(a.height,b.y-a.y)))/100});d.push(a);return d};
5859mxShapeArrows2JumpInArrow.prototype.getConstraints=function(a,d,e){a=[];parseFloat(mxUtils.getValue(this.style,"dy",this.dy));var b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead))));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-b,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*e));a.push(new mxConnectionConstraint(new mxPoint(0,
58600),!1,null,d-b,e));return a};function mxShapeArrows2UTurnArrow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=this.dy=.5;this.arrowHead=40}mxUtils.extend(mxShapeArrows2UTurnArrow,mxActor);mxShapeArrows2UTurnArrow.prototype.customProperties=[{name:"dx2",dispName:"Arrowhead Length",type:"float",min:0,defVal:25},{name:"dy",dispName:"Arrow Width",type:"float",min:0,defVal:11},{name:"arrowHead",dispName:"Arrowhead Width",type:"float",min:0,defVal:43}];
5861mxShapeArrows2UTurnArrow.prototype.cst={U_TURN_ARROW:"mxgraph.arrows2.uTurnArrow"};
5862mxShapeArrows2UTurnArrow.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));e=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead))));var f=(c-e/2+d)/2,g=Math.max(0,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2)));a.begin();a.moveTo(f,0);a.lineTo(f+g,.5*e);a.lineTo(f,e);a.lineTo(f,e/2+d);a.arcTo(f-2*d,f-2*d,0,0,0,f,c-2*d);a.lineTo(Math.max(b,f),c-2*d);a.lineTo(Math.max(b,
5863f),c);a.lineTo(f,c);a.arcTo(f,f,0,0,1,f,e/2-d);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeArrows2UTurnArrow.prototype.cst.U_TURN_ARROW,mxShapeArrows2UTurnArrow);mxShapeArrows2UTurnArrow.prototype.constraints=null;
5864Graph.handleFactory[mxShapeArrows2UTurnArrow.prototype.cst.U_TURN_ARROW]=function(a){var d=[Graph.createHandle(a,["dy"],function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)))),d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+(a.height-b/2+d)/2,a.y+b/2-d)},function(a,c){this.state.style.dy=Math.round(100*Math.max(0,Math.min(parseFloat(mxUtils.getValue(this.state.style,"arrowHead",
5865this.arrowHead))/2,a.y+parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead))/2-c.y)))/100})],e=Graph.createHandle(a,["dx2"],function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)))),d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)))),d=(a.height-b/2+d)/2,e=Math.max(0,Math.min(a.width-d,parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx2))));return new mxPoint(a.x+d+e,a.y+
5866b/2)},function(a,c){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)))),d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)))),b=(a.height-b/2+d)/2;this.state.style.dx2=Math.round(100*Math.max(0,Math.min(Math.max(a.width,b),c.x-a.x-b)))/100});d.push(e);a=Graph.createHandle(a,["arrowHead"],function(a){var b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"arrowHead",this.arrowHead)))),
5867d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+(a.height-b/2+d)/2,a.y+b)},function(a,c){this.state.style.arrowHead=Math.round(100*Math.max(2*parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)),Math.min(a.height/2,c.y-a.y)))/100});d.push(a);return d};
5868mxShapeArrows2UTurnArrow.prototype.getConstraints=function(a,d,e){a=[];var b=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),c=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"arrowHead",this.arrowHead)))),f=(e-c/2+b)/2,g=Math.max(0,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f+g,.5*c));a.push(new mxConnectionConstraint(new mxPoint(0,
58690),!1,null,f,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(f+d),e-2*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,Math.max(d,f),e-2*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,Math.max(d,f),e-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,Math.max(d,f),e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(f+d),e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,e));a.push(new mxConnectionConstraint(new mxPoint(0,
58700),!1,null,0,.5*(e+.5*c-b)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c-2*b,.5*(e+.5*c-b)));return a};function mxAtlassianJiraIssue(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxAtlassianJiraIssue,mxRectangleShape);
5871mxAtlassianJiraIssue.prototype.customProperties=[{name:"issueType",dispName:"Issue Type",type:"enum",enumList:[{val:"story",dispName:"Story"},{val:"task",dispName:"Task"},{val:"subTask",dispName:"Sub-Task"},{val:"feature",dispName:"Feature"},{val:"bug",dispName:"Bug"},{val:"techTask",dispName:"Tech Task"},{val:"epic",dispName:"Epic"},{val:"improvement",dispName:"Improvement"},{val:"fault",dispName:"Fault"},{val:"change",dispName:"Change"},{val:"access",dispName:"Access"},{val:"purchase",dispName:"Purchase"},
5872{val:"itHelp",dispName:"IT Help"}]},{name:"issuePriority",dispName:"Issue Priority",type:"enum",enumList:[{val:"blocker",dispName:"Blocker"},{val:"critical",dispName:"Critical"},{val:"major",dispName:"Major"},{val:"minor",dispName:"Minor"},{val:"trivial",dispName:"Trivial"}]},{name:"issueStatus",dispName:"Issue Status",type:"enum",enumList:[{val:"todo",dispName:"TODO"},{val:"inProgress",dispName:"In Progress"},{val:"inReview",dispName:"In Review"},{val:"done",dispName:"Done"}]}];
5873mxAtlassianJiraIssue.prototype.cst={ISSUE:"mxgraph.atlassian.issue"};
5874mxAtlassianJiraIssue.prototype.paintForeground=function(a,d,e,b,c){a.translate(d,e);c=mxUtils.getValue(this.style,"issueType","task");e=mxUtils.getValue(this.style,"issuePriority","minor");d=mxUtils.getValue(this.style,"issueStatus","todo");a.setStrokeColor("none");switch(c){case "story":c=mxStencilRegistry.getStencil("mxgraph.atlassian.story");null!=c&&(a.setFillColor("#61B659"),c.drawShape(a,this,5,5,10,10));break;case "task":c=mxStencilRegistry.getStencil("mxgraph.atlassian.task");null!=c&&(a.setFillColor("#5EA3E4"),
5875c.drawShape(a,this,5,5,10,10));break;case "subTask":c=mxStencilRegistry.getStencil("mxgraph.atlassian.subtask");null!=c&&(a.setFillColor("#5EA3E4"),c.drawShape(a,this,5,5,10,10));break;case "feature":c=mxStencilRegistry.getStencil("mxgraph.atlassian.new_feature");null!=c&&(a.setFillColor("#61B659"),c.drawShape(a,this,5,5,10,10));break;case "bug":c=mxStencilRegistry.getStencil("mxgraph.atlassian.bug");null!=c&&(a.setFillColor("#CE0000"),c.drawShape(a,this,5,5,10,10));break;case "techTask":c=mxStencilRegistry.getStencil("mxgraph.atlassian.tech_task");
5876null!=c&&(a.setFillColor("#999C95"),c.drawShape(a,this,5,5,10,10));break;case "epic":c=mxStencilRegistry.getStencil("mxgraph.atlassian.epic");null!=c&&(a.setFillColor("#9E4ADD"),c.drawShape(a,this,5,5,10,10));break;case "improvement":c=mxStencilRegistry.getStencil("mxgraph.atlassian.improvement");null!=c&&(a.setFillColor("#61B659"),c.drawShape(a,this,5,5,10,10));break;case "fault":c=mxStencilRegistry.getStencil("mxgraph.atlassian.fault");null!=c&&(a.setFillColor("#F8902F"),c.drawShape(a,this,5,5,
587710,10));break;case "change":c=mxStencilRegistry.getStencil("mxgraph.atlassian.change");null!=c&&(a.setFillColor("#9E4ADD"),c.drawShape(a,this,5,5,10,10));break;case "access":c=mxStencilRegistry.getStencil("mxgraph.atlassian.access");null!=c&&(a.setFillColor("#F8902F"),c.drawShape(a,this,5,5,10,10));break;case "purchase":c=mxStencilRegistry.getStencil("mxgraph.atlassian.purchase");null!=c&&(a.setFillColor("#61B659"),c.drawShape(a,this,5,5,10,10));break;case "itHelp":c=mxStencilRegistry.getStencil("mxgraph.atlassian.it_help"),
5878null!=c&&(a.setFillColor("#5EA3E4"),c.drawShape(a,this,5,5,10,10))}switch(e){case "blocker":c=mxStencilRegistry.getStencil("mxgraph.atlassian.no");null!=c&&(a.setFillColor("#CE0000"),c.drawShape(a,this,85,5,10,10));break;case "critical":c=mxStencilRegistry.getStencil("mxgraph.atlassian.critical");null!=c&&(a.setFillColor("#CE0000"),c.drawShape(a,this,86,3,8,14));break;case "major":c=mxStencilRegistry.getStencil("mxgraph.atlassian.double_up");null!=c&&(a.setFillColor("#CE0000"),c.drawShape(a,this,
587985,5,10,10));break;case "minor":c=mxStencilRegistry.getStencil("mxgraph.atlassian.double");null!=c&&(a.setFillColor("#2A8735"),c.drawShape(a,this,85,5,10,10));break;case "trivial":c=mxStencilRegistry.getStencil("mxgraph.atlassian.single"),null!=c&&(a.setFillColor("#9AA1B2"),c.drawShape(a,this,85,5,10,10))}a.setFillColor("#FFFFFD");a.setFontColor("#4E6B89");switch(d){case "todo":a.rect(b-45,5,40,20);a.fill();a.text(b-25,15,0,0,"TO DO",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);
5880break;case "inProgress":a.rect(b-85,5,80,20);a.fill();a.text(b-45,15,0,0,"IN PROGRESS",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);break;case "inReview":a.rect(b-75,5,70,20);a.fill();a.text(b-40,15,0,0,"IN REVIEW",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);break;case "done":a.rect(b-45,5,40,20);a.fill();a.text(b-25,15,0,0,"DONE",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);break;default:e=mxUtils.getValue(this.style,"issueStatusWidth",6.5*
5881d.length),a.rect(b-e-5,5,e,20),a.fill(),a.text(b-7,15,0,0,d,mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)}};mxCellRenderer.registerShape(mxAtlassianJiraIssue.prototype.cst.ISSUE,mxAtlassianJiraIssue);function mxShapeBasicCross(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicCross,mxActor);mxShapeBasicCross.prototype.cst={CROSS:"mxgraph.basic.cross2"};
5882mxShapeBasicCross.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));a.begin();a.moveTo(.5*b+d,0);a.lineTo(.5*b+d,.5*c-d);a.lineTo(b,.5*c-d);a.lineTo(b,.5*c+d);a.lineTo(.5*b+d,.5*c+d);a.lineTo(.5*b+d,c);a.lineTo(.5*b-d,c);a.lineTo(.5*b-d,.5*c+d);a.lineTo(0,.5*c+d);a.lineTo(0,.5*c-d);a.lineTo(.5*b-d,.5*c-d);a.lineTo(.5*b-d,0);a.close();a.fillAndStroke()};
5883mxCellRenderer.registerShape(mxShapeBasicCross.prototype.cst.CROSS,mxShapeBasicCross);mxShapeBasicCross.prototype.constraints=null;
5884Graph.handleFactory[mxShapeBasicCross.prototype.cst.CROSS]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(a.width/2,a.width/2,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+a.width/2+d,a.y+a.height/2-d)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,e.x-a.x-a.width/2)))/100})]};
5885function mxShapeBasicRectCallout(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=this.dy=.5}mxUtils.extend(mxShapeBasicRectCallout,mxActor);mxShapeBasicRectCallout.prototype.customProperties=[{name:"dx",dispName:"Callout Position",type:"float",min:0,defVal:30},{name:"dy",dispName:"Callout Size",type:"float",min:0,defVal:15}];mxShapeBasicRectCallout.prototype.cst={RECT_CALLOUT:"mxgraph.basic.rectCallout"};
5886mxShapeBasicRectCallout.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(d-.5*e,c-e);a.lineTo(0,c-e);a.lineTo(0,0);a.lineTo(b,0);a.lineTo(b,c-e);a.lineTo(d+.5*e,c-e);a.lineTo(d-e,c);a.close();a.fillAndStroke()};
5887mxShapeBasicRectCallout.prototype.getLabelMargins=function(){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))*this.scale):null};mxCellRenderer.registerShape(mxShapeBasicRectCallout.prototype.cst.RECT_CALLOUT,mxShapeBasicRectCallout);
5888Graph.handleFactory[mxShapeBasicRectCallout.prototype.cst.RECT_CALLOUT]=function(a){return[Graph.createHandle(a,["dx","dy"],function(a){var d=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+d,a.y+a.height-b)},function(a,e){var b=.6*parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy));this.state.style.dx=Math.round(100*Math.max(b,Math.min(a.width-
5889b,e.x-a.x)))/100;this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,a.y+a.height-e.y)))})]};
5890mxShapeBasicRectCallout.prototype.getConstraints=function(a,d,e){a=[];var 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))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,
58910),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(e-c)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-c,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(e-c)));return a};
5892function mxShapeBasicRoundRectCallout(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=this.dy=.5;this.size=10}mxUtils.extend(mxShapeBasicRoundRectCallout,mxActor);mxShapeBasicRoundRectCallout.prototype.cst={ROUND_RECT_CALLOUT:"mxgraph.basic.roundRectCallout"};mxShapeBasicRoundRectCallout.prototype.getLabelMargins=mxShapeBasicRectCallout.prototype.getLabelMargins;
5893mxShapeBasicRoundRectCallout.prototype.customProperties=[{name:"size",dispName:"Arc Size",type:"float",min:0,defVal:5},{name:"dx",dispName:"Callout Position",type:"float",min:0,defVal:30},{name:"dy",dispName:"Callout Size",type:"float",min:0,defVal:15}];
5894mxShapeBasicRoundRectCallout.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));var f=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),f=Math.min((c-e)/2,b/2,f);d=Math.max(f+.5*e,d);d=Math.min(b-f-.5*e,d);a.begin();a.moveTo(d-.5*e,c-e);a.lineTo(f,c-e);a.arcTo(f,f,0,0,1,0,c-e-f);a.lineTo(0,f);a.arcTo(f,
5895f,0,0,1,f,0);a.lineTo(b-f,0);a.arcTo(f,f,0,0,1,b,f);a.lineTo(b,c-e-f);a.arcTo(f,f,0,0,1,b-f,c-e);a.lineTo(d+.5*e,c-e);a.arcTo(1.9*e,1.4*e,0,0,1,d-e,c);a.arcTo(.9*e,1.4*e,0,0,0,d-.5*e,c-e);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicRoundRectCallout.prototype.cst.ROUND_RECT_CALLOUT,mxShapeBasicRoundRectCallout);mxShapeBasicRoundRectCallout.prototype.constraints=null;
5896Graph.handleFactory[mxShapeBasicRoundRectCallout.prototype.cst.ROUND_RECT_CALLOUT]=function(a){return[Graph.createHandle(a,["dx","dy"],function(a){var d=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+d,a.y+a.height-b)},function(a,e){var b=.6*parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy));this.state.style.dx=Math.round(100*Math.max(b,
5897Math.min(a.width-b,e.x-a.x)))/100;this.state.style.dy=Math.round(Math.max(0,Math.min(a.height,a.y+a.height-e.y)))}),Graph.createHandle(a,["size"],function(a){var d=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"size",this.size))));return new mxPoint(a.x+a.width-d,a.y+10)},function(a,e){var b=parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy));this.state.style.size=Math.round(100*Math.max(0,Math.min(a.width/2,(a.height-b)/2,a.x+a.width-e.x)))/100})]};
5898mxShapeBasicRoundRectCallout.prototype.getConstraints=function(a,d,e){a=[];var 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)))),f=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),f=Math.min((e-c)/2,d/2,f),b=Math.max(f+.5*c,b),b=Math.min(d-f-.5*c,b);f<.25*d&&(a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(.75,
58990),!1)));f<.25*(e-c)&&(a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.25*(e-c))),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.75*(e-c))),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(e-c))),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.75*(e-c))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.293*f,.293*f));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,
5900null,d-.293*f,.293*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(e-c)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(e-c)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.293*f,e-c-.293*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.293*f,e-c-.293*f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b-c,e));return a};
5901function mxShapeBasicWave(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dy=.5}mxUtils.extend(mxShapeBasicWave,mxActor);mxShapeBasicWave.prototype.customProperties=[{name:"dy",dispName:"Wave Size",type:"float",min:0,max:1,defVal:.3}];mxShapeBasicWave.prototype.cst={WAVE:"mxgraph.basic.wave2"};
5902mxShapeBasicWave.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=c*Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(0,d/2);a.quadTo(b/6,d*(1-1.4),b/3,d/2);a.quadTo(b/2,1.4*d,2*b/3,d/2);a.quadTo(5*b/6,d*(1-1.4),b,d/2);a.lineTo(b,c-d/2);a.quadTo(5*b/6,c-1.4*d,2*b/3,c-d/2);a.quadTo(b/2,c-d*(1-1.4),b/3,c-d/2);a.quadTo(b/6,c-1.4*d,0,c-d/2);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicWave.prototype.cst.WAVE,mxShapeBasicWave);
5903mxShapeBasicWave.prototype.constraints=null;Graph.handleFactory[mxShapeBasicWave.prototype.cst.WAVE]=function(a){return[Graph.createHandle(a,["dy"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+a.width/2,a.y+d*a.height)},function(a,e){this.state.style.dy=Math.round(100*Math.max(0,Math.min(1,(e.y-a.y)/a.height)))/100})]};
5904mxShapeBasicWave.prototype.getConstraints=function(a,d,e){a=[];var b=e*Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d/6,.015*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d/3,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,.95*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.67*d,.5*b));
5905a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.83*d,.015*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e-.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.83*d,e-.95*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.67*d,e-.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,e-.04*b));
5906a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d/3,e-.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d/6,e-.95*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e-.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*e));return a};function mxShapeBasicOctagon(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicOctagon,mxActor);
5907mxShapeBasicOctagon.prototype.customProperties=[{name:"dx",dispName:"Cutoff Size",type:"float",min:0,defVal:15}];mxShapeBasicOctagon.prototype.cst={OCTAGON:"mxgraph.basic.octagon2"};
5908mxShapeBasicOctagon.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=2*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.min(.5*b,.5*c,d);a.begin();a.moveTo(d,0);a.lineTo(b-d,0);a.lineTo(b,d);a.lineTo(b,c-d);a.lineTo(b-d,c);a.lineTo(d,c);a.lineTo(0,c-d);a.lineTo(0,d);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicOctagon.prototype.cst.OCTAGON,mxShapeBasicOctagon);mxShapeBasicOctagon.prototype.constraints=null;
5909Graph.handleFactory[mxShapeBasicOctagon.prototype.cst.OCTAGON]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(a.width/4,a.width/4,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d,a.y+d)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.height/4,a.width/4,e.x-a.x)))/100})]};
5910mxShapeBasicOctagon.prototype.getConstraints=function(a,d,e){a=[];var b=2*Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),b=.5*Math.min(.5*d,.5*e,b);a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,b));a.push(new mxConnectionConstraint(new mxPoint(0,
59110),!1,null,d-b,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-b,e-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,e-b));return a};function mxShapeBasicIsoCube(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.isoAngle=15}mxUtils.extend(mxShapeBasicIsoCube,mxActor);mxShapeBasicIsoCube.prototype.customProperties=[{name:"isoAngle",dispName:"Perspective Angle",type:"float",min:0,defVal:15}];
5912mxShapeBasicIsoCube.prototype.cst={ISO_CUBE:"mxgraph.basic.isocube"};
5913mxShapeBasicIsoCube.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200;d=Math.min(b*Math.tan(d),.5*c);a.begin();a.moveTo(.5*b,0);a.lineTo(b,d);a.lineTo(b,c-d);a.lineTo(.5*b,c);a.lineTo(0,c-d);a.lineTo(0,d);a.close();a.fillAndStroke();a.setShadow(!1);a.begin();a.moveTo(0,d);a.lineTo(.5*b,2*d);a.lineTo(b,d);a.moveTo(.5*b,2*d);a.lineTo(.5*b,c);a.stroke()};
5914mxCellRenderer.registerShape(mxShapeBasicIsoCube.prototype.cst.ISO_CUBE,mxShapeBasicIsoCube);mxShapeBasicIsoCube.prototype.constraints=null;
5915Graph.handleFactory[mxShapeBasicIsoCube.prototype.cst.ISO_CUBE]=function(a){return[Graph.createHandle(a,["isoAngle"],function(a){var d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",this.isoAngle))))*Math.PI/200;return new mxPoint(a.x,a.y+Math.min(a.width*Math.tan(d),.5*a.height))},function(a,e){this.state.style.isoAngle=Math.round(100*Math.max(0,Math.min(100,e.y-a.y)))/100})]};
5916mxShapeBasicIsoCube.prototype.getConstraints=function(a,d,e){a=[];var b=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,b=Math.min(d*Math.tan(b),.5*e);a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,b));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e-b));a.push(new mxConnectionConstraint(new mxPoint(.5,
59171),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e-b));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b));return a};function mxShapeBasicTriangleAcute(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicTriangleAcute,mxActor);
5918mxShapeBasicTriangleAcute.prototype.customProperties=[{name:"dx",dispName:"Top",type:"float",min:0,max:1,defVal:.5}];mxShapeBasicTriangleAcute.prototype.cst={ACUTE_TRIANGLE:"mxgraph.basic.acute_triangle"};mxShapeBasicTriangleAcute.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=b*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));a.begin();a.moveTo(0,c);a.lineTo(d,0);a.lineTo(b,c);a.close();a.fillAndStroke()};
5919mxCellRenderer.registerShape(mxShapeBasicTriangleAcute.prototype.cst.ACUTE_TRIANGLE,mxShapeBasicTriangleAcute);mxShapeBasicTriangleAcute.prototype.constraints=null;
5920Graph.handleFactory[mxShapeBasicTriangleAcute.prototype.cst.ACUTE_TRIANGLE]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d*a.width,a.y+10)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(1,(e.x-a.x)/a.width)))/100})]};
5921mxShapeBasicTriangleAcute.prototype.getConstraints=function(a,d,e){a=[];var b=d*Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*b,.5*e));a.push(new mxConnectionConstraint(new mxPoint(0,
59220),!1,null,d-.5*(d-b),.5*e));return a};function mxShapeBasicTriangleObtuse(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicTriangleObtuse,mxActor);mxShapeBasicTriangleObtuse.prototype.customProperties=[{name:"dx",dispName:"Bottom",type:"float",min:0,max:1,defVal:.25}];mxShapeBasicTriangleObtuse.prototype.cst={OBTUSE_TRIANGLE:"mxgraph.basic.obtuse_triangle"};
5923mxShapeBasicTriangleObtuse.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=b*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));a.begin();a.moveTo(d,c);a.lineTo(0,0);a.lineTo(b,c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicTriangleObtuse.prototype.cst.OBTUSE_TRIANGLE,mxShapeBasicTriangleObtuse);mxShapeBasicTriangleObtuse.prototype.constraints=null;
5924Graph.handleFactory[mxShapeBasicTriangleObtuse.prototype.cst.OBTUSE_TRIANGLE]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d*a.width,a.y+a.height-10)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(1,(e.x-a.x)/a.width)))/100})]};
5925mxShapeBasicTriangleObtuse.prototype.getConstraints=function(a,d,e){a=[];var b=d*Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,.5*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+b),e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,e));a.push(new mxConnectionConstraint(new mxPoint(0,
59260),!1,null,.5*b,.5*e));return a};function mxShapeBasicDrop(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeBasicDrop,mxActor);mxShapeBasicDrop.prototype.cst={DROP:"mxgraph.basic.drop"};
5927mxShapeBasicDrop.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=.5*Math.min(c,b);e=c-d;var f=Math.atan(Math.sqrt(e*e-d*d)/d);e=d*Math.sin(f);f=d*Math.cos(f);a.begin();a.moveTo(.5*b,0);a.lineTo(.5*b+e,c-d-f);a.arcTo(d,d,0,0,1,.5*b+d,c-d);a.arcTo(d,d,0,0,1,.5*b,c);a.arcTo(d,d,0,0,1,.5*b-d,c-d);a.arcTo(d,d,0,0,1,.5*b-e,c-d-f);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicDrop.prototype.cst.DROP,mxShapeBasicDrop);mxShapeBasicDrop.prototype.constraints=null;
5928function mxShapeBasicCone2(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5;this.dy=.9}mxUtils.extend(mxShapeBasicCone2,mxActor);mxShapeBasicCone2.prototype.customProperties=[{name:"dx",dispName:"Top",type:"float",min:0,max:1,defVal:.5},{name:"dy",dispName:"Bottom",type:"float",min:0,max:1,defVal:.9}];mxShapeBasicCone2.prototype.cst={CONE2:"mxgraph.basic.cone2"};
5929mxShapeBasicCone2.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=b*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=c*Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));e=c-e;a.begin();a.moveTo(d,0);0<e?(a.lineTo(b,c-e),a.arcTo(.5*b,e,0,0,1,.5*b,c),a.arcTo(.5*b,e,0,0,1,0,c-e)):(a.lineTo(b,c),a.lineTo(0,c));a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicCone2.prototype.cst.CONE2,mxShapeBasicCone2);
5930mxShapeBasicCone2.prototype.constraints=null;
5931Graph.handleFactory[mxShapeBasicCone2.prototype.cst.CONE2]=function(a){var d=[Graph.createHandle(a,["dx"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+b*a.width,a.y+10)},function(a,b){this.state.style.dx=Math.round(100*Math.max(0,Math.min(1,(b.x-a.x)/a.width)))/100})];a=Graph.createHandle(a,["dy"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+
593210,a.y+b*a.height)},function(a,b){this.state.style.dy=Math.round(100*Math.max(0,Math.min(1,(b.y-a.y)/a.height)))/100});d.push(a);return d};
5933mxShapeBasicCone2.prototype.getConstraints=function(a,d,e){a=[];var b=d*Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),c=e*Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),c=e-c;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e-
5934c));return a};function mxShapeBasicPyramid(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx1=.5;this.dx2=.6;this.dy1=.9;this.dy2=.8}mxUtils.extend(mxShapeBasicPyramid,mxActor);
5935mxShapeBasicPyramid.prototype.customProperties=[{name:"dx1",dispName:"Top",type:"float",min:0,max:1,defVal:.4},{name:"dx2",dispName:"Bottom",type:"float",min:0,max:1,defVal:.6},{name:"dy1",dispName:"Perspective Left",type:"float",min:0,max:1,defVal:.9},{name:"dy2",dispName:"Perspective Right",type:"float",min:0,max:1,defVal:.8}];mxShapeBasicPyramid.prototype.cst={PYRAMID:"mxgraph.basic.pyramid"};
5936mxShapeBasicPyramid.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=b*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1))));e=b*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2))));var f=c*Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1)))),g=c*Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy2",this.dy2))));a.begin();a.moveTo(d,0);a.lineTo(b,g);a.lineTo(e,c);a.lineTo(0,f);a.close();a.fillAndStroke();
5937a.setShadow(!1);a.begin();a.moveTo(d,0);a.lineTo(e,c);a.stroke()};mxCellRenderer.registerShape(mxShapeBasicPyramid.prototype.cst.PYRAMID,mxShapeBasicPyramid);mxShapeBasicPyramid.prototype.constraints=null;
5938Graph.handleFactory[mxShapeBasicPyramid.prototype.cst.PYRAMID]=function(a){var d=[Graph.createHandle(a,["dx1"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1))));return new mxPoint(a.x+b*a.width,a.y+10)},function(a,c){this.state.style.dx1=Math.round(100*Math.max(0,Math.min(1,(c.x-a.x)/a.width)))/100})],e=Graph.createHandle(a,["dx2"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx2))));return new mxPoint(a.x+
5939b*a.width,a.y+a.height-10)},function(a,c){this.state.style.dx2=Math.round(100*Math.max(0,Math.min(1,(c.x-a.x)/a.width)))/100});d.push(e);e=Graph.createHandle(a,["dy1"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1))));return new mxPoint(a.x+10,a.y+b*a.height)},function(a,c){this.state.style.dy1=Math.round(100*Math.max(0,Math.min(1,(c.y-a.y)/a.height)))/100});d.push(e);a=Graph.createHandle(a,["dy2"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,
5940"dy2",this.dy2))));return new mxPoint(a.x+a.width-10,a.y+b*a.height)},function(a,c){this.state.style.dy2=Math.round(100*Math.max(0,Math.min(1,(c.y-a.y)/a.height)))/100});d.push(a);return d};
5941mxShapeBasicPyramid.prototype.getConstraints=function(a,d,e){a=[];var b=d*Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1)))),c=d*Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2)))),f=e*Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy1",this.dy1)))),g=e*Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"dy2",this.dy2))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,0));a.push(new mxConnectionConstraint(new mxPoint(0,
59420),!1,null,.5*(d+b),.5*g));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,g));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),.5*(e+g)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,.5*(e+f)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*b,.5*f));return a};
5943function mxShapeBasic4PointStar2(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.8}mxUtils.extend(mxShapeBasic4PointStar2,mxActor);mxShapeBasic4PointStar2.prototype.customProperties=[{name:"dx",dispName:"Thickness",type:"float",min:0,max:1,defVal:.8}];mxShapeBasic4PointStar2.prototype.cst={FOUR_POINT_STAR_2:"mxgraph.basic.4_point_star_2"};
5944mxShapeBasic4PointStar2.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=.5*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));a.begin();a.moveTo(0,.5*c);a.lineTo(d*b,d*c);a.lineTo(.5*b,0);a.lineTo(b-d*b,d*c);a.lineTo(b,.5*c);a.lineTo(b-d*b,c-d*c);a.lineTo(.5*b,c);a.lineTo(d*b,c-d*c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasic4PointStar2.prototype.cst.FOUR_POINT_STAR_2,mxShapeBasic4PointStar2);
5945mxShapeBasic4PointStar2.prototype.constraints=null;Graph.handleFactory[mxShapeBasic4PointStar2.prototype.cst.FOUR_POINT_STAR_2]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d*a.width/2,a.y+d*a.height/2)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(1,2*(e.x-a.x)/a.width)))/100})]};
5946mxShapeBasic4PointStar2.prototype.getConstraints=function(a,d,e){a=[];d=.5*Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(d,d),!1));a.push(new mxConnectionConstraint(new mxPoint(1-d,d),!1));a.push(new mxConnectionConstraint(new mxPoint(1-
5947d,1-d),!1));a.push(new mxConnectionConstraint(new mxPoint(d,1-d),!1));return a};function mxShapeBasicDiagSnipRect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicDiagSnipRect,mxActor);mxShapeBasicDiagSnipRect.prototype.customProperties=[{name:"dx",dispName:"Snip",type:"float",min:0,deVal:6}];mxShapeBasicDiagSnipRect.prototype.cst={DIAG_SNIP_RECT:"mxgraph.basic.diag_snip_rect"};
5948mxShapeBasicDiagSnipRect.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=2*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.min(.5*b,.5*c,d);a.begin();a.moveTo(d,0);a.lineTo(b,0);a.lineTo(b,c-d);a.lineTo(b-d,c);a.lineTo(0,c);a.lineTo(0,d);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicDiagSnipRect.prototype.cst.DIAG_SNIP_RECT,mxShapeBasicDiagSnipRect);mxShapeBasicDiagSnipRect.prototype.constraints=null;
5949Graph.handleFactory[mxShapeBasicDiagSnipRect.prototype.cst.DIAG_SNIP_RECT]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(a.width/4,a.width/4,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d,a.y+d)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.height/4,a.width/4,e.x-a.x)))/100})]};
5950mxShapeBasicDiagSnipRect.prototype.getConstraints=function(a,d,e){a=[];var b=2*Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),b=.5*Math.min(.5*d,.5*e,b);a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,b));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-b,e-b));a.push(new mxConnectionConstraint(new mxPoint(.5,
59511),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));return a};function mxShapeBasicDiagRoundRect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicDiagRoundRect,mxActor);mxShapeBasicDiagRoundRect.prototype.customProperties=[{name:"dx",dispName:"Rounding Size",type:"float",min:0,defVal:6}];mxShapeBasicDiagRoundRect.prototype.cst={DIAG_ROUND_RECT:"mxgraph.basic.diag_round_rect"};
5952mxShapeBasicDiagRoundRect.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=2*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.min(.5*b,.5*c,d);a.begin();a.moveTo(d,0);a.lineTo(b,0);a.lineTo(b,c-d);a.arcTo(d,d,0,0,1,b-d,c);a.lineTo(0,c);a.lineTo(0,d);a.arcTo(d,d,0,0,1,d,0);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicDiagRoundRect.prototype.cst.DIAG_ROUND_RECT,mxShapeBasicDiagRoundRect);
5953mxShapeBasicDiagRoundRect.prototype.constraints=null;Graph.handleFactory[mxShapeBasicDiagRoundRect.prototype.cst.DIAG_ROUND_RECT]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(a.width/4,a.width/4,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d,a.y+d)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.height/4,a.width/4,e.x-a.x)))/100})]};
5954mxShapeBasicDiagRoundRect.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));return a};
5955function mxShapeBasicCornerRoundRect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicCornerRoundRect,mxActor);mxShapeBasicCornerRoundRect.prototype.customProperties=[{name:"dx",dispName:"Rounding Size",type:"float",min:0,defVal:6}];mxShapeBasicCornerRoundRect.prototype.cst={CORNER_ROUND_RECT:"mxgraph.basic.corner_round_rect"};
5956mxShapeBasicCornerRoundRect.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=2*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.min(.5*b,.5*c,d);a.begin();a.moveTo(d,0);a.lineTo(b,0);a.lineTo(b,c);a.lineTo(0,c);a.lineTo(0,d);a.arcTo(d,d,0,0,1,d,0);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicCornerRoundRect.prototype.cst.CORNER_ROUND_RECT,mxShapeBasicCornerRoundRect);mxShapeBasicCornerRoundRect.prototype.constraints=null;
5957Graph.handleFactory[mxShapeBasicCornerRoundRect.prototype.cst.CORNER_ROUND_RECT]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(a.width/4,a.width/4,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d,a.y+d)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.height/4,a.width/4,e.x-a.x)))/100})]};
5958mxShapeBasicCornerRoundRect.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));return a};
5959function mxShapeBasicPlaque(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicPlaque,mxActor);mxShapeBasicPlaque.prototype.customProperties=[{name:"dx",dispName:"Cutoff Size",type:"float",min:0,defVal:6}];mxShapeBasicPlaque.prototype.cst={PLAQUE:"mxgraph.basic.plaque"};
5960mxShapeBasicPlaque.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=2*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.min(.5*b,.5*c,d);a.begin();a.moveTo(b-d,0);a.arcTo(d,d,0,0,0,b,d);a.lineTo(b,c-d);a.arcTo(d,d,0,0,0,b-d,c);a.lineTo(d,c);a.arcTo(d,d,0,0,0,0,c-d);a.lineTo(0,d);a.arcTo(d,d,0,0,0,d,0);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicPlaque.prototype.cst.PLAQUE,mxShapeBasicPlaque);
5961mxShapeBasicPlaque.prototype.constraints=null;Graph.handleFactory[mxShapeBasicPlaque.prototype.cst.PLAQUE]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(a.width/4,a.width/4,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+1.41*d,a.y+1.41*d)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.height/4,a.width/4,e.x-a.x)))/100})]};
5962mxShapeBasicPlaque.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));return a};function mxShapeBasicFrame(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicFrame,mxActor);
5963mxShapeBasicFrame.prototype.customProperties=[{name:"dx",dispName:"Width",type:"float",min:0,defVal:10}];mxShapeBasicFrame.prototype.cst={FRAME:"mxgraph.basic.frame"};
5964mxShapeBasicFrame.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.min(.5*b,.5*c,d);a.begin();a.moveTo(b,0);a.lineTo(b,c);a.lineTo(0,c);a.lineTo(0,0);a.close();a.moveTo(d,d);a.lineTo(d,c-d);a.lineTo(b-d,c-d);a.lineTo(b-d,d);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicFrame.prototype.cst.FRAME,mxShapeBasicFrame);mxShapeBasicFrame.prototype.constraints=null;
5965Graph.handleFactory[mxShapeBasicFrame.prototype.cst.FRAME]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(a.width/2,a.width/2,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d,a.y+d)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,e.x-a.x)))/100})]};
5966mxShapeBasicFrame.prototype.getConstraints=function(a,d,e){a=[];var b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),b=Math.min(.5*d,.5*e,b);a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*d,0));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*d,0));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
59670),!1,null,d,.25*e));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.75*e));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*d,e));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*d,e));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
59680),!1,null,0,.75*e));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*(d-2*b)+b,b));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(1.5*d-b),b));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,-b,b));a.push(new mxConnectionConstraint(new mxPoint(0,
59690),!1,null,d-b,.25*(e-2*b)+b));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null,-b,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-b,.75*(e-2*b)+b));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,-b,-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*(d-2*b)+b,e-b));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1,null,0,-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*(d-2*b)+b,e-b));a.push(new mxConnectionConstraint(new mxPoint(0,
59701),!1,null,b,-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,.75*(e-2*b)+b));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,b,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,.25*(e-2*b)+b));return a};function mxShapeBasicPlaqueFrame(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicPlaqueFrame,mxActor);
5971mxShapeBasicPlaqueFrame.prototype.customProperties=[{name:"dx",dispName:"Width",type:"float",mix:0,defVal:10}];mxShapeBasicPlaqueFrame.prototype.cst={PLAQUE_FRAME:"mxgraph.basic.plaque_frame"};
5972mxShapeBasicPlaqueFrame.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.min(.25*b,.25*c,d);a.begin();a.moveTo(b-d,0);a.arcTo(d,d,0,0,0,b,d);a.lineTo(b,c-d);a.arcTo(d,d,0,0,0,b-d,c);a.lineTo(d,c);a.arcTo(d,d,0,0,0,0,c-d);a.lineTo(0,d);a.arcTo(d,d,0,0,0,d,0);a.close();a.moveTo(2*d,d);a.arcTo(2*d,2*d,0,0,1,d,2*d);a.lineTo(d,c-2*d);a.arcTo(2*d,2*d,0,0,1,2*d,c-d);a.lineTo(b-2*d,c-d);a.arcTo(2*d,2*d,0,
59730,1,b-d,c-2*d);a.lineTo(b-d,2*d);a.arcTo(2*d,2*d,0,0,1,b-2*d,d);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicPlaqueFrame.prototype.cst.PLAQUE_FRAME,mxShapeBasicPlaqueFrame);mxShapeBasicPlaqueFrame.prototype.constraints=null;
5974Graph.handleFactory[mxShapeBasicPlaqueFrame.prototype.cst.PLAQUE_FRAME]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(a.width/4,a.width/4,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d,a.y+d)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.height/4,a.width/4,e.x-a.x)))/100})]};
5975mxShapeBasicPlaqueFrame.prototype.getConstraints=function(a,d,e){a=[];var b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),b=Math.min(.5*d,.5*e,b);a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(1,
5976.5),!1,null,-b,0));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1,null,0,-b));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,b,0));return a};function mxShapeBasicRoundedFrame(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicRoundedFrame,mxActor);mxShapeBasicRoundedFrame.prototype.customProperties=[{name:"dx",dispName:"Width",type:"float",min:0,defVal:10}];
5977mxShapeBasicRoundedFrame.prototype.cst={ROUNDED_FRAME:"mxgraph.basic.rounded_frame"};
5978mxShapeBasicRoundedFrame.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.min(.25*b,.25*c,d);a.begin();a.moveTo(b-2*d,0);a.arcTo(2*d,2*d,0,0,1,b,2*d);a.lineTo(b,c-2*d);a.arcTo(2*d,2*d,0,0,1,b-2*d,c);a.lineTo(2*d,c);a.arcTo(2*d,2*d,0,0,1,0,c-2*d);a.lineTo(0,2*d);a.arcTo(2*d,2*d,0,0,1,2*d,0);a.close();a.moveTo(2*d,d);a.arcTo(d,d,0,0,0,d,2*d);a.lineTo(d,c-2*d);a.arcTo(d,d,0,0,0,2*d,c-d);a.lineTo(b-2*
5979d,c-d);a.arcTo(d,d,0,0,0,b-d,c-2*d);a.lineTo(b-d,2*d);a.arcTo(d,d,0,0,0,b-2*d,d);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicRoundedFrame.prototype.cst.ROUNDED_FRAME,mxShapeBasicRoundedFrame);mxShapeBasicRoundedFrame.prototype.constraints=null;
5980Graph.handleFactory[mxShapeBasicRoundedFrame.prototype.cst.ROUNDED_FRAME]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(a.width/4,a.width/4,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d,a.y+d)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.height/4,a.width/4,e.x-a.x)))/100})]};
5981mxShapeBasicRoundedFrame.prototype.getConstraints=function(a,d,e){a=[];var b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),b=Math.min(.5*d,.5*e,b);a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(1,
5982.5),!1,null,-b,0));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1,null,0,-b));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,b,0));return a};function mxShapeBasicFrameCorner(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicFrameCorner,mxActor);mxShapeBasicFrameCorner.prototype.customProperties=[{name:"dx",dispName:"Width",type:"float",min:0,defVal:10}];mxShapeBasicFrameCorner.prototype.cst={FRAME_CORNER:"mxgraph.basic.frame_corner"};
5983mxShapeBasicFrameCorner.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.min(.5*b,.5*c,d);a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b-d,d);a.lineTo(d,d);a.lineTo(d,c-d);a.lineTo(0,c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicFrameCorner.prototype.cst.FRAME_CORNER,mxShapeBasicFrameCorner);mxShapeBasicFrameCorner.prototype.constraints=null;
5984Graph.handleFactory[mxShapeBasicFrameCorner.prototype.cst.FRAME_CORNER]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(a.width/2,a.width/2,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d,a.y+d)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,e.x-a.x)))/100})]};
5985mxShapeBasicFrameCorner.prototype.getConstraints=function(a,d,e){a=[];var b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),b=Math.min(.5*d,.5*e,b);a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,-b,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-2*b)+b,b));a.push(new mxConnectionConstraint(new mxPoint(0,
59860),!1,null,b,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,.5*(e-2*b)+b));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,b,-b));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));return a};function mxShapeBasicDiagStripe(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicDiagStripe,mxActor);
5987mxShapeBasicDiagStripe.prototype.customProperties=[{name:"dx",dispName:"Width",type:"float",mix:0,defVal:10}];mxShapeBasicDiagStripe.prototype.cst={DIAG_STRIPE:"mxgraph.basic.diag_stripe"};mxShapeBasicDiagStripe.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.min(b,c,d);a.begin();a.moveTo(0,c);a.lineTo(b,0);a.lineTo(b,Math.min(100*d/b,c));a.lineTo(Math.min(100*d/c,b),c);a.close();a.fillAndStroke()};
5988mxCellRenderer.registerShape(mxShapeBasicDiagStripe.prototype.cst.DIAG_STRIPE,mxShapeBasicDiagStripe);mxShapeBasicDiagStripe.prototype.constraints=null;
5989Graph.handleFactory[mxShapeBasicDiagStripe.prototype.cst.DIAG_STRIPE]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(a.width/2,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d,a.y+a.height)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,e.x-a.x)))/100})]};
5990mxShapeBasicDiagStripe.prototype.getConstraints=function(a,d,e){a=[];var b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),b=Math.min(d,e,b);a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*Math.min(100*b/d,e)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,Math.min(100*
5991b/d,e)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+Math.min(100*b/e,d)),.5*(Math.min(100*b/d,e)+e)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,Math.min(100*b/e,d),e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*Math.min(100*b/e,d),e));return a};function mxShapeBasicDonut(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicDonut,mxActor);
5992mxShapeBasicDonut.prototype.customProperties=[{name:"dx",dispName:"Width",type:"float",min:0,defVal:25}];mxShapeBasicDonut.prototype.cst={DONUT:"mxgraph.basic.donut"};
5993mxShapeBasicDonut.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.min(.5*b,.5*c,d);a.begin();a.moveTo(0,.5*c);a.arcTo(.5*b,.5*c,0,0,1,.5*b,0);a.arcTo(.5*b,.5*c,0,0,1,b,.5*c);a.arcTo(.5*b,.5*c,0,0,1,.5*b,c);a.arcTo(.5*b,.5*c,0,0,1,0,.5*c);a.close();a.moveTo(.5*b,d);a.arcTo(.5*b-d,.5*c-d,0,0,0,d,.5*c);a.arcTo(.5*b-d,.5*c-d,0,0,0,.5*b,c-d);a.arcTo(.5*b-d,.5*c-d,0,0,0,b-d,.5*c);a.arcTo(.5*b-d,.5*c-d,
59940,0,0,.5*b,d);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicDonut.prototype.cst.DONUT,mxShapeBasicDonut);mxShapeBasicDonut.prototype.constraints=null;
5995Graph.handleFactory[mxShapeBasicDonut.prototype.cst.DONUT]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(a.width/2,a.width/2,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d,a.y+a.height/2)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,e.x-a.x)))/100})]};
5996function mxShapeBasicLayeredRect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicLayeredRect,mxActor);mxShapeBasicLayeredRect.prototype.customProperties=[{name:"dx",dispName:"Layer Distance",type:"float",mix:0,defVal:10}];mxShapeBasicLayeredRect.prototype.cst={LAYERED_RECT:"mxgraph.basic.layered_rect"};
5997mxShapeBasicLayeredRect.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.min(.5*b,.5*c,d);a.begin();a.moveTo(d,d);a.lineTo(b,d);a.lineTo(b,c);a.lineTo(d,c);a.close();a.fillAndStroke();a.begin();a.moveTo(.5*d,.5*d);a.lineTo(b-.5*d,.5*d);a.lineTo(b-.5*d,c-.5*d);a.lineTo(.5*d,c-.5*d);a.close();a.fillAndStroke();a.begin();a.moveTo(0,0);a.lineTo(b-d,0);a.lineTo(b-d,c-d);a.lineTo(0,c-d);a.close();a.fillAndStroke()};
5998mxCellRenderer.registerShape(mxShapeBasicLayeredRect.prototype.cst.LAYERED_RECT,mxShapeBasicLayeredRect);mxShapeBasicLayeredRect.prototype.constraints=null;
5999Graph.handleFactory[mxShapeBasicLayeredRect.prototype.cst.LAYERED_RECT]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(a.width/2,a.width/2,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+a.width-d,a.y+a.height-d)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,-e.x+a.width+a.x)))/100})]};
6000mxShapeBasicLayeredRect.prototype.getConstraints=function(a,d,e){a=[];var b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),b=Math.min(.5*d,.5*e,b);a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*(d-b),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-b),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*(d-b),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),
6001!1,null,d-b,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.5*b,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.25*(e-b)+b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(e-b)+b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.75*(e-b)+b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
6002.75*(d-b)+b,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-b)+b,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*(d-b)+b,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*b,e-.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.75*(e-b)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
60030,.5*(e-b)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(e-b)));return a};function mxShapeBasicButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicButton,mxActor);mxShapeBasicButton.prototype.customProperties=[{name:"dx",dispName:"Button Height",type:"float",min:0,defVal:10}];mxShapeBasicButton.prototype.cst={BUTTON:"mxgraph.basic.button"};
6004mxShapeBasicButton.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.min(.5*b,.5*c,d);a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fillAndStroke();a.setShadow(!1);a.setLineJoin("round");a.begin();a.moveTo(0,c);a.lineTo(0,0);a.lineTo(d,d);a.lineTo(d,c-d);a.close();a.fillAndStroke();a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b-d,d);a.lineTo(d,d);a.close();a.fillAndStroke();
6005a.begin();a.moveTo(b,0);a.lineTo(b,c);a.lineTo(b-d,c-d);a.lineTo(b-d,d);a.close();a.fillAndStroke();a.begin();a.moveTo(0,c);a.lineTo(d,c-d);a.lineTo(b-d,c-d);a.lineTo(b,c);a.close();a.fillAndStroke();a.begin();a.moveTo(0,c);a.lineTo(0,0);a.lineTo(d,d);a.lineTo(d,c-d);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicButton.prototype.cst.BUTTON,mxShapeBasicButton);mxShapeBasicButton.prototype.constraints=null;
6006Graph.handleFactory[mxShapeBasicButton.prototype.cst.BUTTON]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(a.width/2,a.width/2,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d,a.y+d)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,e.x-a.x)))/100})]};
6007function mxShapeBasicShadedButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicShadedButton,mxActor);mxShapeBasicShadedButton.prototype.customProperties=[{name:"dx",dispName:"Button Height",type:"float",min:0,defVal:10}];mxShapeBasicShadedButton.prototype.cst={SHADED_BUTTON:"mxgraph.basic.shaded_button"};
6008mxShapeBasicShadedButton.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.setShadow(!1);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.min(.5*b,.5*c,d);a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fill();a.setFillColor("#ffffff");a.setAlpha(.25);a.begin();a.moveTo(0,c);a.lineTo(0,0);a.lineTo(d,d);a.lineTo(d,c-d);a.close();a.fill();a.setAlpha(.5);a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b-d,d);a.lineTo(d,
6009d);a.close();a.fill();a.setFillColor("#000000");a.setAlpha(.25);a.begin();a.moveTo(b,0);a.lineTo(b,c);a.lineTo(b-d,c-d);a.lineTo(b-d,d);a.close();a.fill();a.setAlpha(.5);a.begin();a.moveTo(0,c);a.lineTo(d,c-d);a.lineTo(b-d,c-d);a.lineTo(b,c);a.close();a.fill()};mxCellRenderer.registerShape(mxShapeBasicShadedButton.prototype.cst.SHADED_BUTTON,mxShapeBasicShadedButton);mxShapeBasicShadedButton.prototype.constraints=null;
6010Graph.handleFactory[mxShapeBasicShadedButton.prototype.cst.SHADED_BUTTON]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(a.width/2,a.width/2,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d,a.y+d)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,e.x-a.x)))/100})]};
6011function mxShapeBasicPie(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.startAngle=.25;this.endAngle=.75}mxUtils.extend(mxShapeBasicPie,mxActor);mxShapeBasicPie.prototype.customProperties=[{name:"startAngle",dispName:"Start Angle",type:"float",min:0,max:1,defVal:.2},{name:"endAngle",dispName:"End Angle",type:"float",min:0,max:1,defVal:.9}];mxShapeBasicPie.prototype.cst={PIE:"mxgraph.basic.pie"};
6012mxShapeBasicPie.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);var f=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"startAngle",this.startAngle)))),g=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"endAngle",this.endAngle)))),h=2*Math.PI*f,k=2*Math.PI*g;d=.5*b;e=.5*c;var l=d+Math.sin(h)*d,m=e-Math.cos(h)*e,n=d+Math.sin(k)*d,p=e-Math.cos(k)*e,k=k-h;0>k&&(k+=2*Math.PI);h=0;k>=Math.PI&&(h=1);a.begin();f%=1;g%=1;0==f&&.5==g?(a.moveTo(d,e),a.lineTo(l,m),a.arcTo(d,
6013e,0,0,1,b,.5*c),a.arcTo(d,e,0,0,1,.5*b,c)):.5==f&&0==g?(a.moveTo(d,e),a.lineTo(l,m),a.arcTo(d,e,0,0,1,0,.5*c),a.arcTo(d,e,0,0,1,.5*b,0)):(a.moveTo(d,e),a.lineTo(l,m),a.arcTo(d,e,0,h,1,n,p));a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicPie.prototype.cst.PIE,mxShapeBasicPie);mxShapeBasicPie.prototype.constraints=null;
6014Graph.handleFactory[mxShapeBasicPie.prototype.cst.PIE]=function(a){var d=[Graph.createHandle(a,["startAngle"],function(a){var b=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"startAngle",this.startAngle))));return new mxPoint(a.x+.5*a.width+Math.sin(b)*a.width*.5,a.y+.5*a.height-Math.cos(b)*a.height*.5)},function(a,b){var c=.5*Math.atan2(Math.round(100*Math.max(-1,Math.min(1,(b.x-a.x-.5*a.width)/(.5*a.width))))/100,-Math.round(100*Math.max(-1,Math.min(1,(b.y-a.y-.5*
6015a.height)/(.5*a.height))))/100)/Math.PI;0>c&&(c=1+c);this.state.style.startAngle=c})];a=Graph.createHandle(a,["endAngle"],function(a){var b=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"endAngle",this.endAngle))));return new mxPoint(a.x+.5*a.width+Math.sin(b)*a.width*.5,a.y+.5*a.height-Math.cos(b)*a.height*.5)},function(a,b){var c=.5*Math.atan2(Math.round(100*Math.max(-1,Math.min(1,(b.x-a.x-.5*a.width)/(.5*a.width))))/100,-Math.round(100*Math.max(-1,Math.min(1,(b.y-
6016a.y-.5*a.height)/(.5*a.height))))/100)/Math.PI;0>c&&(c=1+c);this.state.style.endAngle=c});d.push(a);return d};function mxShapeBasicArc(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.startAngle=.25;this.endAngle=.75}mxUtils.extend(mxShapeBasicArc,mxActor);mxShapeBasicArc.prototype.customProperties=[{name:"startAngle",dispName:"Start Angle",type:"float",min:0,max:1,defVal:.3},{name:"endAngle",dispName:"End Angle",type:"float",min:0,max:1,defVal:.1}];
6017mxShapeBasicArc.prototype.cst={ARC:"mxgraph.basic.arc"};
6018mxShapeBasicArc.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);var f=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"startAngle",this.startAngle)))),g=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"endAngle",this.endAngle)))),h=2*Math.PI*f,k=2*Math.PI*g;d=.5*b;e=.5*c;var l=d+Math.sin(h)*d,m=e-Math.cos(h)*e,n=d+Math.sin(k)*d,p=e-Math.cos(k)*e,k=k-h;0>k&&(k+=2*Math.PI);h=0;k>Math.PI&&(h=1);a.begin();f%=1;g%=1;0==f&&.5==g?(a.moveTo(l,m),a.arcTo(d,e,0,0,1,
6019b,.5*c),a.arcTo(d,e,0,0,1,.5*b,c)):.5==f&&0==g?(a.moveTo(l,m),a.arcTo(d,e,0,0,1,0,.5*c),a.arcTo(d,e,0,0,1,.5*b,0)):(a.moveTo(l,m),a.arcTo(d,e,0,h,1,n,p));a.stroke()};mxCellRenderer.registerShape(mxShapeBasicArc.prototype.cst.ARC,mxShapeBasicArc);mxShapeBasicArc.prototype.constraints=null;
6020Graph.handleFactory[mxShapeBasicArc.prototype.cst.ARC]=function(a){var d=[Graph.createHandle(a,["startAngle"],function(a){var b=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"startAngle",this.startAngle))));return new mxPoint(a.x+.5*a.width+Math.sin(b)*a.width*.5,a.y+.5*a.height-Math.cos(b)*a.height*.5)},function(a,b){var c=.5*Math.atan2(Math.round(100*Math.max(-1,Math.min(1,(b.x-a.x-.5*a.width)/(.5*a.width))))/100,-Math.round(100*Math.max(-1,Math.min(1,(b.y-a.y-.5*
6021a.height)/(.5*a.height))))/100)/Math.PI;0>c&&(c=1+c);this.state.style.startAngle=c})];a=Graph.createHandle(a,["endAngle"],function(a){var b=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"endAngle",this.endAngle))));return new mxPoint(a.x+.5*a.width+Math.sin(b)*a.width*.5,a.y+.5*a.height-Math.cos(b)*a.height*.5)},function(a,b){var c=.5*Math.atan2(Math.round(100*Math.max(-1,Math.min(1,(b.x-a.x-.5*a.width)/(.5*a.width))))/100,-Math.round(100*Math.max(-1,Math.min(1,(b.y-
6022a.y-.5*a.height)/(.5*a.height))))/100)/Math.PI;0>c&&(c=1+c);this.state.style.endAngle=c});d.push(a);return d};function mxShapeBasicPartConcEllipse(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.startAngle=.25;this.endAngle=.75;this.arcWidth=.5}mxUtils.extend(mxShapeBasicPartConcEllipse,mxActor);
6023mxShapeBasicPartConcEllipse.prototype.customProperties=[{name:"startAngle",dispName:"Start Angle",type:"float",min:0,max:1,defVal:.25},{name:"endAngle",dispName:"End Angle",type:"float",min:0,max:1,defVal:.1},{name:"arcWidth",dispName:"Arc Width",type:"float",min:0,max:1,defVal:.5}];mxShapeBasicPartConcEllipse.prototype.cst={PART_CONC_ELLIPSE:"mxgraph.basic.partConcEllipse"};
6024mxShapeBasicPartConcEllipse.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);var f=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"startAngle",this.startAngle))));d=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"endAngle",this.endAngle))));var g=1-Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arcWidth",this.arcWidth))));b*=.5;c*=.5;e=b*g;var g=c*g,h=d-f;0>h?h+=2*Math.PI:h==Math.PI&&(d+=1E-5);var k=b+Math.sin(f)*b,l=c-
6025Math.cos(f)*c,m=b+Math.sin(f)*e,f=c-Math.cos(f)*g,n=b+Math.sin(d)*b,p=c-Math.cos(d)*c,q=b+Math.sin(d)*e;d=c-Math.cos(d)*g;var t=0;h>=Math.PI&&(t=1);a.begin();a.moveTo(k,l);a.arcTo(b,c,0,t,1,n,p);a.lineTo(q,d);a.arcTo(e,g,0,t,0,m,f);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicPartConcEllipse.prototype.cst.PART_CONC_ELLIPSE,mxShapeBasicPartConcEllipse);mxShapeBasicPartConcEllipse.prototype.constraints=null;
6026Graph.handleFactory[mxShapeBasicPartConcEllipse.prototype.cst.PART_CONC_ELLIPSE]=function(a){var d=[Graph.createHandle(a,["startAngle"],function(a){var b=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"startAngle",this.startAngle))));return new mxPoint(a.x+.5*a.width+Math.sin(b)*a.width*.5,a.y+.5*a.height-Math.cos(b)*a.height*.5)},function(a,c){var b=.5*Math.atan2(Math.round(100*Math.max(-1,Math.min(1,(c.x-a.x-.5*a.width)/(.5*a.width))))/100,-Math.round(100*Math.max(-1,
6027Math.min(1,(c.y-a.y-.5*a.height)/(.5*a.height))))/100)/Math.PI;0>b&&(b=1+b);this.state.style.startAngle=b})],e=Graph.createHandle(a,["endAngle"],function(a){var b=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"endAngle",this.endAngle))));return new mxPoint(a.x+.5*a.width+Math.sin(b)*a.width*.5,a.y+.5*a.height-Math.cos(b)*a.height*.5)},function(a,c){var b=.5*Math.atan2(Math.round(100*Math.max(-1,Math.min(1,(c.x-a.x-.5*a.width)/(.5*a.width))))/100,-Math.round(100*Math.max(-1,
6028Math.min(1,(c.y-a.y-.5*a.height)/(.5*a.height))))/100)/Math.PI;0>b&&(b=1+b);this.state.style.endAngle=b});d.push(e);a=Graph.createHandle(a,["arcWidth"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"arcWidth",this.arcWidth))));return new mxPoint(a.x+a.width/2,a.y+b*a.height*.5)},function(a,c){this.state.style.arcWidth=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,(c.y-a.y)/(.5*a.height))))/100});d.push(a);return d};
6029function mxShapeBasicNumEntryVert(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dy=.5}mxUtils.extend(mxShapeBasicNumEntryVert,mxActor);mxShapeBasicNumEntryVert.prototype.cst={NUM_ENTRY_VERT:"mxgraph.basic.numberedEntryVert"};
6030mxShapeBasicNumEntryVert.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));d=Math.min(d,b-10,c-5);a.ellipse(.5*b-.5*d,0,d,d);a.fillAndStroke();a.begin();a.moveTo(0,.5*d);a.lineTo(.5*b-.5*d-5,.5*d);a.arcTo(.5*d+5,.5*d+5,0,0,0,.5*b+.5*d+5,.5*d);a.lineTo(b,.5*d);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicNumEntryVert.prototype.cst.NUM_ENTRY_VERT,mxShapeBasicNumEntryVert);
6031mxShapeBasicNumEntryVert.prototype.constraints=null;Graph.handleFactory[mxShapeBasicNumEntryVert.prototype.cst.NUM_ENTRY_VERT]=function(a){return[Graph.createHandle(a,["dy"],function(a){var d=Math.max(0,Math.min(a.width,a.width,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+a.width/2,a.y+d)},function(a,e){this.state.style.dy=Math.round(100*Math.max(0,Math.min(a.height,a.width,e.y-a.y)))/100})]};
6032function mxShapeBasicBendingArch(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.startAngle=.25;this.endAngle=.75;this.arcWidth=.5}mxUtils.extend(mxShapeBasicBendingArch,mxActor);mxShapeBasicBendingArch.prototype.cst={BENDING_ARCH:"mxgraph.basic.bendingArch"};
6033mxShapeBasicBendingArch.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);var f=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"startAngle",this.startAngle)))),g=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"endAngle",this.endAngle)))),h=1-Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arcWidth",this.arcWidth))));d=.5*b;e=.5*c;var k=d*h,h=e*h,l=d+Math.sin(f)*d,m=e-Math.cos(f)*e,n=d+Math.sin(f)*k,p=e-Math.cos(f)*h,q=d+Math.sin(g)*
6034d,t=e-Math.cos(g)*e,u=d+Math.sin(g)*k,v=e-Math.cos(g)*h,g=g-f;0>g&&(g+=2*Math.PI);f=0;g>Math.PI&&(f=1);var g=k-5,r=h-5;a.ellipse(.5*b-g,.5*c-r,2*g,2*r);a.fillAndStroke();a.begin();a.moveTo(l,m);a.arcTo(d,e,0,f,1,q,t);a.lineTo(u,v);a.arcTo(k,h,0,f,0,n,p);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicBendingArch.prototype.cst.BENDING_ARCH,mxShapeBasicBendingArch);mxShapeBasicBendingArch.prototype.constraints=null;
6035Graph.handleFactory[mxShapeBasicBendingArch.prototype.cst.BENDING_ARCH]=function(a){var d=[Graph.createHandle(a,["startAngle"],function(a){var b=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"startAngle",this.startAngle))));return new mxPoint(a.x+.5*a.width+Math.sin(b)*a.width*.5,a.y+.5*a.height-Math.cos(b)*a.height*.5)},function(a,c){var b=.5*Math.atan2(Math.round(100*Math.max(-1,Math.min(1,(c.x-a.x-.5*a.width)/(.5*a.width))))/100,-Math.round(100*Math.max(-1,Math.min(1,
6036(c.y-a.y-.5*a.height)/(.5*a.height))))/100)/Math.PI;0>b&&(b=1+b);this.state.style.startAngle=b})],e=Graph.createHandle(a,["endAngle"],function(a){var b=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"endAngle",this.endAngle))));return new mxPoint(a.x+.5*a.width+Math.sin(b)*a.width*.5,a.y+.5*a.height-Math.cos(b)*a.height*.5)},function(a,c){var b=.5*Math.atan2(Math.round(100*Math.max(-1,Math.min(1,(c.x-a.x-.5*a.width)/(.5*a.width))))/100,-Math.round(100*Math.max(-1,Math.min(1,
6037(c.y-a.y-.5*a.height)/(.5*a.height))))/100)/Math.PI;0>b&&(b=1+b);this.state.style.endAngle=b});d.push(e);a=Graph.createHandle(a,["arcWidth"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"arcWidth",this.arcWidth))));return new mxPoint(a.x+a.width/2,a.y+b*a.height*.5)},function(a,c){this.state.style.arcWidth=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,(c.y-a.y)/(.5*a.height))))/100});d.push(a);return d};
6038function mxShapeBasicThreeCornerRoundRect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicThreeCornerRoundRect,mxActor);mxShapeBasicThreeCornerRoundRect.prototype.customProperties=[{name:"dx",dispName:"Rounding Size",type:"float",min:0,defVal:6}];mxShapeBasicThreeCornerRoundRect.prototype.cst={THREE_CORNER_ROUND_RECT:"mxgraph.basic.three_corner_round_rect"};
6039mxShapeBasicThreeCornerRoundRect.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=2*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.min(.5*b,.5*c,d);a.begin();a.moveTo(d,0);a.lineTo(b-d,0);a.arcTo(d,d,0,0,1,b,d);a.lineTo(b,c-d);a.arcTo(d,d,0,0,1,b-d,c);a.lineTo(0,c);a.lineTo(0,d);a.arcTo(d,d,0,0,1,d,0);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicThreeCornerRoundRect.prototype.cst.THREE_CORNER_ROUND_RECT,mxShapeBasicThreeCornerRoundRect);
6040mxShapeBasicThreeCornerRoundRect.prototype.constraints=null;Graph.handleFactory[mxShapeBasicThreeCornerRoundRect.prototype.cst.THREE_CORNER_ROUND_RECT]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(a.width/4,a.width/4,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d,a.y+d)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.height/4,a.width/4,e.x-a.x)))/100})]};
6041mxShapeBasicThreeCornerRoundRect.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));return a};
6042function mxShapeBasicPolygon(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dy=this.dx=.5}mxUtils.extend(mxShapeBasicPolygon,mxActor);mxShapeBasicPolygon.prototype.customProperties=[{name:"polyline",dispName:"Polyline",type:"bool",defVal:!1}];mxShapeBasicPolygon.prototype.cst={POLYGON:"mxgraph.basic.polygon"};
6043mxShapeBasicPolygon.prototype.paintVertexShape=function(a,d,e,b,c){try{a.translate(d,e);var f=JSON.parse(mxUtils.getValue(this.state.style,"polyCoords","[]")),g=mxUtils.getValue(this.style,"polyline",!1);if(0<f.length){a.begin();a.moveTo(f[0][0]*b,f[0][1]*c);for(d=1;d<f.length;d++)a.lineTo(f[d][0]*b,f[d][1]*c);0==g&&a.close();a.end();a.fillAndStroke()}}catch(h){}};mxCellRenderer.registerShape(mxShapeBasicPolygon.prototype.cst.POLYGON,mxShapeBasicPolygon);
6044mxShapeBasicPolygon.prototype.constraints=null;
6045Graph.handleFactory[mxShapeBasicPolygon.prototype.cst.POLYGON]=function(a){var d=[];try{for(var e=JSON.parse(mxUtils.getValue(a.style,"polyCoords","[]")),b=0;b<e.length;b++)(function(b){d.push(Graph.createHandle(a,["polyCoords"],function(a){return new mxPoint(a.x+e[b][0]*a.width,a.y+e[b][1]*a.height)},function(c,d){e[b]=[Math.round(100*Math.max(0,Math.min(1,(d.x-c.x)/c.width)))/100,Math.round(100*Math.max(0,Math.min(1,(d.y-c.y)/c.height)))/100];a.style.polyCoords=JSON.stringify(e)},!1))})(b)}catch(c){}return d};
6046function mxShapeBasicPatternFillRect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicPatternFillRect,mxActor);mxShapeBasicPatternFillRect.prototype.cst={PATTERN_FILL_RECT:"mxgraph.basic.patternFillRect"};
6047mxShapeBasicPatternFillRect.prototype.customProperties=[{name:"step",dispName:"Fill Step",type:"float",min:0,defVal:5},{name:"fillStyle",dispName:"Fill Style",type:"enum",defVal:"none",enumList:[{val:"none",dispName:"None"},{val:"diag",dispName:"Diagonal"},{val:"diagRev",dispName:"Diagonal Reverse"},{val:"vert",dispName:"Vertical"},{val:"hor",dispName:"Horizontal"},{val:"grid",dispName:"Grid"},{val:"diagGrid",dispName:"Diagonal Grid"}]},{name:"fillStrokeWidth",dispName:"Fill Stroke Width",type:"float",
6048min:0,defVal:1},{name:"fillStrokeColor",dispName:"Fill Stroke Color",type:"color",defVal:"#cccccc"},{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"right",dispName:"Right Line",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left Line",type:"bool",defVal:!0}];
6049mxShapeBasicPatternFillRect.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=mxUtils.getValue(this.style,"strokeColor","#000000");e=mxUtils.getValue(this.style,"strokeWidth","1");a.rect(0,0,b,c);a.fill();var f=mxUtils.getValue(this.style,"fillStrokeColor","#cccccc"),g=parseFloat(mxUtils.getValue(this.style,"fillStrokeWidth",1));a.setStrokeColor(f);a.setStrokeWidth(g);f=parseFloat(mxUtils.getValue(this.style,"step",5));g=mxUtils.getValue(this.style,"fillStyle","none");if("diag"==g||
6050"diagGrid"==g){var f=1.41*f,h=0;for(a.begin();h<c+b;)h<=c?a.moveTo(0,h):a.moveTo(h-c,c),h<=b?a.lineTo(h,0):a.lineTo(b,h-b),h+=f;a.stroke()}else if("vert"==g||"grid"==g){a.begin();for(h=0;h<=b;)a.moveTo(h,0),a.lineTo(h,c),h+=f;a.stroke()}if("diagRev"==g||"diagGrid"==g){"diagRev"==g&&(f*=1.41);h=0;for(a.begin();h<c+b;)h<=c?(a.moveTo(b,h),h<=b?a.lineTo(b-h,0):a.lineTo(b-b,h-b)):(a.moveTo(b-h+c,c),h<=b?a.lineTo(b-h,0):a.lineTo(0,h-b)),h+=f;a.stroke()}else if("hor"==g||"grid"==g){a.begin();for(h=0;h<=
6051c;)a.moveTo(0,h),a.lineTo(b,h),h+=f;a.stroke()}a.setStrokeColor(d);a.setStrokeWidth(e);a.begin();a.moveTo(0,0);"1"==mxUtils.getValue(this.style,"top","1")?a.lineTo(b,0):a.moveTo(b,0);"1"==mxUtils.getValue(this.style,"right","1")?a.lineTo(b,c):a.moveTo(b,c);"1"==mxUtils.getValue(this.style,"bottom","1")?a.lineTo(0,c):a.moveTo(0,c);"1"==mxUtils.getValue(this.style,"left","1")&&a.lineTo(0,0);a.end();a.stroke()};
6052mxCellRenderer.registerShape(mxShapeBasicPatternFillRect.prototype.cst.PATTERN_FILL_RECT,mxShapeBasicPatternFillRect);
6053mxShapeBasicPatternFillRect.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,
6054.75),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
6055.25),!1));return a};function mxShapeBootstrapRRect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeBootstrapRRect,mxShape);mxShapeBootstrapRRect.prototype.cst={PACKAGE:"mxgraph.bootstrap.rrect",R_SIZE:"rSize"};mxShapeBootstrapRRect.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}];
6056mxShapeBootstrapRRect.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeBootstrapRRect.prototype.cst.R_SIZE,"10"));a.roundrect(0,0,b,c,d);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBootstrapRRect.prototype.cst.PACKAGE,mxShapeBootstrapRRect);function mxShapeBootstrapTopButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeBootstrapTopButton,mxShape);
6057mxShapeBootstrapTopButton.prototype.cst={TOP_BUTTON:"mxgraph.bootstrap.topButton",R_SIZE:"rSize"};mxShapeBootstrapTopButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}];
6058mxShapeBootstrapTopButton.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeBootstrapTopButton.prototype.cst.R_SIZE,"10"));a.begin();a.moveTo(0,d);a.arcTo(d,d,0,0,1,d,0);a.lineTo(b-d,0);a.arcTo(d,d,0,0,1,b,d);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBootstrapTopButton.prototype.cst.TOP_BUTTON,mxShapeBootstrapTopButton);
6059function mxShapeBootstrapBottomButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeBootstrapBottomButton,mxShape);mxShapeBootstrapBottomButton.prototype.cst={BOTTOM_BUTTON:"mxgraph.bootstrap.bottomButton",R_SIZE:"rSize"};mxShapeBootstrapBottomButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}];
6060mxShapeBootstrapBottomButton.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeBootstrapBottomButton.prototype.cst.R_SIZE,"10"));a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,c-d);a.arcTo(d,d,0,0,1,b-d,c);a.lineTo(d,c);a.arcTo(d,d,0,0,1,0,c-d);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBootstrapBottomButton.prototype.cst.BOTTOM_BUTTON,mxShapeBootstrapBottomButton);
6061function mxShapeBootstrapRightButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeBootstrapRightButton,mxShape);mxShapeBootstrapRightButton.prototype.cst={RIGHT_BUTTON:"mxgraph.bootstrap.rightButton",R_SIZE:"rSize"};mxShapeBootstrapRightButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}];
6062mxShapeBootstrapRightButton.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeBootstrapRightButton.prototype.cst.R_SIZE,"10"));a.begin();a.moveTo(0,0);a.lineTo(b-d,0);a.arcTo(d,d,0,0,1,b,d);a.lineTo(b,c-d);a.arcTo(d,d,0,0,1,b-d,c);a.lineTo(0,c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBootstrapRightButton.prototype.cst.RIGHT_BUTTON,mxShapeBootstrapRightButton);
6063function mxShapeBootstrapLeftButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeBootstrapLeftButton,mxShape);mxShapeBootstrapLeftButton.prototype.cst={LEFT_BUTTON:"mxgraph.bootstrap.leftButton",R_SIZE:"rSize"};mxShapeBootstrapLeftButton.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10}];
6064mxShapeBootstrapLeftButton.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeBootstrapLeftButton.prototype.cst.R_SIZE,"10"));a.begin();a.moveTo(b,0);a.lineTo(b,c);a.lineTo(d,c);a.arcTo(d,d,0,0,1,0,c-d);a.lineTo(0,d);a.arcTo(d,d,0,0,1,d,0);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBootstrapLeftButton.prototype.cst.LEFT_BUTTON,mxShapeBootstrapLeftButton);
6065function mxShapeBootstrapLeftButtonStriped(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeBootstrapLeftButtonStriped,mxShape);mxShapeBootstrapLeftButtonStriped.prototype.cst={LEFT_BUTTON_STRIPED:"mxgraph.bootstrap.leftButtonStriped"};
6066mxShapeBootstrapLeftButtonStriped.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);rSize=5;a.begin();a.moveTo(b,0);a.lineTo(b,c);a.lineTo(rSize,c);a.arcTo(rSize,rSize,0,0,1,0,c-rSize);a.lineTo(0,rSize);a.arcTo(rSize,rSize,0,0,1,rSize,0);a.close();a.fill();a.setAlpha("0.2");d=.5*c;a.setFillColor("#ffffff");a.begin();a.moveTo(0,.75*c);a.lineTo(0,.25*c);a.lineTo(.75*c,c);a.lineTo(.25*c,c);a.close();a.fill();e=!1;for(var f=.5*d;!e;)a.begin(),a.moveTo(f,0),f+d>=b?(a.lineTo(b,0),a.lineTo(b,
6067b-f)):(a.lineTo(f+d,0),f+d+c>b?(a.lineTo(b,b-f-d),b-f>c?(a.lineTo(b,c),a.lineTo(f+c,c)):a.lineTo(b,b-f)):(a.lineTo(f+d+c,c),a.lineTo(f+c,c))),a.close(),a.fill(),f+=2*d,f>b&&(e=!0)};mxCellRenderer.registerShape(mxShapeBootstrapLeftButtonStriped.prototype.cst.LEFT_BUTTON_STRIPED,mxShapeBootstrapLeftButtonStriped);function mxShapeBootstrapRoundedButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeBootstrapRoundedButton,mxShape);
6068mxShapeBootstrapRoundedButton.prototype.cst={ROUNDED_BUTTON:"mxgraph.bootstrap.roundedButton"};mxShapeBootstrapRoundedButton.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);b>c?(d=.5*c,a.begin(),a.moveTo(b-d,0),a.arcTo(d,d,0,0,1,b-d,c),a.lineTo(d,c),a.arcTo(d,d,0,0,1,d,0)):(d=.5*b,a.begin(),a.moveTo(0,c-d),a.arcTo(d,d,0,0,0,b,c-d),a.lineTo(b,d),a.arcTo(d,d,0,0,0,0,d));a.close();a.fillAndStroke()};
6069mxCellRenderer.registerShape(mxShapeBootstrapRoundedButton.prototype.cst.ROUNDED_BUTTON,mxShapeBootstrapRoundedButton);function mxShapeBootstrapArrow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeBootstrapArrow,mxShape);mxShapeBootstrapArrow.prototype.cst={ARROW:"mxgraph.bootstrap.arrow"};
6070mxShapeBootstrapArrow.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(0,.5*c);a.lineTo(b,.5*c);a.moveTo(.9*b,0);a.lineTo(b,.5*c);a.lineTo(.9*b,c);a.stroke()};mxCellRenderer.registerShape(mxShapeBootstrapArrow.prototype.cst.ARROW,mxShapeBootstrapArrow);function mxShapeBootstrapTabTop(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeBootstrapTabTop,mxShape);
6071mxShapeBootstrapTabTop.prototype.cst={TAB_TOP:"mxgraph.bootstrap.tabTop",R_SIZE:"rSize"};mxShapeBootstrapTabTop.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:5}];
6072mxShapeBootstrapTabTop.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeBootstrapTopButton.prototype.cst.R_SIZE,"10"));e=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");var f=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff");a.setStrokeColor(f);a.begin();a.moveTo(0,d);a.arcTo(d,d,0,0,1,d,0);a.lineTo(b-d,0);a.arcTo(d,d,0,0,1,b,d);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fillAndStroke();a.setStrokeColor(e);
6073a.begin();a.moveTo(0,c);a.lineTo(0,d);a.arcTo(d,d,0,0,1,d,0);a.lineTo(b-d,0);a.arcTo(d,d,0,0,1,b,d);a.lineTo(b,c);a.stroke()};mxCellRenderer.registerShape(mxShapeBootstrapTabTop.prototype.cst.TAB_TOP,mxShapeBootstrapTabTop);function mxShapeBootstrapImage(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeBootstrapImage,mxShape);mxShapeBootstrapImage.prototype.cst={IMAGE:"mxgraph.bootstrap.image",R_SIZE:"rSize"};
6074mxShapeBootstrapImage.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:5}];
6075mxShapeBootstrapImage.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,parseInt(mxUtils.getValue(this.style,mxShapeBootstrapTopButton.prototype.cst.R_SIZE,"10")));mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff");a.begin();a.moveTo(0,d);a.arcTo(d,d,0,0,1,d,0);a.lineTo(b-d,0);a.arcTo(d,d,0,0,1,b,d);a.lineTo(b,c-d);a.arcTo(d,d,0,0,1,b-d,c);a.lineTo(d,c);a.arcTo(d,d,0,0,1,0,c-d);a.close();
6076a.stroke();e=.5*d;a.translate(e,e);b=Math.max(0,b-d);c=Math.max(0,c-d);a.begin();a.moveTo(0,e);a.arcTo(e,e,0,0,1,e,0);a.lineTo(b-e,0);a.arcTo(e,e,0,0,1,b,e);a.lineTo(b,c-e);a.arcTo(e,e,0,0,1,b-e,c);a.lineTo(e,c);a.arcTo(e,e,0,0,1,0,c-e);a.close();a.fill()};mxCellRenderer.registerShape(mxShapeBootstrapImage.prototype.cst.IMAGE,mxShapeBootstrapImage);function mxShapeBootstrapCheckbox(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
6077mxUtils.extend(mxShapeBootstrapCheckbox,mxShape);mxShapeBootstrapCheckbox.prototype.cst={CHECKBOX:"mxgraph.bootstrap.checkbox"};mxShapeBootstrapCheckbox.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.roundrect(0,0,b,c,3,3);a.fillAndStroke();a.setStrokeWidth("3");a.begin();a.moveTo(.8*b,.2*c);a.lineTo(.4*b,.8*c);a.lineTo(.25*b,.6*c);a.stroke()};mxCellRenderer.registerShape(mxShapeBootstrapCheckbox.prototype.cst.CHECKBOX,mxShapeBootstrapCheckbox);
6078function mxShapeBootstrapCheckbox2(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeBootstrapCheckbox2,mxShape);mxShapeBootstrapCheckbox2.prototype.customProperties=[{name:"checked",dispName:"Checked",type:"bool",defVal:!1},{name:"checkedFill",dispName:"Checked Fill Color",type:"color",defVal:"#ffffff"},{name:"checkedStroke",dispName:"Checked Stroke Color",type:"color",defVal:"#000000"}];
6079mxShapeBootstrapCheckbox2.prototype.cst={CHECKBOX2:"mxgraph.bootstrap.checkbox2"};
6080mxShapeBootstrapCheckbox2.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,"checked",!1),g=mxUtils.getValue(this.style,"checkedFill","#ffffff"),h=mxUtils.getValue(this.style,"checkedStroke","#000000");a.translate(d,e);f?(a.setFillColor(g),a.setStrokeColor(h),a.roundrect(0,0,b,c,2,2),a.fill(),a.setStrokeWidth("2"),a.begin(),a.moveTo(.8*b,.2*c),a.lineTo(.4*b,.75*c),a.lineTo(.25*b,.6*c),a.stroke()):(a.roundrect(0,0,b,c,2,2),a.fillAndStroke())};
6081mxCellRenderer.registerShape(mxShapeBootstrapCheckbox2.prototype.cst.CHECKBOX2,mxShapeBootstrapCheckbox2);function mxShapeBootstrapRadioButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeBootstrapRadioButton,mxShape);mxShapeBootstrapRadioButton.prototype.cst={RADIO_BUTTON:"mxgraph.bootstrap.radioButton"};
6082mxShapeBootstrapRadioButton.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");a.ellipse(0,0,b,c);a.fillAndStroke();a.setFillColor(d);a.ellipse(.25*b,.25*c,.5*b,.5*c);a.fill()};mxCellRenderer.registerShape(mxShapeBootstrapRadioButton.prototype.cst.RADIO_BUTTON,mxShapeBootstrapRadioButton);
6083function mxShapeBootstrapRadioButton2(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeBootstrapRadioButton2,mxShape);mxShapeBootstrapRadioButton2.prototype.customProperties=[{name:"checked",dispName:"Checked",type:"bool",defVal:!1},{name:"checkedFill",dispName:"Checked Fill Color",type:"color",defVal:"#ffffff"},{name:"checkedStroke",dispName:"Checked Stroke Color",type:"color",defVal:"#000000"}];
6084mxShapeBootstrapRadioButton2.prototype.cst={RADIO_BUTTON2:"mxgraph.bootstrap.radioButton2"};
6085mxShapeBootstrapRadioButton2.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,"checked",!1),g=mxUtils.getValue(this.style,"checkedFill","#ffffff"),h=mxUtils.getValue(this.style,"checkedStroke","#000000");a.translate(d,e);f?(a.setFillColor(g),a.setStrokeColor(g),a.ellipse(0,0,b,c),a.fillAndStroke(),a.setFillColor(h),a.ellipse(.2*b,.2*c,.6*b,.6*c),a.fill()):(a.ellipse(0,0,b,c),a.fillAndStroke())};
6086mxCellRenderer.registerShape(mxShapeBootstrapRadioButton2.prototype.cst.RADIO_BUTTON2,mxShapeBootstrapRadioButton2);function mxShapeBootstrapHorLines(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeBootstrapHorLines,mxShape);mxShapeBootstrapHorLines.prototype.cst={HOR_LINES:"mxgraph.bootstrap.horLines"};
6087mxShapeBootstrapHorLines.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.rect(0,0,b,c);a.fill();a.begin();a.moveTo(0,0);a.lineTo(b,0);a.moveTo(0,c);a.lineTo(b,c);a.stroke()};mxCellRenderer.registerShape(mxShapeBootstrapHorLines.prototype.cst.HOR_LINES,mxShapeBootstrapHorLines);function mxShapeBootstrapUserTwo(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeBootstrapUserTwo,mxShape);
6088mxShapeBootstrapUserTwo.prototype.cst={USER2:"mxgraph.bootstrap.user2"};
6089mxShapeBootstrapUserTwo.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(0,.95*c);a.arcTo(.3*b,.3*c,0,0,1,.02*b,.87*c);a.arcTo(.1*b,.1*c,0,0,1,.08*b,.812*c);a.arcTo(3*b,3*c,0,0,1,.29*b,.732*c);a.arcTo(.15*b,.15*c,0,0,0,.385*b,.607*c);a.arcTo(.11*b,.11*c,0,0,0,.355*b,.53*c);a.arcTo(.3*b,.3*c,0,0,1,.305*b,.44*c);a.arcTo(.33*b,.38*c,0,0,1,.312*b,.15*c);a.arcTo(.218*b,.218*c,0,0,1,.688*b,.15*c);a.arcTo(.33*b,.38*c,0,0,1,.693*b,.44*c);a.arcTo(.25*b,.25*c,0,0,1,.645*b,
6090.53*c);a.arcTo(.1*b,.1*c,0,0,0,.612*b,.6*c);a.arcTo(.15*b,.15*c,0,0,0,.7*b,.726*c);a.arcTo(3*b,3*c,0,0,1,.92*b,.812*c);a.arcTo(.1*b,.1*c,0,0,1,.97*b,.865*c);a.arcTo(.2*b,.2*c,0,0,1,.995*b,.952*c);a.close();a.fill()};mxCellRenderer.registerShape(mxShapeBootstrapUserTwo.prototype.cst.USER2,mxShapeBootstrapUserTwo);function mxShapeBootstrapRating(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeBootstrapRating,mxShape);
6091mxShapeBootstrapRating.prototype.cst={RATING:"mxgraph.bootstrap.rating",RATING_STYLE:"ratingStyle",RATING_SCALE:"ratingScale",RATING_HEART:"heart",RATING_STAR:"star",EMPTY_FILL_COLOR:"emptyFillColor",GRADE:"grade"};
6092mxShapeBootstrapRating.prototype.customProperties=[{name:"ratingStyle",dispName:"Rating Style",type:"enum",enumList:[{val:"heart",dispName:"Heart"},{val:"star",dispName:"Star"}]},{name:"ratingScale",dispName:"Rating Scale",type:"int",min:1,defVal:5},{name:"emptyFillColor",dispName:"Inactive Color",type:"color",defVal:"none"},{name:"grade",dispName:"Grade",type:"int",min:1,defVal:3}];
6093mxShapeBootstrapRating.prototype.paintVertexShape=function(a,d,e,b,c){b=mxUtils.getValue(this.style,mxShapeBootstrapRating.prototype.cst.RATING_STYLE,mxShapeBootstrapRating.prototype.cst.RATING_STAR);var f=mxUtils.getValue(this.style,mxShapeBootstrapRating.prototype.cst.GRADE,"5"),g=mxUtils.getValue(this.style,mxShapeBootstrapRating.prototype.cst.RATING_SCALE,"10");a.translate(d,e);if(b===mxShapeBootstrapRating.prototype.cst.RATING_STAR)for(d=0;d<f;d++)a.begin(),a.moveTo(d*c*1.2,.33*c),a.lineTo(d*
6094c*1.2+.364*c,.33*c),a.lineTo(d*c*1.2+.475*c,0),a.lineTo(d*c*1.2+.586*c,.33*c),a.lineTo(d*c*1.2+.95*c,.33*c),a.lineTo(d*c*1.2+.66*c,.551*c),a.lineTo(d*c*1.2+.775*c,.9*c),a.lineTo(d*c*1.2+.475*c,.684*c),a.lineTo(d*c*1.2+.175*c,.9*c),a.lineTo(d*c*1.2+.29*c,.551*c),a.close(),a.fillAndStroke();else if(b===mxShapeBootstrapRating.prototype.cst.RATING_HEART)for(d=0;d<f;d++)a.begin(),a.moveTo(d*c*1.2+.519*c,.947*c),a.curveTo(d*c*1.2+.558*c,.908*c,d*c*1.2+.778*c,.682*c,d*c*1.2+.916*c,.54*c),a.curveTo(d*c*1.2+
60951.039*c,.414*c,d*c*1.2+1.036*c,.229*c,d*c*1.2+.924*c,.115*c),a.curveTo(d*c*1.2+.812*c,0,d*c*1.2+.631*c,0,d*c*1.2+.519*c,.115*c),a.curveTo(d*c*1.2+.408*c,0,d*c*1.2+.227*c,0,d*c*1.2+.115*c,.115*c),a.curveTo(d*c*1.2+.03*c,.229*c,d*c*1.2,.414*c,d*c*1.2+.123*c,.54*c),a.close(),a.fillAndStroke();d=mxUtils.getValue(this.style,mxShapeBootstrapRating.prototype.cst.EMPTY_FILL_COLOR,"#ffffff");a.setFillColor(d);if(b===mxShapeBootstrapRating.prototype.cst.RATING_STAR)for(d=f;d<g;d++)a.begin(),a.moveTo(d*c*1.2,
6096.33*c),a.lineTo(d*c*1.2+.364*c,.33*c),a.lineTo(d*c*1.2+.475*c,0),a.lineTo(d*c*1.2+.586*c,.33*c),a.lineTo(d*c*1.2+.95*c,.33*c),a.lineTo(d*c*1.2+.66*c,.551*c),a.lineTo(d*c*1.2+.775*c,.9*c),a.lineTo(d*c*1.2+.475*c,.684*c),a.lineTo(d*c*1.2+.175*c,.9*c),a.lineTo(d*c*1.2+.29*c,.551*c),a.close(),a.fillAndStroke();else if(b===mxShapeBootstrapRating.prototype.cst.RATING_HEART)for(d=f;d<g;d++)a.begin(),a.moveTo(d*c*1.2+.519*c,.947*c),a.curveTo(d*c*1.2+.558*c,.908*c,d*c*1.2+.778*c,.682*c,d*c*1.2+.916*c,.54*
6097c),a.curveTo(d*c*1.2+1.039*c,.414*c,d*c*1.2+1.036*c,.229*c,d*c*1.2+.924*c,.115*c),a.curveTo(d*c*1.2+.812*c,0,d*c*1.2+.631*c,0,d*c*1.2+.519*c,.115*c),a.curveTo(d*c*1.2+.408*c,0,d*c*1.2+.227*c,0,d*c*1.2+.115*c,.115*c),a.curveTo(d*c*1.2+.03*c,.229*c,d*c*1.2,.414*c,d*c*1.2+.123*c,.54*c),a.close(),a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBootstrapRating.prototype.cst.RATING,mxShapeBootstrapRating);function mxShapeBoostrapAnchor(a,d,e,b){mxShape.call(this);this.bounds=a}
6098mxUtils.extend(mxShapeBoostrapAnchor,mxShape);mxShapeBoostrapAnchor.prototype.cst={ANCHOR:"mxgraph.bootstrap.anchor"};mxShapeBoostrapAnchor.prototype.paintVertexShape=function(a,d,e,b,c){};mxCellRenderer.registerShape(mxShapeBoostrapAnchor.prototype.cst.ANCHOR,mxShapeBoostrapAnchor);function mxShapeBootstrapRangeInput(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.3}mxUtils.extend(mxShapeBootstrapRangeInput,mxShape);
6099mxShapeBootstrapRangeInput.prototype.customProperties=[{name:"dx",dispName:"Handle Position",type:"float",min:0,max:1,defVal:.3},{name:"rangeStyle",dispName:"Range Style",type:"enum",enumList:[{val:"rect",dispName:"Rectangle"},{val:"rounded",dispName:"Rounded"}]},{name:"handleStyle",dispName:"Handle Style",type:"enum",enumList:[{val:"rect",dispName:"Rectangle"},{val:"circle",dispName:"Circle"}]}];mxShapeBootstrapRangeInput.prototype.cst={RANGE_INPUT:"mxgraph.bootstrap.rangeInput"};
6100mxShapeBootstrapRangeInput.prototype.paintVertexShape=function(a,d,e,b,c){var f=b*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),g=mxUtils.getValue(this.style,"gradientColor","none"),h=mxUtils.getValue(this.state.style,"fillColor","#ffffff"),k=mxUtils.getValue(this.state.style,"strokeColor","#000000"),l=mxUtils.getValue(this.state.style,"gradientDirection","south"),m=mxUtils.getValue(this.state.style,"rangeStyle","rounded"),n=mxUtils.getValue(this.state.style,"handleStyle",
6101"circle"),p=Math.min(.5*c,.5*b),q=.5*p;a.translate(d,e);if("rect"==m){var t=d=parseFloat(mxUtils.getValue(this.style,"opacity","100")),u=d;"none"==h&&(t=0);"none"==g&&(u=0);a.setGradient(h,h,0,0,b,c,l,t,u);a.rect(0,.5*c-2,b,4);a.fill()}else"rounded"==m&&(a.begin(),a.moveTo(0,.5*c),a.arcTo(q,q,0,0,1,q,.5*c-q),a.lineTo(b-q,.5*c-q),a.arcTo(q,q,0,0,1,b,.5*c),a.arcTo(q,q,0,0,1,b-q,.5*c+q),a.lineTo(q,.5*c+q),a.arcTo(q,q,0,0,1,0,.5*c),a.close(),a.fill());"rect"==n?(a.setGradient(h,g,0,0,b,c,l,t,u),b=.5*
6102c,a.rect(f-.5*b,0,b,c),a.fillAndStroke(),a.begin(),a.moveTo(f-.25*b,.3*c),a.lineTo(f+.25*b,.3*c),a.moveTo(f-.25*b,.5*c),a.lineTo(f+.25*b,.5*c),a.moveTo(f-.25*b,.7*c),a.lineTo(f+.25*b,.7*c),a.stroke()):"circle"==n&&(a.setFillColor(k),a.ellipse(f-p,0,2*p,2*p),a.fill())};mxCellRenderer.registerShape(mxShapeBootstrapRangeInput.prototype.cst.RANGE_INPUT,mxShapeBootstrapRangeInput);mxShapeBootstrapRangeInput.prototype.constraints=null;
6103Graph.handleFactory[mxShapeBootstrapRangeInput.prototype.cst.RANGE_INPUT]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d*a.width,a.y+a.height/2)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(1,(e.x-a.x)/a.width)))/100})]};
6104function mxShapeBootstrapSwitch(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeBootstrapSwitch,mxShape);mxShapeBootstrapSwitch.prototype.customProperties=[{name:"buttonState",dispName:"Button State",type:"bool",defVal:!0},{name:"onStrokeColor",dispName:"On Stroke Color",type:"color"},{name:"onFillColor",dispName:"On Fill Color",type:"color"}];mxShapeBootstrapSwitch.prototype.cst={SHAPE_SWITCH:"mxgraph.bootstrap.switch"};
6105mxShapeBootstrapSwitch.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);b=Math.max(b,2*c);var f=mxUtils.getValue(this.style,"buttonState",!0);this.background(a,d,e,b,c,f);a.setShadow(!1);this.foreground(a,d,e,b,c,f)};
6106mxShapeBootstrapSwitch.prototype.background=function(a,d,e,b,c,f){1==f?(a.setStrokeColor(mxUtils.getValue(this.style,"onStrokeColor","#ffffff")),a.setFillColor(mxUtils.getValue(this.style,"onFillColor","#0085FC")),a.roundrect(0,0,b,c,.5*c,.5*c),a.fill()):(a.roundrect(0,0,b,c,.5*c,.5*c),a.fillAndStroke())};
6107mxShapeBootstrapSwitch.prototype.foreground=function(a,d,e,b,c,f){d=.8*c;1==f?(a.setFillColor(mxUtils.getValue(this.style,"onStrokeColor","#ffffff")),a.ellipse(b-.9*c,.1*c,d,d)):(a.setFillColor(mxUtils.getValue(this.style,"strokeColor","#000000")),a.ellipse(.1*c,.1*c,d,d));a.fill()};mxCellRenderer.registerShape(mxShapeBootstrapSwitch.prototype.cst.SHAPE_SWITCH,mxShapeBootstrapSwitch);
6108function mxShapeBootstrapX(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeBootstrapX,mxShape);mxShapeBootstrapX.prototype.cst={SHAPE_X:"mxgraph.bootstrap.x"};mxShapeBootstrapX.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(0,0);a.lineTo(b,c);a.moveTo(b,0);a.lineTo(0,c);a.stroke()};mxCellRenderer.registerShape(mxShapeBootstrapX.prototype.cst.SHAPE_X,mxShapeBootstrapX);
6109function mxShapeInfographicPopover(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dy=this.dx=.5}mxUtils.extend(mxShapeInfographicPopover,mxActor);mxShapeInfographicPopover.prototype.cst={SHAPE_POPOVER:"mxgraph.bootstrap.popover"};
6110mxShapeInfographicPopover.prototype.customProperties=[{name:"rSize",dispName:"Arc Size",type:"float",min:0,defVal:10},{name:"dx",dispName:"Callout Position",min:0,defVal:100},{name:"dy",dispName:"Callout Size",min:0,defVal:30}];
6111mxShapeInfographicPopover.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,"rSize","10"));e=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));var f=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),g=Math.max(e-f,0),h=Math.min(e+f,b);a.begin();a.moveTo(d,0);a.lineTo(b-d,0);a.arcTo(d,d,0,0,1,b,d);a.lineTo(b,c-f-d);a.arcTo(d,d,0,0,1,b-d,c-f);a.lineTo(h,c-f);a.lineTo(e,c);a.lineTo(g,c-f);a.lineTo(d,
6112c-f);a.arcTo(d,d,0,0,1,0,c-f-d);a.lineTo(0,d);a.arcTo(d,d,0,0,1,d,0);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeInfographicPopover.prototype.cst.SHAPE_POPOVER,mxShapeInfographicPopover);mxShapeInfographicPopover.prototype.constraints=null;
6113Graph.handleFactory[mxShapeInfographicPopover.prototype.cst.SHAPE_POPOVER]=function(a){return[Graph.createHandle(a,["dx","dy"],function(a){var d=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+d,a.y+a.height-b)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.width,e.x-a.x)))/100;this.state.style.dy=Math.round(100*Math.max(0,
6114Math.min(a.height,a.y+a.height-e.y)))/100})]};
6115mxShapeInfographicPopover.prototype.getConstraints=function(a,d,e){a=[];var 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))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,
61160),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(e-c)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e-c));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1,null,0,e-c));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1,null,0,e-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e-c));return a};
6117function mxShapeC4Person(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeC4Person,mxShape);mxShapeC4Person.prototype.cst={PERSONSHAPE:"mxgraph.c4.person"};
6118mxShapeC4Person.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.min(b/2,c/3);e=d/2;a.ellipse(.5*b-.5*d,0,d,d);a.fillAndStroke();a.begin();a.moveTo(0,.8*d+e);a.arcTo(e,e,0,0,1,e,.8*d);a.lineTo(b-e,.8*d);a.arcTo(e,e,0,0,1,b,.8*d+e);a.lineTo(b,c-e);a.arcTo(e,e,0,0,1,b-e,c);a.lineTo(e,c);a.arcTo(e,e,0,0,1,0,c-e);a.close();a.fillAndStroke();a.setShadow(!1);a.ellipse(.5*b-.5*d,0,d,d);a.fillAndStroke()};
6119mxShapeC4Person.prototype.getLabelMargins=function(a){return new mxRectangle(0,.8*Math.min(a.width/2,a.height/3),0,0)};mxCellRenderer.registerShape(mxShapeC4Person.prototype.cst.PERSONSHAPE,mxShapeC4Person);function mxShapeC4Person2(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeC4Person2,mxShape);mxShapeC4Person2.prototype.cst={PERSONSHAPE:"mxgraph.c4.person2"};
6120mxShapeC4Person2.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.min(.45*b,.45*c);e=d/2;a.ellipse(.5*b-.5*d,0,d,d);a.fillAndStroke();a.begin();a.moveTo(0,.8*d+e);a.arcTo(e,e,0,0,1,e,.8*d);a.lineTo(b-e,.8*d);a.arcTo(e,e,0,0,1,b,.8*d+e);a.lineTo(b,c-e);a.arcTo(e,e,0,0,1,b-e,c);a.lineTo(e,c);a.arcTo(e,e,0,0,1,0,c-e);a.close();a.fillAndStroke();a.setShadow(!1);a.ellipse(.5*b-.5*d,0,d,d);a.fillAndStroke()};
6121mxShapeC4Person2.prototype.getLabelMargins=function(a){return new mxRectangle(0,.8*Math.min(.45*a.width,.45*a.height),0,0)};mxCellRenderer.registerShape(mxShapeC4Person2.prototype.cst.PERSONSHAPE,mxShapeC4Person2);function mxShapeC4WebBrowserContainer(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeC4WebBrowserContainer,mxShape);mxShapeC4WebBrowserContainer.prototype.cst={WEB_BROWSER_CONTAINER_SHAPE:"mxgraph.c4.webBrowserContainer"};
6122mxShapeC4WebBrowserContainer.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(0,8);a.arcTo(8,8,0,0,1,8,0);a.lineTo(b-8,0);a.arcTo(8,8,0,0,1,b,8);a.lineTo(b,c-8);a.arcTo(8,8,0,0,1,b-8,c);a.lineTo(8,c);a.arcTo(8,8,0,0,1,0,c-8);a.close();a.fillAndStroke();a.setShadow(!1);61<b&&39<c&&(a.setFillColor("#23A2D9"),a.begin(),a.moveTo(5,8),a.arcTo(3,3,0,0,1,8,5),a.lineTo(b-36-20-3,5),a.arcTo(3,3,0,0,1,b-36-20,8),a.lineTo(b-36-20,14),a.arcTo(3,3,0,0,1,b-36-20-3,17),a.lineTo(8,
612317),a.arcTo(3,3,0,0,1,5,14),a.close(),a.moveTo(b-36-15,8),a.arcTo(3,3,0,0,1,b-36-15+3,5),a.lineTo(b-24-15-3,5),a.arcTo(3,3,0,0,1,b-24-15,8),a.lineTo(b-24-15,14),a.arcTo(3,3,0,0,1,b-24-15-3,17),a.lineTo(b-36-15+3,17),a.arcTo(3,3,0,0,1,b-36-15,14),a.close(),a.moveTo(b-24-10,8),a.arcTo(3,3,0,0,1,b-24-10+3,5),a.lineTo(b-12-10-3,5),a.arcTo(3,3,0,0,1,b-12-10,8),a.lineTo(b-12-10,14),a.arcTo(3,3,0,0,1,b-12-10-3,17),a.lineTo(b-24-10+3,17),a.arcTo(3,3,0,0,1,b-24-10,14),a.close(),a.moveTo(b-12-5,8),a.arcTo(3,
61243,0,0,1,b-12-5+3,5),a.lineTo(b-5-3,5),a.arcTo(3,3,0,0,1,b-5,8),a.lineTo(b-5,14),a.arcTo(3,3,0,0,1,b-5-3,17),a.lineTo(b-12-5+3,17),a.arcTo(3,3,0,0,1,b-12-5,14),a.close(),a.moveTo(5,30),a.arcTo(8,8,0,0,1,13,22),a.lineTo(b-8-5,22),a.arcTo(8,8,0,0,1,b-5,30),a.lineTo(b-5,c-8-5),a.arcTo(8,8,0,0,1,b-8-5,c-5),a.lineTo(13,c-5),a.arcTo(8,8,0,0,1,5,c-8-5),a.close(),a.fill(),a.fill())};mxCellRenderer.registerShape(mxShapeC4WebBrowserContainer.prototype.cst.WEB_BROWSER_CONTAINER_SHAPE,mxShapeC4WebBrowserContainer);
6125function mxCabinetsCabinet(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxCabinetsCabinet,mxShape);mxCabinetsCabinet.prototype.cst={HAS_STAND:"hasStand",CABINET:"mxgraph.cabinets.cabinet"};mxCabinetsCabinet.prototype.customProperties=[{name:"hasStand",dispName:"Has Stand",type:"bool",defVal:!0}];
6126mxCabinetsCabinet.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1);this.foreground(a,0,0,b,c)};mxCabinetsCabinet.prototype.background=function(a,d,e,b,c){a.rect(0,0,b,c);a.fillAndStroke()};
6127mxCabinetsCabinet.prototype.foreground=function(a,d,e,b,c){a.rect(0,0,b,15);a.stroke();a.begin();a.moveTo(15,15);a.lineTo(15,c);a.moveTo(b-15,15);a.lineTo(b-15,c);a.stroke();1===mxUtils.getValue(this.style,mxCabinetsCabinet.prototype.cst.HAS_STAND,"1")?a.rect(0,c-40,b,40):a.rect(0,c-15,b,15);a.fillAndStroke()};mxCellRenderer.registerShape(mxCabinetsCabinet.prototype.cst.CABINET,mxCabinetsCabinet);
6128function mxCabinetsCoverPlate(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxCabinetsCoverPlate,mxShape);mxCabinetsCoverPlate.prototype.cst={COVER_PLATE:"mxgraph.cabinets.coverPlate"};mxCabinetsCoverPlate.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,0,0,b,c);a.setShadow(!1);this.foreground(a,0,0,b,c)};
6129mxCabinetsCoverPlate.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,c);a.lineTo(0,c);a.close();a.moveTo(10,.5*c-12.5);a.lineTo(10,.5*c+12.5);a.lineTo(b-10,.5*c+12.5);a.lineTo(b-10,.5*c-12.5);a.close();a.fillAndStroke()};mxCabinetsCoverPlate.prototype.foreground=function(a,d,e,b,c){};mxCellRenderer.registerShape(mxCabinetsCoverPlate.prototype.cst.COVER_PLATE,mxCabinetsCoverPlate);
6130function mxCabinetsDimension(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxCabinetsDimension,mxShape);mxCabinetsDimension.prototype.cst={DIMENSION:"mxgraph.cabinets.dimension"};mxCabinetsDimension.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};
6131mxCabinetsDimension.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(0,20);a.lineTo(b,20);a.moveTo(10,15);a.lineTo(0,20);a.lineTo(10,25);a.moveTo(b-10,15);a.lineTo(b,20);a.lineTo(b-10,25);a.moveTo(0,15);a.lineTo(0,c);a.moveTo(b,15);a.lineTo(b,c);a.stroke()};mxCellRenderer.registerShape(mxCabinetsDimension.prototype.cst.DIMENSION,mxCabinetsDimension);function mxCabinetsDimensionBottom(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
6132mxUtils.extend(mxCabinetsDimensionBottom,mxShape);mxCabinetsDimensionBottom.prototype.cst={DIMENSION:"mxgraph.cabinets.dimensionBottom"};mxCabinetsDimensionBottom.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};
6133mxCabinetsDimensionBottom.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(0,c-20);a.lineTo(b,c-20);a.moveTo(10,c-15);a.lineTo(0,c-20);a.lineTo(10,c-25);a.moveTo(b-10,c-15);a.lineTo(b,c-20);a.lineTo(b-10,c-25);a.moveTo(0,c-15);a.lineTo(0,0);a.moveTo(b,c-15);a.lineTo(b,0);a.stroke()};mxCellRenderer.registerShape(mxCabinetsDimensionBottom.prototype.cst.DIMENSION,mxCabinetsDimensionBottom);
6134function mxShapeCisco19Rect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeCisco19Rect,mxShape);mxShapeCisco19Rect.prototype.cst={SHAPE_RECT:"mxgraph.cisco19.rect"};
6135mxShapeCisco19Rect.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.state.style,"prIcon","l2_switch");mxUtils.getValue(this.state.style,"fillColor","#ffffff");var g=mxUtils.getValue(this.state.style,"strokeColor","#000000"),h="mxgraph.cisco19.bg1",k="router csr_1000v wireless_router l3_modular3 ucs_express router_with_voice router_with_firewall netflow_router secure_router ip_telephone_router asr_9000 clock vbond vmanage vsmart".split(" ");a.translate(d,e);["l2_modular",
6136"l3_modular","6500_vss","nexus_9500","nexus_7k"].includes(f)?h="mxgraph.cisco19.bg2":["l2_switch_with_dual_supervisor","l3_switch_with_dual_supervisor"].includes(f)?h="mxgraph.cisco19.bg3":["l2_modular2"].includes(f)?h="mxgraph.cisco19.bg4":["l3_modular2","6500_vss2","hypervisor","collab1"].includes(f)?h="mxgraph.cisco19.bg5":k.includes(f)?(a.begin(),"wireless_router"==f?a.ellipse(0,.17*c,b,.83*c):a.ellipse(0,0,b,c),a.fill()):"content_router;router_with_firewall2;netflow_router2;nam_virtual_service_blade;ucs_5108_blade_chassis;storage;nexus_1kv_vsm;nexus_1k;nexus_1010;dual mode access point;wireless_lan_controller;primary_codec;virtual_desktop_service;video_gateway;video_analytics;telepresence_exchange;meeting_scheduling_and_management_server;content_recording_streaming_server;communications_manager;cisco_unified_presence_service;cisco_unified_contact_center_enterprise_and_hosted;h323;monitor;telepresence_endpoint_twin_data_display;operations_manager;transcoder;contact_center_express;ip_ip_gateway;shield;set_top;da_encoder;ad_encoder;da_decoder;ad_decoder;acs;email_security;vpn_concentrator;ssl_terminator;cisco_security_manager;web_security;nac_appliance;ironport;ips_ids;firewall;asa_5500;flow_collector;load_balancer;web_application_firewall;analysis_correlation;flow_analytics;virtual_private_network2;web_security_services;web_security_services2;virtual_private_network_connector".split(";").includes(f)?
6137h="mxgraph.cisco19.bg6":["asr_1000"].includes(f)?h="mxgraph.cisco19.bg7":["fibre_channel_director_mds_9000","fibre_channel_fabric_switch"].includes(f)?h="mxgraph.cisco19.bg8":["ucs_c_series_server"].includes(f)?h="mxgraph.cisco19.bg9":["aci"].includes(f)?(d=mxStencilRegistry.getStencil("mxgraph.cisco19.acibg"),d.drawShape(a,this,.195*b,.195*c,.61*b,.61*c)):["immersive_telepresence_endpoint"].includes(f)&&(h="mxgraph.cisco19.bg10");k.includes(f)||"aci"==f||(d=mxStencilRegistry.getStencil(h),d.drawShape(a,
6138this,0,0,b,c));a.setShadow(!1);f=mxStencilRegistry.getStencil("mxgraph.cisco19."+f);a.setFillColor(g);null!=f&&f.drawShape(a,this,0,0,b,c)};mxCellRenderer.registerShape(mxShapeCisco19Rect.prototype.cst.SHAPE_RECT,mxShapeCisco19Rect);
6139mxShapeCisco19Rect.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(.825,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.175,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,.16),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,.84),!1));a.push(new mxConnectionConstraint(new mxPoint(.66,.17),!1));a.push(new mxConnectionConstraint(new mxPoint(.66,.83),!1));a.push(new mxConnectionConstraint(new mxPoint(.34,.17),!1));a.push(new mxConnectionConstraint(new mxPoint(.34,
6140.83),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,.33),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,.67),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,.33),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,.67),!1));return a};function mxShapeCiscoSafeCompositeIcon(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeCiscoSafeCompositeIcon,mxShape);mxShapeCiscoSafeCompositeIcon.prototype.cst={SHAPE_COMPOSITE_ICON:"mxgraph.cisco_safe.compositeIcon"};
6141mxShapeCiscoSafeCompositeIcon.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.state.style,"strokeColor","none"),g=mxUtils.getValue(this.state.style,"bgColor","#C2E0AE"),h=mxUtils.getValue(this.state.style,"fillColor","none"),k=mxUtils.getValue(this.state.style,"shadow",!1),l=parseFloat(mxUtils.getValue(this.state.style,"opacity",!1));a.translate(d,e);d=mxUtils.getValue(this.state.style,"bgIcon","");e=mxUtils.getValue(this.state.style,"resIcon","");m=mxStencilRegistry.getStencil(e);
6142null!=m&&"mxgraph.cisco_safe.architecture.generic_appliance"!=d&&m.drawShape(a,this,0,0,b,c);a.setFillColor(f);a.setStrokeColor("none");a.setShadow(!1);if("ellipse"==d)a.begin(),100>b?a.ellipse(.01*b,.01*c,.98*b,.98*c):a.ellipse(1,1,b-2,c-2),a.fill();else if("threat1"==d)a.begin(),a.ellipse(.18*b,.16*c,.66*b,.65*c),a.fill();else if("threat2"==d)a.begin(),a.ellipse(.01*b,.01*c,.98*b,.6*c),a.fill();else if("threat3"==d)a.begin(),a.ellipse(.18*b,.2*c,.64*b,.79*c),a.fill();else if("threat4"==d)a.begin(),
6143a.ellipse(.09*b,.03*c,.82*b,.77*c),a.fill();else if("threat5"==d)a.begin(),a.ellipse(.16*b,.01*c,.67*b,.72*c),a.fill();else if("mxgraph.cisco_safe.architecture.generic_appliance"==d){a.setShadow(k);a.setFillColor(g);a.begin();a.moveTo(0,.3*c);a.arcTo(.3*b,.3*c,0,0,1,.3*b,0);a.lineTo(.7*b,0);a.arcTo(.3*b,.3*c,0,0,1,b,.3*c);a.lineTo(b,.7*c);a.arcTo(.3*b,.3*c,0,0,1,.7*b,c);a.lineTo(.3*b,c);a.arcTo(.3*b,.3*c,0,0,1,0,.7*c);a.close();a.fill();a.setShadow(!1);a.setFillColor(f);var m=mxStencilRegistry.getStencil(d);
6144null!=m&&m.drawShape(a,this,.26*b,.26*c,.48*b,.48*c);a.setAlpha(.5);a.setFillColor("#ffffff");a.ellipse(.105*b,.48*c,.04*b,.04*c);a.fill();a.ellipse(.855*b,.48*c,.04*b,.04*c);a.fill();a.ellipse(.48*b,.105*c,.04*b,.04*c);a.fill();a.ellipse(.48*b,.855*c,.04*b,.04*c);a.fill();a.ellipse(.17*b,.17*c,.04*b,.04*c);a.fill();a.ellipse(.79*b,.17*c,.04*b,.04*c);a.fill();a.ellipse(.79*b,.79*c,.04*b,.04*c);a.fill();a.ellipse(.17*b,.79*c,.04*b,.04*c);a.fill();a.setAlpha(l/100)}else m=mxStencilRegistry.getStencil(d),
6145null!=m&&(100>b?m.drawShape(a,this,.01*b,.01*c,.98*b,.98*c):m.drawShape(a,this,1,1,b-2,c-2));m=mxStencilRegistry.getStencil(e);null!=m&&(a.setFillColor(h),"mxgraph.cisco_safe.architecture.generic_appliance"==d?m.drawShape(a,this,.25*b,.25*c,.5*b,.5*c):m.drawShape(a,this,0,0,b,c))};mxCellRenderer.registerShape(mxShapeCiscoSafeCompositeIcon.prototype.cst.SHAPE_COMPOSITE_ICON,mxShapeCiscoSafeCompositeIcon);
6146function mxShapeDFDStart(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeDFDStart,mxShape);mxShapeDFDStart.prototype.cst={START:"mxgraph.dfd.start"};mxShapeDFDStart.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.min(.5*c,.5*b);a.begin();a.moveTo(b-d,.5*c-d);a.arcTo(d,d,0,0,1,b,.5*c);a.arcTo(d,d,0,0,1,b-d,.5*c+d);a.lineTo(d,.5*c+d);a.arcTo(d,d,0,0,1,0,.5*c);a.arcTo(d,d,0,0,1,d,.5*c-d);a.close();a.fillAndStroke()};
6147mxCellRenderer.registerShape(mxShapeDFDStart.prototype.cst.START,mxShapeDFDStart);
6148mxShapeDFDStart.prototype.getConstraints=function(a,d,e){a=[];var b=Math.min(.5*e,.5*d);a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,.5),!1,null,0,-b));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,.5),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.293*b,.5*e-.707*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.293*b,.5*e-.707*b));a.push(new mxConnectionConstraint(new mxPoint(0,
61490),!1,null,d-.293*b,.5*e+.707*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.293*b,.5*e+.707*b));d>=4*e&&(a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)),a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)));return a};function mxShapeDFDArchive(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
6150mxUtils.extend(mxShapeDFDArchive,mxShape);mxShapeDFDArchive.prototype.cst={ARCHIVE:"mxgraph.dfd.archive"};mxShapeDFDArchive.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(.5*b,c);a.close();a.fillAndStroke();a.setShadow(!1);a.begin();a.moveTo(.1*b,.2*c);a.lineTo(.9*b,.2*c);a.stroke()};mxCellRenderer.registerShape(mxShapeDFDArchive.prototype.cst.ARCHIVE,mxShapeDFDArchive);
6151mxShapeDFDArchive.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.875,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.625,
6152.75),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.375,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.125,.25),!1));return a};function mxShapeDFDCheck2(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeDFDCheck2,mxShape);mxShapeDFDCheck2.prototype.cst={CHECK2:"mxgraph.dfd.check2"};
6153mxShapeDFDCheck2.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.min(.5*c,.5*b);a.begin();a.moveTo(0,.5*c);a.lineTo(d,0);a.lineTo(b-d,0);a.lineTo(b,.5*c);a.lineTo(b-d,c);a.lineTo(d,c);a.lineTo(0,.5*c);a.close();a.fillAndStroke();a.setShadow(!1);a.begin();a.moveTo(b-d,0);a.lineTo(b-2*d,.5*c);a.lineTo(b-d,c);a.stroke()};mxCellRenderer.registerShape(mxShapeDFDCheck2.prototype.cst.CHECK2,mxShapeDFDCheck2);
6154mxShapeDFDCheck2.prototype.getConstraints=function(a,d,e){a=[];var b=Math.min(.5*e,.5*d);a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*b,.25*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.5*b,.25*e));a.push(new mxConnectionConstraint(new mxPoint(0,
61550),!1,null,.5*b,.75*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.5*b,.75*e));d>e&&(a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-b,0)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,e)),a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-b,e)));4*b<=d&&(a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(.25,
61561),!1)),a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1)));return a};function mxShapeDFDDataStoreID(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeDFDDataStoreID,mxShape);mxShapeDFDDataStoreID.prototype.cst={DATA_STORE_ID:"mxgraph.dfd.dataStoreID"};
6157mxShapeDFDDataStoreID.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(b,c);a.lineTo(0,c);a.lineTo(0,0);a.lineTo(b,0);a.fillAndStroke();a.setShadow(!1);d=Math.min(30,b);a.begin();a.moveTo(d,0);a.lineTo(d,c);a.stroke()};mxCellRenderer.registerShape(mxShapeDFDDataStoreID.prototype.cst.DATA_STORE_ID,mxShapeDFDDataStoreID);mxShapeDFDDataStoreID.prototype.constraints=null;
6158function mxShapeDFDExternalEntity(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeDFDExternalEntity,mxShape);mxShapeDFDExternalEntity.prototype.cst={EXTERNAL_ENTITY:"mxgraph.dfd.externalEntity"};
6159mxShapeDFDExternalEntity.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(0,0);a.lineTo(b-10,0);a.lineTo(b,10);a.lineTo(b,c);a.lineTo(10,c);a.lineTo(0,c-10);a.close();a.fillAndStroke();a.setShadow(!1);a.setFillColor("#000000");a.setAlpha(.5);a.begin();a.moveTo(0,0);a.lineTo(b-10,0);a.lineTo(b,10);a.lineTo(10,10);a.lineTo(10,c);a.lineTo(0,c-10);a.close();a.fill();d=parseFloat(mxUtils.getValue(this.style,"opacity","100"));a.setAlpha(d/100);a.begin();a.moveTo(0,0);a.lineTo(b-
616010,0);a.lineTo(b,10);a.lineTo(b,c);a.lineTo(10,c);a.lineTo(0,c-10);a.close();a.moveTo(10,c);a.lineTo(10,10);a.lineTo(b,10);a.moveTo(0,0);a.lineTo(10,10);a.stroke()};mxCellRenderer.registerShape(mxShapeDFDExternalEntity.prototype.cst.EXTERNAL_ENTITY,mxShapeDFDExternalEntity);
6161mxShapeDFDExternalEntity.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*(d-10),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-10),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*(d-10),0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-10,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,10,e));a.push(new mxConnectionConstraint(new mxPoint(0,
61620),!1,null,.25*(d-10)+10,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-10)+10,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*(d-10)+10,e));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,10));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,10+.25*(e-10)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,10+.5*(e-10)));a.push(new mxConnectionConstraint(new mxPoint(0,
61630),!1,null,d,10+.75*(e-10)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(e-10)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(e-10)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.75*(e-10)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e-10));return a};function mxShapeDFDLoop(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeDFDLoop,mxShape);
6164mxShapeDFDLoop.prototype.cst={LOOP:"mxgraph.dfd.loop"};mxShapeDFDLoop.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.min(.8*c,.8*b);a.begin();a.moveTo(b-.25*d,0);a.arcTo(d,d,0,0,1,b-.25*d,c);a.lineTo(.25*d,c);a.arcTo(d,d,0,0,1,.25*d,0);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeDFDLoop.prototype.cst.LOOP,mxShapeDFDLoop);
6165mxShapeDFDLoop.prototype.getConstraints=function(a,d,e){a=[];var b=Math.min(.8*e,.8*d);a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.25*b,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.25*b,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*b,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*b,e));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));return a};
6166function mxShapeEipMessageExpiration(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeEipMessageExpiration,mxShape);mxShapeEipMessageExpiration.prototype.cst={SHAPE_MESS_EXP:"mxgraph.eip.messExp"};mxShapeEipMessageExpiration.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};
6167mxShapeEipMessageExpiration.prototype.background=function(a,d,e,b,c){a.ellipse(0,0,b,c);a.stroke();a.setStrokeColor("#808080");a.begin();a.moveTo(.5*b,.1*c);a.lineTo(.5*b,.5*c);a.lineTo(.6*b,.8*c);a.stroke()};mxCellRenderer.registerShape(mxShapeEipMessageExpiration.prototype.cst.SHAPE_MESS_EXP,mxShapeEipMessageExpiration);
6168mxShapeEipMessageExpiration.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(.145,.145),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.855,.145),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.855,.855),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.145,.855),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
6169.5),!1));return a};function mxShapeEipReturnAddress(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeEipReturnAddress,mxShape);mxShapeEipReturnAddress.prototype.cst={SHAPE_RET_ADDR:"mxgraph.eip.retAddr"};mxShapeEipReturnAddress.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};
6170mxShapeEipReturnAddress.prototype.background=function(a,d,e,b,c){a.rect(0,0,b,c);a.fillAndStroke()};
6171mxShapeEipReturnAddress.prototype.foreground=function(a,d,e,b,c){a.begin();a.moveTo(.05*b,.11*c);a.lineTo(.25*b,.11*c);a.moveTo(.05*b,.18*c);a.lineTo(.25*b,.18*c);a.moveTo(.05*b,.25*c);a.lineTo(.25*b,.25*c);a.setStrokeWidth(2);a.moveTo(.3*b,.63*c);a.lineTo(.8*b,.63*c);a.moveTo(.3*b,.72*c);a.lineTo(.8*b,.72*c);a.moveTo(.3*b,.8*c);a.lineTo(.8*b,.8*c);a.stroke();a.setFillColor("#EDEDED");a.rect(.8*b,.1*c,.12*b,.19*c);a.fillAndStroke()};
6172mxCellRenderer.registerShape(mxShapeEipReturnAddress.prototype.cst.SHAPE_RET_ADDR,mxShapeEipReturnAddress);
6173mxShapeEipReturnAddress.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,
6174.75),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.25),!1));return a};
6175function mxShapeEipAnchor(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeEipAnchor,mxShape);mxShapeEipAnchor.prototype.cst={SHAPE_ANCHOR:"mxgraph.eip.anchor"};mxShapeEipAnchor.prototype.paintVertexShape=function(a,d,e,b,c){};mxCellRenderer.registerShape(mxShapeEipAnchor.prototype.cst.SHAPE_ANCHOR,mxShapeEipAnchor);
6176function mxShapeEipMessageChannel(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeEipMessageChannel,mxShape);mxShapeEipMessageChannel.prototype.cst={SHAPE_MESSAGE_CHANNEL:"mxgraph.eip.messageChannel"};mxShapeEipMessageChannel.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};
6177mxShapeEipMessageChannel.prototype.background=function(a,d,e,b,c){a.setGradient("#e6e6e6","#808080",0,0,b,c,mxConstants.DIRECTION_SOUTH,1,1);a.begin();a.moveTo(8,.5*c+10);a.arcTo(12,12,0,0,1,8,.5*c-10);a.lineTo(b-8,.5*c-10);a.arcTo(12,12,0,0,1,b-8,.5*c+10);a.close();a.fillAndStroke()};mxShapeEipMessageChannel.prototype.foreground=function(a,d,e,b,c){a.setFillColor("#e6e6e6");a.begin();a.moveTo(b-8,.5*c-10);a.arcTo(12,12,0,0,1,b-8,.5*c+10);a.arcTo(12,12,0,0,1,b-8,.5*c-10);a.fillAndStroke()};
6178mxCellRenderer.registerShape(mxShapeEipMessageChannel.prototype.cst.SHAPE_MESSAGE_CHANNEL,mxShapeEipMessageChannel);mxShapeEipMessageChannel.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,2.7,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null,-2.7,0));for(e=10;e<d;)a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0)),a.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,e,0)),e+=10;return a};
6179function mxShapeEipDatatypeChannel(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeEipDatatypeChannel,mxShape);mxShapeEipDatatypeChannel.prototype.cst={SHAPE_DATATYPE_CHANNEL:"mxgraph.eip.dataChannel"};mxShapeEipDatatypeChannel.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};
6180mxShapeEipDatatypeChannel.prototype.background=function(a,d,e,b,c){a.setGradient("#e6e6e6","#808080",0,0,b,c,mxConstants.DIRECTION_SOUTH,1,1);a.begin();a.moveTo(8,.5*c+10);a.arcTo(12,12,0,0,1,8,.5*c-10);a.lineTo(b-8,.5*c-10);a.arcTo(12,12,0,0,1,b-8,.5*c+10);a.close();a.fillAndStroke()};
6181mxShapeEipDatatypeChannel.prototype.foreground=function(a,d,e,b,c){a.setFillColor("#e6e6e6");a.begin();a.moveTo(b-8,.5*c-10);a.arcTo(12,12,0,0,1,b-8,.5*c+10);a.arcTo(12,12,0,0,1,b-8,.5*c-10);a.fillAndStroke();a.setFillColor("#fffbc0");a.setStrokeWidth("1");for(d=1;20*d+10<b-14;d++)a.rect(20*d,.5*c-5,10,10),a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeEipDatatypeChannel.prototype.cst.SHAPE_DATATYPE_CHANNEL,mxShapeEipDatatypeChannel);
6182mxShapeEipDatatypeChannel.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,2.7,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null,-2.7,0));for(e=10;e<d;)a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0)),a.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,e,0)),e+=10;return a};
6183function mxShapeEipDeadLetterChannel(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeEipDeadLetterChannel,mxShape);mxShapeEipDeadLetterChannel.prototype.cst={SHAPE_DEAD_LETTER_CHANNEL:"mxgraph.eip.deadLetterChannel"};mxShapeEipDeadLetterChannel.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};
6184mxShapeEipDeadLetterChannel.prototype.background=function(a,d,e,b,c){a.setGradient("#e6e6e6","#808080",0,0,b,c,mxConstants.DIRECTION_SOUTH,1,1);a.begin();a.moveTo(8,.5*c+10);a.arcTo(12,12,0,0,1,8,.5*c-10);a.lineTo(b-8,.5*c-10);a.arcTo(12,12,0,0,1,b-8,.5*c+10);a.close();a.fillAndStroke()};
6185mxShapeEipDeadLetterChannel.prototype.foreground=function(a,d,e,b,c){a.setFillColor("#e6e6e6");a.begin();a.moveTo(b-8,.5*c-10);a.arcTo(12,12,0,0,1,b-8,.5*c+10);a.arcTo(12,12,0,0,1,b-8,.5*c-10);a.fillAndStroke();a.setFillColor("#ff0000");a.setStrokeWidth("1");a.begin();a.moveTo(.5*b-6,.5*c-3);a.lineTo(.5*b-3,.5*c-6);a.lineTo(.5*b+3,.5*c-6);a.lineTo(.5*b+6,.5*c-3);a.lineTo(.5*b+6,.5*c+3);a.lineTo(.5*b+3,.5*c+6);a.lineTo(.5*b-3,.5*c+6);a.lineTo(.5*b-6,.5*c+3);a.close();a.fillAndStroke();a.setStrokeWidth("2");
6186a.setStrokeColor("#ffffff");a.begin();a.moveTo(.5*b-4,.5*c);a.lineTo(.5*b+4,.5*c);a.stroke()};mxCellRenderer.registerShape(mxShapeEipDeadLetterChannel.prototype.cst.SHAPE_DEAD_LETTER_CHANNEL,mxShapeEipDeadLetterChannel);
6187mxShapeEipDeadLetterChannel.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,2.7,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null,-2.7,0));for(e=10;e<d;)a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0)),a.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,e,0)),e+=10;return a};
6188function mxShapeEipInvalidMessageChannel(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeEipInvalidMessageChannel,mxShape);mxShapeEipInvalidMessageChannel.prototype.cst={SHAPE_INVALID_MESSAGE_CHANNEL:"mxgraph.eip.invalidMessageChannel"};mxShapeEipInvalidMessageChannel.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};
6189mxShapeEipInvalidMessageChannel.prototype.background=function(a,d,e,b,c){a.setGradient("#e6e6e6","#808080",0,0,b,c,mxConstants.DIRECTION_SOUTH,1,1);a.begin();a.moveTo(8,.5*c+10);a.arcTo(12,12,0,0,1,8,.5*c-10);a.lineTo(b-8,.5*c-10);a.arcTo(12,12,0,0,1,b-8,.5*c+10);a.close();a.fillAndStroke()};
6190mxShapeEipInvalidMessageChannel.prototype.foreground=function(a,d,e,b,c){a.setFillColor("#e6e6e6");a.begin();a.moveTo(b-8,.5*c-10);a.arcTo(12,12,0,0,1,b-8,.5*c+10);a.arcTo(12,12,0,0,1,b-8,.5*c-10);a.fillAndStroke();a.setFillColor("#ffe040");a.setStrokeWidth("1");a.begin();a.moveTo(.5*b-6,.5*c+5);a.lineTo(.5*b,.5*c-5);a.lineTo(.5*b+6,.5*c+5);a.close();a.fillAndStroke();a.setStrokeWidth("1");a.begin();a.moveTo(.5*b,.5*c-2);a.lineTo(.5*b,.5*c+2);a.moveTo(.5*b,.5*c+3);a.lineTo(.5*b,.5*c+4);a.stroke()};
6191mxCellRenderer.registerShape(mxShapeEipInvalidMessageChannel.prototype.cst.SHAPE_INVALID_MESSAGE_CHANNEL,mxShapeEipInvalidMessageChannel);
6192mxShapeEipInvalidMessageChannel.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,2.7,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null,-2.7,0));for(e=10;e<d;)a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0)),a.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,e,0)),e+=10;return a};
6193function mxShapeElectricalTestPoint(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeElectricalTestPoint,mxShape);mxShapeElectricalTestPoint.prototype.cst={SHAPE_TEST_POINT:"mxgraph.electrical.transmission.testPoint"};
6194mxShapeElectricalTestPoint.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");e=Math.min(b,c);a.setFillColor(d);a.begin();a.ellipse(.5*b-e/2,0,e,e);a.fillAndStroke();c>b&&(a.begin(),a.moveTo(.5*b,e),a.lineTo(.5*b,c),a.stroke())};mxCellRenderer.registerShape(mxShapeElectricalTestPoint.prototype.cst.SHAPE_TEST_POINT,mxShapeElectricalTestPoint);
6195mxShapeElectricalTestPoint.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0)];function mxShapeElectricalStraightBus(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeElectricalStraightBus,mxShape);mxShapeElectricalStraightBus.prototype.cst={SHAPE_STRAIGHT_BUS:"mxgraph.electrical.transmission.straightBus"};
6196mxShapeElectricalStraightBus.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=.2*b;e=b>c?.5*c:b/2;a.begin();a.moveTo(b-d,0);a.lineTo(b-d,c-e);a.lineTo(b,c-e);a.lineTo(.5*b,c);a.lineTo(0,c-e);a.lineTo(d,c-e);a.lineTo(d,0);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeElectricalStraightBus.prototype.cst.SHAPE_STRAIGHT_BUS,mxShapeElectricalStraightBus);
6197mxShapeElectricalStraightBus.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0)];function mxShapeElectricalTwoLineBusElbow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.notch=0}mxUtils.extend(mxShapeElectricalTwoLineBusElbow,mxShape);mxShapeElectricalTwoLineBusElbow.prototype.cst={SHAPE_TWO_LINE_BUS_ELBOW:"mxgraph.electrical.transmission.twoLineBusElbow"};
6198mxShapeElectricalTwoLineBusElbow.prototype.customProperties=[{name:"notch",dispName:"Spacing",type:"float",min:0,defVal:25}];mxShapeElectricalTwoLineBusElbow.prototype.paintVertexShape=function(a,d,e,b,c){var f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));a.translate(d,e);a.begin();a.moveTo(0,c);a.lineTo(b,c);a.lineTo(b,0);a.stroke();d=Math.min(b,f);f=Math.min(c,f);a.begin();a.moveTo(0,c-f);a.lineTo(b-d,c-f);a.lineTo(b-d,0);a.stroke()};
6199mxCellRenderer.registerShape(mxShapeElectricalTwoLineBusElbow.prototype.cst.SHAPE_TWO_LINE_BUS_ELBOW,mxShapeElectricalTwoLineBusElbow);mxShapeElectricalTwoLineBusElbow.prototype.constraints=null;
6200Graph.handleFactory[mxShapeElectricalTwoLineBusElbow.prototype.cst.SHAPE_TWO_LINE_BUS_ELBOW]=function(a){return[Graph.createHandle(a,["notch"],function(a){var d=Math.max(Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))),0);return new mxPoint(a.x+a.width/4,a.y+a.height-d)},function(a,e){this.state.style.notch=Math.round(.2*Math.max(0,a.width-e.y+a.y))/.2})]};
6201function mxShapeElectricalThreeLineBusElbow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.notch=0}mxUtils.extend(mxShapeElectricalThreeLineBusElbow,mxShape);mxShapeElectricalThreeLineBusElbow.prototype.cst={SHAPE_THREE_LINE_BUS_ELBOW:"mxgraph.electrical.transmission.threeLineBusElbow"};mxShapeElectricalThreeLineBusElbow.prototype.customProperties=[{name:"notch",dispName:"Spacing",type:"float",min:0,defVal:30}];
6202mxShapeElectricalThreeLineBusElbow.prototype.paintVertexShape=function(a,d,e,b,c){var f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));a.translate(d,e);a.begin();a.moveTo(0,c);a.lineTo(b,c);a.lineTo(b,0);a.stroke();d=Math.min(b,f);f=Math.min(c,f);a.begin();a.moveTo(0,c-f);a.lineTo(b-d,c-f);a.lineTo(b-d,0);a.stroke();a.begin();a.moveTo(0,c-f/2);a.lineTo(b-d/2,c-f/2);a.lineTo(b-d/2,0);a.stroke()};
6203mxCellRenderer.registerShape(mxShapeElectricalThreeLineBusElbow.prototype.cst.SHAPE_THREE_LINE_BUS_ELBOW,mxShapeElectricalThreeLineBusElbow);mxShapeElectricalThreeLineBusElbow.prototype.constraints=null;
6204Graph.handleFactory[mxShapeElectricalThreeLineBusElbow.prototype.cst.SHAPE_THREE_LINE_BUS_ELBOW]=function(a){return[Graph.createHandle(a,["notch"],function(a){var d=Math.max(Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))),0);return new mxPoint(a.x+a.width/4,a.y+a.height-d)},function(a,e){this.state.style.notch=Math.round(.2*Math.max(0,a.width-e.y+a.y))/.2})]};
6205function mxShapeElectricalFourLineBusElbow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.notch=0}mxUtils.extend(mxShapeElectricalFourLineBusElbow,mxShape);mxShapeElectricalFourLineBusElbow.prototype.cst={SHAPE_FOUR_LINE_BUS_ELBOW:"mxgraph.electrical.transmission.fourLineBusElbow"};mxShapeElectricalFourLineBusElbow.prototype.customProperties=[{name:"notch",dispName:"Spacing",type:"float",min:0,defVal:75}];
6206mxShapeElectricalFourLineBusElbow.prototype.paintVertexShape=function(a,d,e,b,c){var f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));a.translate(d,e);a.begin();a.moveTo(0,c);a.lineTo(b,c);a.lineTo(b,0);a.stroke();d=Math.min(b,f);f=Math.min(c,f);a.begin();a.moveTo(0,c-f);a.lineTo(b-d,c-f);a.lineTo(b-d,0);a.stroke();a.begin();a.moveTo(0,c-f/3);a.lineTo(b-d/3,c-f/3);a.lineTo(b-d/3,0);a.stroke();a.begin();a.moveTo(0,c-2*f/3);a.lineTo(b-2*d/3,c-2*f/3);a.lineTo(b-2*
6207d/3,0);a.stroke()};mxCellRenderer.registerShape(mxShapeElectricalFourLineBusElbow.prototype.cst.SHAPE_FOUR_LINE_BUS_ELBOW,mxShapeElectricalFourLineBusElbow);mxShapeElectricalFourLineBusElbow.prototype.constraints=null;
6208Graph.handleFactory[mxShapeElectricalFourLineBusElbow.prototype.cst.SHAPE_FOUR_LINE_BUS_ELBOW]=function(a){return[Graph.createHandle(a,["notch"],function(a){var d=Math.max(Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))),0);return new mxPoint(a.x+a.width/4,a.y+a.height-d)},function(a,e){this.state.style.notch=Math.round(.2*Math.max(0,a.width-e.y+a.y))/.2})]};
6209function mxShapeElectricalEightLineBusElbow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.notch=0}mxUtils.extend(mxShapeElectricalEightLineBusElbow,mxShape);mxShapeElectricalEightLineBusElbow.prototype.cst={SHAPE_EIGHT_LINE_BUS_ELBOW:"mxgraph.electrical.transmission.eightLineBusElbow"};mxShapeElectricalEightLineBusElbow.prototype.customProperties=[{name:"notch",dispName:"Spacing",type:"float",min:0,defVal:180}];
6210mxShapeElectricalEightLineBusElbow.prototype.paintVertexShape=function(a,d,e,b,c){var f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));a.translate(d,e);a.begin();a.moveTo(0,c);a.lineTo(b,c);a.lineTo(b,0);a.stroke();d=Math.min(b,f);f=Math.min(c,f);a.begin();a.moveTo(0,c-f);a.lineTo(b-d,c-f);a.lineTo(b-d,0);a.stroke();a.begin();a.moveTo(0,c-f/7);a.lineTo(b-d/7,c-f/7);a.lineTo(b-d/7,0);a.stroke();a.begin();a.moveTo(0,c-2*f/7);a.lineTo(b-2*d/7,c-2*f/7);a.lineTo(b-
62112*d/7,0);a.stroke();a.begin();a.moveTo(0,c-3*f/7);a.lineTo(b-3*d/7,c-3*f/7);a.lineTo(b-3*d/7,0);a.stroke();a.begin();a.moveTo(0,c-4*f/7);a.lineTo(b-4*d/7,c-4*f/7);a.lineTo(b-4*d/7,0);a.stroke();a.begin();a.moveTo(0,c-5*f/7);a.lineTo(b-5*d/7,c-5*f/7);a.lineTo(b-5*d/7,0);a.stroke();a.begin();a.moveTo(0,c-6*f/7);a.lineTo(b-6*d/7,c-6*f/7);a.lineTo(b-6*d/7,0);a.stroke()};mxCellRenderer.registerShape(mxShapeElectricalEightLineBusElbow.prototype.cst.SHAPE_EIGHT_LINE_BUS_ELBOW,mxShapeElectricalEightLineBusElbow);
6212mxShapeElectricalEightLineBusElbow.prototype.constraints=null;Graph.handleFactory[mxShapeElectricalEightLineBusElbow.prototype.cst.SHAPE_EIGHT_LINE_BUS_ELBOW]=function(a){return[Graph.createHandle(a,["notch"],function(a){var d=Math.max(Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))),0);return new mxPoint(a.x+a.width/4,a.y+a.height-d)},function(a,e){this.state.style.notch=Math.round(.2*Math.max(0,a.width-e.y+a.y))/.2})]};
6213function mxShapeElectricalLogicGate(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeElectricalLogicGate,mxShape);mxShapeElectricalLogicGate.prototype.cst={SHAPE_LOGIC_GATE:"mxgraph.electrical.logic_gates.logic_gate"};
6214mxShapeElectricalLogicGate.prototype.customProperties=[{name:"operation",dispName:"Operation",type:"enum",defVal:"and",enumList:[{val:"and",dispName:"And"},{val:"or",dispName:"Or"},{val:"xor",dispName:"Xor"}]},{name:"numInputs",dispName:"Inputs",type:"int",min:2,defVal:2},{name:"negating",dispName:"Negating",type:"bool",defVal:0}];
6215mxShapeElectricalLogicGate.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,"numInputs","2"));e=c/d;var f=.5*e;a.begin();a.moveTo(.8*b,.5*c);a.lineTo(b,.5*c);for(var g=mxUtils.getValue(this.style,"operation","and"),h=0;h<d;h++)a.moveTo(0,f),"and"==g?a.lineTo(.2*b,f):a.lineTo(.23*b,f),f+=e;a.stroke();switch(g){case "xor":a.begin(),a.moveTo(.1*b,0),a.arcTo(.6*b,c,0,0,1,.1*b,c),a.stroke();case "or":a.begin();a.moveTo(.4*b,0);a.arcTo(.45*b,.83*c,0,
62160,1,.8*b,.5*c);a.arcTo(.45*b,.83*c,0,0,1,.4*b,c);a.lineTo(.15*b,c);a.arcTo(.6*b,c,0,0,0,.15*b,0);a.close();a.fillAndStroke();break;default:a.begin(),a.moveTo(.2*b,0),a.lineTo(.5*b,0),a.arcTo(.3*b,.5*c,0,0,1,.5*b,c),a.lineTo(.2*b,c),a.close(),a.fillAndStroke()}"1"==mxUtils.getValue(this.style,"negating","0")&&(this.style.negSize?(d=parseFloat(mxUtils.getValue(this.style,"negSize","0.13")),d=Math.min(b*d*.5,c*d)):d=Math.min(.04*b,.07*c),a.begin(),a.ellipse(.8*b,.5*c-.5*d,d,d),a.fillAndStroke())};
6217mxCellRenderer.registerShape(mxShapeElectricalLogicGate.prototype.cst.SHAPE_LOGIC_GATE,mxShapeElectricalLogicGate);mxShapeElectricalLogicGate.prototype.getConstraints=function(a){var d=[new mxConnectionConstraint(new mxPoint(1,.5),!1)];a=parseInt(mxUtils.getValue(a,"numInputs","2"));for(var e=1/a,b=.5*e,c=0;c<a;c++)d.push(new mxConnectionConstraint(new mxPoint(0,b),!1)),b+=e;return d};
6218function mxShapeElectricalBuffer(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeElectricalBuffer,mxShape);mxShapeElectricalBuffer.prototype.cst={SHAPE_BUFFER2:"mxgraph.electrical.logic_gates.buffer2"};mxShapeElectricalBuffer.prototype.customProperties=[{name:"negating",dispName:"Negating",type:"bool",defVal:0}];
6219mxShapeElectricalBuffer.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(0,.5*c);a.lineTo(.2*b,.5*c);a.moveTo(.8*b,.5*c);a.lineTo(b,.5*c);a.stroke();a.begin();a.moveTo(.2*b,0);a.lineTo(.8*b,.5*c);a.lineTo(.2*b,c);a.close();a.fillAndStroke();"1"==mxUtils.getValue(this.style,"negating","0")&&(d=Math.min(.04*b,.07*c),a.begin(),a.ellipse(.8*b,.5*c-.5*d,d,d),a.fillAndStroke())};mxCellRenderer.registerShape(mxShapeElectricalBuffer.prototype.cst.SHAPE_BUFFER2,mxShapeElectricalBuffer);
6220mxShapeElectricalBuffer.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0)];function mxShapeElectricalDualInLineIC(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeElectricalDualInLineIC,mxShape);mxShapeElectricalDualInLineIC.prototype.cst={SHAPE_DUAL_INLINE_IC:"mxgraph.electrical.logic_gates.dual_inline_ic"};
6221mxShapeElectricalDualInLineIC.prototype.customProperties=[{name:"pinStyle",dispName:"Pin Style",type:"enum",defVal:"line",enumList:[{val:"line",dispName:"Line"},{val:"square",dispName:"Square"}]},{name:"startPin",dispName:"Starting Pin",type:"enum",defVal:"n",enumList:[{val:"n",dispName:"N"},{val:"e",dispName:"E"},{val:"s",dispName:"S"},{val:"w",dispName:"W"}]},{name:"pinSpacing",dispName:"Pin Spacing",type:"float",min:1,defVal:20},{name:"pinLabelType",dispName:"Pin Label Type",type:"enum",defVal:"gen",
6222enumList:[{val:"gen",dispName:"Generated"},{val:"cust",dispName:"Custom"}]},{name:"labelCount",dispName:"Number of Labels",type:"int",defVal:20,dependentProps:["labelNames"]},{name:"labelNames",dispName:"Label Names",type:"staticArr",subType:"string",sizeProperty:"labelCount",subDefVal:"a"}];
6223mxShapeElectricalDualInLineIC.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=mxUtils.getValue(this.style,"fontColor","#000000");a.setFontColor(d);d=mxUtils.getValue(this.style,"startPin","n");e=mxUtils.getValue(this.style,"pinLabelType","gen");var f=mxUtils.getValue(this.style,"labelNames","").toString().split(",");a.begin();"n"==d||"s"==d?a.rect(10,0,b-20,c):a.rect(0,10,b,c-20);a.fillAndStroke();var g=parseFloat(mxUtils.getValue(this.style,"pinSpacing","20")),h=mxUtils.getValue(this.style,
6224"pinStyle","line"),k=parseFloat(mxUtils.getValue(this.style,"fontSize","12")),l="n"==d||"s"==d?parseInt(c/g):parseInt(b/g);if("line"==h){a.setFontSize(.8*k);h=1;k=.5*g;a.begin();if("n"==d||"s"==d)for(;h*g<=c;){a.moveTo(0,k);a.lineTo(10,k);a.moveTo(b-10,k);a.lineTo(b,k);var m="n"==d?h:l+h;"gen"==e?a.text(20,k,0,0,m.toString(),mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):m-1<f.length&&a.text(20,k,0,0,f[m-1].toString(),mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);m=
6225"n"==d?2*l-h+1:l-h+1;"gen"==e?a.text(b-20,k,0,0,m.toString(),mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):m-1<f.length&&a.text(b-20,k,0,0,f[m-1].toString(),mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);k+=g;h++}else for(;h*g<=b;)a.moveTo(k,0),a.lineTo(k,10),a.moveTo(k,c-10),a.lineTo(k,c),m="e"==d?l-h+1:2*l-h+1,"gen"==e?a.text(k,20,0,0,m.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):m-1<f.length&&a.text(k,20,0,0,f[m-1].toString(),mxConstants.ALIGN_CENTER,
6226mxConstants.ALIGN_MIDDLE,0,null,0,0,0),m="e"==d?l+h:h,"gen"==e?a.text(k,c-20,0,0,m.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):m-1<f.length&&a.text(k,c-20,0,0,f[m-1].toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),k+=g,h++;a.stroke()}else if(a.setFontSize(.5*k),h=1,k=.5*g,"n"==d||"s"==d)for(;h*g<=c;)a.begin(),a.rect(0,k-.25*g,10,.5*g),a.fillAndStroke(),a.begin(),a.rect(b-10,k-.25*g,10,.5*g),a.fillAndStroke(),m="n"==d?h:l+h,"gen"==e?a.text(5,
6227k+1,0,0,m.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):m-1<f.length&&a.text(5,k+1,0,0,f[m-1].toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),m="n"==d?2*l-h+1:l-h+1,"gen"==e?a.text(b-5,k+1,0,0,m.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):m-1<f.length&&a.text(b-5,k+1,0,0,f[m-1].toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),k+=g,h++;else for(;h*g<=b;)a.begin(),a.rect(k-.25*g,0,.5*g,10),
6228a.fillAndStroke(),a.begin(),a.rect(k-.25*g,c-10,.5*g,10),a.fillAndStroke(),m="e"==d?l-h+1:2*l-h+1,"gen"==e?a.text(k,5,0,0,m.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):m-1<f.length&&a.text(k,5,0,0,f[m-1].toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0),m="e"==d?l+h:h,"gen"==e?a.text(k,c-5,0,0,m.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):m-1<f.length&&a.text(k,c-5,0,0,f[m-1].toString(),mxConstants.ALIGN_CENTER,
6229mxConstants.ALIGN_MIDDLE,0,null,0,0,0),k+=g,h++;a.setShadow(!1);a.begin();switch(d){case "e":40<c&&(a.moveTo(b,.5*c-10),a.arcTo(12,12,0,0,0,b,.5*c+10));break;case "s":40<b&&(a.moveTo(.5*b-10,c),a.arcTo(12,12,0,0,1,.5*b+10,c));break;case "w":40<c&&(a.moveTo(0,.5*c-10),a.arcTo(12,12,0,0,1,0,.5*c+10));break;default:40<b&&(a.moveTo(.5*b-10,0),a.arcTo(12,12,0,0,0,.5*b+10,0))}a.stroke()};mxCellRenderer.registerShape(mxShapeElectricalDualInLineIC.prototype.cst.SHAPE_DUAL_INLINE_IC,mxShapeElectricalDualInLineIC);
6230mxShapeElectricalDualInLineIC.prototype.getConstraints=function(a,d,e){a=[];var b=parseFloat(mxUtils.getValue(this.style,"pinSpacing","20")),c=mxUtils.getValue(this.style,"startPin","n"),f=1,g=.5*b;parseInt(e/b);if("n"==c||"s"==c)for(;f*b<=e;)a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g)),a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,g)),g+=b,f++;else for(;f*b<=d;)a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,0)),a.push(new mxConnectionConstraint(new mxPoint(0,
62311),!1,null,g,0)),g+=b,f++;return a};function mxShapeElectricalQFPIC(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeElectricalQFPIC,mxShape);mxShapeElectricalQFPIC.prototype.cst={SHAPE_QFP_IC:"mxgraph.electrical.logic_gates.qfp_ic"};
6232mxShapeElectricalQFPIC.prototype.customProperties=[{name:"pinStyle",dispName:"Pin Style",type:"enum",defVal:"line",enumList:[{val:"line",dispName:"Line"},{val:"square",dispName:"Square"}]},{name:"startPin",dispName:"Starting Pin",type:"enum",defVal:"sw",enumList:[{val:"sw",dispName:"SW"},{val:"nw",dispName:"NW"},{val:"ne",dispName:"NE"},{val:"se",dispName:"SE"}]},{name:"pinSpacing",dispName:"Pin Spacing",type:"float",min:1,defVal:20},{name:"pinLabelType",dispName:"Pin Label Type",type:"enum",defVal:"gen",
6233enumList:[{val:"gen",dispName:"Generated"},{val:"cust",dispName:"Custom"}]},{name:"labelCount",dispName:"Number of Labels",type:"int",defVal:40,dependentProps:["labelNames"]},{name:"labelNames",dispName:"Label Names",type:"staticArr",subType:"string",sizeProperty:"labelCount",subDefVal:"a"}];
6234mxShapeElectricalQFPIC.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(15,10);a.lineTo(b-15,10);a.lineTo(b-10,15);a.lineTo(b-10,c-15);a.lineTo(b-15,c-10);a.lineTo(15,c-10);a.lineTo(10,c-15);a.lineTo(10,15);a.close();a.fillAndStroke();d=parseFloat(mxUtils.getValue(this.style,"pinSpacing","20"));var f=mxUtils.getValue(this.style,"pinStyle","line");e=mxUtils.getValue(this.style,"pinLabelType","gen");var g=mxUtils.getValue(this.style,"labelNames","").toString().split(","),
6235h=parseFloat(mxUtils.getValue(this.style,"fontSize","12")),k=mxUtils.getValue(this.style,"fontColor","#000000");a.setFontColor(k);k=mxUtils.getValue(this.style,"startPin","sw");if("line"==f){a.setFontSize(.8*h);f=1;h=.5*d+20;a.begin();for(var l=parseInt((c-d-40)/d)+1,m=parseInt((b-d-40)/d)+1;h<=c-.5*d-20;){a.moveTo(0,h);a.lineTo(10,h);a.moveTo(b-10,h);a.lineTo(b,h);switch(k){case "nw":var n=f;break;case "ne":n=m+f;break;case "se":n=l+m+f;break;default:n=l+2*m+f}"gen"==e?a.text(20,h,0,0,n.toString(),
6236mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):n-1<g.length&&a.text(20,h,0,0,g[n-1].toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);switch(k){case "nw":n=m+2*l-f+1;break;case "ne":n=2*m+2*l-f+1;break;case "se":n=l-f+1;break;default:n=m+l-f+1}"gen"==e?a.text(b-20,h,0,0,n.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):n-1<g.length&&a.text(b-20,h,0,0,g[n-1].toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,
62370);h+=d;f++}f=1;for(h=.5*d+20;h<=b-.5*d-20;){a.moveTo(h,0);a.lineTo(h,10);a.moveTo(h,c-10);a.lineTo(h,c);switch(k){case "nw":n=l+f;break;case "ne":n=l+m+f;break;case "se":n=2*l+m+f;break;default:n=f}"gen"==e?a.text(h,c-20,0,0,n.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):n-1<g.length&&a.text(h,c-20,0,0,g[n-1].toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);switch(k){case "nw":n=2*m+2*l-f+1;break;case "ne":n=m-f+1;break;case "se":n=m+l-f+1;
6238break;default:n=2*m+l-f+1}"gen"==e?a.text(h,20,0,0,n.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):n-1<g.length&&a.text(h,20,0,0,g[n-1].toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);h+=d;f++}a.stroke()}else{a.setFontSize(.5*h);f=1;h=.5*d+20;l=parseInt((c-d-40)/d)+1;for(m=parseInt((b-d-40)/d)+1;h<=c-.5*d-20;){a.begin();a.rect(0,h-.25*d,10,.5*d);a.fillAndStroke();a.begin();a.rect(b-10,h-.25*d,10,.5*d);a.fillAndStroke();switch(k){case "nw":n=
6239f;break;case "ne":n=m+f;break;case "se":n=l+m+f;break;default:n=l+2*m+f}"gen"==e?a.text(5,h+1,0,0,n.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):n-1<g.length&&a.text(5,h+1,0,0,g[n-1].toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);switch(k){case "nw":n=m+2*l-f+1;break;case "ne":n=2*m+2*l-f+1;break;case "se":n=l-f+1;break;default:n=m+l-f+1}"gen"==e?a.text(b-5,h+1,0,0,n.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):
6240n-1<g.length&&a.text(b-5,h+1,0,0,g[n-1].toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);h+=d;f++}f=1;for(h=.5*d+20;h<=b-.5*d-20;){a.begin();a.rect(h-.25*d,0,.5*d,10);a.fillAndStroke();a.begin();a.rect(h-.25*d,c-10,.5*d,10);a.fillAndStroke();switch(k){case "nw":n=l+f;break;case "ne":n=l+m+f;break;case "se":n=2*l+m+f;break;default:n=f}"gen"==e?a.text(h,c-4,0,0,n.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):n-1<g.length&&a.text(h,c-4,0,0,g[n-1].toString(),
6241mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);switch(k){case "nw":n=2*m+2*l-f+1;break;case "ne":n=m-f+1;break;case "se":n=m+l-f+1;break;default:n=2*m+l-f+1}"gen"==e?a.text(h,6,0,0,n.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0):n-1<g.length&&a.text(h,6,0,0,g[n-1].toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);h+=d;f++}}a.setShadow(!1);if(40<b){a.setFillColor(mxUtils.getValue(this.style,"strokeColor","#000000"));a.begin();switch(k){case "nw":a.ellipse(15,
624215,10,10);break;case "ne":a.ellipse(b-25,15,10,10);break;case "se":a.ellipse(b-25,c-25,10,10);break;default:a.ellipse(15,c-25,10,10)}a.fillAndStroke()}};mxCellRenderer.registerShape(mxShapeElectricalQFPIC.prototype.cst.SHAPE_QFP_IC,mxShapeElectricalQFPIC);
6243mxShapeElectricalQFPIC.prototype.getConstraints=function(a,d,e){a=[];var b=parseFloat(mxUtils.getValue(this.style,"pinSpacing","20")),c=.5*b+20;for(parseInt(e/b);c<=e-.5*b-20;)a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c)),a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,c)),c+=b;for(c=.5*b+20;c<=d-.5*b-20;)a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,0)),a.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,c,0)),c+=b;return a};
6244function mxShapeElectricalMux(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeElectricalMux,mxShape);mxShapeElectricalMux.prototype.cst={SHAPE_MUX:"mxgraph.electrical.abstract.mux2"};
6245mxShapeElectricalMux.prototype.customProperties=[{name:"operation",dispName:"Operation",type:"enum",defVal:"mux",enumList:[{val:"mux",dispName:"Mux"},{val:"demux",dispName:"Demux"}]},{name:"selectorPins",dispName:"Selector Pins",type:"int",min:1,max:8,defVal:1}];
6246mxShapeElectricalMux.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,"selectorPins","1"));e=mxUtils.getValue(this.style,"operation","mux");var f=parseFloat(mxUtils.getValue(this.style,"fontSize","12"));a.setFontSize(.5*f);f=mxUtils.getValue(this.style,"fontColor","#000000");a.setFontColor(f);f=0;switch(mxUtils.getValue(this.style,"direction","east")){case "south":f=270;break;case "west":f=180;break;case "north":f=90}switch(e){case "demux":a.begin();
6247a.moveTo(b-10,0);a.lineTo(10,.1*c);a.lineTo(10,.9*c-10);a.lineTo(b-10,c-10);a.close();a.fillAndStroke();break;default:a.begin(),a.moveTo(10,0),a.lineTo(b-10,.1*c),a.lineTo(b-10,.9*c-10),a.lineTo(10,c-10),a.close(),a.fillAndStroke()}var g=1,h=1;if("mux"==e)var g=Math.pow(2,d),k=(c-16)/g;else h=Math.pow(2,d),k=(c-16)/h;var l=3+.5*k;a.begin();if(1==g)a.moveTo(0,.5*(c-10)),a.lineTo(10,.5*(c-10));else for(var m=0;m<g;m++)a.moveTo(0,l),a.lineTo(10,l),a.text(14,l+1,0,0,""+m.toString(),mxConstants.ALIGN_CENTER,
6248mxConstants.ALIGN_MIDDLE,0,null,0,0,f),l+=k;if(1==h)a.moveTo(b-10,.5*(c-10)),a.lineTo(b,.5*(c-10));else for(m=0;m<h;m++)a.moveTo(b-10,l),a.lineTo(b,l),a.text(b-14,l+1,0,0,""+m.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,f),l+=k;k=(b-20)/d;g=10+.5*k;for(m=0;m<d;m++)"mux"==e?a.moveTo(g,c-10-(g-10)/(b-20)*c*.1):a.moveTo(g,c-10-(b-g-10)/(b-20)*c*.1),a.lineTo(g,c),a.text(g+5,c-4,0,0,"S"+(d-m-1).toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,f),g+=k;
6249a.stroke()};mxCellRenderer.registerShape(mxShapeElectricalMux.prototype.cst.SHAPE_MUX,mxShapeElectricalMux);
6250mxShapeElectricalMux.prototype.getConstraints=function(a,d,e){a=[];var b=(e-16)/e,c=parseInt(mxUtils.getValue(this.style,"selectorPins","1")),f=1,g=1;"mux"==mxUtils.getValue(this.style,"operation","mux")?(f=Math.pow(2,c),b/=f):(g=Math.pow(2,c),b/=g);var h=.5*b;if(1==f)a.push(new mxConnectionConstraint(new mxPoint(0,.5*(e-10)/e),!1,0,0));else for(e=0;e<f;e++)a.push(new mxConnectionConstraint(new mxPoint(0,h),!1,null,0,3)),h+=b;if(1==g)a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null,0,-5));
6251else for(e=0;e<g;e++)a.push(new mxConnectionConstraint(new mxPoint(1,h),!1,null,0,3)),h+=b;b=(d-20)/(d*c);d=.5*b;for(e=0;e<c;e++)a.push(new mxConnectionConstraint(new mxPoint(d,1),!1,null,10,0)),d+=b;return a};function mxShapeElectricalBatteryStack(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeElectricalBatteryStack,mxShape);mxShapeElectricalBatteryStack.prototype.cst={SHAPE_BATTERY_STACK:"mxgraph.electrical.miscellaneous.batteryStack"};
6252mxShapeElectricalBatteryStack.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=.3*c;var f=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");e=mxUtils.getValue(this.style,mxConstants.STYLE_DASHED,"0");var g=Math.floor((b-20)/d),h=.5*(b-g*d);if(0<g)for(a.begin(),a.moveTo(0,.5*c),a.lineTo(h+.2*d,.5*c),a.moveTo(b-h-.2*d,.5*c),a.lineTo(b,.5*c),a.stroke(),b=h,a.setFillColor(f),f=0;f<g;f++)a.rect(b+.2*d,.25*c,.2*d,.5*c),a.fillAndStroke(),a.begin(),a.moveTo(b+.8*d,0),a.lineTo(b+
6253.8*d,c),a.stroke(),0<f&&(a.setDashed("1"),a.begin(),a.moveTo(b-.2*d,.5*c),a.lineTo(b+.2*d,.5*c),a.stroke(),a.setDashed(e)),b+=d};mxCellRenderer.registerShape(mxShapeElectricalBatteryStack.prototype.cst.SHAPE_BATTERY_STACK,mxShapeElectricalBatteryStack);mxShapeElectricalBatteryStack.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0)];
6254function mxShapeElectricalDCSource3_v2(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeElectricalDCSource3_v2,mxShape);mxShapeElectricalDCSource3_v2.prototype.cst={SHAPE_DC_SOURCE_3_V2:"mxgraph.electrical.signal_sources.dc_source_3_v2"};
6255mxShapeElectricalDCSource3_v2.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(3,.05*Math.min(c,b));a.ellipse(0,0,b,c);a.fillAndStroke();a.begin();a.moveTo(.5*b-d,.05*c+3);a.lineTo(.5*b+d,.05*c+3);a.moveTo(.5*b,.05*c-d+3);a.lineTo(.5*b,.05*c+d+3);a.moveTo(.5*b-d,.95*c-3);a.lineTo(.5*b+d,.95*c-3);a.stroke()};mxCellRenderer.registerShape(mxShapeElectricalDCSource3_v2.prototype.cst.SHAPE_DC_SOURCE_3_V2,mxShapeElectricalDCSource3_v2);
6256mxShapeElectricalDCSource3_v2.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0)];function mxShapeElectricalSource(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeElectricalSource,mxShape);mxShapeElectricalSource.prototype.cst={SHAPE_SOURCE:"mxgraph.electrical.signal_sources.source"};
6257mxShapeElectricalSource.prototype.customProperties=[{name:"elSourceType",dispName:"Source Type",type:"enum",defVal:"independent",enumList:[{val:"independent",dispName:"Independent"},{val:"dependent",dispName:"Dependent"}]},{name:"elSignalType",dispName:"Signal Type",type:"enum",defVal:"ac",enumList:[{val:"ac",dispName:"AC"},{val:"none",dispName:"None"},{val:"square",dispName:"Square"},{val:"triangular",dispName:"Triangular"},{val:"sawtooth",dispName:"Sawtooth"},{val:"noise",dispName:"Noise"},{val:"ideal",
6258dispName:"Ideal"},{val:"expSquib",dispName:"Explosive Squib"},{val:"pulse",dispName:"Pulse"},{val:"invPulse",dispName:"Inverse Pulse"},{val:"chopSquare",dispName:"Chopped Square"},{val:"stepOn",dispName:"Step On"},{val:"stepOff",dispName:"Step Off"},{val:"dc1",dispName:"DC Horizontal"},{val:"dc2",dispName:"DC Vertical"},{val:"dc3",dispName:"DC Plus minus"}]}];
6259mxShapeElectricalSource.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=mxUtils.getValue(this.style,"elSourceType","independent");e=mxUtils.getValue(this.style,"elSignalType","none");switch(d){case "independent":a.ellipse(0,0,b,c);a.fillAndStroke();break;case "dependent":a.begin(),a.moveTo(0,.5*c),a.lineTo(.5*b,0),a.lineTo(b,.5*c),a.lineTo(.5*b,c),a.lineTo(0,.5*c),a.close(),a.fillAndStroke()}switch(e){case "ac":a.begin();a.moveTo(.3*b,.5*c);a.quadTo(.34*b,.35*c,.4*b,.35*c);a.quadTo(.46*
6260b,.35*c,.5*b,.5*c);a.quadTo(.53*b,.65*c,.6*b,.65*c);a.quadTo(.66*b,.65*c,.7*b,.5*c);a.stroke();break;case "square":a.begin();a.moveTo(.3*b,.5*c);a.lineTo(.3*b,.35*c);a.lineTo(.5*b,.35*c);a.lineTo(.5*b,.65*c);a.lineTo(.7*b,.65*c);a.lineTo(.7*b,.5*c);a.stroke();break;case "triangular":a.begin();a.moveTo(.3*b,.65*c);a.lineTo(.4*b,.35*c);a.lineTo(.5*b,.65*c);a.lineTo(.6*b,.35*c);a.lineTo(.7*b,.65*c);a.stroke();break;case "sawtooth":a.begin();a.moveTo(.24*b,.65*c);a.lineTo(.42*b,.35*c);a.lineTo(.42*b,
6261.65*c);a.lineTo(.58*b,.35*c);a.lineTo(.58*b,.65*c);a.lineTo(.76*b,.35*c);a.lineTo(.76*b,.65*c);a.stroke();break;case "noise":a.begin();a.moveTo(.5*b,.17*c);a.lineTo(.5*b,.5*c);a.moveTo(.18*b,.42*c);a.lineTo(.5*b,.5*c);a.moveTo(.32*b,.78*c);a.lineTo(.5*b,.5*c);a.moveTo(.82*b,.42*c);a.lineTo(.5*b,.5*c);a.moveTo(.68*b,.78*c);a.lineTo(.5*b,.5*c);a.stroke();break;case "ideal":a.begin();a.moveTo(0,.5*c);a.lineTo(b,.5*c);a.stroke();break;case "expSquib":a.ellipse(0,.43*c,.14*b,.14*c);a.stroke();a.ellipse(.86*
6262b,.43*c,.14*b,.14*c);a.stroke();a.begin();a.moveTo(.83*b,.63*c);a.lineTo(.73*b,.73*c);a.lineTo(.27*b,.27*c);a.lineTo(.17*b,.37*c);a.stroke();a.begin();d=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");a.setFillColor(d);a.moveTo(.2*b,.25*c);a.lineTo(.13*b,.4*c);a.lineTo(.28*b,.33*c);a.close();a.fillAndStroke();break;case "pulse":a.begin();a.moveTo(.3*b,.65*c);a.lineTo(.4*b,.65*c);a.lineTo(.4*b,.35*c);a.lineTo(.6*b,.35*c);a.lineTo(.6*b,.65*c);a.lineTo(.7*b,.65*c);a.stroke();break;
6263case "invPulse":a.begin();a.moveTo(.3*b,.35*c);a.lineTo(.4*b,.35*c);a.lineTo(.4*b,.65*c);a.lineTo(.6*b,.65*c);a.lineTo(.6*b,.35*c);a.lineTo(.7*b,.35*c);a.stroke();break;case "chopSquare":a.begin();a.moveTo(.3*b,.5*c);a.lineTo(.33*b,.35*c);a.lineTo(.47*b,.35*c);a.lineTo(.53*b,.65*c);a.lineTo(.67*b,.65*c);a.lineTo(.7*b,.5*c);a.stroke();break;case "stepOn":a.begin();a.moveTo(.3*b,.65*c);a.lineTo(.5*b,.65*c);a.lineTo(.5*b,.35*c);a.lineTo(.7*b,.35*c);a.stroke();break;case "stepOff":a.begin();a.moveTo(.3*
6264b,.35*c);a.lineTo(.5*b,.35*c);a.lineTo(.5*b,.65*c);a.lineTo(.7*b,.65*c);a.stroke();break;case "dc1":a.begin();a.moveTo(.17*b,.5*c);a.lineTo(.83*b,.5*c);a.moveTo(.67*b,.42*c);a.lineTo(.83*b,.5*c);a.lineTo(.67*b,.58*c);a.stroke();break;case "dc2":a.begin();a.moveTo(.5*b,.17*c);a.lineTo(.5*b,.83*c);a.moveTo(.42*b,.67*c);a.lineTo(.5*b,.83*c);a.lineTo(.58*b,.67*c);a.stroke();break;case "dc3":e=Math.max(3,.05*Math.min(c,b));var f=3;"dependent"==d&&(f+=3);a.begin();a.moveTo(.5*b-e,.05*c+f);a.lineTo(.5*b+
6265e,.05*c+f);a.moveTo(.5*b,.05*c-e+f);a.lineTo(.5*b,.05*c+e+f);a.moveTo(.5*b-e,.95*c-f);a.lineTo(.5*b+e,.95*c-f);a.stroke()}};mxCellRenderer.registerShape(mxShapeElectricalSource.prototype.cst.SHAPE_SOURCE,mxShapeElectricalSource);function mxFloorplanWall(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxFloorplanWall,mxShape);mxFloorplanWall.prototype.cst={WALL:"mxgraph.floorplan.wall",WALL_THICKNESS:"wallThickness"};
6266mxFloorplanWall.prototype.customProperties=[{name:"wallThickness",dispName:"Thickness",type:"float",min:0,defVal:10}];mxFloorplanWall.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};mxFloorplanWall.prototype.background=function(a,d,e,b,c){d=parseFloat(mxUtils.getValue(this.style,mxFloorplanWall.prototype.cst.WALL_THICKNESS,"10"));a.rect(0,.5*c-.5*d,b,d);a.fillAndStroke()};mxCellRenderer.registerShape(mxFloorplanWall.prototype.cst.WALL,mxFloorplanWall);
6267function mxFloorplanWallCorner(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxFloorplanWallCorner,mxShape);mxFloorplanWallCorner.prototype.cst={WALL_CORNER:"mxgraph.floorplan.wallCorner",WALL_THICKNESS:"wallThickness"};mxFloorplanWallCorner.prototype.customProperties=[{name:"wallThickness",dispName:"Thickness",type:"float",min:0,defVal:10}];
6268mxFloorplanWallCorner.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};mxFloorplanWallCorner.prototype.background=function(a,d,e,b,c){d=parseFloat(mxUtils.getValue(this.style,mxFloorplanWallCorner.prototype.cst.WALL_THICKNESS,"10"));a.begin();a.moveTo(0,c);a.lineTo(0,0);a.lineTo(b,0);a.lineTo(b,d);a.lineTo(d,d);a.lineTo(d,c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxFloorplanWallCorner.prototype.cst.WALL_CORNER,mxFloorplanWallCorner);
6269function mxFloorplanWallU(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxFloorplanWallU,mxShape);mxFloorplanWallU.prototype.cst={WALL_U:"mxgraph.floorplan.wallU",WALL_THICKNESS:"wallThickness"};mxFloorplanWallU.prototype.customProperties=[{name:"wallThickness",dispName:"Thickness",type:"float",min:0,defVal:10}];mxFloorplanWallU.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};
6270mxFloorplanWallU.prototype.background=function(a,d,e,b,c){d=parseFloat(mxUtils.getValue(this.style,mxFloorplanWallU.prototype.cst.WALL_THICKNESS,"10"));a.begin();a.moveTo(0,c);a.lineTo(0,0);a.lineTo(b,0);a.lineTo(b,c);a.lineTo(b-d,c);a.lineTo(b-d,d);a.lineTo(d,d);a.lineTo(d,c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxFloorplanWallU.prototype.cst.WALL_U,mxFloorplanWallU);
6271function mxFloorplanRoom(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxFloorplanRoom,mxShape);mxFloorplanRoom.prototype.cst={ROOM:"mxgraph.floorplan.room",WALL_THICKNESS:"wallThickness"};mxFloorplanRoom.prototype.customProperties=[{name:"wallThickness",dispName:"Thickness",type:"float",min:0,defVal:10}];mxFloorplanRoom.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};
6272mxFloorplanRoom.prototype.background=function(a,d,e,b,c){d=parseFloat(mxUtils.getValue(this.style,mxFloorplanRoom.prototype.cst.WALL_THICKNESS,"10"));a.begin();a.moveTo(0,c);a.lineTo(0,0);a.lineTo(b,0);a.lineTo(b,c);a.close();a.moveTo(d,d);a.lineTo(d,c-d);a.lineTo(b-d,c-d);a.lineTo(b-d,d);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxFloorplanRoom.prototype.cst.ROOM,mxFloorplanRoom);
6273function mxFloorplanWindow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxFloorplanWindow,mxShape);mxFloorplanWindow.prototype.cst={WINDOW:"mxgraph.floorplan.window",WALL_THICKNESS:"wallThickness"};mxFloorplanWindow.prototype.customProperties=[{name:"wallThickness",dispName:"Thickness",type:"float",min:0,defVal:10}];mxFloorplanWindow.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};
6274mxFloorplanWindow.prototype.background=function(a,d,e,b,c){d=parseFloat(mxUtils.getValue(this.style,mxFloorplanWindow.prototype.cst.WALL_THICKNESS,"10"));a.rect(0,.5*c-.5*d,b,d);a.fillAndStroke();a.begin();a.moveTo(0,.5*c);a.lineTo(b,.5*c);a.stroke()};mxCellRenderer.registerShape(mxFloorplanWindow.prototype.cst.WINDOW,mxFloorplanWindow);function mxFloorplanDimension(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
6275mxUtils.extend(mxFloorplanDimension,mxShape);mxFloorplanDimension.prototype.cst={DIMENSION:"mxgraph.floorplan.dimension"};mxFloorplanDimension.prototype.customProperties=[{name:"wallThickness",dispName:"Thickness",type:"float",min:0,defVal:10}];mxFloorplanDimension.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};
6276mxFloorplanDimension.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(0,20);a.lineTo(b,20);a.moveTo(10,15);a.lineTo(0,20);a.lineTo(10,25);a.moveTo(b-10,15);a.lineTo(b,20);a.lineTo(b-10,25);a.moveTo(0,15);a.lineTo(0,c);a.moveTo(b,15);a.lineTo(b,c);a.stroke()};mxCellRenderer.registerShape(mxFloorplanDimension.prototype.cst.DIMENSION,mxFloorplanDimension);function mxFloorplanDimensionBottom(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
6277mxUtils.extend(mxFloorplanDimensionBottom,mxShape);mxFloorplanDimensionBottom.prototype.cst={DIMENSION:"mxgraph.floorplan.dimensionBottom"};mxFloorplanDimensionBottom.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};
6278mxFloorplanDimensionBottom.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(0,c-20);a.lineTo(b,c-20);a.moveTo(10,c-15);a.lineTo(0,c-20);a.lineTo(10,c-25);a.moveTo(b-10,c-15);a.lineTo(b,c-20);a.lineTo(b-10,c-25);a.moveTo(0,c-15);a.lineTo(0,0);a.moveTo(b,c-15);a.lineTo(b,0);a.stroke()};mxCellRenderer.registerShape(mxFloorplanDimensionBottom.prototype.cst.DIMENSION,mxFloorplanDimensionBottom);
6279function mxFloorplanStairs(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxFloorplanStairs,mxShape);mxFloorplanStairs.prototype.cst={STAIRS:"mxgraph.floorplan.stairs"};mxFloorplanStairs.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,Math.max(b,50),c)};
6280mxFloorplanStairs.prototype.background=function(a,d,e,b,c){a.rect(0,0,b,c);a.fillAndStroke();a.setShadow(!1);a.begin();for(d=25;d<b;d+=25)a.moveTo(d,0),a.lineTo(d,c);a.stroke();a.begin();a.moveTo(0,.5*c);a.lineTo(b,.5*c);a.moveTo(b-25,0);a.lineTo(b,.5*c);a.lineTo(b-25,c);a.stroke()};mxCellRenderer.registerShape(mxFloorplanStairs.prototype.cst.STAIRS,mxFloorplanStairs);function mxFloorplanStairsRest(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
6281mxUtils.extend(mxFloorplanStairsRest,mxShape);mxFloorplanStairsRest.prototype.cst={STAIRS:"mxgraph.floorplan.stairsRest"};mxFloorplanStairsRest.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,Math.max(b,50,c),c)};
6282mxFloorplanStairsRest.prototype.background=function(a,d,e,b,c){a.rect(0,0,b,c);a.fillAndStroke();a.setShadow(!1);a.begin();for(d=25;d<b-.5*c;d+=25)a.moveTo(d,0),a.lineTo(d,c);a.stroke();a.begin();a.moveTo(0,.5*c);a.lineTo(b,.5*c);a.moveTo(b,0);a.lineTo(b-.5*c,.5*c);a.lineTo(b,c);a.moveTo(b-.5*c,0);a.lineTo(b-.5*c,c);a.moveTo(0,.5*c);a.lineTo(b,.5*c);a.stroke()};mxCellRenderer.registerShape(mxFloorplanStairsRest.prototype.cst.STAIRS,mxFloorplanStairsRest);
6283function mxFloorplanDoorLeft(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxFloorplanDoorLeft,mxShape);mxFloorplanDoorLeft.prototype.cst={DOOR_LEFT:"mxgraph.floorplan.doorLeft"};mxFloorplanDoorLeft.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};
6284mxFloorplanDoorLeft.prototype.background=function(a,d,e,b,c){a.rect(0,0,b,5);a.fillAndStroke();a.begin();a.moveTo(b,5);a.arcTo(b,b,0,0,1,0,5+b);a.lineTo(0,5);a.stroke()};mxCellRenderer.registerShape(mxFloorplanDoorLeft.prototype.cst.DOOR_LEFT,mxFloorplanDoorLeft);function mxFloorplanDoorRight(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxFloorplanDoorRight,mxShape);mxFloorplanDoorRight.prototype.cst={DOOR_RIGHT:"mxgraph.floorplan.doorRight"};
6285mxFloorplanDoorRight.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};mxFloorplanDoorRight.prototype.background=function(a,d,e,b,c){a.rect(0,0,b,5);a.fillAndStroke();a.begin();a.moveTo(0,5);a.arcTo(b,b,0,0,0,b,5+b);a.lineTo(b,5);a.stroke()};mxCellRenderer.registerShape(mxFloorplanDoorRight.prototype.cst.DOOR_RIGHT,mxFloorplanDoorRight);
6286function mxFloorplanDoorDouble(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxFloorplanDoorDouble,mxShape);mxFloorplanDoorDouble.prototype.cst={DOOR_DOUBLE:"mxgraph.floorplan.doorDouble"};mxFloorplanDoorDouble.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};
6287mxFloorplanDoorDouble.prototype.background=function(a,d,e,b,c){d=.5*b;a.rect(0,0,b,5);a.fillAndStroke();a.begin();a.moveTo(d,0);a.lineTo(d,5);a.moveTo(d,5);a.arcTo(d,d,0,0,1,0,5+d);a.lineTo(0,5);a.moveTo(d,5);a.arcTo(d,d,0,0,0,b,5+d);a.lineTo(b,5);a.stroke()};mxCellRenderer.registerShape(mxFloorplanDoorDouble.prototype.cst.DOOR_DOUBLE,mxFloorplanDoorDouble);function mxFloorplanDoorUneven(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.3}
6288mxUtils.extend(mxFloorplanDoorUneven,mxShape);mxFloorplanDoorUneven.prototype.customProperties=[{name:"dx",dispName:"Door size",type:"float",min:0,max:1,defVal:.3}];mxFloorplanDoorUneven.prototype.cst={DOOR_UNEVEN:"mxgraph.floorplan.doorUneven"};mxFloorplanDoorUneven.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};
6289mxFloorplanDoorUneven.prototype.background=function(a,d,e,b,c){d=b*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));a.rect(0,0,b,5);a.fillAndStroke();a.begin();a.moveTo(d,0);a.lineTo(d,5);a.arcTo(d,d,0,0,1,0,5+d);a.lineTo(0,5);a.moveTo(d,5);a.arcTo(b-d,b-d,0,0,0,b,5+b-d);a.lineTo(b,5);a.stroke()};mxCellRenderer.registerShape(mxFloorplanDoorUneven.prototype.cst.DOOR_UNEVEN,mxFloorplanDoorUneven);
6290Graph.handleFactory[mxFloorplanDoorUneven.prototype.cst.DOOR_UNEVEN]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d*a.width,a.y+5)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(1,(e.x-a.x)/a.width)))/100})]};function mxFloorplanDoorOpposing(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.3}
6291mxUtils.extend(mxFloorplanDoorOpposing,mxShape);mxFloorplanDoorOpposing.prototype.customProperties=[{name:"dx",dispName:"Door size",type:"float",min:0,max:1,defVal:.3}];mxFloorplanDoorOpposing.prototype.cst={DOOR_OPPOSING:"mxgraph.floorplan.doorOpposing"};mxFloorplanDoorOpposing.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};
6292mxFloorplanDoorOpposing.prototype.background=function(a,d,e,b,c){d=b*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));a.rect(0,d,b,5);a.fillAndStroke();a.begin();a.moveTo(d,d);a.lineTo(d,d+5);a.arcTo(d,d,0,0,0,0,0);a.lineTo(0,d);a.moveTo(d,d+5);a.arcTo(b-d,b-d,0,0,0,b,5+b);a.lineTo(b,d+5);a.stroke()};mxCellRenderer.registerShape(mxFloorplanDoorOpposing.prototype.cst.DOOR_OPPOSING,mxFloorplanDoorOpposing);
6293Graph.handleFactory[mxFloorplanDoorOpposing.prototype.cst.DOOR_OPPOSING]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d*a.width,a.y+5)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(1,(e.x-a.x)/a.width)))/100})]};function mxFloorplanDoorRevolving(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
6294mxUtils.extend(mxFloorplanDoorRevolving,mxShape);mxFloorplanDoorRevolving.prototype.cst={DOOR_REVOLVING:"mxgraph.floorplan.doorRevolving"};mxFloorplanDoorRevolving.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};mxFloorplanDoorRevolving.prototype.background=function(a,d,e,b,c){d=Math.min(b,c);a.rect(.5*(b-d),.5*c-2.5,d,5);a.fillAndStroke();a.rect(.5*b-2.5,.5*(c-d),5,d);a.fillAndStroke();a.begin();a.ellipse(.5*(b-d),.5*(c-d),d,d);a.stroke()};
6295mxCellRenderer.registerShape(mxFloorplanDoorRevolving.prototype.cst.DOOR_REVOLVING,mxFloorplanDoorRevolving);function mxFloorplanDoorPocket(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxFloorplanDoorPocket,mxShape);mxFloorplanDoorPocket.prototype.customProperties=[{name:"dx",dispName:"Door size",type:"float",min:0,max:1,defVal:.3}];mxFloorplanDoorPocket.prototype.cst={DOOR_POCKET:"mxgraph.floorplan.doorPocket"};
6296mxFloorplanDoorPocket.prototype.paintVertexShape=function(a,d,e,b,c){var f=b*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));a.translate(d,e);a.rect(f,.5*c-5,5,10);a.fillAndStroke();a.rect(b-5,.5*c-5,5,10);a.fillAndStroke();a.rect(0,.5*c-2.5,b-f,5);a.fillAndStroke()};mxCellRenderer.registerShape(mxFloorplanDoorPocket.prototype.cst.DOOR_POCKET,mxFloorplanDoorPocket);
6297Graph.handleFactory[mxFloorplanDoorPocket.prototype.cst.DOOR_POCKET]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d*a.width,a.y+5)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(.5,(e.x-a.x)/a.width)))/100})]};
6298function mxFloorplanDoorDoublePocket(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxFloorplanDoorDoublePocket,mxShape);mxFloorplanDoorDoublePocket.prototype.customProperties=[{name:"dx",dispName:"Door size",type:"float",min:0,max:1,defVal:.3}];mxFloorplanDoorDoublePocket.prototype.cst={DOOR_DOUBLE_POCKET:"mxgraph.floorplan.doorDoublePocket"};
6299mxFloorplanDoorDoublePocket.prototype.paintVertexShape=function(a,d,e,b,c){var f=b*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));a.translate(d,e);a.rect(f,.5*c-5,5,10);a.fillAndStroke();a.rect(b-f-5,.5*c-5,5,10);a.fillAndStroke();a.rect(0,.5*c-2.5,.5*b-f,5);a.fillAndStroke();a.rect(.5*b+f,.5*c-2.5,.5*b-f,5);a.fillAndStroke()};mxCellRenderer.registerShape(mxFloorplanDoorDoublePocket.prototype.cst.DOOR_DOUBLE_POCKET,mxFloorplanDoorDoublePocket);
6300Graph.handleFactory[mxFloorplanDoorDoublePocket.prototype.cst.DOOR_DOUBLE_POCKET]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(.25,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d*a.width,a.y+5)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(.25,(e.x-a.x)/a.width)))/100})]};
6301function mxFloorplanDoorBypass(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxFloorplanDoorBypass,mxShape);mxFloorplanDoorBypass.prototype.customProperties=[{name:"dx",dispName:"Door size",type:"float",min:0,max:1,defVal:.3}];mxFloorplanDoorBypass.prototype.cst={DOOR_BYPASS:"mxgraph.floorplan.doorBypass"};
6302mxFloorplanDoorBypass.prototype.paintVertexShape=function(a,d,e,b,c){var f=b*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));a.translate(d,e);a.rect(0,.5*c-5,5,10);a.fillAndStroke();a.rect(b-5,.5*c-5,5,10);a.fillAndStroke();a.rect(0,.5*c,.5*b,5);a.fillAndStroke();a.rect(f,.5*c-5,.5*b,5);a.fillAndStroke()};mxCellRenderer.registerShape(mxFloorplanDoorBypass.prototype.cst.DOOR_BYPASS,mxFloorplanDoorBypass);
6303Graph.handleFactory[mxFloorplanDoorBypass.prototype.cst.DOOR_BYPASS]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d*a.width,a.y+5)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(.5,(e.x-a.x)/a.width)))/100})]};function mxFloorplanDoorBifold(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}
6304mxUtils.extend(mxFloorplanDoorBifold,mxShape);mxFloorplanDoorBifold.prototype.customProperties=[{name:"dx",dispName:"Door size",type:"float",min:0,max:1,defVal:.3}];mxFloorplanDoorBifold.prototype.cst={DOOR_BIFOLD:"mxgraph.floorplan.doorBifold"};
6305mxFloorplanDoorBifold.prototype.paintVertexShape=function(a,d,e,b,c){var f=b*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),g=parseFloat(mxUtils.getValue(this.style,"strokeWidth",this.dx));a.translate(d,e);a.rect(0,c-10,5,10);a.fillAndStroke();a.rect(b-5,c-10,5,10);a.fillAndStroke();a.setStrokeWidth(3*g);a.begin();a.moveTo(5,c-10);a.lineTo(Math.max(.5*(f-10)+5,5),0);a.lineTo(Math.max(f,5),c-10);a.moveTo(b-5,c-10);a.lineTo(b-Math.max(.5*(f-10)+5,5),0);a.lineTo(b-Math.max(f,
63065),c-10);a.stroke()};mxCellRenderer.registerShape(mxFloorplanDoorBifold.prototype.cst.DOOR_BIFOLD,mxFloorplanDoorBifold);Graph.handleFactory[mxFloorplanDoorBifold.prototype.cst.DOOR_BIFOLD]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d*a.width,a.y+5)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(.5,(e.x-a.x)/a.width)))/100})]};
6307function mxFloorplanDoorSlidingGlass(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxFloorplanDoorSlidingGlass,mxShape);mxFloorplanDoorSlidingGlass.prototype.customProperties=[{name:"dx",dispName:"Door size",type:"float",min:0,max:1,defVal:.3}];mxFloorplanDoorSlidingGlass.prototype.cst={DOOR_SLIDING_GLASS:"mxgraph.floorplan.doorSlidingGlass"};
6308mxFloorplanDoorSlidingGlass.prototype.paintVertexShape=function(a,d,e,b,c){var f=b*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));a.translate(d,e);a.rect(0,.5*c-5,5,10);a.fillAndStroke();a.rect(b-5,.5*c-5,5,10);a.fillAndStroke();a.rect(0,.5*c,.5*b,2);a.fillAndStroke();a.rect(f,.5*c-2,.5*b,2);a.fillAndStroke()};mxCellRenderer.registerShape(mxFloorplanDoorSlidingGlass.prototype.cst.DOOR_SLIDING_GLASS,mxFloorplanDoorSlidingGlass);
6309Graph.handleFactory[mxFloorplanDoorSlidingGlass.prototype.cst.DOOR_SLIDING_GLASS]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d*a.width,a.y+5)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(.5,(e.x-a.x)/a.width)))/100})]};
6310function mxFloorplanOverhead(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxFloorplanOverhead,mxShape);mxFloorplanOverhead.prototype.cst={DOOR_OVERHEAD:"mxgraph.floorplan.doorOverhead"};mxFloorplanOverhead.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.rect(0,c-10,5,10);a.fillAndStroke();a.rect(b-5,c-10,5,10);a.fillAndStroke();a.rect(5,0,b-10,c-5);a.fillAndStroke()};
6311mxCellRenderer.registerShape(mxFloorplanOverhead.prototype.cst.DOOR_OVERHEAD,mxFloorplanOverhead);function mxFloorplanOpening(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxFloorplanOpening,mxShape);mxFloorplanOpening.prototype.cst={OPENING:"mxgraph.floorplan.opening"};mxFloorplanOpening.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.rect(0,0,5,c);a.fillAndStroke();a.rect(b-5,0,5,c);a.fillAndStroke()};
6312mxCellRenderer.registerShape(mxFloorplanOpening.prototype.cst.OPENING,mxFloorplanOpening);function mxFloorplanWindowGlider(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxFloorplanWindowGlider,mxShape);mxFloorplanWindowGlider.prototype.customProperties=[{name:"dx",dispName:"Window size",type:"float",min:0,max:1,defVal:.3}];mxFloorplanWindowGlider.prototype.cst={WINDOW_GLIDER:"mxgraph.floorplan.windowGlider"};
6313mxFloorplanWindowGlider.prototype.paintVertexShape=function(a,d,e,b,c){var f=b*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));a.translate(d,e);a.rect(0,.5*c-5,b,10);a.fillAndStroke();a.rect(0,.5*c,.5*b,1);a.fillAndStroke();a.rect(f,.5*c-1,.5*b,1);a.fillAndStroke()};mxCellRenderer.registerShape(mxFloorplanWindowGlider.prototype.cst.WINDOW_GLIDER,mxFloorplanWindowGlider);
6314Graph.handleFactory[mxFloorplanWindowGlider.prototype.cst.WINDOW_GLIDER]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d*a.width,a.y+5)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(.5,(e.x-a.x)/a.width)))/100})]};
6315function mxFloorplanWindowGarden(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.windowPanes=3}mxUtils.extend(mxFloorplanWindowGarden,mxShape);mxFloorplanWindowGarden.prototype.customProperties=[{name:"windowPanes",dispName:"Panes",type:"int",min:0,max:20,defVal:3}];mxFloorplanWindowGarden.prototype.cst={WINDOW_GARDEN:"mxgraph.floorplan.windowGarden"};
6316mxFloorplanWindowGarden.prototype.paintVertexShape=function(a,d,e,b,c){var f=Math.min(mxUtils.getValue(this.style,"windowPanes",this.windowPanes),20),g=(b-14-2*(f-1))/f;a.translate(d,e);a.rect(0,c-10,5,10);a.fillAndStroke();a.rect(b-5,c-10,5,10);a.fillAndStroke();a.begin();a.moveTo(5,c);a.lineTo(5,0);a.lineTo(b-5,0);a.lineTo(b-5,c);a.lineTo(b-5-2,c);a.lineTo(b-5-2,2);for(d=1;d<f;d++)a.lineTo(b-5-2-d*g-2*(d-1),2),a.lineTo(b-5-2-d*g-2*(d-1),c),a.lineTo(b-5-4-2*(d-1)-d*g,c),a.lineTo(b-5-4-2*(d-1)-d*
6317g,2);a.lineTo(7,2);a.lineTo(7,c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxFloorplanWindowGarden.prototype.cst.WINDOW_GARDEN,mxFloorplanWindowGarden);function mxFloorplanWindowBow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.windowPanes=3}mxUtils.extend(mxFloorplanWindowBow,mxShape);mxFloorplanWindowBow.prototype.cst={WINDOW_BOW:"mxgraph.floorplan.windowBow"};
6318mxFloorplanWindowBow.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.min(.5*b,c);a.begin();a.moveTo(0,.5*(c-d));a.lineTo(d,.5*(c+d));a.lineTo(b-d,.5*(c+d));a.lineTo(b,.5*(c-d));a.stroke()};mxCellRenderer.registerShape(mxFloorplanWindowBow.prototype.cst.WINDOW_BOW,mxFloorplanWindowBow);function mxFloorplanWindowBay(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.windowPanes=3}mxUtils.extend(mxFloorplanWindowBay,mxShape);
6319mxFloorplanWindowBay.prototype.cst={WINDOW_BAY:"mxgraph.floorplan.windowBay"};mxFloorplanWindowBay.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(0,0);a.lineTo(.15*b,.6*c);a.lineTo(.35*b,c);a.lineTo(.65*b,c);a.lineTo(.85*b,.6*c);a.lineTo(b,0);a.stroke()};mxCellRenderer.registerShape(mxFloorplanWindowBay.prototype.cst.WINDOW_BAY,mxFloorplanWindowBay);
6320function mxFloorplanDoorAccordion(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxFloorplanDoorAccordion,mxShape);mxFloorplanDoorAccordion.prototype.customProperties=[{name:"dx",dispName:"Door size",type:"float",min:0,max:1,defVal:.3}];mxFloorplanDoorAccordion.prototype.cst={DOOR_ACCORDION:"mxgraph.floorplan.doorAccordion"};
6321mxFloorplanDoorAccordion.prototype.paintVertexShape=function(a,d,e,b,c){var f=b*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),f=Math.max(5,f),f=Math.min(b-5,f),g=parseFloat(mxUtils.getValue(this.style,"strokeWidth",this.dx));a.translate(d,e);a.rect(0,.5*c-5,5,10);a.fillAndStroke();a.rect(b-5,.5*c-5,5,10);a.fillAndStroke();a.setStrokeWidth(3*g);d=f-5;a.begin();a.moveTo(5,.5*c);a.lineTo(5+.1*d,0);a.lineTo(5+.3*d,c);a.lineTo(5+.5*d,0);a.lineTo(5+.7*d,c);a.lineTo(5+.9*
6322d,0);a.lineTo(5+d,.5*c);a.stroke()};mxCellRenderer.registerShape(mxFloorplanDoorAccordion.prototype.cst.DOOR_ACCORDION,mxFloorplanDoorAccordion);
6323Graph.handleFactory[mxFloorplanDoorAccordion.prototype.cst.DOOR_ACCORDION]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d*a.width,a.y+5)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(1,(e.x-a.x)/a.width)))/100})]};function mxFloorplanDoorDoubleAction(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
6324mxUtils.extend(mxFloorplanDoorDoubleAction,mxShape);mxFloorplanDoorDoubleAction.prototype.cst={DOOR_DOUBLE_ACTION:"mxgraph.floorplan.doorDoubleAction"};mxFloorplanDoorDoubleAction.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};
6325mxFloorplanDoorDoubleAction.prototype.background=function(a,d,e,b,c){a.rect(0,.5*c-2.5,b,5);a.fillAndStroke();a.begin();a.moveTo(b,.5*c+2.5);a.arcTo(b,b,0,0,1,0,.5*c+2.5+b);a.lineTo(0,.5*c+2.5);a.stroke();a.setDashed(!0);a.begin();a.moveTo(b,.5*c-2.5);a.arcTo(b,b,0,0,0,0,.5*c-2.5-b);a.lineTo(0,.5*c-2.5);a.stroke()};mxCellRenderer.registerShape(mxFloorplanDoorDoubleAction.prototype.cst.DOOR_DOUBLE_ACTION,mxFloorplanDoorDoubleAction);
6326function mxShapeFlowchartDocument2(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.size=.5}mxUtils.extend(mxShapeFlowchartDocument2,mxActor);mxShapeFlowchartDocument2.prototype.cst={DOCUMENT2:"mxgraph.flowchart.document2"};mxShapeFlowchartDocument2.prototype.customProperties=[{name:"size",dispName:"Wave Size",type:"float",min:0,max:1,defVal:.25}];
6327mxShapeFlowchartDocument2.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.begin();a.moveTo(b-5,0);a.arcTo(5,5,0,0,1,b,5);a.lineTo(b,c-d/2);a.quadTo(3*b/4,c-1.4*d,b/2,c-d/2);a.quadTo(b/4,c-d*(1-1.4),0,c-d/2);a.lineTo(0,d/2);a.lineTo(0,5);a.arcTo(5,5,0,0,1,5,0);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeFlowchartDocument2.prototype.cst.DOCUMENT2,mxShapeFlowchartDocument2);
6328mxShapeFlowchartDocument2.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.75,0),!1),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,.25),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,.75),!1)];
6329Graph.handleFactory[mxShapeFlowchartDocument2.prototype.cst.DOCUMENT2]=function(a){return[Graph.createHandle(a,["size"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",this.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-d)*a.height)},function(a,e){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-e.y)/a.height))})]};
6330function mxShapeGCP2DoubleRect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeGCP2DoubleRect,mxShape);mxShapeGCP2DoubleRect.prototype.cst={SHAPE_DOUBLE_RECT:"mxgraph.gcp2.doubleRect"};mxShapeGCP2DoubleRect.prototype.paintVertexShape=function(a,d,e,b,c){b-=8;c-=8;a.translate(d,e);a.begin();a.roundrect(8,8,b,c,1,1);a.fillAndStroke();a.roundrect(0,0,b,c,1,1);a.fillAndStroke()};
6331mxCellRenderer.registerShape(mxShapeGCP2DoubleRect.prototype.cst.SHAPE_DOUBLE_RECT,mxShapeGCP2DoubleRect);mxShapeGCP2DoubleRect.prototype.constraints=mxRectangleShape.prototype.constraints;function mxShapeGCP2HexIcon(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeGCP2HexIcon,mxShape);mxShapeGCP2HexIcon.prototype.cst={HEX_ICON:"mxgraph.gcp2.hexIcon"};
6332mxShapeGCP2HexIcon.prototype.customProperties=[{name:"instNum",dispName:"Number of instances",type:"int",min:0,defVal:0},{name:"prType",dispName:"Instance Type",defVal:"standard",type:"enum",enumList:[{val:"standard",dispName:"Standard"},{val:"dynamic",dispName:"Dynamic"},{val:"multiple",dispName:"Multiple"},{val:"shared",dispName:"Shared"},{val:"replica",dispName:"Replica"},{val:"dynamic2",dispName:"Dynamic 2"},{val:"dynamic3",dispName:"Dynamic 3"},{val:"highmem",dispName:"High-Mem"},{val:"highcomp",
6333dispName:"High-Comp"},{val:"backend",dispName:"Backend"},{val:"input",dispName:"Input"}]},{name:"prIcon",dispName:"Instance Icon",defVal:"compute_engine",type:"enum",enumList:[{val:"compute_engine",dispName:"Compute Engine"},{val:"gpu",dispName:"GPU"},{val:"app_engine",dispName:"App Engine"},{val:"cloud_functions",dispName:"Cloud Functions"},{val:"container_engine",dispName:"Kubernetes Engine"},{val:"container_optimized_os",dispName:"Container-Optimized OS"},{val:"api_analytics",dispName:"API Analytics"},
6334{val:"apigee_sense",dispName:"Apigee Sense"},{val:"api_monetization",dispName:"API Monetization"},{val:"cloud_endpoints",dispName:"Cloud Endpoints"},{val:"apigee_api_platform",dispName:"Apigee API Platform"},{val:"developer_portal",dispName:"Developer Portal"},{val:"cloud_iam",dispName:"Cloud IAM"},{val:"beyondcorp",dispName:"BeyondCorp"},{val:"cloud_iam",dispName:"Cloud Resource Manager"},{val:"data_loss_prevention_api",dispName:"Data Loss Prevention API"},{val:"cloud_security_scanner",dispName:"Cloud Security Scanner"},
6335{val:"key_management_service",dispName:"Key Management Service"},{val:"identity_aware_proxy",dispName:"Identity-Aware Proxy"},{val:"security_key_enforcement",dispName:"Security Key Enforcement"},{val:"bigquery",dispName:"BigQuery"},{val:"cloud_datalab",dispName:"Cloud Datalab"},{val:"cloud_dataflow",dispName:"Cloud Dataflow"},{val:"cloud_pubsub",dispName:"Cloud Pub/Sub"},{val:"cloud_dataproc",dispName:"Cloud Dataproc"},{val:"genomics",dispName:"Genomics"},{val:"cloud_dataprep",dispName:"Cloud Dataprep"},
6336{val:"data_studio",dispName:"Data Studio"},{val:"transfer_appliance",dispName:"Transfer Appliance"},{val:"cloud_machine_learning",dispName:"Cloud Machine Learning"},{val:"cloud_natural_language_api",dispName:"Cloud Natural Language API"},{val:"cloud_vision_api",dispName:"Vision API"},{val:"cloud_translation_api",dispName:"Translation API"},{val:"cloud_speech_api",dispName:"Speech API"},{val:"cloud_jobs_api",dispName:"Jobs API"},{val:"cloud_video_intelligence_api",dispName:"Cloud Video Intelligence API"},
6337{val:"advanced_solutions_lab",dispName:"Advanced Solutions Lab"},{val:"cloud_iot_core",dispName:"Cloud IoT Core"},{val:"cloud_storage",dispName:"Cloud Storage"},{val:"cloud_sql",dispName:"Cloud SQL"},{val:"cloud_bigtable",dispName:"Cloud Bigtable"},{val:"cloud_spanner",dispName:"Cloud Spanner"},{val:"cloud_datastore",dispName:"Cloud Datastore"},{val:"persistent_disk",dispName:"Persistent Disk"},{val:"cloud_memorystore",dispName:"Cloud Memorystore"},{val:"cloud_filestore",dispName:"Cloud Filestore"},
6338{val:"stackdriver",dispName:"Stackdriver"},{val:"cloud_deployment_manager",dispName:"Monitoring"},{val:"cloud_deployment_manager",dispName:"Deployment Manager"},{val:"logging",dispName:"Logging"},{val:"placeholder",dispName:"Cloud Console"},{val:"error_reporting",dispName:"Error Reporting"},{val:"placeholder",dispName:"Cloud Shell"},{val:"trace",dispName:"Trace"},{val:"placeholder",dispName:"Cloud Mobile App"},{val:"profiler",dispName:"Profiler"},{val:"placeholder",dispName:"Billing API"},{val:"cloud_apis",
6339dispName:"Cloud APIs"},{val:"virtual_private_cloud",dispName:"Virtual Private Cloud"},{val:"dedicated_interconnect",dispName:"Dedicated Interconnect"},{val:"cloud_load_balancing",dispName:"Cloud Load Balancing"},{val:"cloud_dns",dispName:"Cloud DNS"},{val:"cloud_cdn",dispName:"Cloud CDN"},{val:"cloud_network",dispName:"Cloud Network"},{val:"cloud_external_ip_addresses",dispName:"Cloud External IP Addresses"},{val:"cloud_routes",dispName:"Cloud Routes"},{val:"cloud_firewall_rules",dispName:"Cloud Firewall Rules"},
6340{val:"cloud_vpn",dispName:"Cloud VPN"},{val:"cloud_router",dispName:"Cloud Router"},{val:"cloud_armor",dispName:"Cloud Armor"},{val:"standard_network_tier",dispName:"Standard Network Tier"},{val:"premium_network_tier",dispName:"Premium Network Tier"},{val:"partner_interconnect",dispName:"Partner Interconnect"},{val:"placeholder",dispName:"Cloud SDK"},{val:"container_builder",dispName:"Cloud Build"},{val:"cloud_tools_for_powershell",dispName:"Cloud Tools for Visual Studio"},{val:"placeholder",dispName:"Cloud Source Repositories"},
6341{val:"placeholder",dispName:"Maven App Engine Plugin"},{val:"placeholder",dispName:"Cloud Tools for Eclipse"},{val:"placeholder",dispName:"Cloud Tools for IntelliJ"},{val:"placeholder",dispName:"Cloud Test Lab"},{val:"cloud_tools_for_powershell",dispName:"Cloud Tools for PowerShell"},{val:"cloud_tools_for_powershell",dispName:"IDE Plugins"},{val:"container_registry",dispName:"Container Registry"},{val:"cloud_iot_edge",dispName:"Cloud IoT Edge"},{val:"cloud_firestore",dispName:"Cloud Firestore"},{val:"cloud_run",
6342dispName:"Cloud Run"},{val:"gke_on_prem",dispName:"GKE-on-Prem"},{val:"cloud_data_catalog",dispName:"Cloud Data Catalog"},{val:"cloud_data_fusion",dispName:"Cloud Data Fusion"},{val:"ai_hub",dispName:"AI Hub"},{val:"automl_video_intelligence",dispName:"AutoML Video Intelligence"},{val:"automl_natural_language",dispName:"AutoML Natural Language"},{val:"automl_tables",dispName:"AutoML Tables"},{val:"automl_translation",dispName:"AutoML Translation"},{val:"automl_vision",dispName:"AutoML Vision"},{val:"recommendations_ai",
6343dispName:"Recommendations AI"},{val:"cloud_inference_api",dispName:"Cloud Inference API"},{val:"cloud_service_mesh",dispName:"Cloud Service Mesh"},{val:"cloud_nat",dispName:"Cloud NAT"},{val:"traffic_director",dispName:"Traffic Director"},{val:"cloud_test_lab",dispName:"Cloud Test Lab"},{val:"cloud_code",dispName:"Cloud Code"},{val:"cloud_tasks",dispName:"Cloud Tasks"},{val:"placeholder",dispName:"Gradle App Engine Plugin"}]}];
6344mxShapeGCP2HexIcon.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);var f=mxUtils.getValue(this.state.style,"prIcon","compute_engine"),g=mxUtils.getValue(this.state.style,"prType","");d=parseInt(mxUtils.getValue(this.state.style,"instNum",0));e=mxUtils.getValue(this.state.style,"fillColor","#ffffff");var h=mxUtils.getValue(this.state.style,"opacity","100");mxUtils.getValue(this.state.style,"strokeColor","none");var k=mxUtils.getValue(this.state.style,"strokeWidth",1),l=Math.min(b,c);
6345switch(g){case "dynamic":g=mxStencilRegistry.getStencil("mxgraph.gcp2.outline_blank_2");a.setAlpha(.5*h/100);a.setStrokeColor("none");g.drawShape(a,this,.21*b,.12*c,.58*b,.76*c);break;case "multiple":g=mxStencilRegistry.getStencil("mxgraph.gcp2.outline_blank_2");a.setAlpha(.5*h/100);a.setStrokeColor("none");g.drawShape(a,this,.21*b,.12*c,.58*b,.76*c);var m=mxStencilRegistry.getStencil("mxgraph.gcp2.outline_blank_3");a.setAlpha(.7*h/100);a.setStrokeColor("none");m.drawShape(a,this,.17*b,.13*c,.66*
6346b,.74*c);break;case "shared":g=mxStencilRegistry.getStencil("mxgraph.gcp2.outline_blank_1");this.style[mxConstants.STYLE_STROKEWIDTH]=.038*l;a.setAlpha(.4*h/100);a.setStrokeColor(e);a.setFillColor("none");g.drawShape(a,this,.02*b,0*c,.96*b,c);m=mxStencilRegistry.getStencil("mxgraph.gcp2.outline_blank_2");a.setAlpha(.7*h/100);m.drawShape(a,this,.14*b,.01*c,.72*b,.98*c);a.setAlpha(h/100);a.setFillColor("#ffffff");g.drawShape(a,this,.13*b,.12*c,.74*b,.76*c);this.style[mxConstants.STYLE_STROKEWIDTH]=
6347k;break;case "replica":g=mxStencilRegistry.getStencil("mxgraph.gcp2.outline_blank_1");this.style[mxConstants.STYLE_STROKEWIDTH]=.038*l;a.setAlpha(.4*h/100);a.setStrokeColor(e);a.setFillColor("none");g.drawShape(a,this,.02*b,0*c,.96*b,c);a.setAlpha(.7*h/100);g.drawShape(a,this,.075*b,.06*c,.85*b,.88*c);a.setAlpha(h/100);a.setFillColor("#ffffff");g.drawShape(a,this,.13*b,.12*c,.74*b,.76*c);this.style[mxConstants.STYLE_STROKEWIDTH]=k;break;case "dynamic2":g=mxStencilRegistry.getStencil("mxgraph.gcp2.outline_blank_2");
6348a.setAlpha(.5*h/100);a.setStrokeColor("none");g.drawShape(a,this,.14*b,.01*c,.72*b,.98*c);m=mxStencilRegistry.getStencil("mxgraph.gcp2.outline_blank_1");this.style[mxConstants.STYLE_STROKEWIDTH]=.01*l;a.setStrokeColor(e);a.setAlpha(h/100);a.setFillColor("#ffffff");m.drawShape(a,this,.13*b,.12*c,.74*b,.76*c);this.style[mxConstants.STYLE_STROKEWIDTH]=k;break;case "dynamic3":g=mxStencilRegistry.getStencil("mxgraph.gcp2.outline_blank_2");a.setStrokeColor("none");g.drawShape(a,this,.14*b,.01*c,.72*b,.98*
6349c);m=mxStencilRegistry.getStencil("mxgraph.gcp2.outline_blank_1");this.style[mxConstants.STYLE_STROKEWIDTH]=.01*l;a.setStrokeColor(e);a.setAlpha(h/100);a.setFillColor("#ffffff");m.drawShape(a,this,.13*b,.12*c,.74*b,.76*c);this.style[mxConstants.STYLE_STROKEWIDTH]=k;break;case "highmem":g=mxStencilRegistry.getStencil("mxgraph.gcp2.outline_highmem");a.setAlpha(.5*h/100);a.setStrokeColor("none");g.drawShape(a,this,0,.56*c,b,.28*c);break;case "highcomp":g=mxStencilRegistry.getStencil("mxgraph.gcp2.outline_highcomp");
6350a.setAlpha(.5*h/100);a.setStrokeColor("none");g.drawShape(a,this,0,.16*c,b,.28*c);break;case "backend":g=mxStencilRegistry.getStencil("mxgraph.gcp2.outline_blank_1");a.setFillColor("#FCC64D");g.drawShape(a,this,.12*b,.11*c,.76*b,.78*c);break;case "input":g=mxStencilRegistry.getStencil("mxgraph.gcp2.outline_blank_1"),a.setFillColor("#A5DA40"),g.drawShape(a,this,.12*b,.11*c,.76*b,.78*c)}a.setAlpha(h/100);f=mxStencilRegistry.getStencil("mxgraph.gcp2."+f);null!=f&&(a.setFillColor(e),a.setStrokeColor("none"),
6351f.drawShape(a,this,.17*b,.16*c,.66*b,.68*c));0<d&&(a.setFillColor("#ffffff"),a.setStrokeColor("#ffffff"),a.setStrokeWidth(.038*l),a.ellipse(.2*b,0,.18*b,.22*c),a.fillAndStroke(),a.setAlpha(.5*h/100),a.setStrokeColor(e),a.ellipse(.2*b,0,.18*b,.22*c),a.stroke(),a.setAlpha(h/100),a.setFontColor("#4E6B89"),a.setFontStyle(1),a.setFontSize(.1*Math.min(b,c)),a.text(.29*b,.11*c+1,0,0,d.toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0))};
6352mxCellRenderer.registerShape(mxShapeGCP2HexIcon.prototype.cst.HEX_ICON,mxShapeGCP2HexIcon);
6353mxShapeGCP2HexIcon.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(.825,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.175,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,.16),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,.84),!1));a.push(new mxConnectionConstraint(new mxPoint(.66,.17),!1));a.push(new mxConnectionConstraint(new mxPoint(.66,.83),!1));a.push(new mxConnectionConstraint(new mxPoint(.34,.17),!1));a.push(new mxConnectionConstraint(new mxPoint(.34,
6354.83),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,.33),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,.67),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,.33),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,.67),!1));return a};function mxShapeGmdlPlayer(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeGmdlPlayer,mxShape);mxShapeGmdlPlayer.prototype.cst={SHAPE_PLAYER:"mxgraph.gmdl.player"};
6355mxShapeGmdlPlayer.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.rect(0,0,b,c);a.fill();a.setShadow(!1);this.foreground(a,d,e,b,c)};mxShapeGmdlPlayer.prototype.foreground=function(a,d,e,b,c){4<=c&&(a.setFillColor("#FFED00"),a.begin(),a.rect(0,0,.8*b,4),a.fill());14<=c&&33<=b&&(a.setFillColor("#717171"),a.begin(),a.rect(b-33,.5*c-7,4,14),a.fill(),a.begin(),a.rect(b-25,.5*c-7,4,14),a.fill())};mxCellRenderer.registerShape(mxShapeGmdlPlayer.prototype.cst.SHAPE_PLAYER,mxShapeGmdlPlayer);
6356function mxShapeGmdlSwitch(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeGmdlSwitch,mxShape);mxShapeGmdlSwitch.prototype.cst={SHAPE_SWITCH:"mxgraph.gmdl.switch",STATE:"switchState",STATE_ON:"on",STATE_OFF:"off"};mxShapeGmdlSwitch.prototype.customProperties=[{name:"switchState",dispName:"State",type:"enum",defVal:"on",enumList:[{val:"on",dispName:"On"},{val:"off",dispName:"Off"}]}];
6357mxShapeGmdlSwitch.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);var f=mxUtils.getValue(this.style,mxShapeGmdlSwitch.prototype.cst.STATE,mxShapeGmdlSwitch.prototype.cst.STATE_ON);this.background(a,d,e,b,c,f);a.setShadow(!0);this.foreground(a,d,e,b,c,f)};
6358mxShapeGmdlSwitch.prototype.background=function(a,d,e,b,c,f){a.begin();f===mxShapeGmdlSwitch.prototype.cst.STATE_ON?(a.save(),a.setAlpha("0.5"),a.moveTo(.135*b,.8*c),a.arcTo(.135*b,.3*c,0,0,1,.135*b,.2*c),a.lineTo(.675*b,.2*c),a.arcTo(.135*b,.3*c,0,0,1,.675*b,.8*c),a.close(),a.fillAndStroke(),a.restore()):(a.setFillColor("#BCBBBB"),a.moveTo(.225*b,.8*c),a.arcTo(.135*b,.3*c,0,0,1,.225*b,.2*c),a.lineTo(.865*b,.2*c),a.arcTo(.135*b,.3*c,0,0,1,.865*b,.8*c),a.close(),a.fillAndStroke())};
6359mxShapeGmdlSwitch.prototype.foreground=function(a,d,e,b,c,f){a.begin();f===mxShapeGmdlSwitch.prototype.cst.STATE_ON?a.ellipse(.36*b,0,.64*b,c):(a.setFillColor("#F1F1F1"),a.ellipse(0,0,.64*b,c));a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeGmdlSwitch.prototype.cst.SHAPE_SWITCH,mxShapeGmdlSwitch);function mxShapeGmdlMarginRect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeGmdlMarginRect,mxShape);
6360mxShapeGmdlMarginRect.prototype.cst={SHAPE_MARGIN_RECT:"mxgraph.gmdl.marginRect",MARGIN:"rectMargin",MARGIN_TOP:"rectMarginTop",MARGIN_LEFT:"rectMarginLeft",MARGIN_BOTTOM:"rectMarginBottom",MARGIN_RIGHT:"rectMarginRight"};
6361mxShapeGmdlMarginRect.prototype.customProperties=[{name:"rectMargin",dispName:"Margin",type:"float",min:0,defVal:0},{name:"rectMarginTop",dispName:"Margin Top",type:"float",defVal:0},{name:"rectMarginLeft",dispName:"Margin Left",type:"float",defVal:0},{name:"rectMarginBottom",dispName:"Margin Bottom",type:"float",defVal:0},{name:"rectMarginRight",dispName:"Margin Right",type:"float",defVal:0}];
6362mxShapeGmdlMarginRect.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};
6363mxShapeGmdlMarginRect.prototype.background=function(a,d,e,b,c,f){d=parseFloat(mxUtils.getValue(this.style,mxShapeGmdlMarginRect.prototype.cst.MARGIN,"0"));var g=parseFloat(mxUtils.getValue(this.style,mxShapeGmdlMarginRect.prototype.cst.MARGIN_TOP,"0"));f=parseFloat(mxUtils.getValue(this.style,mxShapeGmdlMarginRect.prototype.cst.MARGIN_LEFT,"0"));e=parseFloat(mxUtils.getValue(this.style,mxShapeGmdlMarginRect.prototype.cst.MARGIN_BOTTOM,"0"));var h=parseFloat(mxUtils.getValue(this.style,mxShapeGmdlMarginRect.prototype.cst.MARGIN_RIGHT,
6364"0"));f=d+f;g=d+g;b=b-h-f-d;c=c-e-g-d;0<b&&0<c&&(a.begin(),a.rect(f,g,b,c),a.fillAndStroke())};mxCellRenderer.registerShape(mxShapeGmdlMarginRect.prototype.cst.SHAPE_MARGIN_RECT,mxShapeGmdlMarginRect);function mxShapeGmdlSliderNormal(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeGmdlSliderNormal,mxShape);mxShapeGmdlSliderNormal.prototype.cst={SHAPE_SLIDER_NORMAL:"mxgraph.gmdl.sliderNormal",HANDLE_SIZE:"handleSize"};
6365mxShapeGmdlSliderNormal.prototype.customProperties=[{name:"handleSize",dispName:"Handle Size",type:"float",min:0,defVal:10}];mxShapeGmdlSliderNormal.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!0)};
6366mxShapeGmdlSliderNormal.prototype.background=function(a,d,e,b,c){d=parseFloat(mxUtils.getValue(this.style,mxShapeGmdlSliderNormal.prototype.cst.HANDLE_SIZE,"10"));a.ellipse(0,.5*c-.5*d,d,d);a.stroke();a.begin();a.moveTo(d,.5*c);a.lineTo(b,.5*c);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeGmdlSliderNormal.prototype.cst.SHAPE_SLIDER_NORMAL,mxShapeGmdlSliderNormal);
6367function mxShapeGmdlSlider2(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeGmdlSlider2,mxShape);mxShapeGmdlSlider2.prototype.cst={SHAPE_SLIDER:"mxgraph.gmdl.slider2",BAR_POS:"barPos",HANDLE_SIZE:"handleSize"};mxShapeGmdlSlider2.prototype.customProperties=[{name:"barPos",dispName:"Handle Position",type:"float",min:0,defVal:40},{name:"handleSize",dispName:"Handle Size",type:"float",min:0,defVal:10}];
6368mxShapeGmdlSlider2.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!0)};
6369mxShapeGmdlSlider2.prototype.background=function(a,d,e,b,c){d=parseFloat(mxUtils.getValue(this.style,mxShapeGmdlSlider2.prototype.cst.HANDLE_SIZE,"10"));e=parseFloat(mxUtils.getValue(this.style,mxShapeGmdlSlider2.prototype.cst.BAR_POS,"40"))/100;e=Math.max(0,Math.min(1,e));a.save();a.setStrokeColor("#bbbbbb");a.begin();a.moveTo(0,.5*c);a.lineTo(b,.5*c);a.fillAndStroke();a.restore();a.begin();a.moveTo(0,.5*c);a.lineTo(e*b,.5*c);a.fillAndStroke();a.begin();a.ellipse(e*b-.5*d,.5*c-.5*d,d,d);a.fillAndStroke()};
6370mxCellRenderer.registerShape(mxShapeGmdlSlider2.prototype.cst.SHAPE_SLIDER,mxShapeGmdlSlider2);mxShapeGmdlSlider2.prototype.constraints=null;
6371Graph.handleFactory[mxShapeGmdlSlider2.prototype.cst.SHAPE_SLIDER]=function(a){return[Graph.createHandle(a,["barPos"],function(a){var d=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"barPos",.4))));return new mxPoint(a.x+d*a.width/100,a.y+a.height/2)},function(a,e){this.state.style.barPos=Math.round(100*Math.max(0,Math.min(100,100*(e.x-a.x)/a.width)))/100})]};
6372function mxShapeGmdlSliderFocused(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeGmdlSliderFocused,mxShape);mxShapeGmdlSliderFocused.prototype.cst={SHAPE_SLIDER_FOCUSED:"mxgraph.gmdl.sliderFocused",BAR_POS:"barPos",HANDLE_SIZE:"handleSize"};mxShapeGmdlSliderFocused.prototype.customProperties=[{name:"barPos",dispName:"Handle Position",type:"float",min:0,defVal:40},{name:"handleSize",dispName:"Handle Size",type:"float",min:0,defVal:10}];
6373mxShapeGmdlSliderFocused.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!0)};
6374mxShapeGmdlSliderFocused.prototype.background=function(a,d,e,b,c){d=parseFloat(mxUtils.getValue(this.style,mxShapeGmdlSliderFocused.prototype.cst.HANDLE_SIZE,"10"));e=parseFloat(mxUtils.getValue(this.style,mxShapeGmdlSliderFocused.prototype.cst.BAR_POS,"40"))/100;var f=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#ffffff");e=Math.max(0,Math.min(1,e));a.save();a.setStrokeColor("#bbbbbb");a.begin();a.moveTo(0,.5*c);a.lineTo(b,.5*c);a.fillAndStroke();a.restore();a.begin();a.moveTo(0,.5*
6375c);a.lineTo(e*b,.5*c);a.fillAndStroke();a.begin();a.ellipse(e*b-.167*d,.5*c-.167*d,.33*d,.33*d);a.fillAndStroke();a.setFillColor(f);a.setAlpha(.15);a.begin();a.ellipse(e*b-.5*d,.5*c-.5*d,d,d);a.fill()};mxCellRenderer.registerShape(mxShapeGmdlSliderFocused.prototype.cst.SHAPE_SLIDER_FOCUSED,mxShapeGmdlSliderFocused);mxShapeGmdlSliderFocused.prototype.constraints=null;
6376Graph.handleFactory[mxShapeGmdlSliderFocused.prototype.cst.SHAPE_SLIDER_FOCUSED]=function(a){return[Graph.createHandle(a,["barPos"],function(a){var d=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"barPos",.4))));return new mxPoint(a.x+d*a.width/100,a.y+a.height/2)},function(a,e){this.state.style.barPos=Math.round(100*Math.max(0,Math.min(100,100*(e.x-a.x)/a.width)))/100})]};
6377function mxShapeGmdlSliderDisabled(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeGmdlSliderDisabled,mxShape);mxShapeGmdlSliderDisabled.prototype.cst={SHAPE_SLIDER_DISABLED:"mxgraph.gmdl.sliderDisabled",HANDLE_POSITION:"hPos",HANDLE_SIZE:"handleSize"};
6378mxShapeGmdlSliderDisabled.prototype.customProperties=[{name:"hPos",dispName:"Handle Position",type:"float",min:0,defVal:40},{name:"handleSize",dispName:"Handle Size",type:"float",min:0,defVal:10}];mxShapeGmdlSliderDisabled.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!0)};
6379mxShapeGmdlSliderDisabled.prototype.background=function(a,d,e,b,c){e=parseFloat(mxUtils.getValue(this.style,mxShapeGmdlSliderDisabled.prototype.cst.HANDLE_SIZE,"10"));d=parseFloat(mxUtils.getValue(this.style,mxShapeGmdlSliderDisabled.prototype.cst.HANDLE_POSITION,"50"))/100;d=Math.max(d,0);d=Math.min(d,1);a.ellipse(b*d-.5*e,.5*(c-e),e,e);a.fillAndStroke();e=b*d-7;d=b*d+7;0<e&&(a.begin(),a.moveTo(0,.5*c),a.lineTo(e,.5*c),a.stroke());d<b&&(a.begin(),a.moveTo(d,.5*c),a.lineTo(b,.5*c),a.stroke())};
6380mxCellRenderer.registerShape(mxShapeGmdlSliderDisabled.prototype.cst.SHAPE_SLIDER_DISABLED,mxShapeGmdlSliderDisabled);function mxShapeGmdlSliderDisabled2(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeGmdlSliderDisabled2,mxShape);mxShapeGmdlSliderDisabled2.prototype.cst={SHAPE_SLIDER_DISABLED:"mxgraph.gmdl.sliderDisabled2",HANDLE_POSITION:"hPos",HANDLE_SIZE:"handleSize"};
6381mxShapeGmdlSliderDisabled2.prototype.customProperties=[{name:"hPos",dispName:"Handle Position",type:"float",min:0,defVal:"40"},{name:"handleSize",dispName:"Handle Size",type:"float",min:0,defVal:"10"}];mxShapeGmdlSliderDisabled2.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!0)};
6382mxShapeGmdlSliderDisabled2.prototype.background=function(a,d,e,b,c){e=parseFloat(mxUtils.getValue(this.style,mxShapeGmdlSliderDisabled2.prototype.cst.HANDLE_SIZE,"10"));d=parseFloat(mxUtils.getValue(this.style,mxShapeGmdlSliderDisabled2.prototype.cst.HANDLE_POSITION,"50"))/100;d=Math.min(Math.max(d,0),1);a.ellipse(b*d-.5*e,.5*(c-e),e,e);a.fillAndStroke();e=b*d-7;d=b*d+7;0<e&&(a.begin(),a.moveTo(0,.5*c),a.lineTo(e,.5*c),a.stroke());d<b&&(a.begin(),a.moveTo(d,.5*c),a.lineTo(b,.5*c),a.stroke())};
6383mxCellRenderer.registerShape(mxShapeGmdlSliderDisabled2.prototype.cst.SHAPE_SLIDER_DISABLED,mxShapeGmdlSliderDisabled2);mxShapeGmdlSlider2.prototype.constraints=null;
6384Graph.handleFactory[mxShapeGmdlSliderDisabled2.prototype.cst.SHAPE_SLIDER_DISABLED]=function(a){return[Graph.createHandle(a,["hPos"],function(a){var d=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"hPos",.4))));return new mxPoint(a.x+d*a.width/100,a.y+a.height/2)},function(a,e){this.state.style.hPos=Math.round(100*Math.max(0,Math.min(100,100*(e.x-a.x)/a.width)))/100})]};
6385function mxShapeGmdlSliderDiscrete(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeGmdlSliderDiscrete,mxShape);mxShapeGmdlSliderDiscrete.prototype.cst={SHAPE_DISCRETE:"mxgraph.gmdl.sliderDiscrete",BAR_POS:"barPos",HANDLE_SIZE:"handleSize"};mxShapeGmdlSliderDiscrete.prototype.customProperties=[{name:"barPos",dispName:"Handle Position",type:"int",min:0,defVal:"40"},{name:"handleSize",dispName:"Handle Size",type:"float",min:0,defVal:"10"}];
6386mxShapeGmdlSliderDiscrete.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!0)};
6387mxShapeGmdlSliderDiscrete.prototype.background=function(a,d,e,b,c){parseFloat(mxUtils.getValue(this.style,mxShapeGmdlSliderDiscrete.prototype.cst.HANDLE_SIZE,"10"));d=parseFloat(mxUtils.getValue(this.style,mxShapeGmdlSliderDiscrete.prototype.cst.BAR_POS,"40"))/100;e=parseFloat(mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"12"));var f=mxUtils.getValue(this.style,mxConstants.STYLE_FONTCOLOR,"#000000");d=Math.max(0,Math.min(1,d));a.save();a.setStrokeColor("#bbbbbb");a.begin();a.moveTo(0,.5*
6388c+22.5);a.lineTo(b,.5*c+22.5);a.fillAndStroke();a.restore();a.begin();a.moveTo(0,.5*c+22.5);a.lineTo(d*b,.5*c+22.5);a.fillAndStroke();a.begin();a.moveTo(d*b,.5*c+15.5);a.lineTo(d*b-10.5,.5*c+2.5);a.arcTo(15,15,0,0,1,d*b,.5*c-22.5);a.arcTo(15,15,0,0,1,d*b+10.5,.5*c+2.5);a.close();a.fillAndStroke();a.setFontSize(e);a.setFontColor(f);a.text(d*b,.5*c-9,0,0,Math.round(100*d).toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};
6389mxCellRenderer.registerShape(mxShapeGmdlSliderDiscrete.prototype.cst.SHAPE_DISCRETE,mxShapeGmdlSliderDiscrete);mxShapeGmdlSliderDiscrete.prototype.constraints=null;
6390Graph.handleFactory[mxShapeGmdlSliderDiscrete.prototype.cst.SHAPE_DISCRETE]=function(a){return[Graph.createHandle(a,["barPos"],function(a){var d=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"barPos",.4))));return new mxPoint(a.x+d*a.width/100,a.y+a.height/2+22.5)},function(a,e){this.state.style.barPos=Math.round(100*Math.max(0,Math.min(100,100*(e.x-a.x)/a.width)))/100})]};
6391function mxShapeGmdlSliderDiscreteDots(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeGmdlSliderDiscreteDots,mxShape);mxShapeGmdlSliderDiscreteDots.prototype.cst={SHAPE_DISCRETE_DOTS:"mxgraph.gmdl.sliderDiscreteDots",BAR_POS:"barPos",HANDLE_SIZE:"handleSize"};
6392mxShapeGmdlSliderDiscreteDots.prototype.customProperties=[{name:"barPos",dispName:"Handle Position",type:"int",min:0,defVal:"40"},{name:"handleSize",dispName:"Handle Size",type:"float",min:0,defVal:"10"}];mxShapeGmdlSliderDiscreteDots.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!0)};
6393mxShapeGmdlSliderDiscreteDots.prototype.background=function(a,d,e,b,c){parseFloat(mxUtils.getValue(this.style,mxShapeGmdlSliderDiscreteDots.prototype.cst.HANDLE_SIZE,"10"));d=parseFloat(mxUtils.getValue(this.style,mxShapeGmdlSliderDiscreteDots.prototype.cst.BAR_POS,"40"))/100;e=parseFloat(mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"12"));var f=mxUtils.getValue(this.style,mxConstants.STYLE_FONTCOLOR,"#000000"),g=mxUtils.getValue(this.style,"bright","1");d=Math.max(0,Math.min(1,d));a.save();
6394a.setStrokeColor("#bebebe");a.begin();a.moveTo(0,.5*c+22.5);a.lineTo(b,.5*c+22.5);a.fillAndStroke();a.restore();.1>=d&&a.setFillColor("#bebebe");a.begin();a.moveTo(0,.5*c+22.5);a.lineTo(d*b,.5*c+22.5);a.fillAndStroke();a.begin();a.moveTo(d*b,.5*c+15.5);a.lineTo(d*b-10.5,.5*c+2.5);a.arcTo(15,15,0,0,1,d*b,.5*c-22.5);a.arcTo(15,15,0,0,1,d*b+10.5,.5*c+2.5);a.close();a.fill();"1"==g?a.setFillColor("#000000"):a.setFillColor("#ffffff");a.ellipse(-1.5,.5*c+21,3,3);a.fill();a.ellipse(.2*b-1.5,.5*c+21,3,3);
6395a.fill();a.ellipse(.4*b-1.5,.5*c+21,3,3);a.fill();a.ellipse(.6*b-1.5,.5*c+21,3,3);a.fill();a.ellipse(.8*b-1.5,.5*c+21,3,3);a.fill();a.ellipse(b-1.5,.5*c+21,3,3);a.fill();a.setFontSize(e);a.setFontColor(f);a.text(d*b,.5*c-9,0,0,Math.round(100*d).toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape(mxShapeGmdlSliderDiscreteDots.prototype.cst.SHAPE_DISCRETE_DOTS,mxShapeGmdlSliderDiscreteDots);mxShapeGmdlSliderDiscreteDots.prototype.constraints=null;
6396Graph.handleFactory[mxShapeGmdlSliderDiscreteDots.prototype.cst.SHAPE_DISCRETE_DOTS]=function(a){return[Graph.createHandle(a,["barPos"],function(a){var d=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"barPos",.4))));return new mxPoint(a.x+d*a.width/100,a.y+a.height/2+22.5)},function(a,e){this.state.style.barPos=Math.round(.05*Math.max(0,Math.min(100,100*(e.x-a.x)/a.width)))/.05})]};
6397function mxShapeGmdlProgressBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx1=.8}mxUtils.extend(mxShapeGmdlProgressBar,mxShape);mxShapeGmdlProgressBar.prototype.cst={PROGRESS_BAR:"mxgraph.gmdl.progressBar"};mxShapeGmdlProgressBar.prototype.customProperties=[{name:"dx1",dispName:"Handle Position",type:"int",min:0,defVal:.8}];
6398mxShapeGmdlProgressBar.prototype.paintVertexShape=function(a,d,e,b,c){var f=b*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx1",this.dx1))));a.translate(d,e);a.save();a.setStrokeColor("#aaaaaa");a.begin();a.moveTo(0,.5*c);a.lineTo(b,.5*c);a.stroke();a.restore();a.setShadow(!1);a.begin();a.moveTo(0,.5*c);a.lineTo(f,.5*c);a.stroke()};mxCellRenderer.registerShape(mxShapeGmdlProgressBar.prototype.cst.PROGRESS_BAR,mxShapeGmdlProgressBar);mxShapeGmdlProgressBar.prototype.constraints=null;
6399Graph.handleFactory[mxShapeGmdlProgressBar.prototype.cst.PROGRESS_BAR]=function(a){var d=[Graph.createHandle(a,["dx1"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx1",this.dx1))));return new mxPoint(a.x+b*a.width,a.y+a.height/2)},function(a,b){this.state.style.dx1=Math.round(100*Math.max(0,Math.min(1,(b.x-a.x)/a.width)))/100})];a=Graph.createHandle(a,["dx2"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx1))));
6400return new mxPoint(a.x+b*a.width,a.y+a.height/2)},function(a,b){this.state.style.dx2=Math.round(100*Math.max(0,Math.min(1,(b.x-a.x)/a.width)))/100});d.push(a);return d};function mxShapeIBMBox(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeIBMBox,mxShape);mxShapeIBMBox.prototype.cst={IBM_BOX:"mxgraph.ibm.box"};
6401mxShapeIBMBox.prototype.customProperties=[{name:"prType",dispName:"Box Type",defVal:"cloud",type:"enum",enumList:[{val:"cloud",dispName:"IBM Cloud"},{val:"vpc",dispName:"VPC"},{val:"region",dispName:"Region"},{val:"zone",dispName:"Zone"},{val:"subnet",dispName:"Subnet ACL"},{val:"public",dispName:"Public Network"},{val:"enterprise",dispName:"Enterprise Network"},{val:"classic",dispName:"Classic Infrastructure"}]}];
6402mxShapeIBMBox.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.rect(0,0,b,c);a.fillAndStroke();d=mxUtils.getValue(this.state.style,"strokeColor","none");a.setFillColor(d);a.setStrokeColor("none");switch(mxUtils.getValue(this.state.style,"prType","")){case "cloud":d=mxStencilRegistry.getStencil("mxgraph.ibm.cloudtag");d.drawShape(a,this,0,0,25,25);break;case "vpc":d=mxStencilRegistry.getStencil("mxgraph.ibm.vpctag");d.drawShape(a,this,0,0,25,25);break;case "region":d=mxStencilRegistry.getStencil("mxgraph.ibm.regiontag");
6403d.drawShape(a,this,0,0,25,25);break;case "zone":d=mxStencilRegistry.getStencil("mxgraph.ibm.zonetag");d.drawShape(a,this,0,0,25,25);break;case "subnet":d=mxStencilRegistry.getStencil("mxgraph.ibm.subnettag");d.drawShape(a,this,0,0,25,25);break;case "public":d=mxStencilRegistry.getStencil("mxgraph.ibm.publictag");d.drawShape(a,this,0,0,25,25);break;case "enterprise":d=mxStencilRegistry.getStencil("mxgraph.ibm.enterprisetag");d.drawShape(a,this,0,0,25,25);break;case "classic":d=mxStencilRegistry.getStencil("mxgraph.ibm.classictag"),
6404d.drawShape(a,this,0,0,25,25)}};mxCellRenderer.registerShape(mxShapeIBMBox.prototype.cst.IBM_BOX,mxShapeIBMBox);function mxShapeInfographicNumEntryVert(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dy=.5}mxUtils.extend(mxShapeInfographicNumEntryVert,mxActor);mxShapeInfographicNumEntryVert.prototype.cst={NUM_ENTRY_VERT:"mxgraph.infographic.numberedEntryVert"};
6405mxShapeInfographicNumEntryVert.prototype.customProperties=[{name:"dy",dispName:"Circle Size",min:0,defVal:25}];
6406mxShapeInfographicNumEntryVert.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));d=Math.min(d,b-10,c-5);a.ellipse(.5*b-.5*d,0,d,d);a.fillAndStroke();a.begin();a.moveTo(0,.5*d);a.lineTo(.5*b-.5*d-5,.5*d);a.arcTo(.5*d+5,.5*d+5,0,0,0,.5*b+.5*d+5,.5*d);a.lineTo(b,.5*d);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fillAndStroke()};
6407mxCellRenderer.registerShape(mxShapeInfographicNumEntryVert.prototype.cst.NUM_ENTRY_VERT,mxShapeInfographicNumEntryVert);
6408Graph.handleFactory[mxShapeInfographicNumEntryVert.prototype.cst.NUM_ENTRY_VERT]=function(a){return[Graph.createHandle(a,["dy"],function(a){var d=Math.max(0,Math.min(a.width,a.width,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+a.width/2,a.y+d)},function(a,e){this.state.style.dy=Math.round(100*Math.max(0,Math.min(a.height,a.width,e.y-a.y)))/100})]};
6409mxShapeInfographicNumEntryVert.prototype.getConstraints=function(a,d,e){a=[];var b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));d=Math.min(b,d-10,e-5);a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*d));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,.5*d));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,0,.25*d));
6410a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null,0,.25*d));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));return a};function mxShapeInfographicBendingArch(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.startAngle=.25;this.endAngle=.75;this.arcWidth=.5}mxUtils.extend(mxShapeInfographicBendingArch,mxActor);mxShapeInfographicBendingArch.prototype.cst={BENDING_ARCH:"mxgraph.infographic.bendingArch"};
6411mxShapeInfographicBendingArch.prototype.customProperties=[{name:"startAngle",dispName:"Start Angle",min:0,max:1,defVal:.75},{name:"endAngle",dispName:"End Angle",min:0,max:1,defVal:.25},{name:"arcWidth",dispName:"Arc Width",min:0,max:1,defVal:.25}];
6412mxShapeInfographicBendingArch.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);var f=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"startAngle",this.startAngle)))),g=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"endAngle",this.endAngle)))),h=1-Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arcWidth",this.arcWidth))));d=.5*b;e=.5*c;var k=d*h,h=e*h,l=d+Math.sin(f)*d,m=e-Math.cos(f)*e,n=d+Math.sin(f)*k,p=e-Math.cos(f)*h,
6413q=d+Math.sin(g)*d,t=e-Math.cos(g)*e,u=d+Math.sin(g)*k,v=e-Math.cos(g)*h,g=g-f;0>g&&(g+=2*Math.PI);f=0;g>Math.PI&&(f=1);var g=k-5,r=h-5;a.ellipse(.5*b-g,.5*c-r,2*g,2*r);a.fillAndStroke();a.begin();a.moveTo(l,m);a.arcTo(d,e,0,f,1,q,t);a.lineTo(u,v);a.arcTo(k,h,0,f,0,n,p);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeInfographicBendingArch.prototype.cst.BENDING_ARCH,mxShapeInfographicBendingArch);mxShapeInfographicBendingArch.prototype.constraints=null;
6414Graph.handleFactory[mxShapeInfographicBendingArch.prototype.cst.BENDING_ARCH]=function(a){var d=[Graph.createHandle(a,["startAngle"],function(a){var b=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"startAngle",this.startAngle))));return new mxPoint(a.x+.5*a.width+Math.sin(b)*a.width*.5,a.y+.5*a.height-Math.cos(b)*a.height*.5)},function(a,c){var b=.5*Math.atan2(Math.round(100*Math.max(-1,Math.min(1,(c.x-a.x-.5*a.width)/(.5*a.width))))/100,-Math.round(100*Math.max(-1,
6415Math.min(1,(c.y-a.y-.5*a.height)/(.5*a.height))))/100)/Math.PI;0>b&&(b=1+b);this.state.style.startAngle=b})],e=Graph.createHandle(a,["endAngle"],function(a){var b=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"endAngle",this.endAngle))));return new mxPoint(a.x+.5*a.width+Math.sin(b)*a.width*.5,a.y+.5*a.height-Math.cos(b)*a.height*.5)},function(a,c){var b=.5*Math.atan2(Math.round(100*Math.max(-1,Math.min(1,(c.x-a.x-.5*a.width)/(.5*a.width))))/100,-Math.round(100*Math.max(-1,
6416Math.min(1,(c.y-a.y-.5*a.height)/(.5*a.height))))/100)/Math.PI;0>b&&(b=1+b);this.state.style.endAngle=b});d.push(e);a=Graph.createHandle(a,["arcWidth"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"arcWidth",this.arcWidth))));return new mxPoint(a.x+a.width/2,a.y+b*a.height*.5)},function(a,c){this.state.style.arcWidth=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,(c.y-a.y)/(.5*a.height))))/100});d.push(a);return d};
6417function mxShapeInfographicParallelogram(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=10}mxUtils.extend(mxShapeInfographicParallelogram,mxActor);mxShapeInfographicParallelogram.prototype.cst={PARALLELOGRAM:"mxgraph.infographic.parallelogram"};mxShapeInfographicParallelogram.prototype.customProperties=[{name:"dx",dispName:"Angle",min:0,defVal:15}];
6418mxShapeInfographicParallelogram.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(.5*b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));a.begin();a.moveTo(0,c);a.lineTo(2*d,0);a.lineTo(b,0);a.lineTo(b-2*d,c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeInfographicParallelogram.prototype.cst.PARALLELOGRAM,mxShapeInfographicParallelogram);
6419Graph.handleFactory[mxShapeInfographicParallelogram.prototype.cst.PARALLELOGRAM]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(a.width/2,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d,a.y+a.height/2)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.width/2,e.x-a.x)))/100})]};
6420mxShapeInfographicParallelogram.prototype.getConstraints=function(a,d,e){a=[];var b=Math.max(0,Math.min(.5*d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),c=d-2*b;a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2*b,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2*b+.5*c,0));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,b,0));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
64210),!1,null,d-2*b,e));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,d-b,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,e));return a};function mxShapeInfographicRibbonRolled(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=185;this.dy=15}mxUtils.extend(mxShapeInfographicRibbonRolled,mxActor);mxShapeInfographicRibbonRolled.prototype.cst={RIBBON_ROLLED:"mxgraph.infographic.ribbonRolled"};
6422mxShapeInfographicRibbonRolled.prototype.customProperties=[{name:"dx",dispName:"Roll Length",min:0,defVal:185},{name:"dy",dispName:"Ribbon Width",min:0,defVal:15}];
6423mxShapeInfographicRibbonRolled.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(0,Math.min(.5*c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(0,e);a.lineTo(d,0);a.lineTo(d,e);a.lineTo(b,e);a.lineTo(b,c-e);a.lineTo(b-d,c);a.lineTo(b-d,c-e);a.lineTo(0,c-e);a.close();a.fillAndStroke();a.setShadow(!1);a.setFillAlpha("0.2");a.setFillColor("#000000");a.begin();a.moveTo(0,
6424e);a.lineTo(d,0);a.lineTo(d,e);a.close();a.moveTo(b,c-e);a.lineTo(b-d,c);a.lineTo(b-d,c-e);a.close();a.fill();a.begin();a.moveTo(0,e);a.lineTo(d,0);a.lineTo(d,e);a.lineTo(b,e);a.lineTo(b,c-e);a.lineTo(b-d,c);a.lineTo(b-d,c-e);a.lineTo(0,c-e);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeInfographicRibbonRolled.prototype.cst.RIBBON_ROLLED,mxShapeInfographicRibbonRolled);
6425Graph.handleFactory[mxShapeInfographicRibbonRolled.prototype.cst.RIBBON_ROLLED]=function(a){return[Graph.createHandle(a,["dx","dy"],function(a){var d=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),b=Math.max(0,Math.min(a.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+d,a.y+b)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.width,e.x-a.x)))/100;this.state.style.dy=Math.round(100*Math.max(0,
6426Math.min(a.height/2,e.y-a.y)))/100})]};
6427mxShapeInfographicRibbonRolled.prototype.getConstraints=function(a,d,e){a=[];parseFloat(mxUtils.getValue(this.style,"dx",this.dx));var b=Math.max(0,Math.min(.5*e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));e-=b;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(1,
64280),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1,null,0,e));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,0,e));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1,null,0,e));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,0,-b));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));return a};
6429function mxShapeInfographicRibbonDoubleFolded(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=25;this.dy=15}mxUtils.extend(mxShapeInfographicRibbonDoubleFolded,mxActor);mxShapeInfographicRibbonDoubleFolded.prototype.cst={RIBBON_DOUBLE_FOLDED:"mxgraph.infographic.ribbonDoubleFolded"};mxShapeInfographicRibbonDoubleFolded.prototype.customProperties=[{name:"dx",dispName:"Fold Length",min:0,defVal:25},{name:"dy",dispName:"Ribbon Width",min:0,defVal:15}];
6430mxShapeInfographicRibbonDoubleFolded.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(0,Math.min(.5*c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(0,e);a.lineTo(d,0);a.lineTo(d,e);a.lineTo(b,e);a.lineTo(b,c-e);a.lineTo(b-d,c);a.lineTo(b-d,c-e);a.lineTo(0,c-e);a.close();a.fillAndStroke();a.setShadow(!1);a.setFillAlpha("0.2");a.setFillColor("#000000");a.begin();a.moveTo(0,
6431e);a.lineTo(d,0);a.lineTo(d,c-2*e);a.lineTo(0,c-e);a.close();a.moveTo(b,c-e);a.lineTo(b-d,c);a.lineTo(b-d,c-e);a.close();a.fill();a.begin();a.moveTo(0,e);a.lineTo(d,0);a.lineTo(d,e);a.lineTo(b,e);a.lineTo(b,c-e);a.lineTo(b-d,c);a.lineTo(b-d,c-e);a.lineTo(0,c-e);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeInfographicRibbonDoubleFolded.prototype.cst.RIBBON_DOUBLE_FOLDED,mxShapeInfographicRibbonDoubleFolded);
6432Graph.handleFactory[mxShapeInfographicRibbonDoubleFolded.prototype.cst.RIBBON_DOUBLE_FOLDED]=function(a){return[Graph.createHandle(a,["dx","dy"],function(a){var d=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),b=Math.max(0,Math.min(a.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+d,a.y+b)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.width,e.x-a.x)))/100;this.state.style.dy=Math.round(100*
6433Math.max(0,Math.min(a.height/2,e.y-a.y)))/100})]};
6434mxShapeInfographicRibbonDoubleFolded.prototype.getConstraints=function(a,d,e){a=[];parseFloat(mxUtils.getValue(this.style,"dx",this.dx));d=Math.max(0,Math.min(.5*e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(1,
64350),!1,null,0,d));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,e-d));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1,null,0,e-d));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,0,e-d));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1,null,0,e-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e-d));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));return a};
6436function mxShapeInfographicRibbonFrontFolded(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.notch=this.dy=this.dx=.5}mxUtils.extend(mxShapeInfographicRibbonFrontFolded,mxActor);mxShapeInfographicRibbonFrontFolded.prototype.cst={RIBBON_FRONT_FOLDED:"mxgraph.infographic.ribbonFrontFolded"};
6437mxShapeInfographicRibbonFrontFolded.prototype.customProperties=[{name:"dx",dispName:"Fold Length",min:0,defVal:25},{name:"dy",dispName:"Ribbon Width",min:0,defVal:15},{name:"notch",dispName:"Notch",min:0,defVal:15}];
6438mxShapeInfographicRibbonFrontFolded.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(0,Math.min(.5*c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));var f=Math.max(0,Math.min(b-d,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));a.begin();a.moveTo(0,e);a.lineTo(d,0);a.lineTo(d,e);a.lineTo(b,e);a.lineTo(b-f,(c-e)/2+e);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fillAndStroke();
6439a.setShadow(!1);a.setFillAlpha("0.2");a.setFillColor("#000000");a.begin();a.moveTo(0,e);a.lineTo(d,0);a.lineTo(d,c-e);a.lineTo(0,c);a.close();a.fill();a.begin();a.moveTo(0,e);a.lineTo(d,0);a.lineTo(d,e);a.lineTo(b,e);a.lineTo(b-f,(c-e)/2+e);a.lineTo(b,c);a.lineTo(0,c);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeInfographicRibbonFrontFolded.prototype.cst.RIBBON_FRONT_FOLDED,mxShapeInfographicRibbonFrontFolded);
6440Graph.handleFactory[mxShapeInfographicRibbonFrontFolded.prototype.cst.RIBBON_FRONT_FOLDED]=function(a){var d=[Graph.createHandle(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),c=Math.max(0,Math.min(a.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.width,b.x-a.x)))/100;this.state.style.dy=Math.round(100*
6441Math.max(0,Math.min(a.height/2,b.y-a.y)))/100})];a=Graph.createHandle(a,["notch"],function(a){var b=Math.max(0,Math.min(a.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)))),c=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))));return new mxPoint(a.x+a.width-c,a.y+b+.5*(a.height-b))},function(a,b){this.state.style.notch=Math.round(100*Math.max(0,Math.min(a.width,a.width+a.x-b.x)))/100});d.push(a);return d};
6442mxShapeInfographicRibbonFrontFolded.prototype.getConstraints=function(a,d,e){a=[];var b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),c=Math.max(0,Math.min(.5*e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),b=Math.max(0,Math.min(d-b,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(.5,
64430),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-b,.5*(e+c)));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),
6444!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(e+c)));return a};function mxShapeInfographicRibbonBackFolded(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.notch=this.dy=this.dx=.5}mxUtils.extend(mxShapeInfographicRibbonBackFolded,mxActor);mxShapeInfographicRibbonBackFolded.prototype.cst={RIBBON_BACK_FOLDED:"mxgraph.infographic.ribbonBackFolded"};
6445mxShapeInfographicRibbonBackFolded.prototype.customProperties=[{name:"dx",dispName:"Fold Length",min:0,defVal:25},{name:"dy",dispName:"Ribbon Width",min:0,defVal:15},{name:"notch",dispName:"Notch",min:0,defVal:15}];
6446mxShapeInfographicRibbonBackFolded.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(0,Math.min(.5*c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));var f=Math.max(0,Math.min(b-d,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));a.begin();a.moveTo(0,e);a.lineTo(d,0);a.lineTo(d,e);a.lineTo(b,e);a.lineTo(b-f,(c-e)/2+e);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fillAndStroke();a.setShadow(!1);
6447a.setFillAlpha("0.2");a.setFillColor("#000000");a.begin();a.moveTo(0,e);a.lineTo(d,0);a.lineTo(d,e);a.close();a.fill();a.begin();a.moveTo(0,e);a.lineTo(d,0);a.lineTo(d,e);a.lineTo(b,e);a.lineTo(b-f,(c-e)/2+e);a.lineTo(b,c);a.lineTo(0,c);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeInfographicRibbonBackFolded.prototype.cst.RIBBON_BACK_FOLDED,mxShapeInfographicRibbonBackFolded);
6448Graph.handleFactory[mxShapeInfographicRibbonBackFolded.prototype.cst.RIBBON_BACK_FOLDED]=function(a){var d=[Graph.createHandle(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),c=Math.max(0,Math.min(a.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.width,b.x-a.x)))/100;this.state.style.dy=Math.round(100*
6449Math.max(0,Math.min(a.height/2,b.y-a.y)))/100})];a=Graph.createHandle(a,["notch"],function(a){var b=Math.max(0,Math.min(a.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)))),c=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))));return new mxPoint(a.x+a.width-c,a.y+b+.5*(a.height-b))},function(a,b){this.state.style.notch=Math.round(100*Math.max(0,Math.min(a.width,a.width+a.x-b.x)))/100});d.push(a);return d};
6450mxShapeInfographicRibbonBackFolded.prototype.getConstraints=function(a,d,e){a=[];var b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),c=Math.max(0,Math.min(.5*e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),b=Math.max(0,Math.min(d-b,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(.5,
64510),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-b,.5*(e+c)));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),
6452!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(e+c)));return a};function mxShapeInfographicBanner(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.notch=this.dy=this.dx=.5}mxUtils.extend(mxShapeInfographicBanner,mxActor);mxShapeInfographicBanner.prototype.cst={BANNER:"mxgraph.infographic.banner"};
6453mxShapeInfographicBanner.prototype.customProperties=[{name:"dx",dispName:"Fold Length",min:0,defVal:25},{name:"dy",dispName:"Ribbon Width",min:0,defVal:15},{name:"notch",dispName:"Notch",min:0,defVal:15}];
6454mxShapeInfographicBanner.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(b/2,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(0,Math.min(.5*c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));var f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));d=Math.min(b/2-2*e,d);f=Math.min(d,f);a.begin();a.moveTo(0,e);a.lineTo(d,e);a.lineTo(d,0);a.lineTo(b-d,0);a.lineTo(b-d,e);a.lineTo(b,e);a.lineTo(b-f,.5*(c-e)+
6455e);a.lineTo(b,c);a.lineTo(b-d-2*e,c);a.lineTo(b-d-2*e,c-e);a.lineTo(d+2*e,c-e);a.lineTo(d+2*e,c);a.lineTo(0,c);a.lineTo(f,.5*(c-e)+e);a.close();a.fillAndStroke();a.setShadow(!1);a.setFillAlpha("0.2");a.setFillColor("#000000");a.begin();a.moveTo(0,e);a.lineTo(d,e);a.lineTo(d,c-e);a.lineTo(d+2*e,c);a.lineTo(0,c);a.lineTo(f,.5*(c-e)+e);a.close();a.moveTo(b,e);a.lineTo(b-d,e);a.lineTo(b-d,c-e);a.lineTo(b-d-2*e,c);a.lineTo(b,c);a.lineTo(b-f,.5*(c-e)+e);a.close();a.fill();a.setFillAlpha("0.4");a.begin();
6456a.moveTo(d,c-e);a.lineTo(d+2*e,c-e);a.lineTo(d+2*e,c);a.close();a.moveTo(b-d,c-e);a.lineTo(b-d-2*e,c-e);a.lineTo(b-d-2*e,c);a.close();a.fill()};mxCellRenderer.registerShape(mxShapeInfographicBanner.prototype.cst.BANNER,mxShapeInfographicBanner);
6457Graph.handleFactory[mxShapeInfographicBanner.prototype.cst.BANNER]=function(a){var d=[Graph.createHandle(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width/2,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),c=Math.max(0,Math.min(a.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+a.width-b,a.y+c)},function(a,b){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.width/2,a.x+a.width-b.x)))/100;this.state.style.dy=Math.round(100*
6458Math.max(0,Math.min(a.height/2,b.y-a.y)))/100})];a=Graph.createHandle(a,["notch"],function(a){var b=Math.max(0,Math.min(a.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)))),c=Math.max(0,Math.min(a.width/2,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),c=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))));return new mxPoint(a.x+a.width-c,a.y+b+.5*(a.height-b))},function(a,b){this.state.style.notch=Math.round(100*Math.max(0,Math.min(a.width,
6459a.width+a.x-b.x)))/100});d.push(a);return d};
6460mxShapeInfographicBanner.prototype.getConstraints=function(a,d,e){a=[];var b=Math.max(0,Math.min(d/2,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),c=Math.max(0,Math.min(.5*e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),f=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),b=Math.min(d/2-2*c,b),f=Math.min(b,f),g=d-2*b;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b+.25*
6461g,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b+.5*g,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b+.75*g,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b+g,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b+g,.5*(e-c)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b+g,e-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b+.75*g,e-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b+.5*g,e-c));
6462a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b+.25*g,e-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,e-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,.5*(e-c)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,f,.5*(e+c)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-f,.5*(e+c)));return a};
6463function mxShapeInfographicCircularCallout(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dy=.5}mxUtils.extend(mxShapeInfographicCircularCallout,mxActor);mxShapeInfographicCircularCallout.prototype.cst={CIRCULAR_CALLOUT:"mxgraph.infographic.circularCallout"};mxShapeInfographicCircularCallout.prototype.customProperties=[{name:"dy",dispName:"Ribbon Width",min:0,defVal:15}];
6464mxShapeInfographicCircularCallout.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(.5*c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));e=Math.max(0,Math.min(.5*b,.5*b-d));var f=Math.max(0,Math.min(.5*c,.5*c-d));a.begin();a.moveTo(b,.5*c);a.arcTo(.5*b,.5*c,0,0,1,.5*b,c);a.arcTo(.5*b,.5*c,0,0,1,0,.5*c);a.arcTo(.5*b,.5*c,0,0,1,.5*b,0);a.lineTo(b,0);a.close();a.moveTo(.5*b,d);a.arcTo(e,f,0,0,0,.5*b-e,.5*c);a.arcTo(e,f,0,0,0,.5*b,.5*c+f);a.arcTo(e,f,0,0,0,
6465.5*b+e,.5*c);a.arcTo(e,f,0,0,0,.5*b,.5*c-f);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeInfographicCircularCallout.prototype.cst.CIRCULAR_CALLOUT,mxShapeInfographicCircularCallout);
6466Graph.handleFactory[mxShapeInfographicCircularCallout.prototype.cst.CIRCULAR_CALLOUT]=function(a){return[Graph.createHandle(a,["dy"],function(a){var d=Math.max(0,Math.min(a.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+.5*a.width,a.y+d)},function(a,e){this.state.style.dy=Math.round(100*Math.max(0,Math.min(a.height/2,e.y-a.y)))/100})]};
6467mxShapeInfographicCircularCallout.prototype.getConstraints=function(a,d,e){a=[];parseFloat(mxUtils.getValue(this.style,"dy",this.dy));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.855,.855),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.145,.855),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
6468.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.145,.145),!1));return a};function mxShapeInfographicShadedTriangle(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeInfographicShadedTriangle,mxActor);mxShapeInfographicShadedTriangle.prototype.cst={SHADED_TRIANGLE:"mxgraph.infographic.shadedTriangle"};
6469mxShapeInfographicShadedTriangle.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(0,c);a.lineTo(.5*b,0);a.lineTo(b,c);a.close();a.fillAndStroke();a.setShadow(!1);a.setFillColor("#ffffff");a.setFillAlpha("0.2");a.begin();a.moveTo(0,c);a.lineTo(.5*b,0);a.lineTo(.5*b,.67*c);a.close();a.fill();a.setFillColor("#000000");a.begin();a.moveTo(b,c);a.lineTo(.5*b,.67*c);a.lineTo(.5*b,0);a.close();a.fill();a.begin();a.moveTo(0,c);a.lineTo(.5*b,0);a.lineTo(b,c);a.close();a.stroke()};
6470mxCellRenderer.registerShape(mxShapeInfographicShadedTriangle.prototype.cst.SHADED_TRIANGLE,mxShapeInfographicShadedTriangle);
6471mxShapeInfographicShadedTriangle.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,.5),!1));return a};
6472function mxShapeInfographicShadedPyramid(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeInfographicShadedPyramid,mxActor);mxShapeInfographicShadedPyramid.prototype.cst={SHADED_PYRAMID:"mxgraph.infographic.shadedPyramid"};
6473mxShapeInfographicShadedPyramid.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(c-.3*b,0);a.begin();a.moveTo(0,d);a.lineTo(.5*b,0);a.lineTo(b,d);a.lineTo(.5*b,c);a.close();a.fillAndStroke();a.setShadow(!1);a.setFillColor("#ffffff");a.setFillAlpha("0.2");a.begin();a.moveTo(0,d);a.lineTo(.5*b,0);a.lineTo(.5*b,c);a.close();a.fill();a.setFillColor("#000000");a.begin();a.moveTo(b,d);a.lineTo(.5*b,c);a.lineTo(.5*b,0);a.close();a.fill();a.begin();a.moveTo(0,d);a.lineTo(.5*b,0);
6474a.lineTo(b,d);a.lineTo(.5*b,c);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeInfographicShadedPyramid.prototype.cst.SHADED_PYRAMID,mxShapeInfographicShadedPyramid);
6475mxShapeInfographicShadedPyramid.prototype.getConstraints=function(a,d,e){a=[];var b=Math.max(e-.3*d,0);a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*d,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*d,.5*(e+b)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*
6476d,.5*(e+b)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*d,.5*b));return a};function mxShapeInfographicPyramidStep(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeInfographicPyramidStep,mxActor);mxShapeInfographicPyramidStep.prototype.cst={PYRAMID_STEP:"mxgraph.infographic.pyramidStep"};
6477mxShapeInfographicPyramidStep.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(.1*b,0);a.begin();a.moveTo(0,d);a.lineTo(.5*b,0);a.lineTo(b,d);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fillAndStroke();a.setShadow(!1);a.setFillColor("#ffffff");a.setFillAlpha("0.2");a.begin();a.moveTo(0,d);a.lineTo(.5*b,0);a.lineTo(.5*b,c);a.lineTo(0,c);a.close();a.fill();a.setFillColor("#000000");a.begin();a.moveTo(b,d);a.lineTo(b,c);a.lineTo(.5*b,c);a.lineTo(.5*b,0);a.close();a.fill();a.begin();
6478a.moveTo(0,d);a.lineTo(.5*b,0);a.lineTo(b,d);a.lineTo(b,c);a.lineTo(0,c);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeInfographicPyramidStep.prototype.cst.PYRAMID_STEP,mxShapeInfographicPyramidStep);
6479mxShapeInfographicPyramidStep.prototype.getConstraints=function(a,d,e){a=[];var b=Math.max(.1*d,0);a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*d,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,b+.25*(e-b)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,b+.5*(e-b)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
6480d,b+.75*(e-b)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*d,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*d,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b+.75*(e-b)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b+.5*(e-b)));
6481a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b+.25*(e-b)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*d,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b));return a};function mxShapeInfographicCylinder(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeInfographicCylinder,mxActor);mxShapeInfographicCylinder.prototype.cst={CYLINDER:"mxgraph.infographic.cylinder"};
6482mxShapeInfographicCylinder.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=.5*b;a.begin();a.moveTo(0,10);a.arcTo(d,10,0,0,1,b,10);a.lineTo(b,c-10);a.arcTo(d,10,0,0,1,0,c-10);a.close();a.fillAndStroke();a.setShadow(!1);a.setGradient("#000000","#ffffff",0,0,b,c,mxConstants.DIRECTION_EAST,.4,.4);a.begin();a.moveTo(0,10);a.arcTo(d,10,0,0,0,b,10);a.lineTo(b,c-10);a.arcTo(d,10,0,0,1,0,c-10);a.close();a.fill();a.begin();a.moveTo(0,10);a.arcTo(d,10,0,0,1,b,10);a.lineTo(b,c-10);a.arcTo(d,
648310,0,0,1,0,c-10);a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeInfographicCylinder.prototype.cst.CYLINDER,mxShapeInfographicCylinder);
6484mxShapeInfographicCylinder.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,10));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,10));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,10+.25*(e-20)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,10+.5*(e-20)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,10+.75*(e-20)));a.push(new mxConnectionConstraint(new mxPoint(0,
64850),!1,null,d,e-10));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e-10));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,10+.75*(e-20)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,10+.5*(e-20)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,10+.25*(e-20)));return a};
6486function mxShapeInfographicCircularCallout2(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dy=.5}mxUtils.extend(mxShapeInfographicCircularCallout2,mxActor);mxShapeInfographicCircularCallout2.prototype.cst={CIRCULAR_CALLOUT_2:"mxgraph.infographic.circularCallout2"};
6487mxShapeInfographicCircularCallout2.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"none");e=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"none");a.setFillColor(e);e=Math.max(0,Math.min(.5*b,.4*c,.5*c-7));a.begin();a.moveTo(.5*b-2,2.15*e);a.arcTo(.23*e,.23*e,0,0,0,.5*b-.2*e,1.97*e);a.arcTo(e,e,0,0,1,.5*b-e,e);a.arcTo(e,e,0,0,1,.5*b,0);a.arcTo(e,e,0,0,1,.5*b+e,e);a.arcTo(e,e,0,0,1,.5*b+.2*e,1.97*e);a.arcTo(.23*e,
6488.23*e,0,0,0,.5*b+2,2.15*e);var f=Math.max(.1*e,6);4<.04*e?(a.lineTo(.5*b+2,c-.22*e),a.arcTo(.05*e,.05*e,0,0,0,.5*b+.04*e,c-.19*e)):a.lineTo(.5*b+2,c-2*f);a.arcTo(f,f,0,0,1,.5*b+f,c-f);a.arcTo(f,f,0,0,1,.5*b,c);a.arcTo(f,f,0,0,1,.5*b-f,c-f);4<.04*e?(a.arcTo(f,f,0,0,1,.5*b-.04*e,c-.19*e),a.arcTo(.5*f,.5*f,0,0,0,.5*b-2,c-.22*e)):a.arcTo(f,f,0,0,1,.5*b-2,c-2*f);a.close();a.moveTo(.5*b,.2*e);a.arcTo(.8*e,.8*e,0,0,0,.5*b-.8*e,.8*e);a.arcTo(.8*e,.8*e,0,0,0,.5*b,1.8*e);a.arcTo(.8*e,.8*e,0,0,0,.5*b+.8*e,.8*
6489e);a.arcTo(.8*e,.8*e,0,0,0,.5*b,.2*e);a.close();a.moveTo(.5*b,c-1.75*f);a.arcTo(.75*f,.75*f,0,0,0,.5*b-.75*f,c-f);a.arcTo(.75*f,.75*f,0,0,0,.5*b,c-.25*f);a.arcTo(.75*f,.75*f,0,0,0,.5*b+.75*f,c-f);a.arcTo(.75*f,.75*f,0,0,0,.5*b,c-1.75*f);a.close();a.fill();a.setFillColor(d);a.setShadow(!1);a.begin();a.moveTo(.5*b,.2*e);a.arcTo(.8*e,.8*e,0,0,0,.5*b-.8*e,.8*e);a.arcTo(.8*e,.8*e,0,0,0,.5*b,1.8*e);a.arcTo(.8*e,.8*e,0,0,0,.5*b+.8*e,.8*e);a.arcTo(.8*e,.8*e,0,0,0,.5*b,.2*e);a.close();a.moveTo(.5*b,c-1.75*
6490f);a.arcTo(.75*f,.75*f,0,0,0,.5*b-.75*f,c-f);a.arcTo(.75*f,.75*f,0,0,0,.5*b,c-.25*f);a.arcTo(.75*f,.75*f,0,0,0,.5*b+.75*f,c-f);a.arcTo(.75*f,.75*f,0,0,0,.5*b,c-1.75*f);a.close();a.fill()};mxCellRenderer.registerShape(mxShapeInfographicCircularCallout2.prototype.cst.CIRCULAR_CALLOUT_2,mxShapeInfographicCircularCallout2);
6491mxShapeInfographicCircularCallout2.prototype.getConstraints=function(a,d,e){a=[];e=Math.max(0,Math.min(.5*d,.4*e,.5*e-7));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d-e,e));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d+e,e));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));return a};
6492function mxShapeInfographicBannerSingleFold(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.notch=this.dx2=this.dy=this.dx=.5}mxUtils.extend(mxShapeInfographicBannerSingleFold,mxActor);mxShapeInfographicBannerSingleFold.prototype.cst={BANNER_SINGLE_FOLD:"mxgraph.infographic.bannerSingleFold"};
6493mxShapeInfographicBannerSingleFold.prototype.customProperties=[{name:"dx",dispName:"Fold Length",type:"float",defVal:32,min:0},{name:"dy",dispName:"Banner Width",type:"float",defVal:17,min:0},{name:"notch",dispName:"Notch",type:"float",defVal:15,min:0}];
6494mxShapeInfographicBannerSingleFold.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(0,Math.min(.5*c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));var f=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));d=Math.min(b-2*e,d);var g=Math.max(0,Math.min(b-d-2*e,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2)))),f=Math.min(d,f);a.begin();a.moveTo(g,
64950);a.lineTo(b-d,0);a.lineTo(b-d,e);a.lineTo(b,e);a.lineTo(b-f,.5*(c-e)+e);a.lineTo(b,c);a.lineTo(b-d-2*e,c);a.lineTo(b-d-2*e,c-e);a.lineTo(g,c-e);a.lineTo(0,.5*(c-e));a.close();a.fillAndStroke();a.setShadow(!1);a.setFillAlpha("0.05");a.setFillColor("#000000");a.begin();a.moveTo(b,e);a.lineTo(b-d,e);a.lineTo(b-d,c-e);a.lineTo(b-d-2*e,c);a.lineTo(b,c);a.lineTo(b-f,.5*(c-e)+e);a.close();a.fill();a.setFillAlpha("0.4");a.begin();a.moveTo(b-d,c-e);a.lineTo(b-d-2*e,c-e);a.lineTo(b-d-2*e,c);a.close();a.fill();
6496a.begin();a.moveTo(g,0);a.lineTo(b-d,0);a.lineTo(b-d,e);a.lineTo(b,e);a.lineTo(b-f,.5*(c-e)+e);a.lineTo(b,c);a.lineTo(b-d-2*e,c);a.lineTo(b-d-2*e,c-e);a.lineTo(g,c-e);a.lineTo(0,.5*(c-e));a.close();a.stroke()};mxCellRenderer.registerShape(mxShapeInfographicBannerSingleFold.prototype.cst.BANNER_SINGLE_FOLD,mxShapeInfographicBannerSingleFold);
6497Graph.handleFactory[mxShapeInfographicBannerSingleFold.prototype.cst.BANNER_SINGLE_FOLD]=function(a){var d=[Graph.createHandle(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),d=Math.max(0,Math.min(a.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+a.width-b,a.y+d)},function(a,c){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.width,a.x+a.width-c.x)))/100;this.state.style.dy=
6498Math.round(100*Math.max(0,Math.min(a.height/2,c.y-a.y)))/100})],e=Graph.createHandle(a,["notch"],function(a){var b=Math.max(0,Math.min(a.height/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)))),d=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),d=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))));return new mxPoint(a.x+a.width-d,a.y+b+.5*(a.height-b))},function(a,c){this.state.style.notch=Math.round(100*
6499Math.max(0,Math.min(a.width,a.width+a.x-c.x)))/100});d.push(e);a=Graph.createHandle(a,["dx2"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),d=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy)))),b=Math.max(0,Math.min(a.width-b,parseFloat(mxUtils.getValue(this.state.style,"dx2",this.dx2))));return new mxPoint(a.x+b,a.y+.5*(a.height-d))},function(a,c){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,
6500"dx",this.dx)))),d=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));this.state.style.dx2=Math.round(100*Math.max(0,Math.min(a.width-b-2*d,c.x-a.x)))/100});d.push(a);return d};
6501mxShapeInfographicBannerSingleFold.prototype.getConstraints=function(a,d,e){a=[];var b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),c=Math.max(0,Math.min(.5*e,parseFloat(mxUtils.getValue(this.style,"dy",this.dy)))),f=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),b=Math.min(d-2*c,b),g=Math.max(0,Math.min(d-b-2*c,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2)))),f=Math.min(b,f),h=d-b-g;a.push(new mxConnectionConstraint(new mxPoint(0,
65020),!1,null,0,.5*(e-c)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g+.25*h,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g+.5*h,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g+.75*h,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g+h,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.25*b,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.5*
6503b,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.75*b,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-f,.5*(e+c)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-b-2*c,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.75*(b+2*c),e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.5*(b+2*c),
6504e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.25*(b+2*c),e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g,e-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g+.25*h,e-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g+.5*h,e-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g+.75*h,e-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,g+h,e-c));return a};
6505function mxShapeInfographicShadedCube(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.isoAngle=15}mxUtils.extend(mxShapeInfographicShadedCube,mxActor);mxShapeInfographicShadedCube.prototype.cst={SHADED_CUBE:"mxgraph.infographic.shadedCube"};mxShapeInfographicShadedCube.prototype.customProperties=[{name:"isoAngle",dispName:"Perspective",type:"float",defVal:15,min:0}];
6506mxShapeInfographicShadedCube.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200;d=Math.min(b*Math.tan(d),.5*c);a.begin();a.moveTo(.5*b,0);a.lineTo(b,d);a.lineTo(b,c-d);a.lineTo(.5*b,c);a.lineTo(0,c-d);a.lineTo(0,d);a.close();a.fillAndStroke();a.setShadow(!1);a.setFillAlpha("0.2");a.setFillColor("#000000");a.begin();a.moveTo(.5*b,2*d);a.lineTo(b,d);a.lineTo(b,c-d);a.lineTo(.5*b,c);
6507a.close();a.fill();a.setFillColor("#ffffff");a.begin();a.moveTo(.5*b,2*d);a.lineTo(0,d);a.lineTo(0,c-d);a.lineTo(.5*b,c);a.close();a.fill()};mxCellRenderer.registerShape(mxShapeInfographicShadedCube.prototype.cst.SHADED_CUBE,mxShapeInfographicShadedCube);
6508Graph.handleFactory[mxShapeInfographicShadedCube.prototype.cst.SHADED_CUBE]=function(a){return[Graph.createHandle(a,["isoAngle"],function(a){var d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",this.isoAngle))))*Math.PI/200;return new mxPoint(a.x,a.y+Math.min(a.width*Math.tan(d),.5*a.height))},function(a,e){this.state.style.isoAngle=Math.round(100*Math.max(0,Math.min(100,e.y-a.y)))/100})]};
6509mxShapeInfographicShadedCube.prototype.getConstraints=function(a,d,e){a=[];var b=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,b=Math.min(d*Math.tan(b),.5*e);a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*d,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,b+.25*(e-2*b)));a.push(new mxConnectionConstraint(new mxPoint(0,
65100),!1,null,d,b+.5*(e-2*b)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,b+.75*(e-2*b)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*d,e-.5*b));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*d,e-.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
65110,e-b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b+.75*(e-2*b)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b+.5*(e-2*b)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b+.25*(e-2*b)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*d,.5*b));return a};
6512function mxShapeInfographicPartConcEllipse(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.startAngle=.25;this.endAngle=.75;this.arcWidth=.5}mxUtils.extend(mxShapeInfographicPartConcEllipse,mxActor);mxShapeInfographicPartConcEllipse.prototype.cst={PART_CONC_ELLIPSE:"mxgraph.infographic.partConcEllipse"};
6513mxShapeInfographicPartConcEllipse.prototype.customProperties=[{name:"startAngle",dispName:"Start Angle",min:0,max:1,defVal:.25},{name:"endAngle",dispName:"End Angle",min:0,max:1,defVal:.1},{name:"arcWidth",dispName:"Arc Width",min:0,max:1,defVal:.5}];
6514mxShapeInfographicPartConcEllipse.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);var f=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"startAngle",this.startAngle)))),g=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"endAngle",this.endAngle)))),h=1-Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arcWidth",this.arcWidth))));d=.5*b;e=.5*c;var k=d*h,l=e*h,m=g-f;0>m?m+=2*Math.PI:m==Math.PI&&(g+=1E-5);var n=d+Math.sin(f)*d,
6515p=e-Math.cos(f)*e,q=d+Math.sin(f)*k,f=e-Math.cos(f)*l,t=d+Math.sin(g)*d,u=e-Math.cos(g)*e,v=d+Math.sin(g)*k,g=e-Math.cos(g)*l,r=0;m<=Math.PI&&(r=1);a.begin();a.moveTo(d,0);a.arcTo(d,e,0,0,1,b,e);a.arcTo(d,e,0,0,1,d,c);a.arcTo(d,e,0,0,1,0,e);a.arcTo(d,e,0,0,1,d,0);a.close();a.moveTo(d,.5*c-l);a.arcTo(k,l,0,0,0,.5*b-k,e);a.arcTo(k,l,0,0,0,d,.5*c+l);a.arcTo(k,l,0,0,0,.5*b+k,e);a.arcTo(k,l,0,0,0,d,.5*c-l);a.close();a.fillAndStroke();a.setShadow(!1);a.setFillAlpha("0.2");a.setFillColor("#ffffff");a.begin();
6516a.moveTo(n,p);a.arcTo(d,e,0,r,0,t,u);a.lineTo(v,g);a.arcTo(k,l,0,r,1,q,f);a.close();a.fill();d=.5*b;e=.5*c;k=d*h;l=e*h;h=k+.25*(d-k);m=l+.25*(e-l);a.setFillColor("#000000");a.begin();a.moveTo(d,.5*c-l);a.arcTo(k,l,0,0,1,.5*b+k,e);a.arcTo(k,l,0,0,1,d,.5*c+l);a.arcTo(k,l,0,0,1,.5*b-k,e);a.arcTo(k,l,0,0,1,d,.5*c-l);a.close();a.moveTo(d,.5*c-m);a.arcTo(h,m,0,0,0,.5*b-h,e);a.arcTo(h,m,0,0,0,d,.5*c+m);a.arcTo(h,m,0,0,0,.5*b+h,e);a.arcTo(h,m,0,0,0,d,.5*c-m);a.close();a.fill()};
6517mxCellRenderer.registerShape(mxShapeInfographicPartConcEllipse.prototype.cst.PART_CONC_ELLIPSE,mxShapeInfographicPartConcEllipse);
6518Graph.handleFactory[mxShapeInfographicPartConcEllipse.prototype.cst.PART_CONC_ELLIPSE]=function(a){var d=[Graph.createHandle(a,["startAngle"],function(a){var b=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"startAngle",this.startAngle))));return new mxPoint(a.x+.5*a.width+Math.sin(b)*a.width*.5,a.y+.5*a.height-Math.cos(b)*a.height*.5)},function(a,c){var b=.5*Math.atan2(Math.round(100*Math.max(-1,Math.min(1,(c.x-a.x-.5*a.width)/(.5*a.width))))/100,-Math.round(100*Math.max(-1,
6519Math.min(1,(c.y-a.y-.5*a.height)/(.5*a.height))))/100)/Math.PI;0>b&&(b=1+b);this.state.style.startAngle=b})],e=Graph.createHandle(a,["endAngle"],function(a){var b=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"endAngle",this.endAngle))));return new mxPoint(a.x+.5*a.width+Math.sin(b)*a.width*.5,a.y+.5*a.height-Math.cos(b)*a.height*.5)},function(a,c){var b=.5*Math.atan2(Math.round(100*Math.max(-1,Math.min(1,(c.x-a.x-.5*a.width)/(.5*a.width))))/100,-Math.round(100*Math.max(-1,
6520Math.min(1,(c.y-a.y-.5*a.height)/(.5*a.height))))/100)/Math.PI;0>b&&(b=1+b);this.state.style.endAngle=b});d.push(e);a=Graph.createHandle(a,["arcWidth"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"arcWidth",this.arcWidth))));return new mxPoint(a.x+a.width/2,a.y+b*a.height*.5)},function(a,c){this.state.style.arcWidth=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,(c.y-a.y)/(.5*a.height))))/100});d.push(a);return d};
6521mxShapeInfographicPartConcEllipse.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(.145,.145),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.855,.145),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.855,.855),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.145,.855),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
6522.5),!1));return a};function mxShapeInfographicBannerHalfFold(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.notch=this.dx2=this.dx=.5}mxUtils.extend(mxShapeInfographicBannerHalfFold,mxActor);mxShapeInfographicBannerHalfFold.prototype.cst={BANNER_HALF_FOLD:"mxgraph.infographic.bannerHalfFold"};
6523mxShapeInfographicBannerHalfFold.prototype.customProperties=[{name:"dx",dispName:"Banner Width",min:0,defVal:40},{name:"dx2",dispName:"Spike Size",min:0,defVal:20},{name:"notch",dispName:"Notch Size",min:0,defVal:15}];
6524mxShapeInfographicBannerHalfFold.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(0,Math.min(b-d,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2))));var f=Math.max(0,Math.min(c-d,parseFloat(mxUtils.getValue(this.style,"notch",this.notch))));a.begin();a.moveTo(e,0);a.lineTo(b-d,0);a.lineTo(b,d);a.lineTo(b,c);a.lineTo(b-.5*d,c-f);a.lineTo(b-d,c);a.lineTo(b-d,d);a.lineTo(e,d);a.lineTo(0,.5*
6525d);a.close();a.fillAndStroke();a.setShadow(!1);a.setFillAlpha("0.2");a.setFillColor("#000000");a.begin();a.moveTo(b-d,d);a.lineTo(b,d);a.lineTo(b,c);a.lineTo(b-.5*d,c-f);a.lineTo(b-d,c);a.lineTo(b-d,d);a.lineTo(0,d);a.close();a.fill();a.begin();a.moveTo(e,0);a.lineTo(b-d,0);a.lineTo(b,d);a.lineTo(b,c);a.lineTo(b-.5*d,c-f);a.lineTo(b-d,c);a.lineTo(b-d,d);a.lineTo(e,d);a.lineTo(0,.5*d);a.close();a.stroke()};
6526mxCellRenderer.registerShape(mxShapeInfographicBannerHalfFold.prototype.cst.BANNER_HALF_FOLD,mxShapeInfographicBannerHalfFold);
6527Graph.handleFactory[mxShapeInfographicBannerHalfFold.prototype.cst.BANNER_HALF_FOLD]=function(a){var d=[Graph.createHandle(a,["dx"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+a.width-b,a.y+b)},function(a,c){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.width,a.x+a.width-c.x)))/100})],e=Graph.createHandle(a,["notch"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,
6528"dx",this.dx)))),d=Math.max(0,Math.min(a.height-b,parseFloat(mxUtils.getValue(this.state.style,"notch",this.notch))));return new mxPoint(a.x+a.width-.5*b,a.y+a.height-d)},function(a,c){this.state.style.notch=Math.round(100*Math.max(0,Math.min(a.height,a.height+a.y-c.y)))/100});d.push(e);a=Graph.createHandle(a,["dx2"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),d=Math.max(0,Math.min(a.width-b,parseFloat(mxUtils.getValue(this.state.style,
6529"dx2",this.dx2))));return new mxPoint(a.x+d,a.y+b)},function(a,c){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));this.state.style.dx2=Math.round(100*Math.max(0,Math.min(a.width-b,c.x-a.x)))/100});d.push(a);return d};
6530mxShapeInfographicBannerHalfFold.prototype.getConstraints=function(a,d,e){a=[];var b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),c=Math.max(0,Math.min(d-b,parseFloat(mxUtils.getValue(this.style,"dx2",this.dx2)))),f=Math.max(0,Math.min(e-b,parseFloat(mxUtils.getValue(this.style,"notch",this.notch)))),g=d-b-c,h=e-b;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,0));a.push(new mxConnectionConstraint(new mxPoint(0,
65310),!1,null,c+.25*g,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+.5*g,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+.75*g,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-b,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.5*b,.5*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,b+.25*h));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,
6532b+.5*h));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,b+.75*h));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.5*b,e-f));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-b,e));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-b,b+.75*h));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-b,b+.5*h));a.push(new mxConnectionConstraint(new mxPoint(0,
65330),!1,null,d-b,b+.25*h));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-b,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+.25*g,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+.5*g,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c+.75*g,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,b));return a};
6534function mxShapeInfographicCircularDial(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dy=.5}mxUtils.extend(mxShapeInfographicCircularDial,mxActor);mxShapeInfographicCircularDial.prototype.cst={CIRCULAR_DIAL:"mxgraph.infographic.circularDial"};mxShapeInfographicCircularDial.prototype.customProperties=[{name:"dy",dispName:"Hole Size",min:0,defVal:15}];
6535mxShapeInfographicCircularDial.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(.5*c-10,.5*b,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));e=Math.max(0,Math.min(.5*b,.5*c-10));var f=e-d;a.begin();a.moveTo(.5*b-e,c);a.lineTo(.5*b-e,e);a.arcTo(e,e,0,0,1,.5*b,0);a.arcTo(e,e,0,0,1,.5*b+e,e);a.lineTo(.5*b+e,c);a.close();a.moveTo(.5*b,d);a.arcTo(f,f,0,0,0,.5*b-f,e);a.arcTo(f,f,0,0,0,.5*b,e+f);a.arcTo(f,f,0,0,0,.5*b+f,e);a.arcTo(f,f,0,0,0,.5*b,d);a.close();
6536a.fillAndStroke();a.setShadow(!1);a.setFillAlpha("0.2");a.setFillColor("#000000");a.begin();a.moveTo(.5*b-e,2*e);a.lineTo(.5*b+e,2*e);a.lineTo(.5*b+e,c);a.lineTo(.5*b-e,c);a.close();a.fill()};mxCellRenderer.registerShape(mxShapeInfographicCircularDial.prototype.cst.CIRCULAR_DIAL,mxShapeInfographicCircularDial);
6537Graph.handleFactory[mxShapeInfographicCircularDial.prototype.cst.CIRCULAR_DIAL]=function(a){return[Graph.createHandle(a,["dy"],function(a){var d=Math.max(0,Math.min(a.height/2,a.width/2,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+.5*a.width,a.y+d)},function(a,e){this.state.style.dy=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,e.y-a.y)))/100})]};
6538mxShapeInfographicCircularDial.prototype.getConstraints=function(a,d,e){a=[];parseFloat(mxUtils.getValue(this.style,"dy",this.dy));var b=Math.max(0,Math.min(.5*d,.5*e-10));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d-b,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d-b,.5*(b+e)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d-b,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d-.71*b,.29*b));a.push(new mxConnectionConstraint(new mxPoint(0,
65390),!1,null,.5*d,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d+.71*b,.29*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d+b,b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d+b,.5*(b+e)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d+b,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d+.5*b,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d-.5*b,e));return a};
6540function mxShapeInfographicRibbonSimple(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.notch2=this.notch1=.5}mxUtils.extend(mxShapeInfographicRibbonSimple,mxActor);mxShapeInfographicRibbonSimple.prototype.cst={RIBBON_SIMPLE:"mxgraph.infographic.ribbonSimple"};mxShapeInfographicRibbonSimple.prototype.customProperties=[{name:"notch1",dispName:"Notch Size",min:0,defVal:20},{name:"notch2",dispName:"Spike Size",min:0,defVal:20}];
6541mxShapeInfographicRibbonSimple.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"notch1",this.notch2))));e=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"notch2",this.notch2))));a.begin();a.moveTo(0,c);a.lineTo(d,.5*c);a.lineTo(0,0);a.lineTo(b-e,0);a.lineTo(b,.5*c);a.lineTo(b-e,c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeInfographicRibbonSimple.prototype.cst.RIBBON_SIMPLE,mxShapeInfographicRibbonSimple);
6542Graph.handleFactory[mxShapeInfographicRibbonSimple.prototype.cst.RIBBON_SIMPLE]=function(a){var d=[Graph.createHandle(a,["notch1"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"notch1",this.notch1))));return new mxPoint(a.x+b,a.y+.5*a.height)},function(a,b){this.state.style.notch1=Math.round(100*Math.max(0,Math.min(a.width,b.x-a.x)))/100})];a=Graph.createHandle(a,["notch2"],function(a){var b=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,
6543"notch2",this.notch2))));return new mxPoint(a.x+a.width-b,a.y)},function(a,b){this.state.style.notch2=Math.round(100*Math.max(0,Math.min(a.width,a.width+a.x-b.x)))/100});d.push(a);return d};
6544mxShapeInfographicRibbonSimple.prototype.getConstraints=function(a,d,e){a=[];var b=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"notch1",this.notch2)))),c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"notch2",this.notch2))));d-=c;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*d,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,0));a.push(new mxConnectionConstraint(new mxPoint(0,
65450),!1,null,.75*d,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*d,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*d,e));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
65460),!1,null,b,.5*e));return a};function mxShapeInfographicBarCallout(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dy=this.dx=.5}mxUtils.extend(mxShapeInfographicBarCallout,mxActor);mxShapeInfographicBarCallout.prototype.cst={BAR_CALLOUT:"mxgraph.infographic.barCallout"};mxShapeInfographicBarCallout.prototype.customProperties=[{name:"dx",dispName:"Callout Position",min:0,defVal:100},{name:"dy",dispName:"Callout Size",min:0,defVal:30}];
6547mxShapeInfographicBarCallout.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));var f=Math.max(d-.35*e,0),g=Math.min(d+.35*e,b);a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,c-e);a.lineTo(g,c-e);a.lineTo(d,c);a.lineTo(f,c-e);a.lineTo(0,c-e);a.close();a.fillAndStroke()};
6548mxCellRenderer.registerShape(mxShapeInfographicBarCallout.prototype.cst.BAR_CALLOUT,mxShapeInfographicBarCallout);mxShapeInfographicBarCallout.prototype.constraints=null;
6549Graph.handleFactory[mxShapeInfographicBarCallout.prototype.cst.BAR_CALLOUT]=function(a){return[Graph.createHandle(a,["dx","dy"],function(a){var d=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+d,a.y+a.height-b)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.width,e.x-a.x)))/100;this.state.style.dy=Math.round(100*Math.max(0,
6550Math.min(a.height,a.y+a.height-e.y)))/100})]};
6551mxShapeInfographicBarCallout.prototype.getConstraints=function(a,d,e){a=[];var 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))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,
65520),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(e-c)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e-c));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1,null,0,e-c));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1,null,0,e-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e-c));return a};
6553function mxShapeInfographicFlag(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dy=this.dx=.5}mxUtils.extend(mxShapeInfographicFlag,mxActor);mxShapeInfographicFlag.prototype.cst={FLAG:"mxgraph.infographic.flag"};mxShapeInfographicFlag.prototype.customProperties=[{name:"dx",dispName:"Pole Width",min:0,defVal:30},{name:"dy",dispName:"Spike Size",min:0,defVal:20}];
6554mxShapeInfographicFlag.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));e=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,c-e);a.lineTo(d,c-e);a.lineTo(.5*d,c);a.lineTo(0,c-e);a.close();a.fillAndStroke();a.setShadow(!1);a.setFillAlpha("0.2");a.setFillColor("#ffffff");a.begin();a.moveTo(0,0);a.lineTo(d,0);a.lineTo(d,c-e);a.lineTo(.5*
6555d,c);a.lineTo(0,c-e);a.close();a.fill()};mxCellRenderer.registerShape(mxShapeInfographicFlag.prototype.cst.FLAG,mxShapeInfographicFlag);
6556Graph.handleFactory[mxShapeInfographicFlag.prototype.cst.FLAG]=function(a){return[Graph.createHandle(a,["dx","dy"],function(a){var d=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx)))),b=Math.max(0,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"dy",this.dy))));return new mxPoint(a.x+d,a.y+a.height-b)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.width,e.x-a.x)))/100;this.state.style.dy=Math.round(100*Math.max(0,Math.min(a.height,
6557a.y+a.height-e.y)))/100})]};
6558mxShapeInfographicFlag.prototype.getConstraints=function(a,d,e){a=[];var 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))));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),
6559!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(e-c)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(e-c)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*d,e-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,e-c));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*d,e-c));a.push(new mxConnectionConstraint(new mxPoint(0,
65600),!1,null,.5*b,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*b,0));return a};function mxShapeKubernetesIcon(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeKubernetesIcon,mxShape);mxShapeKubernetesIcon.prototype.cst={ICON:"mxgraph.kubernetes.icon"};
6561mxShapeKubernetesIcon.prototype.customProperties=[{name:"prIcon",dispName:"",defVal:"api",type:"API",enumList:[{val:"c_c_m",dispName:"C-C-M"},{val:"c_m",dispName:"C-M"},{val:"c_role",dispName:"C-Role"},{val:"cm",dispName:"CM"},{val:"crb",dispName:"CRB"},{val:"crd",dispName:"CRD"},{val:"cronjob",dispName:"Cronjob"},{val:"deploy",dispName:"Deploy"},{val:"ds",dispName:"DS"},{val:"ep",dispName:"EP"},{val:"etcd",dispName:"ETCD"},{val:"group",dispName:"Group"},{val:"hpa",dispName:"HPA"},{val:"ing",dispName:"ING"},
6562{val:"job",dispName:"Job"},{val:"k_proxy",dispName:"K-Proxy"},{val:"kubelet",dispName:"Kubelet"},{val:"limits",dispName:"Limits"},{val:"master",dispName:"Master"},{val:"netpol",dispName:"Netpol"},{val:"node",dispName:"Node"},{val:"ns",dispName:"NS"},{val:"pod",dispName:"Pod"},{val:"psp",dispName:"PSP"},{val:"pv",dispName:"PV"},{val:"pvc",dispName:"PVC"},{val:"quota",dispName:"Quota"},{val:"rb",dispName:"RB"},{val:"role",dispName:"Role"},{val:"rs",dispName:"RS"},{val:"sa",dispName:"SA"},{val:"sc",
6563dispName:"SC"},{val:"sched",dispName:"Sched"},{val:"secret",dispName:"Secret"},{val:"sts",dispName:"STS"},{val:"svc",dispName:"SVC"},{val:"user",dispName:"User"},{val:"vol",dispName:"Vol"}]}];
6564mxShapeKubernetesIcon.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.state.style,"prIcon",""),g=mxUtils.getValue(this.state.style,"fillColor","#ffffff"),h=mxUtils.getValue(this.state.style,"strokeColor","#ffffff");a.translate(d,e);d=mxStencilRegistry.getStencil("mxgraph.kubernetes.frame");a.setFillColor(h);d.drawShape(a,this,0,0,b,c);a.setFillColor(g);d.drawShape(a,this,.03*b,.03*c,.94*b,.94*c);f=mxStencilRegistry.getStencil("mxgraph.kubernetes."+f);null!=f&&(a.setFillColor(h),
6565f.drawShape(a,this,.2*b,.2*c,.6*b,.6*c))};mxCellRenderer.registerShape(mxShapeKubernetesIcon.prototype.cst.ICON,mxShapeKubernetesIcon);mxShapeKubernetesIcon.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));return a};function mxLeanBoatShipment(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxLeanBoatShipment,mxShape);
6566mxLeanBoatShipment.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(.15*b,.77*c);a.lineTo(.5*b,0);a.lineTo(.85*b,.77*c);a.close();a.moveTo(.2*b,c);a.lineTo(0,.8*c);a.lineTo(b,.8*c);a.lineTo(.8*b,c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("mxgraph.lean_mapping.boat_shipment",mxLeanBoatShipment);
6567mxLeanBoatShipment.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1),new mxConnectionConstraint(new mxPoint(0,.8),!1),new mxConnectionConstraint(new mxPoint(1,.8),!1),new mxConnectionConstraint(new mxPoint(.2,1),!1),new mxConnectionConstraint(new mxPoint(.8,1),!1),new mxConnectionConstraint(new mxPoint(.26,.5),!1),new mxConnectionConstraint(new mxPoint(.74,.5),!1)];
6568function mxLeanSafetyStock(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxLeanSafetyStock,mxShape);mxLeanSafetyStock.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c)};mxLeanSafetyStock.prototype.background=function(a,d,e){a.rect(0,0,d,e);a.fillAndStroke()};
6569mxLeanSafetyStock.prototype.foreground=function(a,d,e){a.begin();a.moveTo(0,.34*e);a.lineTo(d,.34*e);a.moveTo(0,.66*e);a.lineTo(d,.66*e);a.fillAndStroke()};mxCellRenderer.registerShape("mxgraph.lean_mapping.buffer_or_safety_stock",mxLeanSafetyStock);
6570mxLeanSafetyStock.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(.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,
6571.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)];function mxLeanDataBox(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxLeanDataBox,mxShape);
6572mxLeanDataBox.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c)};mxLeanDataBox.prototype.background=function(a,d,e){a.begin();a.moveTo(0,e);a.lineTo(0,0);a.lineTo(d,0);a.lineTo(d,e);a.fillAndStroke()};mxLeanDataBox.prototype.foreground=function(a,d,e){a.begin();a.moveTo(0,.2*e);a.lineTo(d,.2*e);a.moveTo(0,.4*e);a.lineTo(d,.4*e);a.moveTo(0,.6*e);a.lineTo(d,.6*e);a.moveTo(0,.8*e);a.lineTo(d,.8*e);a.stroke()};
6573mxCellRenderer.registerShape("mxgraph.lean_mapping.data_box",mxLeanDataBox);
6574mxLeanDataBox.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(.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,
6575.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)];function mxLeanCustomerSupplier(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxLeanCustomerSupplier,mxShape);
6576mxLeanCustomerSupplier.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c);a.setShadow(!1)};mxLeanCustomerSupplier.prototype.background=function(a,d,e){a.begin();a.moveTo(0,e);a.lineTo(0,.3*e);a.lineTo(.33*d,.02*e);a.lineTo(.33*d,.3*e);a.lineTo(.67*d,.02*e);a.lineTo(.67*d,.3*e);a.lineTo(d,.02*e);a.lineTo(d,e);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("mxgraph.lean_mapping.outside_sources",mxLeanCustomerSupplier);
6577mxLeanCustomerSupplier.prototype.constraints=[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(.33,0),!0),new mxConnectionConstraint(new mxPoint(.67,0),!0),new mxConnectionConstraint(new mxPoint(0,.3),!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,
6578.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)];function mxLeanDedicatedProcess(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxLeanDedicatedProcess,mxShape);
6579mxLeanDedicatedProcess.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"8"));this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c,d)};mxLeanDedicatedProcess.prototype.background=function(a,d,e){a.rect(0,0,d,e);a.fillAndStroke()};mxLeanDedicatedProcess.prototype.foreground=function(a,d,e,b){e=Math.min(1.5*b,e);a.begin();a.moveTo(0,e);a.lineTo(d,e);a.stroke()};
6580mxCellRenderer.registerShape("mxgraph.lean_mapping.manufacturing_process",mxLeanDedicatedProcess);
6581mxLeanDedicatedProcess.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(.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,
6582.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)];function mxLeanSharedProcess(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxLeanSharedProcess,mxShape);
6583mxLeanSharedProcess.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"8"));this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c,d)};mxLeanSharedProcess.prototype.background=function(a,d,e){a.rect(0,0,d,e);a.fillAndStroke()};
6584mxLeanSharedProcess.prototype.foreground=function(a,d,e,b){b=Math.min(1.5*b,e);a.begin();a.moveTo(0,b);a.lineTo(d,b);a.stroke();var c=0;a.begin();var f=parseFloat(mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,"2"));for(a.setStrokeWidth(.5*f);c<e+d;)if(c+=10,c>b){var f=Math.max(0,c-e),g=Math.min(c,e),h=Math.min(c-b,d),k;k=Math.max(c-d,b);f<d&&(a.moveTo(f,g),a.lineTo(h,k))}a.stroke()};mxCellRenderer.registerShape("mxgraph.lean_mapping.manufacturing_process_shared",mxLeanSharedProcess);
6585mxLeanSharedProcess.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(.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,
6586.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)];function mxLeanWorkcell(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxLeanWorkcell,mxShape);
6587mxLeanWorkcell.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,c);a.lineTo(.65*b,c);a.lineTo(.65*b,.4*c);a.lineTo(.35*b,.4*c);a.lineTo(.35*b,c);a.lineTo(0,c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("mxgraph.lean_mapping.work_cell",mxLeanWorkcell);
6588mxLeanWorkcell.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(.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,
6589.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(.75,1),!0)];function mxLeanInventoryBox(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxLeanInventoryBox,mxShape);
6590mxLeanInventoryBox.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(0,c);a.lineTo(.5*b,0);a.lineTo(b,c);a.close();a.fillAndStroke();a.setShadow(!1);a.begin();a.moveTo(.4*b,.45*c);a.lineTo(.6*b,.45*c);a.moveTo(.5*b,.45*c);a.lineTo(.5*b,.85*c);a.moveTo(.4*b,.85*c);a.lineTo(.6*b,.85*c);a.stroke()};mxCellRenderer.registerShape("mxgraph.lean_mapping.inventory_box",mxLeanInventoryBox);
6591mxLeanInventoryBox.prototype.constraints=[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(.375,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.125,.75),!1),new mxConnectionConstraint(new mxPoint(.625,.25),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(.875,.75),!1),
6592new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];function mxLeanPushArrow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxLeanPushArrow,mxShape);mxLeanPushArrow.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c)};
6593mxLeanPushArrow.prototype.background=function(a,d,e){a.begin();a.moveTo(0,.17*e);a.lineTo(.75*d,.17*e);a.lineTo(.75*d,0);a.lineTo(d,.5*e);a.lineTo(.75*d,e);a.lineTo(.75*d,.83*e);a.lineTo(0,.83*e);a.close();a.fillAndStroke()};
6594mxLeanPushArrow.prototype.foreground=function(a,d,e,b){b=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");a.setFillColor(b);a.rect(0,.17*e,.12*d,.66*e);a.fill();a.rect(.24*d,.17*e,.12*d,.66*e);a.fill();a.rect(.48*d,.17*e,.12*d,.66*e);a.fill();a.begin();a.moveTo(.72*d,.17*e);a.lineTo(.75*d,.17*e);a.lineTo(.75*d,0);a.lineTo(d,.5*e);a.lineTo(.75*d,e);a.lineTo(.75*d,.83*e);a.lineTo(.72*d,.83*e);a.close();a.fill()};mxCellRenderer.registerShape("mxgraph.lean_mapping.push_arrow",mxLeanPushArrow);
6595mxLeanPushArrow.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.17),!1),new mxConnectionConstraint(new mxPoint(.5,.17),!1),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.17),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.83),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.25,.83),!1),new mxConnectionConstraint(new mxPoint(.5,.83),!1),new mxConnectionConstraint(new mxPoint(.75,
65961),!0)];function mxLeanSupermarket(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxLeanSupermarket,mxShape);mxLeanSupermarket.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,c);a.lineTo(0,c);a.moveTo(0,.33*c);a.lineTo(b,.33*c);a.moveTo(0,.67*c);a.lineTo(b,.67*c);a.fillAndStroke()};mxCellRenderer.registerShape("mxgraph.lean_mapping.supermarket",mxLeanSupermarket);
6597mxLeanSupermarket.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(.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,
6598.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)];function mxLeanMaterialPull(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxLeanMaterialPull,mxShape);
6599mxLeanMaterialPull.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(.732*b,.0736*c);a.arcTo(.4827*b,.4959*c,0,1,0,.9553*b,.6191*c);a.stroke();a.begin();a.moveTo(.9071*b,.6191*c);a.lineTo(.9794*b,.4951*c);a.lineTo(b,.6438*c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("mxgraph.lean_mapping.physical_pull",mxLeanMaterialPull);
6600mxLeanMaterialPull.prototype.constraints=[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(.98,.5),!0),new mxConnectionConstraint(new mxPoint(.144,.144),!1),new mxConnectionConstraint(new mxPoint(.144,.845),!1),new mxConnectionConstraint(new mxPoint(.845,.845),!1)];
6601function mxLeanFifoLane(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxLeanFifoLane,mxShape);mxLeanFifoLane.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseFloat(mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"8"));this.background(a,b,c,d);a.setShadow(!1)};
6602mxLeanFifoLane.prototype.background=function(a,d,e,b){b=Math.min(1.5*b,e);a.begin();a.moveTo(0,b);a.lineTo(d,b);a.moveTo(0,e);a.lineTo(d,e);a.stroke();a.rect(.02*d,b+4,.26*d,e-b-8);a.fillAndStroke();a.ellipse(.35*d,b+4,.26*d,e-b-8);a.fillAndStroke();a.begin();a.moveTo(.69*d,b+4);a.lineTo(.98*d,b+4);a.lineTo(.835*d,e-4);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("mxgraph.lean_mapping.fifo_lane",mxLeanFifoLane);
6603mxLeanFifoLane.prototype.constraints=[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(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,
66041),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];function mxLeanTruckShipment(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxLeanTruckShipment,mxShape);mxLeanTruckShipment.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c);a.setShadow(!1)};
6605mxLeanTruckShipment.prototype.background=function(a,d,e){a.rect(0,0,.6*d,.8*e);a.fillAndStroke();a.rect(.6*d,.35*e,.4*d,.45*e);a.fillAndStroke();var b=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");a.setFillColor(b);a.ellipse(.15*d,.8*e,.2*d,.2*e);a.fillAndStroke();a.ellipse(.65*d,.8*e,.2*d,.2*e);a.fillAndStroke()};mxCellRenderer.registerShape("mxgraph.lean_mapping.truck_shipment",mxLeanTruckShipment);
6606mxLeanTruckShipment.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(.6,.35),!1),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,
66071),!0),new mxConnectionConstraint(new mxPoint(.5,.8),!1),new mxConnectionConstraint(new mxPoint(.75,1),!0)];function mxLeanProductionControl(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxLeanProductionControl,mxShape);mxLeanProductionControl.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.rect(0,0,b,c);a.fillAndStroke()};mxCellRenderer.registerShape("mxgraph.lean_mapping.schedule",mxLeanProductionControl);
6608mxLeanProductionControl.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(.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,
6609.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)];function mxLeanFifoSequence(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxLeanFifoSequence,mxShape);
6610mxLeanFifoSequence.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(0,0);a.lineTo(b,0);a.moveTo(0,c);a.lineTo(b,c);a.moveTo(.05*b,.5*c);a.lineTo(.15*b,.5*c);a.moveTo(.75*b,.5*c);a.lineTo(.88*b,.5*c);a.stroke();d=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");a.setFillColor(d);a.begin();a.moveTo(.88*b,.39*c);a.lineTo(.98*b,.5*c);a.lineTo(.88*b,.61*c);a.fillAndStroke()};mxCellRenderer.registerShape("mxgraph.lean_mapping.fifo_sequence_flow",mxLeanFifoSequence);
6611mxLeanFifoSequence.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(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.25,
66121),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];function mxLeanProductionKanban(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxLeanProductionKanban,mxShape);
6613mxLeanProductionKanban.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.setDashed(!0);a.begin();a.moveTo(4,c-10);a.lineTo(4,25);a.lineTo(b,25);a.stroke();a.setDashed(!1);a.begin();a.moveTo(b-75,0);a.lineTo(b-30,0);a.lineTo(b-15,15);a.lineTo(b-15,50);a.lineTo(b-75,50);a.close();a.fillAndStroke();d=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");a.setFillColor(d);a.begin();a.moveTo(0,c-10);a.lineTo(4,c);a.lineTo(8,c-10);a.close();a.fillAndStroke()};
6614mxCellRenderer.registerShape("mxgraph.lean_mapping.production_kanban",mxLeanProductionKanban);mxLeanProductionKanban.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,4,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,25));return a};function mxLeanWithdrawalKanban(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxLeanWithdrawalKanban,mxShape);
6615mxLeanWithdrawalKanban.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.setDashed(!0);a.begin();a.moveTo(4,c-10);a.lineTo(4,25);a.lineTo(b,25);a.stroke();a.setDashed(!1);a.begin();a.moveTo(b-75,0);a.lineTo(b-30,0);a.lineTo(b-15,15);a.lineTo(b-15,50);a.lineTo(b-75,50);a.close();a.fillAndStroke();a.begin();a.moveTo(b-75,45);a.lineTo(b-70,50);a.moveTo(b-75,35);a.lineTo(b-60,50);a.moveTo(b-75,25);a.lineTo(b-50,50);a.moveTo(b-75,15);a.lineTo(b-40,50);a.moveTo(b-75,5);a.lineTo(b-30,50);
6616a.moveTo(b-70,0);a.lineTo(b-20,50);a.moveTo(b-60,0);a.lineTo(b-15,45);a.moveTo(b-50,0);a.lineTo(b-15,35);a.moveTo(b-40,0);a.lineTo(b-15,25);a.stroke();d=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");a.setFillColor(d);a.begin();a.moveTo(0,c-10);a.lineTo(4,c);a.lineTo(8,c-10);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("mxgraph.lean_mapping.withdrawal_kanban",mxLeanWithdrawalKanban);
6617mxLeanWithdrawalKanban.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,4,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,25));return a};function mxLeanSignalKanban(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxLeanSignalKanban,mxShape);
6618mxLeanSignalKanban.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.setDashed(!0);a.begin();a.moveTo(4,c-10);a.lineTo(4,15);a.lineTo(b,15);a.stroke();a.setDashed(!1);a.begin();a.moveTo(b-65,0);a.lineTo(b-25,0);a.lineTo(b-45,45);a.close();a.fillAndStroke();d=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");a.setFillColor(d);a.begin();a.moveTo(0,c-10);a.lineTo(4,c);a.lineTo(8,c-10);a.close();a.fillAndStroke()};
6619mxCellRenderer.registerShape("mxgraph.lean_mapping.signal_kanban",mxLeanSignalKanban);mxLeanSignalKanban.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,4,e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,15));return a};function mxLeanSequencedPullBall(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxLeanSequencedPullBall,mxShape);
6620mxLeanSequencedPullBall.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.ellipse(0,0,b,c);a.fillAndStroke();d=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");a.setFillColor(d);a.setShadow(!1);a.ellipse(.15*b,.15*c,.7*b,.7*c);a.fillAndStroke()};mxCellRenderer.registerShape("mxgraph.lean_mapping.sequenced_pull_ball",mxLeanSequencedPullBall);
6621mxLeanSequencedPullBall.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.144,.144),!1),new mxConnectionConstraint(new mxPoint(.856,.144),!1),new mxConnectionConstraint(new mxPoint(.856,.856),!1),new mxConnectionConstraint(new mxPoint(.144,.856),!1),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0)];
6622function mxLeanRailShipment(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxLeanRailShipment,mxShape);
6623mxLeanRailShipment.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.rect(.1*b,0,.35*b,.8*c);a.fillAndStroke();a.rect(.55*b,0,.35*b,.8*c);a.fillAndStroke();a.begin();a.moveTo(0,c);a.lineTo(b,c);a.moveTo(.45*b,.7*c);a.lineTo(.55*b,.7*c);a.stroke();a.ellipse(.15*b,.8*c,.06*b,.2*c);a.fillAndStroke();a.ellipse(.34*b,.8*c,.06*b,.2*c);a.fillAndStroke();a.ellipse(.6*b,.8*c,.06*b,.2*c);a.fillAndStroke();a.ellipse(.79*b,.8*c,.06*b,.2*c);a.fillAndStroke()};
6624mxCellRenderer.registerShape("mxgraph.lean_mapping.rail_shipment",mxLeanRailShipment);
6625mxLeanRailShipment.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(.1,.25),!1),new mxConnectionConstraint(new mxPoint(.1,.5),!1),new mxConnectionConstraint(new mxPoint(.1,.75),!1),new mxConnectionConstraint(new mxPoint(.9,.25),!1),new mxConnectionConstraint(new mxPoint(.9,
6626.5),!1),new mxConnectionConstraint(new mxPoint(.9,.75),!1),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];function mxLeanWarehouse(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxLeanWarehouse,mxShape);
6627mxLeanWarehouse.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.rect(0,0,b,c);a.fillAndStroke();a.setShadow(!1);a.begin();a.moveTo(0,.4*c);a.lineTo(b,.4*c);a.moveTo(.15*b,c);a.lineTo(.15*b,.55*c);a.lineTo(.3*b,.55*c);a.lineTo(.3*b,c);a.stroke();a.ellipse(.27*b,.75*c,.02*b,.02*b);a.stroke()};mxCellRenderer.registerShape("mxgraph.lean_mapping.warehouse",mxLeanWarehouse);
6628mxLeanWarehouse.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(.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,
6629.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)];function mxLeanTimeline(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxLeanTimeline,mxShape);
6630mxLeanTimeline.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);var f=mxUtils.getValue(this.style,"mainText","20,Time 1,50,Time 2,30,Time 3,40,Time 4,30,Time 5,50,Time 6,20,Time 7").toString().split(",");d=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"12");e=[];for(var g=0,h=0;h<f.length;h+=2){var k=parseFloat(f[h]);e.push(k);g+=k}b/=g;g=[];for(h=1;h<f.length;h+=2)g.push(f[h]);a.begin();f=0;a.moveTo(0,c);for(h=0;h<g.length;h++)k=e[h]*b,f+=k,0===h%2?(a.lineTo(f,c),a.lineTo(f,
66311.5*d),a.text(f-.5*k,c-.75*d,0,0,g[h],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)):(a.lineTo(f,1.5*d),a.lineTo(f,c),a.text(f-.5*k,.75*d,0,0,g[h],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0));a.stroke()};mxCellRenderer.registerShape("mxgraph.lean_mapping.timeline",mxLeanTimeline);function mxLeanCrossDock(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxLeanCrossDock,mxShape);
6632mxLeanCrossDock.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.rect(0,0,b,c);a.fillAndStroke();a.setShadow(!1);a.begin();a.moveTo(0,.25*c);a.lineTo(b,.25*c);a.moveTo(.1*b,.4*c);a.lineTo(.35*b,.4*c);a.arcTo(.15*b,.15*c,0,0,1,.5*b,.5*c);a.arcTo(.15*b,.15*c,0,0,0,.65*b,.6*c);a.lineTo(.9*b,.6*c);a.stroke();a.moveTo(.1*b,.4*c);a.lineTo(.35*b,.4*c);a.arcTo(.15*b,.25*c,0,0,1,.5*b,.55*c);a.arcTo(.15*b,.25*c,0,0,0,.65*b,.7*c);a.lineTo(.9*b,.7*c);a.stroke();a.moveTo(.1*b,.4*c);a.lineTo(.35*
6633b,.4*c);a.arcTo(.15*b,.3*c,0,0,1,.5*b,.6*c);a.arcTo(.15*b,.3*c,0,0,0,.65*b,.8*c);a.lineTo(.9*b,.8*c);a.stroke();a.moveTo(.1*b,.8*c);a.lineTo(.35*b,.8*c);a.arcTo(.15*b,.3*c,0,0,0,.5*b,.6*c);a.arcTo(.15*b,.3*c,0,0,1,.65*b,.4*c);a.lineTo(.9*b,.4*c);a.stroke();a.moveTo(.1*b,.8*c);a.lineTo(.35*b,.8*c);a.arcTo(.15*b,.1*c,0,0,0,.5*b,.75*c);a.arcTo(.15*b,.1*c,0,0,1,.65*b,.7*c);a.lineTo(.9*b,.7*c);a.stroke()};mxCellRenderer.registerShape("mxgraph.lean_mapping.crossDock",mxLeanCrossDock);
6634mxLeanCrossDock.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(.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,
6635.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)];function mxLeanOrders(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxLeanOrders,mxShape);
6636mxLeanOrders.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.rect(0,.56*c,b,.44*c);a.fillAndStroke();d=parseFloat(mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,"2"));a.setStrokeWidth(.5*d);a.begin();a.moveTo(.04*b,.5418*c);a.lineTo(.94*b,.5418*c);a.moveTo(.0522*b,.5088*c);a.lineTo(.9522*b,.5088*c);a.moveTo(.05*b,.4738*c);a.lineTo(.95*b,.4738*c);a.moveTo(.0456*b,.4427*c);a.lineTo(.9456*b,.4427*c);a.moveTo(.0422*b,.4135*c);a.lineTo(.9422*b,.4135*c);a.moveTo(.0533*b,.3804*
6637c);a.lineTo(.9533*b,.3804*c);a.moveTo(.0556*b,.3454*c);a.lineTo(.9556*b,.3454*c);a.moveTo(.05*b,.3143*c);a.lineTo(.95*b,.3143*c);a.moveTo(.0489*b,.2832*c);a.lineTo(.0489*b,.2832*c);a.moveTo(.0544*b,.254*c);a.lineTo(.9544*b,.254*c);a.moveTo(.0489*b,.221*c);a.lineTo(.9489*b,.221*c);a.moveTo(.0556*b,.1918*c);a.lineTo(.9556*b,.1918*c);a.moveTo(.0522*b,.1587*c);a.lineTo(.9522*b,.1587*c);a.moveTo(.0544*b,.1276*c);a.lineTo(.9544*b,.1276*c);a.moveTo(.0544*b,.0965*c);a.lineTo(.9544*b,.0965*c);a.moveTo(.0556*
6638b,.0654*c);a.lineTo(.9556*b,.0654*c);a.moveTo(.0533*b,.0304*c);a.lineTo(.9533*b,.0304*c);a.moveTo(.0556*b,0);a.lineTo(.9556*b,0);a.stroke()};mxCellRenderer.registerShape("mxgraph.lean_mapping.orders",mxLeanOrders);
6639mxLeanOrders.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.05,0),!0),new mxConnectionConstraint(new mxPoint(.95,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(.05,.25),!1),new mxConnectionConstraint(new mxPoint(.05,.5),!1),new mxConnectionConstraint(new mxPoint(0,
6640.75),!0),new mxConnectionConstraint(new mxPoint(.95,.25),!1),new mxConnectionConstraint(new mxPoint(.95,.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)];function mxLeanBatchedKanban(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxLeanBatchedKanban,mxShape);
6641mxLeanBatchedKanban.prototype.paintVertexShape=function(a,d,e,b,c){b=Math.max(110,b);a.translate(d,e);a.begin();a.moveTo(4,.5*c);a.lineTo(b,.5*c);a.stroke();a.begin();a.moveTo(.5*b-20,.5*c-35);a.lineTo(.5*b+25,.5*c-35);a.lineTo(.5*b+40,.5*c-20);a.lineTo(.5*b+40,.5*c+15);a.lineTo(.5*b-20,.5*c+15);a.close();a.fillAndStroke();a.begin();a.moveTo(.5*b-30,.5*c-25);a.lineTo(.5*b+15,.5*c-25);a.lineTo(.5*b+30,.5*c-10);a.lineTo(.5*b+30,.5*c+25);a.lineTo(.5*b-30,.5*c+25);a.close();a.fillAndStroke();a.begin();
6642a.moveTo(.5*b-40,.5*c-15);a.lineTo(.5*b+5,.5*c-15);a.lineTo(.5*b+20,.5*c);a.lineTo(.5*b+20,.5*c+35);a.lineTo(.5*b-40,.5*c+35);a.close();a.fillAndStroke();d=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");a.setFillColor(d);a.begin();a.moveTo(b-10,.5*c-4);a.lineTo(b,.5*c);a.lineTo(b-10,.5*c+4);a.close();a.fillAndStroke()};mxCellRenderer.registerShape("mxgraph.lean_mapping.batched_kanban",mxLeanBatchedKanban);
6643mxLeanBatchedKanban.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0)];function mxLeanControlCenter(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxLeanControlCenter,mxShape);mxLeanControlCenter.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.rect(.15*b,0,.7*b,.8*c);a.fillAndStroke();a.rect(0,.8*c,b,.2*c);a.fillAndStroke()};
6644mxCellRenderer.registerShape("mxgraph.lean_mapping.control_center",mxLeanControlCenter);
6645mxLeanControlCenter.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.15,0),!0),new mxConnectionConstraint(new mxPoint(.85,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(.15,.25),!1),new mxConnectionConstraint(new mxPoint(.15,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(.85,.25),!1),new mxConnectionConstraint(new mxPoint(.85,
6646.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)];function mxLeanElectronicInfoShape(){mxArrow.call(this)}mxUtils.extend(mxLeanElectronicInfoShape,mxArrow);
6647mxLeanElectronicInfoShape.prototype.paintEdgeShape=function(a,d){var e=d[0],b=d[d.length-1],c=b.x-e.x,f=b.y-e.y;e.x+=.05*c;e.y+=.05*f;b.x-=.05*c;b.y-=.05*f;var c=b.x-e.x,f=b.y-e.y,g=Math.sqrt(c*c+f*f),h=c/g,k=f/g,l=e.x+.5*c,m=e.y+.5*f,c=l-h*g*.1-k/3*g*.1,f=m-k*g*.1+h/3*g*.1,l=l+h*g*.1+k/3*g*.1,g=m+k*g*.1-h/3*g*.1;a.begin();a.moveTo(e.x,e.y);a.lineTo(l,g);a.lineTo(c,f);a.lineTo(b.x,b.y);a.stroke();c=b.x-c;f=b.y-f;g=Math.sqrt(c*c+f*f);h=c/g;k=f/g;a.setFillColor(mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,
6648"#000000"));a.begin();a.moveTo(b.x-10*h-5*k,b.y-10*k+5*h);a.lineTo(b.x,b.y);a.lineTo(b.x-10*h+5*k,b.y-10*k-5*h);a.fillAndStroke()};mxCellRenderer.registerShape("mxgraph.lean_mapping.electronic_info_flow_edge",mxLeanElectronicInfoShape);function mxLeanManualInfoShape(){mxArrow.call(this)}mxUtils.extend(mxLeanManualInfoShape,mxArrow);
6649mxLeanManualInfoShape.prototype.paintEdgeShape=function(a,d){var e=d[0],b=d[d.length-1],c=b.x-e.x,f=b.y-e.y;e.x+=.05*c;e.y+=.05*f;b.x-=.05*c;b.y-=.05*f;var c=b.x-e.x,f=b.y-e.y,g=Math.sqrt(c*c+f*f),c=c/g,f=f/g;a.begin();a.moveTo(e.x,e.y);a.lineTo(b.x,b.y);a.stroke();a.setFillColor(mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000"));a.begin();a.moveTo(b.x-10*c-5*f,b.y-10*f+5*c);a.lineTo(b.x,b.y);a.lineTo(b.x-10*c+5*f,b.y-10*f-5*c);a.fillAndStroke()};
6650mxCellRenderer.registerShape("mxgraph.lean_mapping.manual_info_flow_edge",mxLeanManualInfoShape);function mxShapeLeanTimeline(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeLeanTimeline,mxShape);mxShapeLeanTimeline.prototype.cst={SHAPE_TIMELINE:"mxgraph.lean_mapping.timeline2"};
6651mxShapeLeanTimeline.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);var f=mxUtils.getValue(this.style,"dy1","0");d=mxUtils.getValue(this.style,"dx2","0");e=mxUtils.getValue(this.style,"dy2","0");var g=mxUtils.getValue(this.style,"dx3","0"),h=mxUtils.getValue(this.style,"dy3","0"),k=mxUtils.getValue(this.style,"dx4","0"),l=mxUtils.getValue(this.style,"dy4","0"),m=mxUtils.getValue(this.style,"dx5","0"),n=mxUtils.getValue(this.style,"dy5","0"),p=mxUtils.getValue(this.style,"dy6","0");
6652a.begin();.5>=f?(a.moveTo(0,0),f=!0):(a.moveTo(0,c),f=!1);.5>=e&&f?(a.lineTo(d,0),f=!0):.5<e&&!f?(a.lineTo(d,c),f=!1):.5>=e&&!f?(a.lineTo(d,c),a.lineTo(d,0),f=!0):(a.lineTo(d,0),a.lineTo(d,c),f=!1);.5>=h&&f?(a.lineTo(g,0),f=!0):.5<h&&!f?(a.lineTo(g,c),f=!1):.5>=h&&!f?(a.lineTo(g,c),a.lineTo(g,0),f=!0):(a.lineTo(g,0),a.lineTo(g,c),f=!1);.5>=l&&f?(a.lineTo(k,0),f=!0):.5<l&&!f?(a.lineTo(k,c),f=!1):.5>=l&&!f?(a.lineTo(k,c),a.lineTo(k,0),f=!0):(a.lineTo(k,0),a.lineTo(k,c),f=!1);.5>=n&&f?(a.lineTo(m,0),
6653f=!0):.5<n&&!f?(a.lineTo(m,c),f=!1):.5>=n&&!f?(a.lineTo(m,c),a.lineTo(m,0),f=!0):(a.lineTo(m,0),a.lineTo(m,c),f=!1);.5>=p&&f?a.lineTo(b,0):.5<p&&!f?a.lineTo(b,c):.5>=p&&!f?(a.lineTo(b,c),a.lineTo(b,0)):(a.lineTo(b,0),a.lineTo(b,c));a.stroke()};mxCellRenderer.registerShape(mxShapeLeanTimeline.prototype.cst.SHAPE_TIMELINE,mxShapeLeanTimeline);
6654Graph.handleFactory[mxShapeLeanTimeline.prototype.cst.SHAPE_TIMELINE]=function(a){var d=[Graph.createHandle(a,["dy1"],function(a){var b=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"dy1",0))));return new mxPoint(a.x,a.y+b*a.height)},function(a,c){this.state.style.dy1=Math.round(1E3*Math.max(0,Math.min(1,(c.y-a.y)/a.height)))/1E3})],e=Graph.createHandle(a,["dx2","dy2"],function(a){var b=Math.max(0,Math.min(parseFloat(mxUtils.getValue(this.state.style,"dx3",0)),parseFloat(mxUtils.getValue(this.state.style,
6655"dx2",0)))),d=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"dy2",0))));return new mxPoint(a.x+b,a.y+d*a.height)},function(a,c){this.state.style.dx2=Math.round(1E3*Math.max(0,Math.min(parseFloat(mxUtils.getValue(this.state.style,"dx3",0)),c.x-a.x)))/1E3;this.state.style.dy2=Math.round(1E3*Math.max(0,Math.min(1,(c.y-a.y)/a.height)))/1E3});d.push(e);e=Graph.createHandle(a,["dx3","dy3"],function(a){var b=Math.max(parseFloat(mxUtils.getValue(this.state.style,"dx2",0)),Math.min(parseFloat(mxUtils.getValue(this.state.style,
6656"dx4",0)),parseFloat(mxUtils.getValue(this.state.style,"dx3",0)))),d=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"dy3",0))));return new mxPoint(a.x+b,a.y+d*a.height)},function(a,c){this.state.style.dx3=Math.round(1E3*Math.max(parseFloat(mxUtils.getValue(this.state.style,"dx2",0)),Math.min(parseFloat(mxUtils.getValue(this.state.style,"dx4",0)),c.x-a.x)))/1E3;this.state.style.dy3=Math.round(1E3*Math.max(0,Math.min(1,(c.y-a.y)/a.height)))/1E3});d.push(e);e=Graph.createHandle(a,
6657["dx4","dy4"],function(a){var b=Math.max(parseFloat(mxUtils.getValue(this.state.style,"dx3",0)),Math.min(parseFloat(mxUtils.getValue(this.state.style,"dx5",0)),parseFloat(mxUtils.getValue(this.state.style,"dx4",0)))),d=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"dy4",0))));return new mxPoint(a.x+b,a.y+d*a.height)},function(a,c){this.state.style.dx4=Math.round(1E3*Math.max(parseFloat(mxUtils.getValue(this.state.style,"dx3",0)),Math.min(parseFloat(mxUtils.getValue(this.state.style,
6658"dx5",0)),c.x-a.x)))/1E3;this.state.style.dy4=Math.round(1E3*Math.max(0,Math.min(1,(c.y-a.y)/a.height)))/1E3});d.push(e);e=Graph.createHandle(a,["dx5","dy5"],function(a){var b=Math.max(parseFloat(mxUtils.getValue(this.state.style,"dx4",0)),Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"dx5",0)))),d=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"dy5",0))));return new mxPoint(a.x+b,a.y+d*a.height)},function(a,c){this.state.style.dx5=Math.round(1E3*Math.max(parseFloat(mxUtils.getValue(this.state.style,
6659"dx4",0)),Math.min(a.width,c.x-a.x)))/1E3;this.state.style.dy5=Math.round(1E3*Math.max(0,Math.min(1,(c.y-a.y)/a.height)))/1E3});d.push(e);a=Graph.createHandle(a,["dy6"],function(a){var b=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"dy6",0))));return new mxPoint(a.x+a.width,a.y+b*a.height)},function(a,c){this.state.style.dy6=Math.round(1E3*Math.max(0,Math.min(1,(c.y-a.y)/a.height)))/1E3});d.push(a);return d};
6660function mxShapeNetworksBus(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeNetworksBus,mxShape);mxShapeNetworksBus.prototype.cst={SHAPE_BUS:"mxgraph.networks.bus"};mxShapeNetworksBus.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};
6661mxShapeNetworksBus.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(8,.5*c+10);a.arcTo(12,12,0,0,1,8,.5*c-10);a.lineTo(b-8,.5*c-10);a.arcTo(12,12,0,0,1,b-8,.5*c+10);a.close();a.fillAndStroke()};mxShapeNetworksBus.prototype.foreground=function(a,d,e,b,c){a.setFillColor("#ffffff");a.begin();a.moveTo(b-8,.5*c-10);a.arcTo(12,12,0,0,1,b-8,.5*c+10);a.arcTo(12,12,0,0,1,b-8,.5*c-10);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeNetworksBus.prototype.cst.SHAPE_BUS,mxShapeNetworksBus);
6662function mxShapeNetworksCommLinkEdge(){mxArrow.call(this)}mxUtils.extend(mxShapeNetworksCommLinkEdge,mxArrow);
6663mxShapeNetworksCommLinkEdge.prototype.paintEdgeShape=function(a,d){var e=d[0],b=d[d.length-1],c=b.x-e.x,f=b.y-e.y;e.x+=.05*c;e.y+=.05*f;b.x-=.05*c;b.y-=.05*f;var c=b.x-e.x,f=b.y-e.y,g=Math.sqrt(c*c+f*f),h=c/g,k=f/g,l=e.x+.5*c,m=e.y+.5*f,f=l+h*g/3*.1-k/3*g*.1,c=m+k*g/3*.1+h/3*g*.1,n=l+h*g*.1+k*g*.1,p=m+k*g*.1-h*g*.1,q=l-h*g/3*.1+k/3*g*.1,t=m-k*g/3*.1-h/3*g*.1,l=l-h*g*.1-k*g*.1,g=m-k*g*.1+h*g*.1;a.begin();a.moveTo(e.x,e.y);a.lineTo(n,p);a.lineTo(f,c);a.lineTo(b.x,b.y);a.lineTo(l,g);a.lineTo(q,t);a.close();
6664a.fillAndStroke()};mxCellRenderer.registerShape("mxgraph.networks.comm_link_edge",mxShapeNetworksCommLinkEdge);function mxShapeSysMLComposite(){mxCylinder.call(this)}mxUtils.extend(mxShapeSysMLComposite,mxShape);mxShapeSysMLComposite.prototype.isHtmlAllowed=function(){return!1};
6665mxShapeSysMLComposite.prototype.paintForeground=function(a,d,e,b,c){if(null!=this.style){var f=mxCellRenderer.defaultShapes[this.style.symbol0];a.save();var g=new f;g.style=this.style;f.prototype.paintVertexShape.call(g,a,d,e,b,c);a.restore();a.setDashed(!1);var h=1;do{f=mxCellRenderer.defaultShapes[this.style["symbol"+h]];if(null!=f){var g=this.style["symbol"+h+"Align"],k=this.style["symbol"+h+"VerticalAlign"],l=this.style["symbol"+h+"Width"],m=this.style["symbol"+h+"Height"],n=this.style["symbol"+
6666h+"Spacing"]||0,p=this.style["symbol"+h+"VSpacing"]||0,q=this.style["symbol"+h+"ArcSpacing"],t=this.style["symbol"+h+"Direction"];null!=q&&(n+=this.getArcSize(b+this.strokewidth,c+this.strokewidth)*q,p+=this.getArcSize(b+this.strokewidth,c+this.strokewidth)*q);var q=d,u=e,q=g==mxConstants.ALIGN_CENTER?q+(b-l)/2:g==mxConstants.ALIGN_RIGHT?q+(b-l-n):q+n,u=k==mxConstants.ALIGN_MIDDLE?u+(c-m)/2:k==mxConstants.ALIGN_BOTTOM?u+(c-m-p):u+p;a.save();g=new f;g.style=mxUtils.clone(this.style);g.direction=t;
6667g.updateTransform(a,q,u,l,m);f.prototype.paintVertexShape.call(g,a,q,u,l,m);a.restore()}h++}while(null!=f)}};mxCellRenderer.registerShape("mxgraph.sysml.composite",mxShapeSysMLComposite);function mxShapeSysMLPackage(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLPackage,mxShape);mxShapeSysMLPackage.prototype.cst={PACKAGE:"mxgraph.sysml.package",LABEL_X:"labelX"};
6668mxShapeSysMLPackage.prototype.customProperties=[{name:"labelX",dispName:"Header Width",type:"float",min:0,defVal:90}];
6669mxShapeSysMLPackage.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,
6670.75),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.25),!1));return a};
6671mxShapeSysMLPackage.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};mxShapeSysMLPackage.prototype.background=function(a,d,e,b,c){a.rect(0,0,b,c);a.fillAndStroke()};mxShapeSysMLPackage.prototype.foreground=function(a,d,e,b,c){d=parseInt(mxUtils.getValue(this.style,mxShapeSysMLPackage.prototype.cst.LABEL_X,"90"));d=Math.min(d,b);20<d&&(a.begin(),a.moveTo(0,20),a.lineTo(d-10,20),a.lineTo(d,10),a.lineTo(d,0),a.stroke())};
6672mxCellRenderer.registerShape(mxShapeSysMLPackage.prototype.cst.PACKAGE,mxShapeSysMLPackage);Graph.handleFactory[mxShapeSysMLPackage.prototype.cst.PACKAGE]=function(a){return[Graph.createHandle(a,["labelX"],function(a){var d=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"labelX",90))));return new mxPoint(a.x+d,a.y+10)},function(a,e){this.state.style.labelX=Math.round(100*Math.max(0,Math.min(a.width,e.x-a.x)))/100})]};
6673function mxShapeSysMLPackage2(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLPackage2,mxShape);mxShapeSysMLPackage2.prototype.cst={PACKAGE2:"mxgraph.sysml.package2",LABEL_X:"labelX"};mxShapeSysMLPackage2.prototype.customProperties=[{name:"labelX",dispName:"Header Width",type:"float",min:0,defVal:90}];
6674mxShapeSysMLPackage2.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};mxShapeSysMLPackage2.prototype.background=function(a,d,e,b,c){a.rect(0,0,b,c);a.stroke()};
6675mxShapeSysMLPackage2.prototype.foreground=function(a,d,e,b,c){d=parseInt(mxUtils.getValue(this.style,mxShapeSysMLPackage2.prototype.cst.LABEL_X,"90"));d=Math.min(d,b);20<d&&(a.begin(),a.moveTo(0,20),a.lineTo(d-10,20),a.lineTo(d,10),a.lineTo(d,0),a.lineTo(0,0),a.close(),a.fillAndStroke())};mxCellRenderer.registerShape(mxShapeSysMLPackage2.prototype.cst.PACKAGE2,mxShapeSysMLPackage2);
6676Graph.handleFactory[mxShapeSysMLPackage2.prototype.cst.PACKAGE2]=function(a){return[Graph.createHandle(a,["labelX"],function(a){var d=Math.max(0,Math.min(a.width,parseFloat(mxUtils.getValue(this.state.style,"labelX",90))));return new mxPoint(a.x+d,a.y+10)},function(a,e){this.state.style.labelX=Math.round(100*Math.max(0,Math.min(a.width,e.x-a.x)))/100})]};function mxShapeSysMLNone(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
6677mxUtils.extend(mxShapeSysMLNone,mxShape);mxShapeSysMLNone.prototype.cst={NONE:"mxgraph.sysml.none"};mxShapeSysMLNone.prototype.paintVertexShape=function(a,d,e,b,c){};mxCellRenderer.registerShape(mxShapeSysMLNone.prototype.cst.NONE,mxShapeSysMLNone);function mxShapeSysMLRect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLRect,mxShape);mxShapeSysMLRect.prototype.cst={RECT:"mxgraph.sysml.rect"};
6678mxShapeSysMLRect.prototype.paintVertexShape=function(a,d,e,b,c){a.rect(d,e,b,c);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeSysMLRect.prototype.cst.RECT,mxShapeSysMLRect);function mxShapeSysMLPortOne(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLPortOne,mxShape);mxShapeSysMLPortOne.prototype.cst={PORT1:"mxgraph.sysml.port1"};
6679mxShapeSysMLPortOne.prototype.paintVertexShape=function(a,d,e,b,c){a.rect(d+.05*b,e,b-.1*b,c);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeSysMLPortOne.prototype.cst.PORT1,mxShapeSysMLPortOne);
6680mxShapeSysMLPortOne.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(.05,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.95,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.95,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(.95,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(.95,
66811),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.05,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.05,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(.05,.25),!1));return a};function mxShapeSysMLPortTwo(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
6682mxUtils.extend(mxShapeSysMLPortTwo,mxShape);mxShapeSysMLPortTwo.prototype.cst={PORT2:"mxgraph.sysml.port2"};mxShapeSysMLPortTwo.prototype.paintVertexShape=function(a,d,e,b,c){a.rect(d+.05*b,e,.8*b,c);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeSysMLPortTwo.prototype.cst.PORT2,mxShapeSysMLPortTwo);
6683mxShapeSysMLPortTwo.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(.05,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.95,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.95,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(.95,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(.95,
66841),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.05,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.05,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(.05,.25),!1));return a};function mxShapeSysMLPortThree(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
6685mxUtils.extend(mxShapeSysMLPortThree,mxShape);mxShapeSysMLPortThree.prototype.cst={PORT3:"mxgraph.sysml.port3"};
6686mxShapeSysMLPortThree.prototype.paintVertexShape=function(a,d,e,b,c){a.rect(d+.07*b,e,.86*b,c);a.fillAndStroke();a.rect(d,e+.125*c,.14*b,.25*c);a.fillAndStroke();a.rect(d,e+.625*c,.14*b,.25*c);a.fillAndStroke();a.rect(d+.86*b,e+.375*c,.14*b,.25*c);a.fillAndStroke();this.drawIn(a,d+.01*b,e+.2*c,.11*b,.1*c);this.drawOut(a,d+.02*b,e+.7*c,.11*b,.1*c);this.drawInOut(a,d+.88*b,e+.45*c,.1*b,.1*c)};
6687mxShapeSysMLPortThree.prototype.drawIn=function(a,d,e,b,c){a.begin();a.moveTo(d,e+.5*c);a.lineTo(d+b,e+.5*c);a.moveTo(d+.75*b,e);a.lineTo(d+b,e+.5*c);a.lineTo(d+.75*b,e+c);a.stroke()};mxShapeSysMLPortThree.prototype.drawOut=function(a,d,e,b,c){a.begin();a.moveTo(d,e+.5*c);a.lineTo(d+b,e+.5*c);a.moveTo(d+.25*b,e);a.lineTo(d,e+.5*c);a.lineTo(d+.25*b,e+c);a.stroke()};
6688mxShapeSysMLPortThree.prototype.drawInOut=function(a,d,e,b,c){a.begin();a.moveTo(d+.75*b,e);a.lineTo(d+b,e+.5*c);a.lineTo(d+.75*b,e+c);a.moveTo(d+.25*b,e);a.lineTo(d,e+.5*c);a.lineTo(d+.25*b,e+c);a.stroke()};mxCellRenderer.registerShape(mxShapeSysMLPortThree.prototype.cst.PORT3,mxShapeSysMLPortThree);function mxShapeSysMLPortFour(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLPortFour,mxShape);
6689mxShapeSysMLPortFour.prototype.cst={PORT4:"mxgraph.sysml.port4"};mxShapeSysMLPortFour.prototype.paintVertexShape=function(a,d,e,b,c){a.rect(d+.05*b,e,b-.05*b,c);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeSysMLPortFour.prototype.cst.PORT4,mxShapeSysMLPortFour);
6690mxShapeSysMLPortFour.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0)];function mxShapeSysMLItemFlow(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLItemFlow,mxShape);
6691mxShapeSysMLItemFlow.prototype.cst={ITEM_FLOW:"mxgraph.sysml.itemFlow",FLOW_DIR:"flowDir",FLOW_TYPE:"flowType"};mxShapeSysMLItemFlow.prototype.customProperties=[{name:"flowDir",dispName:"Flow Direction",type:"enum",enumList:[{val:"n",dispName:"North"},{val:"s",dispName:"South"},{val:"e",dispName:"East"},{val:"w",dispName:"West"}]},{name:"flowType",dispName:"Flow Type",type:"enum",enumList:[{val:"in",dispName:"In"},{val:"out",dispName:"Out"}]}];
6692mxShapeSysMLItemFlow.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxShapeSysMLItemFlow.prototype.cst.FLOW_DIR,"none").toLowerCase(),g=mxUtils.getValue(this.style,mxShapeSysMLItemFlow.prototype.cst.FLOW_TYPE,"none");"n"===f?(a.rect(d,e+10,b,c-10),a.fillAndStroke(),a.setShadow(!1),a.rect(d+.5*b-10,e,20,20),a.fillAndStroke(),"in"===g?this.drawDown(a,d+.5*b-5,e+2,10,16):"out"===g&&this.drawUp(a,d+.5*b-5,e+2,10,16)):"s"===f?(a.rect(d,e,b,c-10),a.fillAndStroke(),a.setShadow(!1),
6693a.rect(d+.5*b-10,e+c-20,20,20),a.fillAndStroke(),"in"===g?this.drawUp(a,d+.5*b-5,e+c-18,10,16):"out"===g&&this.drawDown(a,d+.5*b-5,e+c-18,10,16)):"w"===f?(a.rect(d+10,e,b-10,c),a.fillAndStroke(),a.setShadow(!1),a.rect(d,e+.5*c-10,20,20),a.fillAndStroke(),"in"===g?this.drawRight(a,d+2,e+.5*c-5,16,10):"out"===g&&this.drawLeft(a,d+2,e+.5*c-5,16,10)):"e"===f&&(a.rect(d,e,b-10,c),a.fillAndStroke(),a.setShadow(!1),a.rect(d+b-20,e+.5*c-10,20,20),a.fillAndStroke(),"in"===g?this.drawLeft(a,d+b-18,e+.5*c-5,
669416,10):"out"===g&&this.drawRight(a,d+b-18,e+.5*c-5,16,10))};mxShapeSysMLItemFlow.prototype.drawRight=function(a,d,e,b,c){a.begin();a.moveTo(d,e+.5*c);a.lineTo(d+b,e+.5*c);a.moveTo(d+.75*b,e);a.lineTo(d+b,e+.5*c);a.lineTo(d+.75*b,e+c);a.stroke()};mxShapeSysMLItemFlow.prototype.drawDown=function(a,d,e,b,c){a.begin();a.moveTo(d+.5*b,e);a.lineTo(d+.5*b,e+c);a.moveTo(d,e+.75*c);a.lineTo(d+.5*b,e+c);a.lineTo(d+b,e+.75*c);a.stroke()};
6695mxShapeSysMLItemFlow.prototype.drawLeft=function(a,d,e,b,c){a.begin();a.moveTo(d,e+.5*c);a.lineTo(d+b,e+.5*c);a.moveTo(d+.25*b,e);a.lineTo(d,e+.5*c);a.lineTo(d+.25*b,e+c);a.stroke()};mxShapeSysMLItemFlow.prototype.drawUp=function(a,d,e,b,c){a.begin();a.moveTo(d+.5*b,e+c);a.lineTo(d+.5*b,e);a.moveTo(d,e+.25*c);a.lineTo(d+.5*b,e);a.lineTo(d+b,e+.25*c);a.stroke()};mxCellRenderer.registerShape(mxShapeSysMLItemFlow.prototype.cst.ITEM_FLOW,mxShapeSysMLItemFlow);
6696mxShapeSysMLItemFlow.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0)];function mxShapeSysMLItemFlowLeft(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLItemFlowLeft,mxShape);mxShapeSysMLItemFlowLeft.prototype.cst={ITEM_FLOW_LEFT:"mxgraph.sysml.itemFlowLeft"};
6697mxShapeSysMLItemFlowLeft.prototype.paintVertexShape=function(a,d,e,b,c){a.rect(d+10,e,b-10,c);a.fillAndStroke();a.rect(d,e+.25*c-10,20,20);a.fillAndStroke();a.rect(d,e+.5*c-10,20,20);a.fillAndStroke();a.rect(d,e+.75*c-10,20,20);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeSysMLItemFlowLeft.prototype.cst.ITEM_FLOW_LEFT,mxShapeSysMLItemFlowLeft);
6698mxShapeSysMLItemFlowLeft.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0)];function mxShapeSysMLItemFlowRight(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
6699mxUtils.extend(mxShapeSysMLItemFlowRight,mxShape);mxShapeSysMLItemFlowRight.prototype.cst={ITEM_FLOW_RIGHT:"mxgraph.sysml.itemFlowRight"};mxShapeSysMLItemFlowRight.prototype.paintVertexShape=function(a,d,e,b,c){a.rect(d,e,b-10,c);a.fillAndStroke();a.rect(d+b-20,e+.25*c-10,20,20);a.fillAndStroke();a.rect(d+b-20,e+.5*c-10,20,20);a.fillAndStroke();a.rect(d+b-20,e+.75*c-10,20,20);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeSysMLItemFlowRight.prototype.cst.ITEM_FLOW_RIGHT,mxShapeSysMLItemFlowRight);
6700mxShapeSysMLItemFlowRight.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];function mxShapeSysMLNestedPort(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
6701mxUtils.extend(mxShapeSysMLNestedPort,mxShape);mxShapeSysMLNestedPort.prototype.cst={NESTED_PORT:"mxgraph.sysml.nestedPort"};mxShapeSysMLNestedPort.prototype.paintVertexShape=function(a,d,e,b,c){a.rect(d+.08*b,e,.92*b,c);a.fillAndStroke();a.rect(d+.03*b,e+.1*c,.1*b,.8*c);a.fillAndStroke();a.rect(d,e+.15*c,.06*b,.16*c);a.fillAndStroke();a.rect(d,e+.42*c,.06*b,.16*c);a.fillAndStroke();a.rect(d,e+.69*c,.06*b,.16*c);a.fillAndStroke()};
6702mxCellRenderer.registerShape(mxShapeSysMLNestedPort.prototype.cst.NESTED_PORT,mxShapeSysMLNestedPort);mxMarker.addMarker("sysMLPackCont",function(a,d,e,b,c,f,g,h,k,l){var m=c*(g+k+1),n=f*(g+k+1),p=g/2;return function(){a.begin();a.moveTo(b.x-m/2-n/2,b.y-n/2+m/2);a.lineTo(b.x-m/2+n/2,b.y-n/2-m/2);a.stroke();a.ellipse(b.x-.5*m-p,b.y-.5*n-p,2*p,2*p);a.stroke()}});
6703mxMarker.addMarker("sysMLReqInt",function(a,d,e,b,c,f,g,h,k,l){var m=c*(g+k+1),n=f*(g+k+1),p=g/2;return function(){var c=mxUtils.getValue(d.style,mxConstants.STYLE_FILLCOLOR,"none");a.setFillColor(c);a.ellipse(b.x-.5*m-p,b.y-.5*n-p,2*p,2*p);a.fillAndStroke()}});
6704mxMarker.addMarker("sysMLProvInt",function(a,d,e,b,c,f,g,h,k,l){var m=c*(g+k+1),n=f*(g+k+1),p=g/2;return function(){var c=mxUtils.getValue(d.style,mxConstants.STYLE_FILLCOLOR,"none");a.setFillColor(c);a.begin();a.moveTo(b.x-n/2,b.y+m/2);a.arcTo(p,p,0,0,1,b.x+n/2,b.y-m/2);a.fillAndStroke()}});function mxShapeSysMLParametricDiagram(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLParametricDiagram,mxShape);
6705mxShapeSysMLParametricDiagram.prototype.cst={PARAM_DGM:"mxgraph.sysml.paramDgm"};mxShapeSysMLParametricDiagram.prototype.paintVertexShape=function(a,d,e,b,c){a.roundrect(d,e,b,c,10,10);a.fillAndStroke();a.setShadow(!1);60<c&&(a.rect(d,e+.25*c-10,20,20),a.stroke(),a.rect(d,e+.75*c-10,20,20),a.stroke())};mxCellRenderer.registerShape(mxShapeSysMLParametricDiagram.prototype.cst.PARAM_DGM,mxShapeSysMLParametricDiagram);
6706function mxShapeSysMLConstraintProperty(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLConstraintProperty,mxShape);mxShapeSysMLConstraintProperty.prototype.cst={CONS_PROP:"mxgraph.sysml.consProp"};mxShapeSysMLConstraintProperty.prototype.paintVertexShape=function(a,d,e,b,c){a.rect(d,e,b,c);a.fillAndStroke();a.setShadow(!1);60<c&&(a.rect(d,e+50,20,20),a.stroke(),a.rect(d,e+80,20,20),a.stroke())};
6707mxCellRenderer.registerShape(mxShapeSysMLConstraintProperty.prototype.cst.CONS_PROP,mxShapeSysMLConstraintProperty);function mxShapeSysMLCallBehaviorAction(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLCallBehaviorAction,mxShape);mxShapeSysMLCallBehaviorAction.prototype.cst={CALL_BEH_ACT:"mxgraph.sysml.callBehAct"};
6708mxShapeSysMLCallBehaviorAction.prototype.paintVertexShape=function(a,d,e,b,c){a.roundrect(d,e,b,c,10,10);a.fillAndStroke();30<c&&40<b&&(a.setShadow(!1),this.drawSymb(a,d+b-30,e+c-30,20,20))};mxShapeSysMLCallBehaviorAction.prototype.drawSymb=function(a,d,e,b,c){a.begin();a.moveTo(d+.5*b,e);a.lineTo(d+.5*b,e+c);a.moveTo(d,e+c);a.lineTo(d,e+.5*c);a.lineTo(d+b,e+.5*c);a.lineTo(d+b,e+c);a.stroke()};mxCellRenderer.registerShape(mxShapeSysMLCallBehaviorAction.prototype.cst.CALL_BEH_ACT,mxShapeSysMLCallBehaviorAction);
6709mxShapeSysMLCallBehaviorAction.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2.9,2.9));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,-2.9,2.9));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));
6710a.push(new mxConnectionConstraint(new mxPoint(1,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,-2.9,-2.9));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,2.9,-2.9));a.push(new mxConnectionConstraint(new mxPoint(0,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
6711.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.25),!1));return a};function mxShapeSysMLAcceptEventAction(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLAcceptEventAction,mxShape);mxShapeSysMLAcceptEventAction.prototype.cst={ACC_EVENT:"mxgraph.sysml.accEvent"};
6712mxShapeSysMLAcceptEventAction.prototype.paintVertexShape=function(a,d,e,b,c){a.begin();a.moveTo(d,e);a.lineTo(d+b,e);a.lineTo(d+b,e+c);a.lineTo(d,e+c);a.lineTo(d+.3*c,e+.5*c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeSysMLAcceptEventAction.prototype.cst.ACC_EVENT,mxShapeSysMLAcceptEventAction);
6713mxShapeSysMLAcceptEventAction.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,
6714.75),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,.3*e,0));return a};
6715function mxShapeSysMLTimeEvent(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLTimeEvent,mxShape);mxShapeSysMLTimeEvent.prototype.cst={TIME_EVENT:"mxgraph.sysml.timeEvent"};mxShapeSysMLTimeEvent.prototype.paintVertexShape=function(a,d,e,b,c){a.begin();a.moveTo(d,e);a.lineTo(d+b,e);a.lineTo(d,e+c);a.lineTo(d+b,e+c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeSysMLTimeEvent.prototype.cst.TIME_EVENT,mxShapeSysMLTimeEvent);
6716mxShapeSysMLTimeEvent.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,.5),!1));return a};
6717function mxShapeSysMLSendSignalAction(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLSendSignalAction,mxShape);mxShapeSysMLSendSignalAction.prototype.cst={SEND_SIG_ACT:"mxgraph.sysml.sendSigAct"};mxShapeSysMLSendSignalAction.prototype.paintVertexShape=function(a,d,e,b,c){a.begin();a.moveTo(d,e);a.lineTo(d+b-.3*c,e);a.lineTo(d+b,e+.5*c);a.lineTo(d+b-.3*c,e+c);a.lineTo(d,e+c);a.close();a.fillAndStroke()};
6718mxCellRenderer.registerShape(mxShapeSysMLSendSignalAction.prototype.cst.SEND_SIG_ACT,mxShapeSysMLSendSignalAction);
6719mxShapeSysMLSendSignalAction.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,.3*-e,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,.3*-e,0));a.push(new mxConnectionConstraint(new mxPoint(.25,
67201),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.75),!1));return a};function mxShapeSysMLActivityFinal(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
6721mxUtils.extend(mxShapeSysMLActivityFinal,mxShape);mxShapeSysMLActivityFinal.prototype.cst={ACT_FINAL:"mxgraph.sysml.actFinal"};mxShapeSysMLActivityFinal.prototype.paintVertexShape=function(a,d,e,b,c){a.ellipse(d,e,b,c);a.fillAndStroke();var f=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");a.setFillColor(f);a.ellipse(d+5,e+5,b-10,c-10);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeSysMLActivityFinal.prototype.cst.ACT_FINAL,mxShapeSysMLActivityFinal);
6722mxShapeSysMLActivityFinal.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(.145,.145),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.855,.145),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.855,.855),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.145,.855),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
6723.5),!1));return a};function mxShapeSysMLActivityParameterNode(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLActivityParameterNode,mxShape);mxShapeSysMLActivityParameterNode.prototype.cst={ACT_PARAM_NODE:"mxgraph.sysml.actParamNode"};
6724mxShapeSysMLActivityParameterNode.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();d=Math.max(.35*b,70);e=Math.min(.65*b,b-10);a.begin();a.moveTo(d,c);a.lineTo(10,c);a.lineTo(10,0);a.lineTo(d,0);a.moveTo(e,c);a.lineTo(b-10,c);a.lineTo(b-10,0);a.lineTo(e,0);a.stroke();d=Math.min(50,b);20<d&&(a.begin(),a.moveTo(10,20),a.lineTo(d-10,20),a.lineTo(d,10),a.lineTo(d,0),a.lineTo(10,0),a.close(),a.fillAndStroke());a.rect(0,.35*c-10,20,20);a.fillAndStroke();a.rect(0,.65*c-10,20,20);
6725a.fillAndStroke();a.rect(b-20,.5*c-10,20,20);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeSysMLActivityParameterNode.prototype.cst.ACT_PARAM_NODE,mxShapeSysMLActivityParameterNode);mxShapeSysMLActivityParameterNode.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,.35),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.65),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));return a};
6726function mxShapeSysMLControlOperator(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLControlOperator,mxShape);mxShapeSysMLControlOperator.prototype.cst={CONT_OPER:"mxgraph.sysml.contOper"};mxShapeSysMLControlOperator.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};
6727mxShapeSysMLControlOperator.prototype.background=function(a,d,e,b,c){a.rect(0,0,b,c);a.fillAndStroke()};mxShapeSysMLControlOperator.prototype.foreground=function(a,d,e,b,c){d=Math.min(130,b);20<d&&(a.begin(),a.moveTo(0,20),a.lineTo(d-10,20),a.lineTo(d,10),a.lineTo(d,0),a.stroke())};mxCellRenderer.registerShape(mxShapeSysMLControlOperator.prototype.cst.CONT_OPER,mxShapeSysMLControlOperator);
6728function mxShapeSysMLFlowFinal(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLFlowFinal,mxShape);mxShapeSysMLFlowFinal.prototype.cst={FLOW_FINAL:"mxgraph.sysml.flowFinal"};mxShapeSysMLFlowFinal.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.ellipse(0,0,b,c);a.fillAndStroke();a.setShadow(!1);a.begin();a.moveTo(.145*b,.145*c);a.lineTo(.855*b,.855*c);a.moveTo(.855*b,.145*c);a.lineTo(.145*b,.855*c);a.stroke()};
6729mxCellRenderer.registerShape(mxShapeSysMLFlowFinal.prototype.cst.FLOW_FINAL,mxShapeSysMLFlowFinal);
6730mxShapeSysMLFlowFinal.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(.145,.145),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.855,.145),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.855,.855),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.145,.855),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
6731.5),!1));return a};function mxShapeSysMLIsControl(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLIsControl,mxShape);mxShapeSysMLIsControl.prototype.cst={IS_CONTROL:"mxgraph.sysml.isControl"};mxShapeSysMLIsControl.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.rect(0,.5*c-10,10,20);a.fillAndStroke();a.roundrect(10,0,b-20,c,10,10);a.fillAndStroke();a.rect(b-10,.5*c-10,10,20);a.fillAndStroke()};
6732mxCellRenderer.registerShape(mxShapeSysMLIsControl.prototype.cst.IS_CONTROL,mxShapeSysMLIsControl);mxShapeSysMLIsControl.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));return a};function mxShapeSysMLIsStream(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLIsStream,mxShape);mxShapeSysMLIsStream.prototype.cst={IS_STREAM:"mxgraph.sysml.isStream"};
6733mxShapeSysMLIsStream.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");e=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff");a.setFillColor(d);a.rect(0,.5*c-10,10,20);a.fillAndStroke();a.setFillColor(e);a.roundrect(10,0,b-20,c,10,10);a.fillAndStroke();a.setFillColor(d);a.rect(b-10,.5*c-10,10,20);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeSysMLIsStream.prototype.cst.IS_STREAM,mxShapeSysMLIsStream);
6734mxShapeSysMLIsStream.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));return a};function mxShapeSysMLIsActStream(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLIsActStream,mxShape);mxShapeSysMLIsActStream.prototype.cst={IS_ACT_STREAM:"mxgraph.sysml.isActStream"};
6735mxShapeSysMLIsActStream.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.rect(0,0,b-10,c);a.fillAndStroke();d=Math.min(40,b);20<d&&(a.begin(),a.moveTo(0,20),a.lineTo(d-10,20),a.lineTo(d,10),a.lineTo(d,0),a.lineTo(0,0),a.close(),a.fillAndStroke());a.rect(b-20,.5*c-10,20,20);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeSysMLIsActStream.prototype.cst.IS_ACT_STREAM,mxShapeSysMLIsActStream);
6736mxShapeSysMLIsActStream.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));return a};function mxShapeSysMLParameterSet(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLParameterSet,mxShape);
6737mxShapeSysMLParameterSet.prototype.cst={PARAM_SET:"mxgraph.sysml.paramSet"};mxShapeSysMLParameterSet.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.rect(0,.5*c-28,10,56);a.fillAndStroke();a.roundrect(10,0,b-20,c,10,10);a.fillAndStroke();a.rect(b-10,.5*c-28,10,56);a.fillAndStroke();a.setShadow(!1);a.rect(4,.5*c-24,6,20);a.fillAndStroke();a.rect(4,.5*c+4,6,20);a.fillAndStroke();a.rect(b-10,.5*c-24,6,20);a.fillAndStroke();a.rect(b-10,.5*c+4,6,20);a.fillAndStroke()};
6738mxCellRenderer.registerShape(mxShapeSysMLParameterSet.prototype.cst.PARAM_SET,mxShapeSysMLParameterSet);
6739mxShapeSysMLParameterSet.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,0,-14));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,0,14));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null,0,-14));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null,0,14));a.push(new mxConnectionConstraint(new mxPoint(.25,
67400),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return a};function mxShapeSysMLParameterActivitySet(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLParameterActivitySet,mxShape);
6741mxShapeSysMLParameterActivitySet.prototype.cst={PARAM_ACT_SET:"mxgraph.sysml.paramActSet"};
6742mxShapeSysMLParameterActivitySet.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.rect(10,0,b-20,c);a.fillAndStroke();d=Math.min(50,b);20<d&&(a.begin(),a.moveTo(10,20),a.lineTo(d-10,20),a.lineTo(d,10),a.lineTo(d,0),a.lineTo(10,0),a.close(),a.fillAndStroke());a.setShadow(!1);70<c&&(a.rect(0,.5*c-28,15,56),a.fillAndStroke(),a.rect(4,.5*c-24,15,20),a.fillAndStroke(),a.rect(4,.5*c+4,15,20),a.fillAndStroke(),a.rect(b-15,.5*c-28,15,56),a.fillAndStroke(),a.rect(b-19,.5*c-24,15,
674320),a.fillAndStroke(),a.rect(b-19,.5*c+4,15,20),a.fillAndStroke())};mxCellRenderer.registerShape(mxShapeSysMLParameterActivitySet.prototype.cst.PARAM_ACT_SET,mxShapeSysMLParameterActivitySet);
6744mxShapeSysMLParameterActivitySet.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,0,-14));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,0,14));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null,0,-14));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null,0,14));a.push(new mxConnectionConstraint(new mxPoint(.25,
67450),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return a};function mxShapeSysMLProbability(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLProbability,mxShape);
6746mxShapeSysMLProbability.prototype.cst={PROBABILITY:"mxgraph.sysml.probability"};mxShapeSysMLProbability.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.roundrect(0,0,b-10,c,10,10);a.fillAndStroke();a.rect(b-10,.25*c-28,10,56);a.fillAndStroke();a.rect(b-10,.75*c-28,10,56);a.fillAndStroke();a.setShadow(!1);a.rect(b-10,.25*c-24,6,20);a.fillAndStroke();a.rect(b-10,.25*c+4,6,20);a.fillAndStroke();a.rect(b-10,.75*c-24,6,20);a.fillAndStroke();a.rect(b-10,.75*c+4,6,20);a.fillAndStroke()};
6747mxCellRenderer.registerShape(mxShapeSysMLProbability.prototype.cst.PROBABILITY,mxShapeSysMLProbability);
6748mxShapeSysMLProbability.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1,null,0,-14));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1,null,0,14));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.75),!1,null,0,
6749-14));a.push(new mxConnectionConstraint(new mxPoint(1,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.75),!1,null,0,14));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1,null,-5,0));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,-5,0));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1,null,-5,0));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1,null,-5,0));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1,null,-5,0));a.push(new mxConnectionConstraint(new mxPoint(.75,
67501),!1,null,-5,0));return a};function mxShapeSysMLActivityProbability(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLActivityProbability,mxShape);mxShapeSysMLActivityProbability.prototype.cst={ACT_PROB:"mxgraph.sysml.actProb"};
6751mxShapeSysMLActivityProbability.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.rect(0,0,b-10,c);a.fillAndStroke();d=Math.min(40,b);20<d&&(a.begin(),a.moveTo(0,20),a.lineTo(d-10,20),a.lineTo(d,10),a.lineTo(d,0),a.lineTo(0,0),a.close(),a.fillAndStroke());a.setShadow(!1);70<c&&(a.rect(b-15,.25*c-28,15,56),a.fillAndStroke(),a.rect(b-19,.25*c-24,15,20),a.fillAndStroke(),a.rect(b-19,.25*c+4,15,20),a.fillAndStroke(),a.rect(b-15,.75*c-28,15,56),a.fillAndStroke(),a.rect(b-19,.75*
6752c-24,15,20),a.fillAndStroke(),a.rect(b-19,.75*c+4,15,20),a.fillAndStroke())};mxCellRenderer.registerShape(mxShapeSysMLActivityProbability.prototype.cst.ACT_PROB,mxShapeSysMLActivityProbability);
6753mxShapeSysMLActivityProbability.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1,null,0,-14));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1,null,0,14));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.75),!1,
6754null,0,-14));a.push(new mxConnectionConstraint(new mxPoint(1,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.75),!1,null,0,14));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1,null,-5,0));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,-5,0));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1,null,-5,0));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1,null,-5,0));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1,null,-5,0));a.push(new mxConnectionConstraint(new mxPoint(.75,
67551),!1,null,-5,0));return a};function mxShapeSysMLObjectFlowRight(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLObjectFlowRight,mxShape);mxShapeSysMLObjectFlowRight.prototype.cst={OBJ_FLOW_R:"mxgraph.sysml.objFlowR"};mxShapeSysMLObjectFlowRight.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.roundrect(0,0,b-10,c,10,10);a.fillAndStroke();a.rect(b-10,.5*c-10,10,20);a.fillAndStroke()};
6756mxCellRenderer.registerShape(mxShapeSysMLObjectFlowRight.prototype.cst.OBJ_FLOW_R,mxShapeSysMLObjectFlowRight);mxShapeSysMLObjectFlowRight.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,-5,0));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1,null,-5,0));return a};
6757function mxShapeSysMLObjectFlowLeft(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLObjectFlowLeft,mxShape);mxShapeSysMLObjectFlowLeft.prototype.cst={OBJ_FLOW_L:"mxgraph.sysml.objFlowL"};mxShapeSysMLObjectFlowLeft.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.rect(0,.5*c-10,10,20);a.fillAndStroke();a.roundrect(10,0,b-10,c,10,10);a.fillAndStroke()};
6758mxCellRenderer.registerShape(mxShapeSysMLObjectFlowLeft.prototype.cst.OBJ_FLOW_L,mxShapeSysMLObjectFlowLeft);mxShapeSysMLObjectFlowLeft.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,5,0));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1,null,5,0));return a};
6759function mxShapeSysMLActivityPartition(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLActivityPartition,mxShape);mxShapeSysMLActivityPartition.prototype.cst={ACT_PART:"mxgraph.sysml.actPart"};mxShapeSysMLActivityPartition.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(0,0);a.lineTo(0,c);a.moveTo(b,0);a.lineTo(b,c);a.stroke()};
6760mxCellRenderer.registerShape(mxShapeSysMLActivityPartition.prototype.cst.ACT_PART,mxShapeSysMLActivityPartition);function mxShapeSysMLContinuation(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLContinuation,mxShape);mxShapeSysMLContinuation.prototype.cst={CONT:"mxgraph.sysml.cont"};
6761mxShapeSysMLContinuation.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);b>c?(d=.5*c,a.begin(),a.moveTo(b-d,0),a.arcTo(d,d,0,0,1,b-d,c),a.lineTo(d,c),a.arcTo(d,d,0,0,1,d,0)):(d=.5*b,a.begin(),a.moveTo(0,c-d),a.arcTo(d,d,0,0,0,b,c-d),a.lineTo(b,d),a.arcTo(d,d,0,0,0,0,d));a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeSysMLContinuation.prototype.cst.CONT,mxShapeSysMLContinuation);
6762mxShapeSysMLContinuation.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));if(d>e){var b=.5*e;d>2*e&&(a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1)),a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1)),a.push(new mxConnectionConstraint(new mxPoint(.75,
67631),!1)))}else b=.5*d,e>2*d&&(a.push(new mxConnectionConstraint(new mxPoint(0,.25),!1)),a.push(new mxConnectionConstraint(new mxPoint(0,.75),!1)),a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1)),a.push(new mxConnectionConstraint(new mxPoint(1,.75),!1)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.29*b,.29*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.29*b,.29*b));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.29*b,e-.29*b));a.push(new mxConnectionConstraint(new mxPoint(0,
67640),!1,null,d-.29*b,e-.29*b));return a};function mxShapeSysMLCoregion(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLCoregion,mxShape);mxShapeSysMLCoregion.prototype.cst={COREGION:"mxgraph.sysml.coregion"};
6765mxShapeSysMLCoregion.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.min(10,c);a.begin();a.moveTo(0,d);a.lineTo(0,0);a.lineTo(b,0);a.lineTo(b,d);a.moveTo(0,c-d);a.lineTo(0,c);a.lineTo(b,c);a.lineTo(b,c-d);a.stroke()};mxCellRenderer.registerShape(mxShapeSysMLCoregion.prototype.cst.COREGION,mxShapeSysMLCoregion);
6766mxMarker.addMarker("sysMLx",function(a,d,e,b,c,f,g,h,k,l){var m=c*(g+k+1),n=f*(g+k+1);return function(){a.begin();a.moveTo(b.x-m/2-n/2,b.y-n/2+m/2);a.lineTo(b.x+m/2+n/2,b.y+n/2-m/2);a.moveTo(b.x+m/2-n/2,b.y+n/2+m/2);a.lineTo(b.x-m/2+n/2,b.y-n/2-m/2);a.stroke()}});function mxShapeSysMLDimension(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLDimension,mxShape);mxShapeSysMLDimension.prototype.cst={DIMENSION:"mxgraph.sysml.dimension"};
6767mxShapeSysMLDimension.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};mxShapeSysMLDimension.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(0,20);a.lineTo(b,20);a.moveTo(10,15);a.lineTo(0,20);a.lineTo(10,25);a.moveTo(b-10,15);a.lineTo(b,20);a.lineTo(b-10,25);a.moveTo(0,15);a.lineTo(0,c);a.moveTo(b,15);a.lineTo(b,c);a.stroke()};mxCellRenderer.registerShape(mxShapeSysMLDimension.prototype.cst.DIMENSION,mxShapeSysMLDimension);
6768mxMarker.addMarker("sysMLLost",function(a,d,e,b,c,f,g,h,k,l){var m=c*(g+k+1),n=f*(g+k+1),p=g/2;return function(){a.begin();a.moveTo(b.x-1.5*m-n/2,b.y-1.5*n+m/2);a.lineTo(b.x-m/2,b.y-n/2);a.lineTo(b.x-1.5*m+n/2,b.y-1.5*n-m/2);a.stroke();a.ellipse(b.x-.5*m-p,b.y-.5*n-p,2*p,2*p);var c=mxUtils.getValue(d.style,mxConstants.STYLE_STROKECOLOR,"#000000");a.setFillColor(c);a.fillAndStroke()}});
6769mxMarker.addMarker("sysMLFound",function(a,d,e,b,c,f,g,h,k,l){var m=c*(g+k+1),n=f*(g+k+1),p=g/2;return function(){a.ellipse(b.x-.5*m-p,b.y-.5*n-p,2*p,2*p);var c=mxUtils.getValue(d.style,mxConstants.STYLE_STROKECOLOR,"#000000");a.setFillColor(c);a.fillAndStroke()}});function mxShapeSysMLCompositeState(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLCompositeState,mxShape);mxShapeSysMLCompositeState.prototype.cst={COMP_STATE:"mxgraph.sysml.compState"};
6770mxShapeSysMLCompositeState.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};mxShapeSysMLCompositeState.prototype.background=function(a,d,e,b,c){a.roundrect(0,20,b,c-20,10,10);a.fillAndStroke();a.rect(15,0,110,20);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeSysMLCompositeState.prototype.cst.COMP_STATE,mxShapeSysMLCompositeState);
6771mxShapeSysMLCompositeState.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2.9,22.9));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-2.9,22.9));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2.9,e-2.9));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-2.9,e-2.9));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(e-20)+20));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(e-
677220)+20));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.75*(e-20)+20));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,.25*(e-20)+20));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,.5*(e-20)+20));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,.75*(e-20)+20));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
67730),!1,null,15,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,70,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,125,0));125<.75*d&&(a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1,null,0,20)),125<.5*d&&(a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,0,20)),125<.25*d&&a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1,null,0,20))));return a};
6774function mxShapeSysMLRegion(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLRegion,mxShape);mxShapeSysMLRegion.prototype.cst={REGION:"mxgraph.sysml.region"};mxShapeSysMLRegion.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c,20,50);a.setShadow(!1);this.foreground(a,d,e,b,c,20,50)};
6775mxShapeSysMLRegion.prototype.background=function(a,d,e,b,c,f,g){d=parseInt(mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,"1"));a.roundrect(0,f,b,c-f,10,10);a.fillAndStroke();a.setStrokeWidth(2*d);a.rect(15,0,g,f);a.fillAndStroke();a.setStrokeWidth(d)};mxShapeSysMLRegion.prototype.foreground=function(a,d,e,b,c,f,g){a.setDashed(!0);a.begin();a.moveTo(.5*b,f);a.lineTo(.5*b,c);a.stroke()};mxCellRenderer.registerShape(mxShapeSysMLRegion.prototype.cst.REGION,mxShapeSysMLRegion);
6776mxShapeSysMLRegion.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2.9,22.9));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-2.9,22.9));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2.9,e-2.9));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-2.9,e-2.9));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(e-20)+20));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(e-20)+20));
6777a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.75*(e-20)+20));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,.25*(e-20)+20));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,.5*(e-20)+20));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,.75*(e-20)+20));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
67780),!1,null,15,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,40,0));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,65,0));65<.75*d&&(a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1,null,0,20)),65<.5*d&&(a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1,null,0,20)),65<.25*d&&a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1,null,0,20))));return a};
6779function mxShapeSysMLSimpleState(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLSimpleState,mxShape);mxShapeSysMLSimpleState.prototype.cst={SIMPLE_STATE:"mxgraph.sysml.simpleState"};mxShapeSysMLSimpleState.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1)};
6780mxShapeSysMLSimpleState.prototype.background=function(a,d,e,b,c){parseInt(mxUtils.getValue(this.style,mxConstants.STYLE_STROKEWIDTH,"1"));a.roundrect(0,0,b,c,10,10);a.fillAndStroke()};mxShapeSysMLSimpleState.prototype.foreground=function(a,d,e,b,c){a.begin();a.moveTo(0,20);a.lineTo(b,20);a.stroke()};mxCellRenderer.registerShape(mxShapeSysMLSimpleState.prototype.cst.SIMPLE_STATE,mxShapeSysMLSimpleState);
6781mxShapeSysMLSimpleState.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2.9,2.9));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-2.9,2.9));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2.9,e-2.9));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-2.9,e-2.9));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,
67821),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.75),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
6783.75),!1));return a};function mxShapeSysMLStateMachine(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLStateMachine,mxShape);mxShapeSysMLStateMachine.prototype.cst={STATE_MACHINE:"mxgraph.sysml.stateMachine"};mxShapeSysMLStateMachine.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};
6784mxShapeSysMLStateMachine.prototype.background=function(a,d,e,b,c){a.roundrect(0,0,b-10,c,10,10);a.fillAndStroke()};mxShapeSysMLStateMachine.prototype.foreground=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");a.setFillColor(d);a.ellipse(b-20,.5*c-10,20,20);a.stroke();a.ellipse(b-17,.5*c-7,14,14);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeSysMLStateMachine.prototype.cst.STATE_MACHINE,mxShapeSysMLStateMachine);
6785mxShapeSysMLStateMachine.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2.9,2.9));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-12.9,2.9));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2.9,e-2.9));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-12.9,e-2.9));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,
67861),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1,null,-10,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.75),!1,null,-10,0));a.push(new mxConnectionConstraint(new mxPoint(0,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
6787.75),!1));return a};function mxShapeSysMLX(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLX,mxShape);mxShapeSysMLX.prototype.cst={X:"mxgraph.sysml.x"};mxShapeSysMLX.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(0,0);a.lineTo(b,c);a.moveTo(0,c);a.lineTo(b,0);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeSysMLX.prototype.cst.X,mxShapeSysMLX);
6788mxShapeSysMLX.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,1),!1));return a};function mxShapeSysMLSubmachineState(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLSubmachineState,mxShape);
6789mxShapeSysMLSubmachineState.prototype.cst={SUBMACHINE_STATE:"mxgraph.sysml.submState"};mxShapeSysMLSubmachineState.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};mxShapeSysMLSubmachineState.prototype.background=function(a,d,e,b,c){a.roundrect(0,0,b-10,c,10,10);a.fillAndStroke()};
6790mxShapeSysMLSubmachineState.prototype.foreground=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");a.setFillColor(d);a.ellipse(b-20,.5*c-10,20,20);a.stroke();a.ellipse(b-17,.5*c-7,14,14);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeSysMLSubmachineState.prototype.cst.SUBMACHINE_STATE,mxShapeSysMLSubmachineState);
6791mxShapeSysMLSubmachineState.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2.9,2.9));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-12.9,2.9));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,2.9,e-2.9));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-12.9,e-2.9));a.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,
67921),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.25),!1,null,-10,0));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.75),!1,null,-10,0));a.push(new mxConnectionConstraint(new mxPoint(0,.25),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
6793.75),!1));return a};function mxShapeSysMLUseCaseExtensionPoints(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeSysMLUseCaseExtensionPoints,mxShape);mxShapeSysMLUseCaseExtensionPoints.prototype.cst={USE_CASE_EXT_PT:"mxgraph.sysml.useCaseExtPt"};mxShapeSysMLUseCaseExtensionPoints.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};
6794mxShapeSysMLUseCaseExtensionPoints.prototype.background=function(a,d,e,b,c){a.ellipse(0,0,b,c);a.fillAndStroke()};mxShapeSysMLUseCaseExtensionPoints.prototype.foreground=function(a,d,e,b,c){a.begin();a.moveTo(.02*b,.35*c);a.lineTo(.98*b,.35*c);a.stroke()};mxCellRenderer.registerShape(mxShapeSysMLUseCaseExtensionPoints.prototype.cst.USE_CASE_EXT_PT,mxShapeSysMLUseCaseExtensionPoints);
6795mxShapeSysMLUseCaseExtensionPoints.prototype.getConstraints=function(a,d,e){a=[];a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(.145,.145),!1));a.push(new mxConnectionConstraint(new mxPoint(.145,.855),!1));a.push(new mxConnectionConstraint(new mxPoint(.855,.855),!1));a.push(new mxConnectionConstraint(new mxPoint(.855,
6796.145),!1));return a};function mxShapeUMLInputPin(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeUMLInputPin,mxActor);mxShapeUMLInputPin.prototype.cst={INPUT_PIN:"mxgraph.uml25.inputPin"};
6797mxShapeUMLInputPin.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fillAndStroke();a.setShadow(!1);a.begin();a.moveTo(.75*b,.5*c);a.lineTo(.25*b,.5*c);a.moveTo(.4*b,.4*c);a.lineTo(.25*b,.5*c);a.lineTo(.4*b,.6*c);a.stroke()};mxCellRenderer.registerShape(mxShapeUMLInputPin.prototype.cst.INPUT_PIN,mxShapeUMLInputPin);mxShapeUMLInputPin.prototype.constraints=null;
6798function mxShapeUMLBehaviorAction(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeUMLBehaviorAction,mxActor);mxShapeUMLBehaviorAction.prototype.cst={BEHAVIOR_ACTION:"mxgraph.uml25.behaviorAction"};
6799mxShapeUMLBehaviorAction.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=mxUtils.getValue(this.style,"rounded",!1);e=mxUtils.getValue(this.style,"absoluteArcSize",!1);var f=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));e||(f*=Math.min(b,c));f=Math.min(f,.5*b,.5*c);d||(f=0);a.begin();d?(a.moveTo(0,f),a.arcTo(f,f,0,0,1,f,0),a.lineTo(b-f,0),a.arcTo(f,f,0,0,1,b,f),a.lineTo(b,c-f),a.arcTo(f,f,0,0,1,b-f,c),a.lineTo(f,c),a.arcTo(f,f,0,0,1,0,c-f)):(a.moveTo(0,0),a.lineTo(b,
68000),a.lineTo(b,c),a.lineTo(0,c));a.close();a.fillAndStroke();a.setShadow(!1);60<=b&&40<=c&&(a.begin(),a.moveTo(b-60,.5*c+20),a.lineTo(b-60,.5*c),a.lineTo(b-20,.5*c),a.lineTo(b-20,.5*c+20),a.moveTo(b-40,.5*c-20),a.lineTo(b-40,.5*c+20),a.stroke())};mxCellRenderer.registerShape(mxShapeUMLBehaviorAction.prototype.cst.BEHAVIOR_ACTION,mxShapeUMLBehaviorAction);mxShapeUMLBehaviorAction.prototype.constraints=null;
6801function mxShapeUMLAction(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeUMLAction,mxActor);mxShapeUMLAction.prototype.cst={ACTION:"mxgraph.uml25.action"};
6802mxShapeUMLAction.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=mxUtils.getValue(this.style,"absoluteArcSize",!1);e=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));d||(e*=Math.min(b,c));e=Math.min(e,.5*b,.5*c);a.begin();a.moveTo(0,e);a.arcTo(e,e,0,0,1,e,0);a.lineTo(b-e-10,0);a.arcTo(e,e,0,0,1,b-10,e);a.lineTo(b-10,c-e);a.arcTo(e,e,0,0,1,b-e-10,c);a.lineTo(e,c);a.arcTo(e,e,0,0,1,0,c-e);a.close();a.fillAndStroke();a.rect(b-10,.5*c-10,10,20);a.fillAndStroke()};
6803mxCellRenderer.registerShape(mxShapeUMLAction.prototype.cst.ACTION,mxShapeUMLAction);mxShapeUMLAction.prototype.constraints=null;function mxShapeUMLActionParams(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeUMLActionParams,mxActor);mxShapeUMLActionParams.prototype.cst={ACTION_PARAMS:"mxgraph.uml25.actionParams"};
6804mxShapeUMLActionParams.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=mxUtils.getValue(this.style,"absoluteArcSize",!1);e=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));d||(e*=Math.min(b,c));e=Math.min(e,.5*b,.5*c);a.begin();a.moveTo(20,e);a.arcTo(e,e,0,0,1,20+e,0);a.lineTo(b-e,0);a.arcTo(e,e,0,0,1,b,e);a.lineTo(b,c-e);a.arcTo(e,e,0,0,1,b-e,c);a.lineTo(20+e,c);a.arcTo(e,e,0,0,1,20,c-e);a.close();a.fillAndStroke();a.rect(5,.5*c-17,20,34);a.fillAndStroke();a.rect(0,
6805.5*c-13,10,10);a.fillAndStroke();a.rect(0,.5*c+3,10,10);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeUMLActionParams.prototype.cst.ACTION_PARAMS,mxShapeUMLActionParams);mxShapeUMLActionParams.prototype.constraints=null;function mxShapePidDiscInst(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapePidDiscInst,mxShape);
6806mxShapePidDiscInst.prototype.cst={SHAPE_DISC_INST:"mxgraph.pid2inst.discInst",MOUNTING:"mounting",FIELD:"field",ROOM:"room",INACCESSIBLE:"inaccessible",LOCAL:"local"};mxShapePidDiscInst.prototype.customProperties=[{name:"mounting",dispName:"Mounting",type:"enum",defVal:"field",enumList:[{val:"field",dispName:"Field"},{val:"room",dispName:"Room"},{val:"inaccessible",dispName:"Inaccessible"},{val:"local",dispName:"Local"}]}];
6807mxShapePidDiscInst.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};mxShapePidDiscInst.prototype.background=function(a,d,e,b,c){a.ellipse(0,0,b,c);a.fillAndStroke()};
6808mxShapePidDiscInst.prototype.foreground=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxShapePidDiscInst.prototype.cst.MOUNTING,"field");d===mxShapePidDiscInst.prototype.cst.ROOM?(a.begin(),a.moveTo(0,.5*c),a.lineTo(b,.5*c),a.stroke()):d===mxShapePidDiscInst.prototype.cst.INACCESSIBLE?(a.setDashed(!0),a.begin(),a.moveTo(0,.5*c),a.lineTo(b,.5*c),a.stroke()):d===mxShapePidDiscInst.prototype.cst.LOCAL&&(a.begin(),a.moveTo(.005*b,.48*c),a.lineTo(.995*b,.48*c),a.moveTo(.005*b,.52*c),a.lineTo(.995*
6809b,.52*c),a.stroke())};mxCellRenderer.registerShape(mxShapePidDiscInst.prototype.cst.SHAPE_DISC_INST,mxShapePidDiscInst);
6810mxShapePidDiscInst.prototype.constraints=[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),!0),new mxConnectionConstraint(new mxPoint(.145,.145),!1),new mxConnectionConstraint(new mxPoint(.145,.855),!1),new mxConnectionConstraint(new mxPoint(.855,.145),!1),new mxConnectionConstraint(new mxPoint(.855,.855),!1)];
6811function mxShapePidSharedCont(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapePidSharedCont,mxShape);mxShapePidSharedCont.prototype.cst={SHAPE_SHARED_CONT:"mxgraph.pid2inst.sharedCont",MOUNTING:"mounting",FIELD:"field",ROOM:"room",INACCESSIBLE:"inaccessible",LOCAL:"local"};
6812mxShapePidSharedCont.prototype.customProperties=[{name:"mounting",dispName:"Mounting",type:"enum",defVal:"field",enumList:[{val:"field",dispName:"Field"},{val:"room",dispName:"Room"},{val:"inaccessible",dispName:"Inaccessible"},{val:"local",dispName:"Local"}]}];mxShapePidSharedCont.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};mxShapePidSharedCont.prototype.background=function(a,d,e,b,c){a.rect(0,0,b,c);a.fillAndStroke()};
6813mxShapePidSharedCont.prototype.foreground=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxShapePidSharedCont.prototype.cst.MOUNTING,"field");a.ellipse(0,0,b,c);a.fillAndStroke();d===mxShapePidSharedCont.prototype.cst.ROOM?(a.begin(),a.moveTo(0,.5*c),a.lineTo(b,.5*c),a.stroke()):d===mxShapePidSharedCont.prototype.cst.INACCESSIBLE?(a.setDashed(!0),a.begin(),a.moveTo(0,.5*c),a.lineTo(b,.5*c),a.stroke()):d===mxShapePidDiscInst.prototype.cst.LOCAL&&(a.begin(),a.moveTo(.005*b,.48*c),a.lineTo(.995*b,
6814.48*c),a.moveTo(.005*b,.52*c),a.lineTo(.995*b,.52*c),a.stroke())};mxCellRenderer.registerShape(mxShapePidSharedCont.prototype.cst.SHAPE_SHARED_CONT,mxShapePidSharedCont);
6815mxShapePidSharedCont.prototype.constraints=[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),!0),new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];
6816function mxShapePidCompFunc(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapePidCompFunc,mxShape);mxShapePidCompFunc.prototype.cst={SHAPE_COMP_FUNC:"mxgraph.pid2inst.compFunc",MOUNTING:"mounting",FIELD:"field",ROOM:"room",INACCESSIBLE:"inaccessible",LOCAL:"local"};
6817mxShapePidCompFunc.prototype.customProperties=[{name:"mounting",dispName:"Mounting",type:"enum",defVal:"field",enumList:[{val:"field",dispName:"Field"},{val:"room",dispName:"Room"},{val:"inaccessible",dispName:"Inaccessible"},{val:"local",dispName:"Local"}]}];mxShapePidCompFunc.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};
6818mxShapePidCompFunc.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(0,.5*c);a.lineTo(.25*b,0);a.lineTo(.75*b,0);a.lineTo(b,.5*c);a.lineTo(.75*b,c);a.lineTo(.25*b,c);a.close();a.fillAndStroke()};
6819mxShapePidCompFunc.prototype.foreground=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxShapePidCompFunc.prototype.cst.MOUNTING,"field");d===mxShapePidCompFunc.prototype.cst.ROOM?(a.begin(),a.moveTo(0,.5*c),a.lineTo(b,.5*c),a.stroke()):d===mxShapePidCompFunc.prototype.cst.INACCESSIBLE?(a.setDashed(!0),a.begin(),a.moveTo(0,.5*c),a.lineTo(b,.5*c),a.stroke()):d===mxShapePidDiscInst.prototype.cst.LOCAL&&(a.begin(),a.moveTo(.01*b,.48*c),a.lineTo(.99*b,.48*c),a.moveTo(.01*b,.52*c),a.lineTo(.99*b,.52*
6820c),a.stroke())};mxCellRenderer.registerShape(mxShapePidCompFunc.prototype.cst.SHAPE_COMP_FUNC,mxShapePidCompFunc);
6821mxShapePidCompFunc.prototype.constraints=[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),!0),new mxConnectionConstraint(new mxPoint(.25,0),!1),new mxConnectionConstraint(new mxPoint(.75,0),!1),new mxConnectionConstraint(new mxPoint(.25,1),!1),new mxConnectionConstraint(new mxPoint(.75,1),!1)];
6822function mxShapePidProgLogCont(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapePidProgLogCont,mxShape);mxShapePidProgLogCont.prototype.cst={SHAPE_PROG_LOG_CONT:"mxgraph.pid2inst.progLogCont",MOUNTING:"mounting",FIELD:"field",ROOM:"room",INACCESSIBLE:"inaccessible",LOCAL:"local"};
6823mxShapePidProgLogCont.prototype.customProperties=[{name:"mounting",dispName:"Mounting",type:"enum",defVal:"field",enumList:[{val:"field",dispName:"Field"},{val:"room",dispName:"Room"},{val:"inaccessible",dispName:"Inaccessible"},{val:"local",dispName:"Local"}]}];mxShapePidProgLogCont.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};mxShapePidProgLogCont.prototype.background=function(a,d,e,b,c){a.rect(0,0,b,c);a.fillAndStroke()};
6824mxShapePidProgLogCont.prototype.foreground=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxShapePidProgLogCont.prototype.cst.MOUNTING,"field");a.begin();a.moveTo(0,.5*c);a.lineTo(.5*b,0);a.lineTo(b,.5*c);a.lineTo(.5*b,c);a.close();a.stroke();d===mxShapePidProgLogCont.prototype.cst.ROOM?(a.begin(),a.moveTo(0,.5*c),a.lineTo(b,.5*c),a.stroke()):d===mxShapePidProgLogCont.prototype.cst.INACCESSIBLE?(a.setDashed(!0),a.begin(),a.moveTo(0,.5*c),a.lineTo(b,.5*c),a.stroke()):d===mxShapePidDiscInst.prototype.cst.LOCAL&&
6825(a.begin(),a.moveTo(.02*b,.48*c),a.lineTo(.98*b,.48*c),a.moveTo(.02*b,.52*c),a.lineTo(.98*b,.52*c),a.stroke())};mxCellRenderer.registerShape(mxShapePidProgLogCont.prototype.cst.SHAPE_PROG_LOG_CONT,mxShapePidProgLogCont);
6826mxShapePidProgLogCont.prototype.constraints=[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),!0),new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];
6827function mxShapePidIndicator(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapePidIndicator,mxShape);mxShapePidIndicator.prototype.cst={SHAPE_INDICATOR:"mxgraph.pid2inst.indicator",MOUNTING:"mounting",FIELD:"field",ROOM:"room",INACCESSIBLE:"inaccessible",LOCAL:"local",IND_TYPE:"indType",INSTRUMENT:"inst",CONTROL:"ctrl",FUNCTION:"func",PLC:"plc"};
6828mxShapePidIndicator.prototype.customProperties=[{name:"mounting",dispName:"Mounting",type:"enum",defVal:"field",enumList:[{val:"field",dispName:"Field"},{val:"room",dispName:"Room"},{val:"inaccessible",dispName:"Inaccessible"},{val:"local",dispName:"Local"}]},{name:"indType",dispName:"Type",type:"enum",defVal:"inst",enumList:[{val:"inst",dispName:"Instrument"},{val:"ctrl",dispName:"Control"},{val:"func",dispName:"Function"},{val:"plc",dispName:"PLC"}]}];
6829mxShapePidIndicator.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};
6830mxShapePidIndicator.prototype.background=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxShapePidIndicator.prototype.cst.IND_TYPE,"inst");a.begin();a.moveTo(.5*b,b);a.lineTo(.5*b,c);a.stroke();d===mxShapePidIndicator.prototype.cst.INSTRUMENT?(a.ellipse(0,0,b,b),a.fillAndStroke()):d===mxShapePidIndicator.prototype.cst.CONTROL?(a.rect(0,0,b,b),a.fillAndStroke()):d===mxShapePidIndicator.prototype.cst.FUNCTION?(a.begin(),a.moveTo(0,.5*b),a.lineTo(.25*b,0),a.lineTo(.75*b,0),a.lineTo(b,.5*b),a.lineTo(.75*
6831b,b),a.lineTo(.25*b,b),a.close(),a.fillAndStroke()):d===mxShapePidIndicator.prototype.cst.PLC&&(a.rect(0,0,b,b),a.fillAndStroke())};
6832mxShapePidIndicator.prototype.foreground=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxShapePidIndicator.prototype.cst.MOUNTING,"field");e=mxUtils.getValue(this.style,mxShapePidIndicator.prototype.cst.IND_TYPE,"inst");e===mxShapePidIndicator.prototype.cst.CONTROL?(a.ellipse(0,0,b,b),a.stroke()):e===mxShapePidIndicator.prototype.cst.PLC&&(a.begin(),a.moveTo(0,.5*b),a.lineTo(.5*b,0),a.lineTo(b,.5*b),a.lineTo(.5*b,b),a.close(),a.stroke());d===mxShapePidIndicator.prototype.cst.ROOM?(a.begin(),a.moveTo(0,
6833.5*b),a.lineTo(b,.5*b),a.stroke()):d===mxShapePidIndicator.prototype.cst.INACCESSIBLE?(a.setDashed(!0),a.begin(),a.moveTo(0,.5*b),a.lineTo(b,.5*b),a.stroke()):d===mxShapePidIndicator.prototype.cst.LOCAL&&(a.begin(),a.moveTo(.005*b,.48*b),a.lineTo(.995*b,.48*b),a.moveTo(.005*b,.52*b),a.lineTo(.995*b,.52*b),a.stroke())};mxCellRenderer.registerShape(mxShapePidIndicator.prototype.cst.SHAPE_INDICATOR,mxShapePidIndicator);
6834mxShapePidIndicator.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,1),!0)];function mxShapePidLogic(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapePidLogic,mxShape);mxShapePidLogic.prototype.cst={SHAPE_LOGIC:"mxgraph.pid2inst.logic",MOUNTING:"mounting",FIELD:"field",ROOM:"room",INACCESSIBLE:"inaccessible",LOCAL:"local"};
6835mxShapePidLogic.prototype.customProperties=[{name:"mounting",dispName:"Mounting",type:"enum",defVal:"field",enumList:[{val:"field",dispName:"Field"},{val:"room",dispName:"Room"},{val:"inaccessible",dispName:"Inaccessible"},{val:"local",dispName:"Local"}]}];mxShapePidLogic.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};
6836mxShapePidLogic.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(0,.5*c);a.lineTo(.5*b,0);a.lineTo(b,.5*c);a.lineTo(.5*b,c);a.close();a.fillAndStroke()};
6837mxShapePidLogic.prototype.foreground=function(a,d,e,b,c){d=mxUtils.getValue(this.style,mxShapePidLogic.prototype.cst.MOUNTING,"field");d===mxShapePidLogic.prototype.cst.ROOM?(a.begin(),a.moveTo(0,.5*c),a.lineTo(b,.5*c),a.stroke()):d===mxShapePidLogic.prototype.cst.INACCESSIBLE?(a.setDashed(!0),a.begin(),a.moveTo(0,.5*c),a.lineTo(b,.5*c),a.stroke()):d===mxShapePidLogic.prototype.cst.LOCAL&&(a.begin(),a.moveTo(.02*b,.48*c),a.lineTo(.98*b,.48*c),a.moveTo(.02*b,.52*c),a.lineTo(.98*b,.52*c),a.stroke())};
6838mxCellRenderer.registerShape(mxShapePidLogic.prototype.cst.SHAPE_LOGIC,mxShapePidLogic);
6839mxShapePidLogic.prototype.constraints=[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),!0),new mxConnectionConstraint(new mxPoint(.25,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.75),!1),new mxConnectionConstraint(new mxPoint(.75,.25),!1),new mxConnectionConstraint(new mxPoint(.75,.75),!1)];
6840function mxShapePidFan(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapePidFan,mxShape);mxShapePidFan.prototype.cst={SHAPE_FAN:"mxgraph.pid2misc.fan",FAN_TYPE:"fanType",COMMON:"common",AXIAL:"axial",RADIAL:"radial"};mxShapePidFan.prototype.customProperties=[{name:"fanType",dispName:"Type",type:"enum",defVal:"field",enumList:[{val:"common",dispName:"Common"},{val:"axial",dispName:"Axial"},{val:"radial",dispName:"Radial"}]}];
6841mxShapePidFan.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};mxShapePidFan.prototype.background=function(a,d,e,b,c){a.ellipse(0,0,b,c);a.fillAndStroke()};
6842mxShapePidFan.prototype.foreground=function(a,d,e,b,c){a.begin();a.moveTo(.3*b,.045*c);a.lineTo(.97*b,.33*c);a.moveTo(.3*b,.955*c);a.lineTo(.97*b,.67*c);a.moveTo(.4228*b,.3655*c);a.arcTo(.15*b,.03*c,50,0,1,.5*b,.5*c);a.arcTo(.15*b,.03*c,50,0,1,.3772*b,.4045*c);a.arcTo(.15*b,.03*c,50,0,1,.3025*b,.271*c);a.arcTo(.15*b,.03*c,50,0,1,.4228*b,.3655*c);a.close();a.moveTo(.377*b,.5973*c);a.arcTo(.15*b,.03*c,-50,0,1,.4966*b,.5019*c);a.arcTo(.15*b,.03*c,-50,0,1,.423*b,.636*c);a.arcTo(.15*b,.03*c,-50,0,1,.3034*
6843b,.7314*c);a.arcTo(.15*b,.03*c,-50,0,1,.377*b,.5973*c);a.close();a.stroke();a.ellipse(.5*b,.47*c,.3*b,.06*c);a.stroke();d=mxUtils.getValue(this.style,mxShapePidFan.prototype.cst.FAN_TYPE,"common");d===mxShapePidFan.prototype.cst.AXIAL?(a.begin(),a.moveTo(.1*b,.5*c),a.lineTo(.3*b,.5*c),a.stroke()):d===mxShapePidFan.prototype.cst.RADIAL&&(a.begin(),a.moveTo(.2*b,.4*c),a.lineTo(.2*b,.6*c),a.stroke())};mxCellRenderer.registerShape(mxShapePidFan.prototype.cst.SHAPE_FAN,mxShapePidFan);
6844function mxShapePidColumn(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapePidColumn,mxShape);mxShapePidColumn.prototype.cst={SHAPE_COLUMN:"mxgraph.pid2misc.column",COLUMN_TYPE:"columnType",COMMON:"common",FIXED:"fixed",FLUIDIZED:"fluid",BAFFLE:"baffle",VALVE:"valve",BUBBLE:"bubble",NOZZLE:"nozzle",TRAY:"tray"};
6845mxShapePidColumn.prototype.customProperties=[{name:"columnType",dispName:"Type",type:"enum",defVal:"field",enumList:[{val:"common",dispName:"Common"},{val:"fixed",dispName:"Fixed"},{val:"fluid",dispName:"Fluid"},{val:"baffle",dispName:"Baffle"},{val:"valve",dispName:"Valve"},{val:"bubble",dispName:"Bubble"},{val:"nozzle",dispName:"Nozzle"},{val:"tray",dispName:"Tray"}]}];
6846mxShapePidColumn.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)};mxShapePidColumn.prototype.background=function(a,d,e,b,c){c=Math.max(c,30);a.begin();a.moveTo(0,15);a.arcTo(.5*b,15,0,0,1,b,15);a.lineTo(b,c-15);a.arcTo(.5*b,15,0,0,1,0,c-15);a.close();a.fillAndStroke()};
6847mxShapePidColumn.prototype.foreground=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxShapePidColumn.prototype.cst.COLUMN_TYPE,"common");if(f===mxShapePidColumn.prototype.cst.FIXED){var g=1.2*b;d=c-50;e=d%g*.5+25;a.begin();for(c=0;c<=d-g;c+=g)a.moveTo(0,c+e+.1*g),a.lineTo(b,c+e+.1*g),a.moveTo(0,c+e+.9*g),a.lineTo(b,c+e+.9*g),a.moveTo(0,c+e+.1*g),a.lineTo(b,c+e+.9*g),a.moveTo(0,c+e+.9*g),a.lineTo(b,c+e+.1*g);a.stroke()}else if(f===mxShapePidColumn.prototype.cst.TRAY){g=.2*b;d=c-50;e=d%g*.5+
684825;a.setDashed(!0);a.begin();for(c=0;c<=d;c+=g)a.moveTo(0,c+e),a.lineTo(b,c+e);a.stroke()}else if(f===mxShapePidColumn.prototype.cst.FLUIDIZED){g=.1*b;f=.1*b;d=c-50;e=25;var h=.02*Math.min(b,c);mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff");var k=mxUtils.getValue(this.style,mxConstants.STYLE_DASHED,"0"),l=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");a.setFillColor(l);a.setDashed(!0);a.begin();a.moveTo(0,25);a.lineTo(b,25);a.moveTo(0,c-25);a.lineTo(b,c-25);
6849a.stroke();"0"===k?a.setDashed(!1):a.setDashed(!0);k=0;for(c=e+.5*g;c<d+e-h;c+=g){var m=f,l=k%2;0===l&&(m=.5*f);for(l=m;l<b;l+=f)a.ellipse(l,c,h,h),a.fillAndStroke();k++}}else if(f===mxShapePidColumn.prototype.cst.BAFFLE){g=.2*b;d=c-50-g;e=25+.5*g;a.setDashed(!0);a.begin();a.moveTo(0,25);a.lineTo(b,25);a.moveTo(0,c-25);a.lineTo(b,c-25);a.stroke();k=0;a.begin();for(c=e+.5*g;c<d+e;c+=g)l=k%2,0===l?(a.moveTo(0,c),a.lineTo(.9*b,c),a.lineTo(.9*b,c-.3*g)):(a.moveTo(.1*b,c-.5*g),a.lineTo(.1*b,c),a.lineTo(b,
6850c)),k++;a.stroke()}else if(f===mxShapePidColumn.prototype.cst.VALVE||f===mxShapePidColumn.prototype.cst.BUBBLE){g=.2*b;d=c-50-g;e=25+.5*g;k=mxUtils.getValue(this.style,mxConstants.STYLE_DASHED,"0");a.setFillColor(l);a.setDashed(!0);a.begin();a.moveTo(0,25);a.lineTo(b,25);a.moveTo(0,c-25);a.lineTo(b,c-25);a.stroke();"0"===k?a.setDashed(!1):a.setDashed(!0);a.begin();for(c=e+.5*g;c<d+e;c+=g)a.moveTo(0,c),a.lineTo(.4*b,c),f===mxShapePidColumn.prototype.cst.VALVE?(a.moveTo(.4*b,c-.2*g),a.lineTo(.6*b,c-
6851.2*g)):f===mxShapePidColumn.prototype.cst.BUBBLE&&(a.moveTo(.25*b,c-.2*g),a.arcTo(3*g,3*g,0,0,1,.75*b,c-.2*g)),a.moveTo(.6*b,c),a.lineTo(b,c);a.stroke()}else if(f===mxShapePidColumn.prototype.cst.NOZZLE){g=1.2*b;d=c-50;e=d%g*.5+25;k=mxUtils.getValue(this.style,mxConstants.STYLE_DASHED,0);for(c=0;c<=d-g;c+=g)a.setDashed(!0),a.begin(),a.moveTo(0,c+e+.2*g),a.lineTo(b,c+e+.2*g),a.moveTo(0,c+e+.8*g),a.lineTo(b,c+e+.8*g),a.stroke(),0===k?a.setDashed(!1):a.setDashed(!0),a.begin(),a.moveTo(0,c+e+.2*g),a.lineTo(b,
6852c+e+.8*g),a.moveTo(0,c+e+.8*g),a.lineTo(b,c+e+.2*g),0!==c&&(a.moveTo(0,c+e),a.lineTo(.5*b,c+e),a.moveTo(.5*b-.08*g,c+e+.08*g),a.lineTo(.5*b,c+e),a.lineTo(.5*b+.08*g,c+e+.08*g),a.moveTo(.5*b,c+e),a.lineTo(.5*b,c+e+.08*g)),a.stroke();a.stroke()}};mxCellRenderer.registerShape(mxShapePidColumn.prototype.cst.SHAPE_COLUMN,mxShapePidColumn);function mxShapePidConveyor(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapePidConveyor,mxShape);
6853mxShapePidConveyor.prototype.cst={SHAPE_CONVEYOR:"mxgraph.pid2misc.conveyor"};mxShapePidConveyor.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1)};
6854mxShapePidConveyor.prototype.background=function(a,d,e,b,c){d=Math.min(c,.5*b);a.begin();a.moveTo(.5*d,0);a.lineTo(b-.5*d,0);a.stroke();a.ellipse(0,0,d,d);a.fillAndStroke();a.ellipse(b-d,0,d,d);a.fillAndStroke();a.begin();a.moveTo(.5*d,d);a.lineTo(b-.5*d,d);a.stroke();b-=1.8*d;e=.9*d;c=.7*d;for(var f=0;f<b;f+=c)a.rect(e+f,0,.2*d,.1*d),a.fillAndStroke(),a.rect(e+f,.9*d,.2*d,.1*d),a.fillAndStroke()};mxCellRenderer.registerShape(mxShapePidConveyor.prototype.cst.SHAPE_CONVEYOR,mxShapePidConveyor);
6855function mxShapePidValve(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapePidValve,mxShape);
6856mxShapePidValve.prototype.cst={SHAPE_VALVE:"mxgraph.pid2valves.valve",DEFAULT_STATE:"defState",CLOSED:"closed",OPEN:"open",ACTUATOR:"actuator",MANUAL:"man",DIAPHRAGM:"diaph",BALANCED_DIAPHRAGM:"balDiaph",MOTOR:"motor",NONE:"none",SPRING:"spring",PILOT:"pilot",POWERED:"powered",SOLENOID:"solenoid",SOLENOID_MANUAL_RESET:"solenoidManRes",SINGLE_ACTING:"singActing",DOUBLE_ACTING:"dblActing",PILOT_CYLINDER:"pilotCyl",DIGITAL:"digital",WEIGHT:"weight",KEY:"key",ELECTRO_HYDRAULIC:"elHyd",VALVE_TYPE:"valveType",
6857BUTTERFLY:"butterfly",CHECK:"check",GATE:"gate",GLOBE:"globe",NEEDLE:"needle",PLUG:"plug",SELF_DRAINING:"selfDrain",ANGLE:"angle",ANGLE_GLOBE:"angleGlobe",THREE_WAY:"threeWay",ANGLE_BLOWDOWN:"angBlow",BALL:"ball"};
6858mxShapePidValve.prototype.customProperties=[{name:"defState",dispName:"Default State",type:"enum",defVal:"open",enumList:[{val:"closed",dispName:"Closed"},{val:"open",dispName:"Open"}]},{name:"actuator",dispName:"Actuator",type:"enum",defVal:"man",enumList:[{val:"man",dispName:"Manual"},{val:"diaph",dispName:"Diphragm"},{val:"balDiaph",dispName:"Balanced Diaphragm"},{val:"motor",dispName:"Motor"},{val:"none",dispName:"None"},{val:"spring",dispName:"Spring"},{val:"pilot",dispName:"Pilot"},{val:"powered",
6859dispName:"Powered"},{val:"solenoid",dispName:"Solenoid"},{val:"solenoidManRes",dispName:"Solenoid w/ Manual Reset"},{val:"singActing",dispName:"Single Acting"},{val:"dblActing",dispName:"Double Acting"},{val:"pilotCyl",dispName:"Pilot Cylinder"},{val:"digital",dispName:"Digital"},{val:"weight",dispName:"Weight"},{val:"key",dispName:"Key"},{val:"elHyd",dispName:"Electro-Hidraulic"}]},{name:"valveType",dispName:"Type",type:"enum",defVal:"gate",enumList:[{val:"butterfly",dispName:"Butterfly"},{val:"check",
6860dispName:"check"},{val:"gate",dispName:"Gate"},{val:"globe",dispName:"Globe"},{val:"needle",dispName:"Needle"},{val:"plug",dispName:"Plug"},{val:"selfDrain",dispName:"Self Draining"},{val:"angle",dispName:"Angle"},{val:"angleGlobe",dispName:"Angle Globe"},{val:"threeWay",dispName:"Three Way"},{val:"ball",dispName:"Ball"}]}];
6861mxShapePidValve.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxShapePidValve.prototype.cst.VALVE_TYPE,"gate"),g=mxUtils.getValue(this.style,mxShapePidValve.prototype.cst.ACTUATOR,mxShapePidValve.prototype.cst.NONE),h=0;"none"!==g&&(h=this.isAngleVariant(f)?.3333*c:.4*c);a.translate(d,e);a.setLineJoin("round");this.background(a,d,e,b,c,f,g,h);a.setShadow(!1);this.foreground(a,d,e,b,c,f,g,h)};
6862mxShapePidValve.prototype.background=function(a,d,e,b,c,f,g,h){g!==mxShapePidValve.prototype.cst.NONE&&(this.isAngleVariant(f)?this.drawActuatorBg(a,d,e,b,c/1.2,g,h):this.drawActuatorBg(a,d,e,b,c,g,h));this.isGateVariant(f)?this.drawGateVariantBg(a,0,0,b,c,f,g,h):this.isAngleVariant(f)?this.drawAngleVariantBg(a,0,0,b,c,f,g,h):f===mxShapePidValve.prototype.cst.BUTTERFLY?this.drawButterflyValve(a,0,0,b,c,g,h):f===mxShapePidValve.prototype.cst.CHECK&&this.drawCheckValve(a,0,0,b,c,g,h)};
6863mxShapePidValve.prototype.foreground=function(a,d,e,b,c,f,g,h){f=mxUtils.getValue(this.style,mxShapePidValve.prototype.cst.VALVE_TYPE,"gate");g!==mxShapePidValve.prototype.cst.NONE&&(this.isAngleVariant(f)?this.drawActuatorFg(a,d,e,b,c/1.2,g,h):this.drawActuatorFg(a,d,e,b,c,g,h));this.isGateVariant(f)&&this.drawGateVariantFg(a,0,0,b,c,f,g,h);this.isAngleVariant(f)&&this.drawAngleVariantFg(a,0,0,b,c,f,g,h)};
6864mxShapePidValve.prototype.drawActuatorBg=function(a,d,e,b,c,f){this.isSquareVariant(f)?(a.translate(.325*b,0),this.drawSquareAct(a,.35*b,.7*c,f),a.translate(.325*-b,0)):f===mxShapePidValve.prototype.cst.MANUAL?(a.translate(.25*b,.15*c),this.drawManAct(a,.5*b,.55*c),a.translate(.25*-b,.15*-c)):f===mxShapePidValve.prototype.cst.DIAPHRAGM?(a.translate(.25*b,.1*c),this.drawDiaphAct(a,.5*b,.6*c),a.translate(.25*-b,.1*-c)):f===mxShapePidValve.prototype.cst.BALANCED_DIAPHRAGM?(a.translate(.25*b,.1*c),this.drawBalDiaphActBg(a,
6865.5*b,.6*c),a.translate(.25*-b,.1*-c)):f===mxShapePidValve.prototype.cst.MOTOR||f===mxShapePidValve.prototype.cst.ELECTRO_HYDRAULIC?(a.translate(.325*b,0),this.drawCircleAct(a,.35*b,.7*c,f),a.translate(.325*-b,0)):f===mxShapePidValve.prototype.cst.SPRING?(a.translate(.36*b,0),this.drawSpringAct(a,.28*b,.7*c),a.translate(.36*-b,0)):f===mxShapePidValve.prototype.cst.SOLENOID_MANUAL_RESET?(a.translate(.325*b,0),this.drawSolenoidManResetAct(a,.575*b,.7*c),a.translate(.325*-b,0)):f===mxShapePidValve.prototype.cst.SINGLE_ACTING?
6866(a.translate(.35*b,0),this.drawSingActingActBg(a,.65*b,.7*c),a.translate(.35*-b,0)):f===mxShapePidValve.prototype.cst.DOUBLE_ACTING?(a.translate(.35*b,0),this.drawDblActingActBg(a,.65*b,.7*c),a.translate(.35*-b,0)):f===mxShapePidValve.prototype.cst.PILOT_CYLINDER?(a.translate(.35*b,0),this.drawPilotCylinderActBg(a,.65*b,.7*c),a.translate(.35*-b,0)):f===mxShapePidValve.prototype.cst.ANGLE_BLOWDOWN&&(a.translate(.5*b,.2*c),this.drawAngleBlowdownAct(a,.4*b,.5*c),a.translate(.5*-b,.2*-c))};
6867mxShapePidValve.prototype.drawActuatorFg=function(a,d,e,b,c,f){if(f===mxShapePidValve.prototype.cst.BALANCED_DIAPHRAGM)a.translate(.25*b,.1*c),this.drawBalDiaphActFg(a,.5*b,.6*c),a.translate(.25*-b,.1*-c);else if(f===mxShapePidValve.prototype.cst.SINGLE_ACTING||f===mxShapePidValve.prototype.cst.DOUBLE_ACTING||f===mxShapePidValve.prototype.cst.PILOT_CYLINDER)a.translate(.35*b,0),this.drawActingActFg(a,.65*b,.7*c),a.translate(.35*-b,0)};
6868mxShapePidValve.prototype.drawManAct=function(a,d,e){a.begin();a.moveTo(0,0);a.lineTo(d,0);a.moveTo(.5*d,0);a.lineTo(.5*d,e);a.stroke()};mxShapePidValve.prototype.drawDiaphAct=function(a,d,e){a.begin();a.moveTo(.5*d,.2*e);a.lineTo(.5*d,e);a.stroke();a.begin();a.moveTo(0,.2*e);a.arcTo(.6*d,.4*e,0,0,1,d,.2*e);a.close();a.fillAndStroke()};mxShapePidValve.prototype.drawBalDiaphActBg=function(a,d,e){a.ellipse(0,0,d,.3*e);a.fillAndStroke();a.begin();a.moveTo(.5*d,.3*e);a.lineTo(.5*d,e);a.stroke()};
6869mxShapePidValve.prototype.drawBalDiaphActFg=function(a,d,e){a.begin();a.moveTo(0,.15*e);a.lineTo(d,.15*e);a.stroke()};
6870mxShapePidValve.prototype.drawCircleAct=function(a,d,e,b){a.ellipse(0,0,d,.5*e);a.fillAndStroke();a.begin();a.moveTo(.5*d,.5*e);a.lineTo(.5*d,e);a.stroke();var c="";b===mxShapePidValve.prototype.cst.MOTOR?c="M":b===mxShapePidValve.prototype.cst.ELECTRO_HYDRAULIC&&(c="E/H");a.setFontStyle(1);a.setFontFamily("Helvetica");a.setFontSize(.4*Math.min(d,e));a.text(.5*d,.25*e,0,0,c,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};
6871mxShapePidValve.prototype.drawSpringAct=function(a,d,e){a.begin();a.moveTo(.5*d,0);a.lineTo(.5*d,e);a.moveTo(.32*d,.16*e);a.lineTo(.68*d,.08*e);a.moveTo(.21*d,.32*e);a.lineTo(.79*d,.2*e);a.moveTo(.1*d,.52*e);a.lineTo(.9*d,.36*e);a.moveTo(0,.72*e);a.lineTo(d,.5*e);a.stroke()};
6872mxShapePidValve.prototype.drawSolenoidManResetAct=function(a,d,e){a.rect(0,0,.61*d,.46*e);a.fillAndStroke();a.begin();a.moveTo(.56*d,.6*e);a.lineTo(.78*d,.5*e);a.lineTo(d,.6*e);a.lineTo(.78*d,.7*e);a.close();a.fillAndStroke();a.begin();a.moveTo(.305*d,.46*e);a.lineTo(.305*d,e);a.moveTo(.305*d,.6*e);a.lineTo(.56*d,.6*e);a.stroke();a.setFontStyle(1);a.setFontFamily("Helvetica");a.setFontSize(.4*Math.min(d,e));a.text(.305*d,.23*e,0,0,"S",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);
6873a.setFontStyle(0);a.setFontSize(.15*Math.min(d,e));a.text(.78*d,.6*e,0,0,"R",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxShapePidValve.prototype.drawSingActingActBg=function(a,d,e){a.rect(0,0,.46*d,.46*e);a.fillAndStroke();a.begin();a.moveTo(.23*d,.46*e);a.lineTo(.23*d,e);a.moveTo(.46*d,.23*e);a.lineTo(d,.23*e);a.moveTo(.77*d,.15*e);a.lineTo(.69*d,.31*e);a.moveTo(.82*d,.15*e);a.lineTo(.74*d,.31*e);a.stroke()};
6874mxShapePidValve.prototype.drawActingActFg=function(a,d,e){a.begin();a.moveTo(.23*d,.23*e);a.lineTo(.23*d,.46*e);a.moveTo(0,.23*e);a.lineTo(.46*d,.23*e);a.stroke()};
6875mxShapePidValve.prototype.drawDblActingActBg=function(a,d,e){a.rect(0,0,.46*d,.46*e);a.fillAndStroke();a.begin();a.moveTo(.23*d,.46*e);a.lineTo(.23*d,e);a.moveTo(.46*d,.115*e);a.lineTo(d,.115*e);a.moveTo(.77*d,.035*e);a.lineTo(.69*d,.195*e);a.moveTo(.82*d,.035*e);a.lineTo(.74*d,.195*e);a.moveTo(.46*d,.345*e);a.lineTo(d,.345*e);a.moveTo(.77*d,.265*e);a.lineTo(.69*d,.425*e);a.moveTo(.82*d,.265*e);a.lineTo(.74*d,.425*e);a.stroke()};
6876mxShapePidValve.prototype.drawPilotCylinderActBg=function(a,d,e){a.rect(0,0,.46*d,.46*e);a.fillAndStroke();a.begin();a.moveTo(.23*d,.46*e);a.lineTo(.23*d,e);a.moveTo(.46*d,.23*e);a.lineTo(.77*d,.23*e);a.stroke();a.rect(.77*d,.115*e,.23*d,.23*e);a.fillAndStroke();a.setFontStyle(0);a.setFontFamily("Helvetica");a.setFontSize(.15*Math.min(d,e));a.text(.885*d,.23*e,0,0,"P",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};
6877mxShapePidValve.prototype.drawAngleBlowdownAct=function(a,d,e){a.begin();a.moveTo(.34*d,0);a.lineTo(d,.405*e);a.moveTo(0,e);a.lineTo(.665*d,.205*e);a.stroke()};
6878mxShapePidValve.prototype.drawSquareAct=function(a,d,e,b){a.rect(0,0,d,.5*e);a.fillAndStroke();a.begin();a.moveTo(.5*d,.5*e);a.lineTo(.5*d,e);a.stroke();var c="";b===mxShapePidValve.prototype.cst.PILOT?c="P":b===mxShapePidValve.prototype.cst.SOLENOID?c="S":b===mxShapePidValve.prototype.cst.DIGITAL?c="D":b===mxShapePidValve.prototype.cst.WEIGHT?c="W":b===mxShapePidValve.prototype.cst.KEY&&(c="K");a.setFontStyle(1);a.setFontFamily("Helvetica");a.setFontSize(.4*Math.min(d,e));a.text(.5*d,.25*e,0,0,c,
6879mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};
6880mxShapePidValve.prototype.drawGateVariantFg=function(a,d,e,b,c,f,g,h){mxUtils.getValue(this.style,mxShapePidValve.prototype.cst.DEFAULT_STATE,"open");g=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff");var k=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");f===mxShapePidValve.prototype.cst.BALL?(a.ellipse(d+.3*b,e+h+.18*(c-h),.4*b,.64*(c-h)),a.fillAndStroke()):f===mxShapePidValve.prototype.cst.GLOBE?(a.ellipse(d+.3*b,e+h+.18*(c-h),.4*b,.64*(c-h)),a.setFillColor(k),
6881a.fillAndStroke(),a.setFillColor(g)):f===mxShapePidValve.prototype.cst.PLUG?this.drawPlug(a,d+.4*b,e+h+.25*(c-h),.2*b,.5*(c-h)):f===mxShapePidValve.prototype.cst.NEEDLE?this.drawNeedle(a,d+.45*b,e+h+.1*(c-h),.1*b,.9*(c-h)):f===mxShapePidValve.prototype.cst.SELF_DRAINING&&this.drawDrain(a,d+.48*b,e+h+.5*(c-h),.04*b,.49*(c-h))};
6882mxShapePidValve.prototype.drawAngleVariantFg=function(a,d,e,b,c,f,g,h){mxUtils.getValue(this.style,mxShapePidValve.prototype.cst.DEFAULT_STATE,"open");d=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff");e=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");f===mxShapePidValve.prototype.cst.ANGLE_GLOBE&&("none"===g?a.ellipse(.34*b,.175*c,.32*b,.4*c):a.ellipse(.34*b,.45*c,.32*b,.2667*c),a.setFillColor(e),a.fillAndStroke(),a.setFillColor(d))};
6883mxShapePidValve.prototype.drawGateVariantBg=function(a,d,e,b,c,f,g,h){f===mxShapePidValve.prototype.cst.GATE?this.drawGateValve(a,d,e+h,b,c-h):f===mxShapePidValve.prototype.cst.BALL||f===mxShapePidValve.prototype.cst.GLOBE?(a.ellipse(d+.3*b,e+h+.18*(c-h),.4*b,.64*(c-h)),a.fillAndStroke(),this.drawGateValve(a,d,e+h,b,c-h)):f===mxShapePidValve.prototype.cst.PLUG?(this.drawPlug(a,d+.4*b,e+h+.25*(c-h),.2*b,.5*(c-h)),this.drawGateValve(a,d,e+h,b,c-h)):f===mxShapePidValve.prototype.cst.NEEDLE?(this.drawNeedle(a,
6884d+.45*b,e+h+.1*(c-h),.1*b,.9*(c-h)),this.drawGateValve(a,d,e+h,b,c-h)):f===mxShapePidValve.prototype.cst.SELF_DRAINING&&(this.drawDrain(a,d+.48*b,e+h+.5*(c-h),.04*b,.49*(c-h)),this.drawGateValve(a,d,e+h,b,c-h))};
6885mxShapePidValve.prototype.drawAngleVariantBg=function(a,d,e,b,c,f,g,h){f===mxShapePidValve.prototype.cst.ANGLE?this.drawAngleValve(a,.2*b,e+h,.8*b,c-h):f===mxShapePidValve.prototype.cst.ANGLE_GLOBE?this.drawAngleGlobeValveBg(a,.2*b,e+h,.8*b,c-h):f===mxShapePidValve.prototype.cst.THREE_WAY?this.drawThreeWayValve(a,0,e+h,b,c-h):f===mxShapePidValve.prototype.cst.ANGLE_BLOWDOWN&&this.drawAngleBlowdownValve(a,d,e+h,b,c-h)};
6886mxShapePidValve.prototype.drawPlug=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(0,.5*c);a.lineTo(.5*b,0);a.lineTo(b,.5*c);a.lineTo(.5*b,c);a.close();a.fillAndStroke();a.translate(-d,-e)};
6887mxShapePidValve.prototype.drawNeedle=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),g=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");a.translate(d,e);a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(.5*b,c);a.close();a.setFillColor(g);a.fillAndStroke();a.setFillColor(f);a.translate(-d,-e)};
6888mxShapePidValve.prototype.drawDrain=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),g=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");a.translate(d,e);a.begin();a.moveTo(.5*b,0);a.lineTo(.5*b,.96*c);a.stroke();a.begin();a.moveTo(0,.9*c);a.lineTo(b,.9*c);a.lineTo(.5*b,c);a.close();a.setFillColor(g);a.fillAndStroke();a.setFillColor(f);a.translate(-d,-e)};
6889mxShapePidValve.prototype.drawGateValve=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxShapePidValve.prototype.cst.DEFAULT_STATE,"open"),g=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),h=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");a.translate(d,e);a.begin();a.moveTo(0,0);a.lineTo(.5*b,.5*c);a.lineTo(0,c);a.close();a.moveTo(b,0);a.lineTo(.5*b,.5*c);a.lineTo(b,c);a.close();f===mxShapePidValve.prototype.cst.CLOSED?(a.setFillColor(h),a.fillAndStroke(),
6890a.setFillColor(g)):a.fillAndStroke();a.translate(-d,-e)};mxShapePidValve.prototype.drawAngleValve=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(.375*b,.375*c);a.lineTo(b,0);a.lineTo(b,.75*c);a.close();a.moveTo(.375*b,.375*c);a.lineTo(.75*b,c);a.lineTo(0,c);a.close();a.fillAndStroke();a.translate(-d,-e)};
6891mxShapePidValve.prototype.drawAngleGlobeValveBg=function(a,d,e,b,c){a.translate(d,e);a.ellipse(.175*b,.175*c,.4*b,.4*c);a.fillAndStroke();a.begin();a.moveTo(.375*b,.375*c);a.lineTo(b,0);a.lineTo(b,.75*c);a.close();a.moveTo(.375*b,.375*c);a.lineTo(.75*b,c);a.lineTo(0,c);a.close();a.fillAndStroke();a.translate(-d,-e)};mxShapePidValve.prototype.drawAngleGlobeValveFg=function(a,d,e,b,c){a.translate(d,e);a.ellipse(.275*b,.275*c,.2*b,.2*c);a.fillAndStroke();a.translate(-d,-e)};
6892mxShapePidValve.prototype.drawThreeWayValve=function(a,d,e,b,c){a.translate(d,e);a.begin();a.moveTo(0,0);a.lineTo(.5*b,.375*c);a.lineTo(0,.75*c);a.close();a.moveTo(b,0);a.lineTo(.5*b,.375*c);a.lineTo(b,.75*c);a.close();a.moveTo(.5*b,.375*c);a.lineTo(.8*b,c);a.lineTo(.2*b,c);a.close();a.fillAndStroke();a.translate(-d,-e)};mxShapePidValve.prototype.drawAngleBlowdownValve=function(a,d,e,b,c){};
6893mxShapePidValve.prototype.drawButterflyValve=function(a,d,e,b,c,f,g){mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff");mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");c-=g;a.translate(d,e+g);a.begin();a.moveTo(0,0);a.lineTo(0,c);a.moveTo(b,0);a.lineTo(b,c);a.moveTo(.05*b,.05*c);a.lineTo(.95*b,.95*c);a.fillAndStroke();a.ellipse(.4*b,.33*c,.2*b,.33*c);a.fillAndStroke();a.translate(-d,-e)};
6894mxShapePidValve.prototype.drawCheckValve=function(a,d,e,b,c,f,g){f=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff");var h=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");c-=g;a.translate(d,e+g);a.begin();a.moveTo(0,0);a.lineTo(0,c);a.moveTo(b,0);a.lineTo(b,c);a.moveTo(.05*b,.05*c);a.lineTo(.95*b,.95*c);a.fillAndStroke();a.begin();a.moveTo(.8925*b,.815*c);a.lineTo(.957*b,.955*c);a.lineTo(.85*b,.928*c);a.close();a.setFillColor(h);a.fillAndStroke();a.setFillColor(f);
6895a.translate(-d,-e)};mxShapePidValve.prototype.isGateVariant=function(a){return a===mxShapePidValve.prototype.cst.GATE||a===mxShapePidValve.prototype.cst.BALL||a===mxShapePidValve.prototype.cst.PLUG||a===mxShapePidValve.prototype.cst.NEEDLE||a===mxShapePidValve.prototype.cst.SELF_DRAINING||a===mxShapePidValve.prototype.cst.GLOBE?!0:!1};
6896mxShapePidValve.prototype.isAngleVariant=function(a){return a===mxShapePidValve.prototype.cst.ANGLE||a===mxShapePidValve.prototype.cst.ANGLE_GLOBE||a===mxShapePidValve.prototype.cst.THREE_WAY||a===mxShapePidValve.prototype.cst.ANGLE_BLOWDOWN?!0:!1};
6897mxShapePidValve.prototype.isSquareVariant=function(a){return a===mxShapePidValve.prototype.cst.PILOT||a===mxShapePidValve.prototype.cst.SOLENOID||a===mxShapePidValve.prototype.cst.POWERED||a===mxShapePidValve.prototype.cst.DIGITAL||a===mxShapePidValve.prototype.cst.WEIGHT||a===mxShapePidValve.prototype.cst.KEY?!0:!1};mxCellRenderer.registerShape(mxShapePidValve.prototype.cst.SHAPE_VALVE,mxShapePidValve);
6898function mxShapePidIntBlockBleedValve(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapePidIntBlockBleedValve,mxShapePidValve);
6899mxShapePidIntBlockBleedValve.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxShapePidIntBlockBleedValve.prototype.cst.ACTUATOR,mxShapePidIntBlockBleedValve.prototype.cst.NONE),g=0;"none"!==f&&(g=.2353*c);a.translate(d,e);a.setLineJoin("round");this.background(a,d,e,b,c,f,g);a.setShadow(!1);this.foreground(a,d,e,b,c,f,g)};
6900mxShapePidIntBlockBleedValve.prototype.background=function(a,d,e,b,c,f,g){f!==mxShapePidIntBlockBleedValve.prototype.cst.NONE&&this.drawActuatorBg(a,d,e,b,c,f);this.drawValveBg(a,0,g,b,c-g)};mxShapePidIntBlockBleedValve.prototype.foreground=function(a,d,e,b,c,f,g){f!==mxShapePidIntBlockBleedValve.prototype.cst.NONE&&this.drawActuatorFg(a,d,e,b,c,f)};
6901mxShapePidIntBlockBleedValve.prototype.drawValveBg=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),g=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");a.translate(d,e);a.begin();a.moveTo(0,0);a.lineTo(.5*b,.23*c);a.lineTo(0,.46*c);a.close();a.moveTo(.5*b,.23*c);a.lineTo(b,0);a.lineTo(b,.46*c);a.close();a.fillAndStroke();a.begin();a.moveTo(.5*b,.23*c);a.lineTo(.5*b,.5*c);a.stroke();a.setFillColor(g);a.begin();a.moveTo(.3*b,.5*c);a.lineTo(.7*
6902b,.5*c);a.lineTo(.5*b,.75*c);a.close();a.fillAndStroke();a.begin();a.moveTo(.3*b,c);a.lineTo(.5*b,.75*c);a.lineTo(.7*b,c);a.fillAndStroke();a.setFillColor(f);a.translate(-d,-e)};
6903mxShapePidIntBlockBleedValve.prototype.drawActuatorBg=function(a,d,e,b,c,f){this.isSquareVariant(f)?(a.translate(.325*b,0),this.drawSquareAct(a,.35*b,.4112*c,f),a.translate(.325*-b,0)):f===mxShapePidIntBlockBleedValve.prototype.cst.MANUAL?(a.translate(.25*b,.0882*c),this.drawManAct(a,.5*b,.323*c),a.translate(.25*-b,.0882*-c)):f===mxShapePidIntBlockBleedValve.prototype.cst.DIAPHRAGM?(a.translate(.25*b,.0588*c),this.drawDiaphAct(a,.5*b,.3524*c),a.translate(.25*-b,.0588*-c)):f===mxShapePidIntBlockBleedValve.prototype.cst.BALANCED_DIAPHRAGM?
6904(a.translate(.25*b,.0588*c),this.drawBalDiaphActBg(a,.5*b,.3524*c),a.translate(.25*-b,.0588*-c)):f===mxShapePidIntBlockBleedValve.prototype.cst.MOTOR||f===mxShapePidIntBlockBleedValve.prototype.cst.ELECTRO_HYDRAULIC?(a.translate(.325*b,0),this.drawCircleAct(a,.35*b,.4112*c,f),a.translate(.325*-b,0)):f===mxShapePidIntBlockBleedValve.prototype.cst.SPRING?(a.translate(.36*b,0),this.drawSpringAct(a,.28*b,.4112*c),a.translate(.36*-b,0)):f===mxShapePidIntBlockBleedValve.prototype.cst.SOLENOID_MANUAL_RESET?
6905(a.translate(.325*b,0),this.drawSolenoidManResetAct(a,.575*b,.4112*c),a.translate(.325*-b,0)):f===mxShapePidIntBlockBleedValve.prototype.cst.SINGLE_ACTING?(a.translate(.35*b,0),this.drawSingActingActBg(a,.65*b,.4112*c),a.translate(.35*-b,0)):f===mxShapePidIntBlockBleedValve.prototype.cst.DOUBLE_ACTING?(a.translate(.35*b,0),this.drawDblActingActBg(a,.65*b,.4112*c),a.translate(.35*-b,0)):f===mxShapePidIntBlockBleedValve.prototype.cst.PILOT_CYLINDER&&(a.translate(.35*b,0),this.drawPilotCylinderActBg(a,
6906.65*b,.4112*c),a.translate(.35*-b,0))};
6907mxShapePidIntBlockBleedValve.prototype.drawActuatorFg=function(a,d,e,b,c,f){if(f===mxShapePidIntBlockBleedValve.prototype.cst.BALANCED_DIAPHRAGM)a.translate(.25*b,.0588*c),this.drawBalDiaphActFg(a,.5*b,.3524*c),a.translate(.25*-b,.0588*-c);else if(f===mxShapePidIntBlockBleedValve.prototype.cst.SINGLE_ACTING||f===mxShapePidIntBlockBleedValve.prototype.cst.DOUBLE_ACTING||f===mxShapePidIntBlockBleedValve.prototype.cst.PILOT_CYLINDER)a.translate(.35*b,0),this.drawActingActFg(a,.65*b,.4112*c),a.translate(.35*
6908-b,0)};mxCellRenderer.registerShape("mxgraph.pid2valves.blockBleedValve",mxShapePidIntBlockBleedValve);function mxShapePidAutoRecircValve(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapePidAutoRecircValve,mxShape);
6909mxShapePidAutoRecircValve.prototype.paintVertexShape=function(a,d,e,b,c){a.setLineJoin("round");a.translate(d,e);a.rect(0,0,b,c);a.fillAndStroke();a.setShadow(!1);a.begin();a.moveTo(.08*b,.08*c);a.lineTo(.08*b,.92*c);a.moveTo(.92*b,.08*c);a.lineTo(.92*b,.92*c);a.moveTo(.12*b,.122*c);a.lineTo(.8738*b,.8837*c);a.moveTo(.5*b,0);a.lineTo(.55*b,.05*c);a.lineTo(.45*b,.15*c);a.lineTo(.55*b,.25*c);a.lineTo(.45*b,.35*c);a.lineTo(.55*b,.45*c);a.lineTo(.49*b,.5*c);a.stroke();d=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,
6910"#ffffff");e=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#000000");a.begin();a.moveTo(.8257*b,.7695*c);a.lineTo(.8797*b,.888*c);a.lineTo(.79*b,.8651*c);a.close();a.setFillColor(e);a.fillAndStroke();a.setFillColor(d)};mxCellRenderer.registerShape("mxgraph.pid2valves.autoRecircValve",mxShapePidAutoRecircValve);function mxRackContainer(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxRackContainer,mxShape);
6911mxRackContainer.prototype.unitSize=20;mxRackContainer.prototype.cst={SHAPE_RACK_CONTAINER:"mxgraph.rackGeneral.container",TEXT_COLOR:"textColor",NUMBER_DISPLAY:"numDisp",OFF:"off",DIR_ASC:"ascend",DIR_DESC:"descend"};
6912mxRackContainer.prototype.customProperties=[{name:"fillColor2",dispName:"Cabinet Color",type:"color"},{name:"textColor",dispName:"Numbers Color",type:"color"},{name:"numDisp",dispName:"Display Numbers",type:"enum",enumList:[{val:"off",dispName:"Off"},{val:"ascend",dispName:"Ascending"},{val:"descend",dispName:"Descending"}],onChange:function(a,d){a.setCellStyles("marginLeft","off"==d?9:33,a.getSelectionCells())}},{name:"rackUnitSize",dispName:"Unit size",type:"int"}];
6913mxRackContainer.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,mxRackContainer.prototype.cst.NUMBER_DISPLAY,mxRackContainer.prototype.cst.DIR_ASC),g=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#ffffff"),h=mxUtils.getValue(this.style,"fillColor2","#f4f4f4");f!==mxRackContainer.prototype.cst.OFF?(a.translate(d+24,e),b=Math.max(b-24,0)):a.translate(d,e);a.setFillColor(g);this.background(a,b,c,12);a.setShadow(!1);a.setFillColor(h);this.foreground(a,b,c,12);
6914f!==mxRackContainer.prototype.cst.OFF&&42<b&&this.sideText(a,b,c,12)};mxRackContainer.prototype.background=function(a,d,e,b){a.rect(0,0,d,e);a.fillAndStroke()};
6915mxRackContainer.prototype.foreground=function(a,d,e,b){d>18+2*b&&42<e&&(a.rect(0,0,d,21),a.fillAndStroke(),a.rect(0,e-21,d,21),a.fillAndStroke(),a.rect(0,21,9,e-42),a.fillAndStroke(),a.rect(d-9,21,9,e-42),a.fillAndStroke(),a.ellipse(2.5,7.5,6,6),a.stroke(),a.ellipse(d-8.5,7.5,6,6),a.stroke(),a.ellipse(2.5,e-13.5,6,6),a.stroke(),a.ellipse(d-8.5,e-13.5,6,6),a.stroke())};
6916mxRackContainer.prototype.sideText=function(a,d,e,b){var c=mxUtils.getValue(this.style,mxRackContainer.prototype.cst.TEXT_COLOR,"#666666");d=mxUtils.getValue(this.style,mxRackContainer.prototype.cst.NUMBER_DISPLAY,mxRackContainer.prototype.cst.DIR_ASC);var f=parseFloat(mxUtils.getValue(this.style,"rackUnitSize",mxRackContainer.prototype.unitSize));this.unitSize=f;a.setFontSize(b);a.setFontColor(c);e=Math.floor((Math.abs(e)-42)/f);for(c=0;c<e;c++)a.text(-b,21+.5*f+c*f,0,0,d===mxRackContainer.prototype.cst.DIR_DESC?
6917(c+1).toString():(e-c).toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.begin();for(c=0;c<e+1;c++)a.moveTo(-2*b,21+c*f),a.lineTo(0,21+c*f);a.stroke()};function mxRackPlate(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=1}mxUtils.extend(mxRackPlate,mxShape);mxRackPlate.prototype.cst={SHAPE_RACK_PLATE:"mxgraph.rackGeneral.plate"};
6918mxRackPlate.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c)};mxRackPlate.prototype.background=function(a,d,e){a.begin();a.rect(0,0,d,e);a.fillAndStroke()};mxRackPlate.prototype.foreground=function(a,d,e){18<d&&(a.save(),a.setFillColor("#000000"),a.setAlpha(.23),a.rect(0,0,9,e),a.fill(),a.rect(d-9,0,9,e),a.fill(),a.restore(),a.rect(0,0,d,e),a.stroke(),a.rect(9,0,d-18,e),a.stroke())};
6919function mxRackHorCableDuct(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxRackHorCableDuct,mxShape);mxRackHorCableDuct.prototype.cst={SHAPE_RACK_HOR_CABLE_DUCT:"mxgraph.rackGeneral.horCableDuct"};mxRackHorCableDuct.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c)};mxRackHorCableDuct.prototype.background=function(a,d,e){a.rect(0,0,d,e);a.fillAndStroke()};
6920mxRackHorCableDuct.prototype.foreground=function(a,d,e){e=Math.floor((d-20)/33);d=10+Math.floor((d-20-33*e)/2);if(0<e)for(var b=0;b<=e;b++)a.rect(d,0,3,7),a.stroke(),a.rect(d,7,3,7.8),a.stroke(),d+=33};function mxRackHorRoutingBank(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxRackHorRoutingBank,mxShape);mxRackHorRoutingBank.prototype.cst={SHAPE_RACK_HOR_ROUTING_BANK:"mxgraph.rackGeneral.horRoutingBank"};
6921mxRackHorRoutingBank.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c)};mxRackHorRoutingBank.prototype.background=function(a,d,e){a.rect(0,0,d,e);a.fillAndStroke()};
6922mxRackHorRoutingBank.prototype.foreground=function(a,d,e){var b=Math.floor((d-20-16)/22);e=Math.floor(e/mxRackContainer.unitSize);if(0<b&&0<e)for(var c=0;c<e;c++)for(var f=18+Math.floor((d-20-16-22*b)/2)-8,g=0;g<=b;g++)a.rect(f,4+c*mxRackContainer.unitSize,16,6.8),a.stroke(),f+=22};function mxRackNeatPatch(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxRackNeatPatch,mxShape);mxRackNeatPatch.prototype.cst={SHAPE_RACK_NEAT_PATCH:"mxgraph.rackGeneral.neatPatch"};
6923mxRackNeatPatch.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.mainText(a,b,c)};mxRackNeatPatch.prototype.background=function(a,d,e){a.setFillColor("#666666");a.rect(0,0,d,e);a.fillAndStroke()};mxRackNeatPatch.prototype.mainText=function(a,d,e){a.setFontSize("12");a.setFontColor("#ffffff");a.setFontStyle(mxConstants.FONT_BOLD);a.text(d/2,e-6,0,0,"NEAT-PATCH",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};
6924function mxRackShelf(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxRackShelf,mxShape);mxRackShelf.prototype.cst={SHAPE_RACK_SHELF:"mxgraph.rackGeneral.shelf"};mxRackShelf.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c)};mxRackShelf.prototype.background=function(a,d,e){a.setStrokeWidth(2);a.begin();a.moveTo(1,0);a.lineTo(1,e-1);a.lineTo(d-1,e-1);a.lineTo(d-1,1);a.fillAndStroke()};
6925function mxRackRackNumbering(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxRackRackNumbering,mxShape);mxRackRackNumbering.prototype.cst={SHAPE_RACK_RACK_NUMBERING:"mxgraph.rackGeneral.rackNumbering",UNIT_NUM:"unitNum",UNIT_HEIGHT:"unitHeight",TEXT_COLOR:"textColor",NUM_DIR:"numDir",DIR_ASC:"ascend",DIR_DESC:"descend",TEXT_SIZE:"textSize"};
6926mxRackRackNumbering.prototype.paintVertexShape=function(a,d,e,b,c){var f=parseFloat(mxUtils.getValue(this.style,mxRackRackNumbering.prototype.cst.UNIT_NUM,"42")),g=parseFloat(mxUtils.getValue(this.style,mxRackRackNumbering.prototype.cst.UNIT_HEIGHT,"14.8")),h=parseFloat(mxUtils.getValue(this.style,mxRackRackNumbering.prototype.cst.TEXT_SIZE,"12"));a.translate(d,e);c=f*g;this.background(a,b,c,h);a.setShadow(!1);this.sideText(a,b,c,f,g,h)};
6927mxRackRackNumbering.prototype.background=function(a,d,e,b){a.rect(3*b,0,160.9,e);a.fillAndStroke()};
6928mxRackRackNumbering.prototype.sideText=function(a,d,e,b,c,f){d=mxUtils.getValue(this.style,mxRackRackNumbering.prototype.cst.TEXT_COLOR,"#666666");var g=mxUtils.getValue(this.style,mxRackRackNumbering.prototype.cst.NUM_DIR,mxRackRackNumbering.prototype.cst.DIR_DESC);a.setFontSize(f);a.setFontColor(d);if(g===mxRackRackNumbering.prototype.cst.DIR_ASC)for(d=0;d<b;d++)a.text(f,.5*c+d*c,0,0,(d+1).toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);else for(d=0;d<b;d++)a.text(f,e-
6929.5*c-d*c,0,0,(d+1).toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.setStrokeColor("#dddddd");a.begin();for(d=0;d<b+1;d++)a.moveTo(0,d*c),a.lineTo(3*f,d*c);a.stroke()};function mxRackRackCabinet(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxRackRackCabinet,mxShape);
6930mxRackRackCabinet.prototype.cst={SHAPE_RACK_RACK_CABINET:"mxgraph.rackGeneral.rackCabinet",UNIT_NUM:"unitNum",UNIT_HEIGHT:"unitHeight",TEXT_COLOR:"textColor",NUM_DIR:"numDir",NUMBER_DISPLAY:"numDisp",ON:"on",OFF:"off",DIR_ASC:"ascend",DIR_DESC:"descend",TEXT_SIZE:"textSize"};
6931mxRackRackCabinet.prototype.paintVertexShape=function(a,d,e,b,c){var f=parseFloat(mxUtils.getValue(this.style,mxRackRackCabinet.prototype.cst.UNIT_NUM,"12")),g=parseFloat(mxUtils.getValue(this.style,mxRackRackCabinet.prototype.cst.UNIT_HEIGHT,"14.8")),h=parseFloat(mxUtils.getValue(this.style,mxRackRackCabinet.prototype.cst.TEXT_SIZE,"12")),k=mxUtils.getValue(this.style,mxRackRackCabinet.prototype.cst.NUMBER_DISPLAY,mxRackRackCabinet.prototype.cst.ON);k===mxRackRackCabinet.prototype.cst.ON?a.translate(d+
69322*h,e):a.translate(d,e);c=f*g+42;this.background(a,b,c,h);a.setShadow(!1);this.foreground(a,b,c,h);k===mxRackRackCabinet.prototype.cst.ON&&this.sideText(a,b,c,f,g,h)};mxRackRackCabinet.prototype.background=function(a,d,e,b){a.setFillColor("#ffffff");a.rect(0,0,180,e);a.fillAndStroke()};
6933mxRackRackCabinet.prototype.foreground=function(a,d,e,b){a.setFillColor("#f4f4f4");a.rect(0,0,180,21);a.fillAndStroke();a.rect(0,e-21,180,21);a.fillAndStroke();a.rect(0,21,9,e-42);a.fillAndStroke();a.rect(171,21,9,e-42);a.fillAndStroke();a.ellipse(2.5,7.5,6,6);a.stroke();a.ellipse(171.5,7.5,6,6);a.stroke();a.ellipse(2.5,e-13.5,6,6);a.stroke();a.ellipse(171.5,e-13.5,6,6);a.stroke()};
6934mxRackRackCabinet.prototype.sideText=function(a,d,e,b,c,f){d=mxUtils.getValue(this.style,mxRackRackCabinet.prototype.cst.TEXT_COLOR,"#666666");var g=mxUtils.getValue(this.style,mxRackRackCabinet.prototype.cst.NUM_DIR,mxRackRackCabinet.prototype.cst.DIR_DESC);a.setFontSize(f);a.setFontColor(d);if(g===mxRackRackCabinet.prototype.cst.DIR_ASC)for(d=0;d<b;d++)a.text(-f,21+.5*c+d*c,0,0,(d+1).toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);else for(d=0;d<b;d++)a.text(-f,e-21-.5*
6935c-d*c,0,0,(d+1).toString(),mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.setStrokeColor("#dddddd");a.begin();for(d=0;d<b+1;d++)a.moveTo(-2*f,21+d*c),a.lineTo(0,21+d*c);a.stroke()};function mxRackHorCableDuct1U(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxRackHorCableDuct1U,mxShape);mxRackHorCableDuct1U.prototype.cst={SHAPE_RACK_HOR_CABLE_DUCT_1U:"mxgraph.rackGeneral.horCableDuct1U"};
6936mxRackHorCableDuct1U.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c)};mxRackHorCableDuct1U.prototype.background=function(a,d,e){a.rect(0,0,160.9,14.8);a.fillAndStroke()};
6937mxRackHorCableDuct1U.prototype.foreground=function(a,d,e){a.rect(12,0,3,7);a.stroke();a.rect(12,7,3,7.8);a.stroke();a.rect(45.5,0,3,7);a.stroke();a.rect(45.5,7,3,7.8);a.stroke();a.rect(79,0,3,7);a.stroke();a.rect(79,7,3,7.8);a.stroke();a.rect(112.5,0,3,7);a.stroke();a.rect(112.5,7,3,7.8);a.stroke();a.rect(146,0,3,7);a.stroke();a.rect(146,7,3,7.8);a.stroke()};function mxRackHorCableDuct2U(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
6938mxUtils.extend(mxRackHorCableDuct2U,mxShape);mxRackHorCableDuct2U.prototype.cst={SHAPE_RACK_HOR_CABLE_DUCT_2U:"mxgraph.rackGeneral.horCableDuct2U"};mxRackHorCableDuct2U.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c)};mxRackHorCableDuct2U.prototype.background=function(a,d,e){a.rect(0,0,160.9,29.6);a.fillAndStroke()};
6939mxRackHorCableDuct2U.prototype.foreground=function(a,d,e){a.rect(12,0,3,7);a.stroke();a.rect(12,7,3,22.6);a.stroke();a.rect(45.5,0,3,7);a.stroke();a.rect(45.5,7,3,22.6);a.stroke();a.rect(79,0,3,7);a.stroke();a.rect(79,7,3,22.6);a.stroke();a.rect(112.5,0,3,7);a.stroke();a.rect(112.5,7,3,22.6);a.stroke();a.rect(146,0,3,7);a.stroke();a.rect(146,7,3,22.6);a.stroke()};function mxRackHorRoutingBank1U(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
6940mxUtils.extend(mxRackHorRoutingBank1U,mxShape);mxRackHorRoutingBank1U.prototype.cst={SHAPE_RACK_HOR_ROUTING_BANK_1U:"mxgraph.rackGeneral.horRoutingBank1U"};mxRackHorRoutingBank1U.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c)};mxRackHorRoutingBank1U.prototype.background=function(a,d,e){a.rect(0,0,160.9,14.8);a.fillAndStroke()};
6941mxRackHorRoutingBank1U.prototype.foreground=function(a,d,e){a.rect(10,4,17,6.8);a.stroke();a.rect(31,4,17,6.8);a.stroke();a.rect(52,4,17,6.8);a.stroke();a.rect(73,4,17,6.8);a.stroke();a.rect(94,4,17,6.8);a.stroke();a.rect(115,4,17,6.8);a.stroke();a.rect(136,4,17,6.8);a.stroke()};function mxRackHorRoutingBank2U(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxRackHorRoutingBank2U,mxShape);mxRackHorRoutingBank2U.prototype.cst={SHAPE_RACK_HOR_ROUTING_BANK_2U:"mxgraph.rackGeneral.horRoutingBank2U"};
6942mxRackHorRoutingBank2U.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c)};mxRackHorRoutingBank2U.prototype.background=function(a,d,e){a.rect(0,0,160.9,29.6);a.fillAndStroke()};
6943mxRackHorRoutingBank2U.prototype.foreground=function(a,d,e){a.rect(10,4,17,6.8);a.stroke();a.rect(31,4,17,6.8);a.stroke();a.rect(52,4,17,6.8);a.stroke();a.rect(73,4,17,6.8);a.stroke();a.rect(94,4,17,6.8);a.stroke();a.rect(115,4,17,6.8);a.stroke();a.rect(136,4,17,6.8);a.stroke();a.rect(10,18.8,17,6.8);a.stroke();a.rect(31,18.8,17,6.8);a.stroke();a.rect(52,18.8,17,6.8);a.stroke();a.rect(73,18.8,17,6.8);a.stroke();a.rect(94,18.8,17,6.8);a.stroke();a.rect(115,18.8,17,6.8);a.stroke();a.rect(136,18.8,17,
69446.8);a.stroke()};function mxRackNeatPatch2U(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxRackNeatPatch2U,mxShape);mxRackNeatPatch2U.prototype.cst={SHAPE_RACK_NEAT_PATCH_2U:"mxgraph.rackGeneral.neatPatch2U"};mxRackNeatPatch2U.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.mainText(a,b,c)};
6945mxRackNeatPatch2U.prototype.background=function(a,d,e){a.setFillColor("#666666");a.rect(0,0,160.9,29.6);a.fillAndStroke()};mxRackNeatPatch2U.prototype.mainText=function(a,d,e){a.setFontSize("12");a.setFontColor("#ffffff");a.setFontStyle(mxConstants.FONT_BOLD);a.text(80.45,24,0,0,"NEAT-PATCH",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};function mxRackShelf1U(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}
6946mxUtils.extend(mxRackShelf1U,mxShape);mxRackShelf1U.prototype.cst={SHAPE_RACK_SHELF_1U:"mxgraph.rackGeneral.shelf1U"};mxRackShelf1U.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c)};mxRackShelf1U.prototype.background=function(a,d,e){a.setStrokeWidth(2);a.begin();a.moveTo(0,0);a.lineTo(0,14.8);a.lineTo(160.9,14.8);a.lineTo(160.9,0);a.fillAndStroke()};
6947function mxRackShelf2U(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxRackShelf2U,mxShape);mxRackShelf2U.prototype.cst={SHAPE_RACK_SHELF_2U:"mxgraph.rackGeneral.shelf2U"};mxRackShelf2U.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c)};mxRackShelf2U.prototype.background=function(a,d,e){a.setStrokeWidth(2);a.begin();a.moveTo(0,0);a.lineTo(0,29.6);a.lineTo(160.9,29.6);a.lineTo(160.9,0);a.fillAndStroke()};
6948function mxRackShelf4U(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxRackShelf4U,mxShape);mxRackShelf4U.prototype.cst={SHAPE_RACK_SHELF_4U:"mxgraph.rackGeneral.shelf4U"};mxRackShelf4U.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,b,c)};mxRackShelf4U.prototype.background=function(a,d,e){a.setStrokeWidth(2);a.begin();a.moveTo(0,0);a.lineTo(0,59.2);a.lineTo(160.9,59.2);a.lineTo(160.9,0);a.fillAndStroke()};
6949function mxRackChannelBase(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxRackChannelBase,mxShape);mxRackChannelBase.prototype.cst={SHAPE_RACK_CHANNEL_BASE:"mxgraph.rackGeneral.channelBase"};mxRackChannelBase.prototype.paintVertexShape=function(a,d,e,b,c){b=Math.max(b,20);c=Math.max(c,20);a.translate(d,e);this.background(a,b,c);a.setShadow(!1);this.foreground(a,b,c)};
6950mxRackChannelBase.prototype.background=function(a,d,e){a.rect(10,e-15,5,15);a.fillAndStroke();a.rect(d-15,e-15,5,15);a.fillAndStroke();a.rect(0,0,d,e-5);a.fillAndStroke()};mxRackChannelBase.prototype.foreground=function(a,d,e){a.setFillColor("#000000");a.rect(10,e-15,5,15);a.fillAndStroke();a.rect(d-15,e-15,5,15);a.fillAndStroke()};function mxRackCabinetLeg(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxRackCabinetLeg,mxShape);
6951mxRackCabinetLeg.prototype.cst={SHAPE_RACK_CABINET_LEG:"mxgraph.rackGeneral.cabinetLeg"};mxRackCabinetLeg.prototype.paintVertexShape=function(a,d,e,b,c){b=Math.max(b,20);c=Math.max(c,20);a.translate(d,e);this.background(a,b,c)};
6952mxRackCabinetLeg.prototype.background=function(a,d,e){a.begin();a.moveTo(0,e-10);a.lineTo(5,e-10);a.lineTo(5,e-12);a.lineTo(9,e-12);a.lineTo(9,e-10);a.lineTo(d-10,e-10);a.lineTo(d-10,9);a.lineTo(d-12,9);a.lineTo(d-12,5);a.lineTo(d-10,5);a.lineTo(d-10,0);a.lineTo(d,0);a.lineTo(d,e);a.lineTo(0,e);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxRackContainer.prototype.cst.SHAPE_RACK_CONTAINER,mxRackContainer);
6953mxCellRenderer.registerShape(mxRackHorCableDuct.prototype.cst.SHAPE_RACK_HOR_CABLE_DUCT,mxRackHorCableDuct);mxCellRenderer.registerShape(mxRackHorRoutingBank.prototype.cst.SHAPE_RACK_HOR_ROUTING_BANK,mxRackHorRoutingBank);mxCellRenderer.registerShape(mxRackNeatPatch.prototype.cst.SHAPE_RACK_NEAT_PATCH,mxRackNeatPatch);mxCellRenderer.registerShape(mxRackShelf.prototype.cst.SHAPE_RACK_SHELF,mxRackShelf);mxCellRenderer.registerShape(mxRackPlate.prototype.cst.SHAPE_RACK_PLATE,mxRackPlate);
6954mxCellRenderer.registerShape(mxRackRackNumbering.prototype.cst.SHAPE_RACK_RACK_NUMBERING,mxRackRackNumbering);mxCellRenderer.registerShape(mxRackRackCabinet.prototype.cst.SHAPE_RACK_RACK_CABINET,mxRackRackCabinet);mxCellRenderer.registerShape(mxRackHorCableDuct1U.prototype.cst.SHAPE_RACK_HOR_CABLE_DUCT_1U,mxRackHorCableDuct1U);mxCellRenderer.registerShape(mxRackHorCableDuct2U.prototype.cst.SHAPE_RACK_HOR_CABLE_DUCT_2U,mxRackHorCableDuct2U);
6955mxCellRenderer.registerShape(mxRackHorRoutingBank1U.prototype.cst.SHAPE_RACK_HOR_ROUTING_BANK_1U,mxRackHorRoutingBank1U);mxCellRenderer.registerShape(mxRackHorRoutingBank2U.prototype.cst.SHAPE_RACK_HOR_ROUTING_BANK_2U,mxRackHorRoutingBank2U);mxCellRenderer.registerShape(mxRackNeatPatch2U.prototype.cst.SHAPE_RACK_NEAT_PATCH_2U,mxRackNeatPatch2U);mxCellRenderer.registerShape(mxRackShelf1U.prototype.cst.SHAPE_RACK_SHELF_1U,mxRackShelf1U);
6956mxCellRenderer.registerShape(mxRackShelf2U.prototype.cst.SHAPE_RACK_SHELF_2U,mxRackShelf2U);mxCellRenderer.registerShape(mxRackShelf4U.prototype.cst.SHAPE_RACK_SHELF_4U,mxRackShelf4U);mxCellRenderer.registerShape(mxRackChannelBase.prototype.cst.SHAPE_RACK_CHANNEL_BASE,mxRackChannelBase);mxCellRenderer.registerShape(mxRackCabinetLeg.prototype.cst.SHAPE_RACK_CABINET_LEG,mxRackCabinetLeg);
6957
6958			mxStencilRegistry.allowEval = false;
6959
6960			(function()
6961			{
6962				try
6963				{
6964					if (Editor.enableServiceWorker)
6965					{
6966						navigator.serviceWorker.register('/service-worker.js');
6967					}
6968				}
6969				catch (e)
6970				{
6971					if (window.console != null)
6972					{
6973						console.error(e);
6974					}
6975				}
6976			})();
6977
6978(function(){Editor.initMath();GraphViewer.initCss();if(null!=window.onDrawioViewerLoad)window.onDrawioViewerLoad();else GraphViewer.processElements()})();
6979