Ngiler SH3LL 360
Home
Information
Create File
Create Folder
:
/
home
/
tbf
/
tbfguest.tbf.ro
/
dist
/
assets
/
Information Server
MySQL :
OFF
Perl :
OFF
CURL :
ON
WGET :
OFF
PKEXEC :
OFF
Directive
Local Value
IP Address
89.40.16.97
System
Linux server.atelieruldeit.ro 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64
User
tbf
PHP Version
7.3.33
Software
Apache
Doc root
Writable
close
Edit File :
Index-9cf99e41.js
| Size :
932.61
KB
Copy
import{o as il,c as el,n as E1,i as B1,_ as R1,u as V1,r as Y1,g as Zf,b as so,j as z1}from"./index-a2bf04c5.js";const G1=B1('<div class="w-[36px] h-[36px] absolute top-[9px] left-[0px] animate-bigStarDiv"><svg xmlns="http://www.w3.org/2000/svg" vector-effect="non-scaling-stroke" viewBox="0 0 10 10" fill="none" class="w-[36px] h-[36px] animate-bigStar"><path fill-rule="evenodd" clip-rule="evenodd" d="M4.9996 0C5.1083 2e-05 5.214 0.0354299 5.3007 0.10087C5.3874 0.1663 5.4505 0.2582 5.4803 0.36267L6.0223 2.26C6.139 2.66861 6.3579 3.04073 6.6584 3.34122C6.9589 3.6417 7.331 3.86063 7.7396 3.97733L9.637 4.51933C9.7414 4.54924 9.8332 4.61232 9.8986 4.69904C9.9639 4.78576 9.9993 4.8914 9.9993 5C9.9993 5.1086 9.9639 5.21424 9.8986 5.30096C9.8332 5.38768 9.7414 5.45076 9.637 5.48067L7.7396 6.02267C7.331 6.13937 6.9589 6.3583 6.6584 6.65878C6.3579 6.95927 6.139 7.33139 6.0223 7.74L5.4803 9.6373C5.4504 9.7417 5.3873 9.8336 5.3006 9.8989C5.2139 9.9643 5.1082 9.9996 4.9996 9.9996C4.891 9.9996 4.7854 9.9643 4.6987 9.8989C4.612 9.8336 4.5489 9.7417 4.519 9.6373L3.977 7.74C3.8603 7.33139 3.6413 6.95927 3.3409 6.65878C3.0404 6.3583 2.6683 6.13937 2.2596 6.02267L0.362301 5.48067C0.257901 5.45076 0.1661 5.38768 0.1007 5.30096C0.0354004 5.21424 0 5.1086 0 5C0 4.8914 0.0354004 4.78576 0.1007 4.69904C0.1661 4.61232 0.257901 4.54924 0.362301 4.51933L2.2596 3.97733C2.6683 3.86063 3.0404 3.6417 3.3409 3.34122C3.6413 3.04073 3.8603 2.66861 3.977 2.26L4.519 0.36267C4.5488 0.2582 4.6119 0.1663 4.6986 0.10087C4.7853 0.0354299 4.891 2e-05 4.9996 0Z" fill="currentColor"></path></svg></div><svg xmlns="http://www.w3.org/2000/svg" vector-effect="non-scaling-stroke" viewBox="0 0 10 10" fill="none" class="w-[24px] h-[24px] absolute top-[0px] left-[36px] animate-mediumStar"><path fill-rule="evenodd" clip-rule="evenodd" d="M4.9996 0C5.1083 2e-05 5.214 0.0354299 5.3007 0.10087C5.3874 0.1663 5.4505 0.2582 5.4803 0.36267L6.0223 2.26C6.139 2.66861 6.3579 3.04073 6.6584 3.34122C6.9589 3.6417 7.331 3.86063 7.7396 3.97733L9.637 4.51933C9.7414 4.54924 9.8332 4.61232 9.8986 4.69904C9.9639 4.78576 9.9993 4.8914 9.9993 5C9.9993 5.1086 9.9639 5.21424 9.8986 5.30096C9.8332 5.38768 9.7414 5.45076 9.637 5.48067L7.7396 6.02267C7.331 6.13937 6.9589 6.3583 6.6584 6.65878C6.3579 6.95927 6.139 7.33139 6.0223 7.74L5.4803 9.6373C5.4504 9.7417 5.3873 9.8336 5.3006 9.8989C5.2139 9.9643 5.1082 9.9996 4.9996 9.9996C4.891 9.9996 4.7854 9.9643 4.6987 9.8989C4.612 9.8336 4.5489 9.7417 4.519 9.6373L3.977 7.74C3.8603 7.33139 3.6413 6.95927 3.3409 6.65878C3.0404 6.3583 2.6683 6.13937 2.2596 6.02267L0.362301 5.48067C0.257901 5.45076 0.1661 5.38768 0.1007 5.30096C0.0354004 5.21424 0 5.1086 0 5C0 4.8914 0.0354004 4.78576 0.1007 4.69904C0.1661 4.61232 0.257901 4.54924 0.362301 4.51933L2.2596 3.97733C2.6683 3.86063 3.0404 3.6417 3.3409 3.34122C3.6413 3.04073 3.8603 2.66861 3.977 2.26L4.519 0.36267C4.5488 0.2582 4.6119 0.1663 4.6986 0.10087C4.7853 0.0354299 4.891 2e-05 4.9996 0Z" fill="currentColor"></path></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" vector-effect="non-scaling-stroke" fill="none" class="w-[18px] h-[18px] absolute top-[36px] left-[33px] animate-smallStar"><path fill-rule="evenodd" clip-rule="evenodd" d="M4.9996 0C5.1083 2e-05 5.214 0.0354299 5.3007 0.10087C5.3874 0.1663 5.4505 0.2582 5.4803 0.36267L6.0223 2.26C6.139 2.66861 6.3579 3.04073 6.6584 3.34122C6.9589 3.6417 7.331 3.86063 7.7396 3.97733L9.637 4.51933C9.7414 4.54924 9.8332 4.61232 9.8986 4.69904C9.9639 4.78576 9.9993 4.8914 9.9993 5C9.9993 5.1086 9.9639 5.21424 9.8986 5.30096C9.8332 5.38768 9.7414 5.45076 9.637 5.48067L7.7396 6.02267C7.331 6.13937 6.9589 6.3583 6.6584 6.65878C6.3579 6.95927 6.139 7.33139 6.0223 7.74L5.4803 9.6373C5.4504 9.7417 5.3873 9.8336 5.3006 9.8989C5.2139 9.9643 5.1082 9.9996 4.9996 9.9996C4.891 9.9996 4.7854 9.9643 4.6987 9.8989C4.612 9.8336 4.5489 9.7417 4.519 9.6373L3.977 7.74C3.8603 7.33139 3.6413 6.95927 3.3409 6.65878C3.0404 6.3583 2.6683 6.13937 2.2596 6.02267L0.362301 5.48067C0.257901 5.45076 0.1661 5.38768 0.1007 5.30096C0.0354004 5.21424 0 5.1086 0 5C0 4.8914 0.0354004 4.78576 0.1007 4.69904C0.1661 4.61232 0.257901 4.54924 0.362301 4.51933L2.2596 3.97733C2.6683 3.86063 3.0404 3.6417 3.3409 3.34122C3.6413 3.04073 3.8603 2.66861 3.977 2.26L4.519 0.36267C4.5488 0.2582 4.6119 0.1663 4.6986 0.10087C4.7853 0.0354299 4.891 2e-05 4.9996 0Z" fill="currentColor"></path></svg>',3),X1=[G1],K1={__name:"LoadingBigTBF",props:{color:{type:String,default:"text-blue-500"}},setup(d){return(K,b)=>(il(),el("div",{class:E1(["relative w-[60px] h-[57px]",d.color])},X1,2))}};(function(){var d;function K(t){var i=0;return function(){return i<t.length?{done:!1,value:t[i++]}:{done:!0}}}function b(t){var i=typeof Symbol<"u"&&Symbol.iterator&&t[Symbol.iterator];return i?i.call(t):{next:K(t)}}function st(t){for(var i,e=[];!(i=t.next()).done;)e.push(i.value);return e}var Yt=typeof Object.create=="function"?Object.create:function(t){function i(){}return i.prototype=t,new i},Tt;if(typeof Object.setPrototypeOf=="function")Tt=Object.setPrototypeOf;else{var ni;t:{var Qi={a:!0},Ge={};try{Ge.__proto__=Qi,ni=Ge.a;break t}catch{}ni=!1}Tt=ni?function(t,i){if(t.__proto__=i,t.__proto__!==i)throw new TypeError(t+" is not extensible");return t}:null}var nr=Tt;function pt(t,i){if(t.prototype=Yt(i.prototype),t.prototype.constructor=t,nr)nr(t,i);else for(var e in i)if(e!="prototype")if(Object.defineProperties){var n=Object.getOwnPropertyDescriptor(i,e);n&&Object.defineProperty(t,e,n)}else t[e]=i[e];t.QA=i.prototype}var tt=typeof global<"u"&&global!=null?global:self,Su=typeof Object.assign=="function"?Object.assign:function(t,i){for(var e=1;e<arguments.length;e++){var n=arguments[e];if(n)for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t},Nu=typeof Object.defineProperties=="function"?Object.defineProperty:function(t,i,e){t!=Array.prototype&&t!=Object.prototype&&(t[i]=e.value)};function jr(t,i){if(i){var e=tt;t=t.split(".");for(var n=0;n<t.length-1;n++){var o=t[n];o in e||(e[o]={}),e=e[o]}t=t[t.length-1],n=e[t],i=i(n),i!=n&&i!=null&&Nu(e,t,{writable:!0,value:i})}}jr("Object.assign",function(t){return t||Su}),jr("Array.prototype.fill",function(t){return t||function(i,e,n){var o=this.length||0;for(0>e&&(e=Math.max(0,o+e)),(n==null||n>o)&&(n=o),n=Number(n),0>n&&(n=Math.max(0,o+n)),e=Number(e||0);e<n;e++)this[e]=i;return this}});var J=typeof globalThis=="object"&&globalThis||typeof global=="object"&&global.global===global&&global||typeof self=="object"&&self.self===self&&self||{};J.requestAnimationFrame===void 0&&(J.setImmediate===void 0?J.requestAnimationFrame=function(t){J.setTimeout(t,0)}:J.requestAnimationFrame=J.setImmediate);function An(){}function Fr(t,i){var e=-1;return function(){var n=this,o=arguments;e!==-1&&J.clearTimeout(e),e=ho(function(){e=-1,t.apply(n,o)},i)}}function ho(t,i){return J.setTimeout(t,i)}function tn(t){return J.document.createElement(t)}function O(t){throw Error(t)}function rt(t,i){t="The object is frozen, so its properties cannot be set: "+t.toString(),i!==void 0&&(t+=" to value: "+i),O(t)}function jt(t,i,e,n){e=e===null?"*":typeof e=="string"?e:typeof e=="function"&&typeof e.className=="string"?e.className:"",n!==void 0&&(e+="."+n),O(e+" is not in the range "+i+": "+t)}function ue(t){J.console&&J.console.log(t)}function At(t){return typeof t=="object"&&t!==null}function ai(t){return Array.isArray(t)||J.NodeList&&t instanceof J.NodeList||J.HTMLCollection&&t instanceof J.HTMLCollection}function Gs(t){return Array.prototype.slice.call(t)}function Xs(t,i,e){Array.isArray(t)?i>=t.length?t.push(e):t.splice(i,0,e):O("Cannot insert an object into an HTMLCollection or NodeList: "+e+" at "+i)}function ns(t,i){Array.isArray(t)?i>=t.length?t.pop():t.splice(i,1):O("Cannot remove an object from an HTMLCollection or NodeList at "+i)}function kt(){var t=_f.pop();return t===void 0?[]:t}function Mt(t){t.length=0,_f.push(t)}function Ar(t){if(typeof t=="function"){if(t.className)return t.className;if(t.name)return t.name;var i=t.toString();if(i=i.substring(9,i.indexOf("(")).trim(),i!=="")return t._className=i}else if(At(t)&&t.constructor)return Ar(t.constructor);return typeof t}function en(t){var i=t;return At(t)&&(t.text?i=t.text:t.name?i=t.name:t.key!==void 0?i=t.key:t.id!==void 0?i=t.id:t.constructor===Object&&(t.Text?i=t.Text:t.Name?i=t.Name:t.Key!==void 0?i=t.Key:t.Id!==void 0?i=t.Id:t.ID!==void 0&&(i=t.ID))),i===void 0?"undefined":i===null?"null":i.toString()}function lg(t,i){if(t.hasOwnProperty(i))return!0;for(t=Object.getPrototypeOf(t);t&&t!==Function;){if(t.hasOwnProperty(i))return!0;var e=t.CA;if(e&&e[i])return!0;t=Object.getPrototypeOf(t)}return!1}function On(t,i,e){Object.defineProperty(Bt.prototype,t,{get:i,set:e})}function dt(t){for(var i=[],e=0;256>e;e++)i["0123456789abcdef".charAt(e>>4)+"0123456789abcdef".charAt(e&15)]=String.fromCharCode(e);t.length%2&&(t="0"+t),e=[];for(var n=0,o=0;o<t.length;o+=2)e[n++]=i[t.substr(o,2)];for(t=e.join(""),t=t===""?"0":t,i=[],e=0;256>e;e++)i[e]=e;for(e=n=0;256>e;e++)n=(n+i[e]+119)%256,o=i[e],i[e]=i[n],i[n]=o;n=e=0;for(var r="",s=0;s<t.length;s++)e=(e+1)%256,n=(n+i[e])%256,o=i[e],i[e]=i[n],i[n]=o,r+=String.fromCharCode(t.charCodeAt(s)^i[(i[e]+i[n])%256]);return r}var Nv=J.navigator!==void 0&&0<J.navigator.userAgent.indexOf("Trident/7"),To=J.navigator!==void 0&&J.navigator.platform!==void 0&&J.navigator.platform.match(/(iPhone|iPod|iPad|Mac)/i)!==null,_f=[];An.className="Util",An.Dx="32ab5ff3b26f42dc0ed90f21472913b5",An.adym="gojs.net",An.vfo="28e645fdb267",An.className="Util";function R(t,i,e){ui(this),this.j=t,this.xa=i,this.o=e}R.prototype.toString=function(){return"EnumValue."+this.xa};function os(t,i){return i==null||i===""?null:t[i]}tt.Object.defineProperties(R.prototype,{classType:{get:function(){return this.j}},name:{get:function(){return this.xa}},value:{get:function(){return this.o}}}),R.className="EnumValue";function Pu(){this.ew=[]}Pu.prototype.toString=function(){return this.ew.join("")},Pu.prototype.add=function(t){t!==""&&this.ew.push(t)},Pu.className="StringBuilder";function Xe(){}Xe.className="PropertyCollection";var ku={EA:!1,JA:!1,GA:!1,IA:!1,NA:!1,LA:!1,nx:!1,FA:null,trace:function(t){J.console&&J.console.log(t)},HA:function(t,i,e,n){t.strokeStyle="red",t.fillStyle="red",t.font="8px sans-serif",t.beginPath(),t.moveTo(-10,0),t.lineTo(10,0),t.moveTo(0,-10),t.lineTo(0,10),t.stroke(),t.setTransform(1,0,0,1,0,0),t.scale(e,e),t.transform(i.m11,i.m12,i.m21,i.m22,i.dx,i.dy),t.lineWidth=2,t.beginPath(),t.moveTo(n.left,n.top+20),t.lineTo(n.left,n.top),t.lineTo(n.left+20,n.top),t.moveTo(n.right,n.bottom-20),t.lineTo(n.right,n.bottom),t.lineTo(n.right-20,n.bottom),t.stroke(),t.fillText("DB: "+Math.round(n.x)+", "+Math.round(n.y)+", "+Math.round(n.width)+", "+Math.round(n.height),n.left,n.top-5)},DA:function(t){var i={},e;for(e in t){if(i.x=e,i.x!=="licenseKey"){var n=t[i.x];if(n.prototype!==void 0){i.Yl=Object.getOwnPropertyNames(n.prototype);for(var o={Sj:0};o.Sj<i.Yl.length;o={Sj:o.Sj},o.Sj++){var r=Object.getOwnPropertyDescriptor(n.prototype,i.Yl[o.Sj]);r.get!==void 0&&r.set===void 0&&Object.defineProperty(n.prototype,i.Yl[o.Sj],{set:function(s,h){return function(){throw Error("Property "+s.Yl[h.Sj]+" of "+s.x+" is read-only.")}}(i,o)})}}}i={Yl:i.Yl,x:i.x}}}};function Ii(){}Ii.prototype.reset=function(){},Ii.prototype.next=function(){return!1},Ii.prototype.Ad=function(){return!1},Ii.prototype.first=function(){return null},Ii.prototype.any=function(){return!1},Ii.prototype.all=function(){return!0},Ii.prototype.each=function(){return this},Ii.prototype.map=function(){return this},Ii.prototype.filter=function(){return this},Ii.prototype.de=function(){},Ii.prototype.toString=function(){return"EmptyIterator"},tt.Object.defineProperties(Ii.prototype,{iterator:{get:function(){return this}},count:{get:function(){return 0}}}),Ii.prototype.first=Ii.prototype.first,Ii.prototype.hasNext=Ii.prototype.Ad,Ii.prototype.next=Ii.prototype.next,Ii.prototype.reset=Ii.prototype.reset;var nn=null;Ii.className="EmptyIterator",nn=new Ii;function gi(t){this.key=-1,this.value=t}gi.prototype.reset=function(){this.key=-1},gi.prototype.next=function(){return this.key===-1?(this.key=0,!0):!1},gi.prototype.Ad=function(){return this.next()},gi.prototype.first=function(){return this.key=0,this.value},gi.prototype.any=function(t){return this.key=-1,t(this.value)},gi.prototype.all=function(t){return this.key=-1,t(this.value)},gi.prototype.each=function(t){return this.key=-1,t(this.value),this},gi.prototype.map=function(t){return new gi(t(this.value))},gi.prototype.filter=function(t){return t(this.value)?new gi(this.value):nn},gi.prototype.de=function(){this.value=null},gi.prototype.toString=function(){return"SingletonIterator("+this.value+")"},tt.Object.defineProperties(gi.prototype,{iterator:{get:function(){return this}},count:{get:function(){return 1}}}),gi.prototype.first=gi.prototype.first,gi.prototype.hasNext=gi.prototype.Ad,gi.prototype.next=gi.prototype.next,gi.prototype.reset=gi.prototype.reset,gi.className="SingletonIterator";function fi(t){this.Cb=t,this.qf=null,t.Sa=null,this.qa=t.Ja,this.Za=-1}fi.prototype.reset=function(){var t=this.Cb;t.Sa=null,this.qa=t.Ja,this.Za=-1},fi.prototype.next=function(){var t=this.Cb;if(t.Ja!==this.qa&&0>this.key)return!1;t=t.s;var i=t.length,e=++this.Za,n=this.qf;if(n!==null)for(;e<i;){var o=t[e];if(n(o))return this.key=this.Za=e,this.value=o,!0;e++}else{if(e<i)return this.key=e,this.value=t[e],!0;this.de()}return!1},fi.prototype.Ad=function(){return this.next()},fi.prototype.first=function(){var t=this.Cb;this.qa=t.Ja,this.Za=0,t=t.s;var i=t.length,e=this.qf;if(e!==null){for(var n=0;n<i;){var o=t[n];if(e(o))return this.key=this.Za=n,this.value=o;n++}return null}return 0<i?(t=t[0],this.key=0,this.value=t):null},fi.prototype.any=function(t){var i=this.Cb;i.Sa=null,this.Za=-1,i=i.s;for(var e=i.length,n=this.qf,o=0;o<e;o++){var r=i[o];if((n===null||n(r))&&t(r))return!0}return!1},fi.prototype.all=function(t){var i=this.Cb;i.Sa=null,this.Za=-1,i=i.s;for(var e=i.length,n=this.qf,o=0;o<e;o++){var r=i[o];if((n===null||n(r))&&!t(r))return!1}return!0},fi.prototype.each=function(t){var i=this.Cb;i.Sa=null,this.Za=-1,i=i.s;for(var e=i.length,n=this.qf,o=0;o<e;o++){var r=i[o];(n===null||n(r))&&t(r)}return this},fi.prototype.map=function(t){var i=this.Cb;i.Sa=null,this.Za=-1;var e=[];i=i.s;for(var n=i.length,o=this.qf,r=0;r<n;r++){var s=i[r];(o===null||o(s))&&e.push(t(s))}return t=new V,t.s=e,t.yb(),t.iterator},fi.prototype.filter=function(t){var i=this.Cb;i.Sa=null,this.Za=-1;var e=[];i=i.s;for(var n=i.length,o=this.qf,r=0;r<n;r++){var s=i[r];(o===null||o(s))&&t(s)&&e.push(s)}return t=new V,t.s=e,t.yb(),t.iterator},fi.prototype.de=function(){this.key=-1,this.value=null,this.qa=-1,this.qf=null,this.Cb.Sa=this},fi.prototype.toString=function(){return"ListIterator@"+this.Za+"/"+this.Cb.count},tt.Object.defineProperties(fi.prototype,{iterator:{get:function(){return this}},predicate:{get:function(){return this.qf},set:function(t){this.qf=t}},count:{get:function(){var t=this.qf;if(t!==null){for(var i=0,e=this.Cb.s,n=e.length,o=0;o<n;o++)t(e[o])&&i++;return i}return this.Cb.s.length}}}),fi.prototype.first=fi.prototype.first,fi.prototype.hasNext=fi.prototype.Ad,fi.prototype.next=fi.prototype.next,fi.prototype.reset=fi.prototype.reset,fi.className="ListIterator";function Di(t){this.Cb=t,t.Hg=null,this.qa=t.Ja,this.Za=t.s.length}Di.prototype.reset=function(){var t=this.Cb;t.Hg=null,this.qa=t.Ja,this.Za=t.s.length},Di.prototype.next=function(){var t=this.Cb;if(t.Ja!==this.qa&&0>this.key)return!1;var i=--this.Za;return 0<=i?(this.key=i,this.value=t.s[i],!0):(this.de(),!1)},Di.prototype.Ad=function(){return this.next()},Di.prototype.first=function(){var t=this.Cb;this.qa=t.Ja;var i=t.s;return this.Za=t=i.length-1,0<=t?(i=i[t],this.key=t,this.value=i):null},Di.prototype.any=function(t){var i=this.Cb;i.Hg=null,i=i.s;var e=i.length;for(this.Za=e,--e;0<=e;e--)if(t(i[e]))return!0;return!1},Di.prototype.all=function(t){var i=this.Cb;i.Hg=null,i=i.s;var e=i.length;for(this.Za=e,--e;0<=e;e--)if(!t(i[e]))return!1;return!0},Di.prototype.each=function(t){var i=this.Cb;i.Hg=null,i=i.s;var e=i.length;for(this.Za=e,--e;0<=e;e--)t(i[e]);return this},Di.prototype.map=function(t){var i=this.Cb;i.Hg=null;var e=[];i=i.s;var n=i.length;for(this.Za=n,--n;0<=n;n--)e.push(t(i[n]));return t=new V,t.s=e,t.yb(),t.iterator},Di.prototype.filter=function(t){var i=this.Cb;i.Hg=null;var e=[];i=i.s;var n=i.length;for(this.Za=n,--n;0<=n;n--){var o=i[n];t(o)&&e.push(o)}return t=new V,t.s=e,t.yb(),t.iterator},Di.prototype.de=function(){this.key=-1,this.value=null,this.qa=-1,this.Cb.Hg=this},Di.prototype.toString=function(){return"ListIteratorBackwards("+this.Za+"/"+this.Cb.count+")"},tt.Object.defineProperties(Di.prototype,{iterator:{get:function(){return this}},count:{get:function(){return this.Cb.s.length}}}),Di.prototype.first=Di.prototype.first,Di.prototype.hasNext=Di.prototype.Ad,Di.prototype.next=Di.prototype.next,Di.prototype.reset=Di.prototype.reset,Di.className="ListIteratorBackwards";function V(t){ui(this),this._isFrozen=!1,this.s=[],this.Ja=0,this.Hg=this.Sa=null,typeof t=="string"&&O("Error: Since 2.0 List/Map/Set constructors no longer take an argument that enforces type."),t!==void 0&&this.addAll(t)}d=V.prototype,d.yb=function(){var t=this.Ja;t++,999999999<t&&(t=0),this.Ja=t},d.freeze=function(){return this._isFrozen=!0,this},d.ka=function(){return this._isFrozen=!1,this},d.toString=function(){return"List()#"+qi(this)},d.add=function(t){return t===null?this:(this._isFrozen&&rt(this,t),this.s.push(t),this.yb(),this)},d.push=function(t){this.add(t)},d.addAll=function(t){if(t===null)return this;this._isFrozen&&rt(this);var i=this.s;if(ai(t))for(var e=t.length,n=0;n<e;n++)i.push(t[n]);else for(t=t.iterator;t.next();)i.push(t.value);return this.yb(),this},d.clear=function(){this._isFrozen&&rt(this),this.s.length=0,this.yb()},d.contains=function(t){return t===null?!1:this.s.indexOf(t)!==-1},d.has=function(t){return this.contains(t)},d.indexOf=function(t){return t===null?-1:this.s.indexOf(t)},d.M=function(t){var i=this.s;return(0>t||t>=i.length)&&jt(t,"0 <= i < length",V,"elt:i"),i[t]},d.get=function(t){return this.M(t)},d.cd=function(t,i){var e=this.s;(0>t||t>=e.length)&&jt(t,"0 <= i < length",V,"setElt:i"),this._isFrozen&&rt(this,t),e[t]=i},d.set=function(t,i){this.cd(t,i)},d.first=function(){var t=this.s;return t.length===0?null:t[0]},d.kc=function(){var t=this.s,i=t.length;return 0<i?t[i-1]:null},d.pop=function(){this._isFrozen&&rt(this);var t=this.s;return 0<t.length?t.pop():null},V.prototype.any=function(t){for(var i=this.s,e=i.length,n=0;n<e;n++)if(t(i[n]))return!0;return!1},V.prototype.all=function(t){for(var i=this.s,e=i.length,n=0;n<e;n++)if(!t(i[n]))return!1;return!0},V.prototype.each=function(t){for(var i=this.s,e=i.length,n=0;n<e;n++)t(i[n]);return this},V.prototype.map=function(t){for(var i=new V,e=[],n=this.s,o=n.length,r=0;r<o;r++)e.push(t(n[r]));return i.s=e,i.yb(),i},V.prototype.filter=function(t){for(var i=new V,e=[],n=this.s,o=n.length,r=0;r<o;r++){var s=n[r];t(s)&&e.push(s)}return i.s=e,i.yb(),i},d=V.prototype,d.Hb=function(t,i){0>t&&jt(t,">= 0",V,"insertAt:i"),this._isFrozen&&rt(this,t);var e=this.s;t>=e.length?e.push(i):e.splice(t,0,i),this.yb()},d.remove=function(t){if(t===null)return!1;this._isFrozen&&rt(this,t);var i=this.s;return t=i.indexOf(t),t===-1?!1:(t===i.length-1?i.pop():i.splice(t,1),this.yb(),!0)},d.delete=function(t){return this.remove(t)},d.mb=function(t){var i=this.s;(0>t||t>=i.length)&&jt(t,"0 <= i < length",V,"removeAt:i"),this._isFrozen&&rt(this,t),t===i.length-1?i.pop():i.splice(t,1),this.yb()},d.removeRange=function(t,i){var e=this.s,n=e.length;if(0>t)t=0;else if(t>=n)return this;if(0>i)return this;if(i>=n&&(i=n-1),t>i)return this;this._isFrozen&&rt(this);for(var o=t,r=i+1;r<n;)e[o++]=e[r++];return e.length=n-(i-t+1),this.yb(),this},V.prototype.copy=function(){var t=new V,i=this.s;return 0<i.length&&(t.s=Array.prototype.slice.call(i)),t},d=V.prototype,d.Fa=function(){for(var t=this.s,i=this.count,e=Array(i),n=0;n<i;n++)e[n]=t[n];return e},d.Iv=function(){for(var t=new E,i=this.s,e=this.count,n=0;n<e;n++)t.add(i[n]);return t},d.sort=function(t){return this._isFrozen&&rt(this),this.s.sort(t),this.yb(),this},d.zi=function(t,i,e){var n=this.s,o=n.length;i===void 0&&(i=0),e===void 0&&(e=o),this._isFrozen&&rt(this);var r=e-i;if(1>=r)return this;if((0>i||i>=o-1)&&jt(i,"0 <= from < length",V,"sortRange:from"),r===2)return e=n[i],o=n[i+1],0<t(e,o)&&(n[i]=o,n[i+1]=e,this.yb()),this;if(i===0)if(e>=o)n.sort(t);else for(i=n.slice(0,e),i.sort(t),t=0;t<e;t++)n[t]=i[t];else if(e>=o)for(e=n.slice(i),e.sort(t),t=i;t<o;t++)n[t]=e[t-i];else for(o=n.slice(i,e),o.sort(t),t=i;t<e;t++)n[t]=o[t-i];return this.yb(),this},d.reverse=function(){return this._isFrozen&&rt(this),this.s.reverse(),this.yb(),this},tt.Object.defineProperties(V.prototype,{_dataArray:{get:function(){return this.s}},count:{get:function(){return this.s.length}},size:{get:function(){return this.s.length}},length:{get:function(){return this.s.length}},iterator:{get:function(){if(0>=this.s.length)return nn;var t=this.Sa;return t!==null?(t.reset(),t):new fi(this)}},iteratorBackwards:{get:function(){if(0>=this.s.length)return nn;var t=this.Hg;return t!==null?(t.reset(),t):new Di(this)}}}),V.prototype.reverse=V.prototype.reverse,V.prototype.sortRange=V.prototype.zi,V.prototype.sort=V.prototype.sort,V.prototype.toSet=V.prototype.Iv,V.prototype.toArray=V.prototype.Fa,V.prototype.removeRange=V.prototype.removeRange,V.prototype.removeAt=V.prototype.mb,V.prototype.delete=V.prototype.delete,V.prototype.remove=V.prototype.remove,V.prototype.insertAt=V.prototype.Hb,V.prototype.pop=V.prototype.pop,V.prototype.last=V.prototype.kc,V.prototype.first=V.prototype.first,V.prototype.set=V.prototype.set,V.prototype.setElt=V.prototype.cd,V.prototype.get=V.prototype.get,V.prototype.elt=V.prototype.M,V.prototype.indexOf=V.prototype.indexOf,V.prototype.has=V.prototype.has,V.prototype.contains=V.prototype.contains,V.prototype.clear=V.prototype.clear,V.prototype.addAll=V.prototype.addAll,V.prototype.push=V.prototype.push,V.prototype.add=V.prototype.add,V.prototype.thaw=V.prototype.ka,V.prototype.freeze=V.prototype.freeze,V.className="List";function Ei(t){this.eg=t,t.Sa=null,this.qa=t.Ja,this.sa=null}Ei.prototype.reset=function(){var t=this.eg;t.Sa=null,this.qa=t.Ja,this.sa=null},Ei.prototype.next=function(){var t=this.eg;if(t.Ja!==this.qa&&this.key===null)return!1;var i=this.sa;return i=i===null?t.ea:i.va,i!==null?(this.sa=i,this.value=i.value,this.key=i.key,!0):(this.de(),!1)},Ei.prototype.Ad=function(){return this.next()},Ei.prototype.first=function(){var t=this.eg;if(this.qa=t.Ja,t=t.ea,t!==null){this.sa=t;var i=t.value;return this.key=t.key,this.value=i}return null},Ei.prototype.any=function(t){var i=this.eg;for(this.sa=i.Sa=null,i=i.ea;i!==null;){if(t(i.value))return!0;i=i.va}return!1},Ei.prototype.all=function(t){var i=this.eg;for(this.sa=i.Sa=null,i=i.ea;i!==null;){if(!t(i.value))return!1;i=i.va}return!0},Ei.prototype.each=function(t){var i=this.eg;for(this.sa=i.Sa=null,i=i.ea;i!==null;)t(i.value),i=i.va;return this},Ei.prototype.map=function(t){var i=this.eg;i.Sa=null;var e=new V;for(i=i.ea;i!==null;)e.add(t(i.value)),i=i.va;return e.iterator},Ei.prototype.filter=function(t){var i=this.eg;i.Sa=null;var e=new V;for(i=i.ea;i!==null;){var n=i.value;t(n)&&e.add(n),i=i.va}return e.iterator},Ei.prototype.de=function(){this.value=this.key=null,this.qa=-1,this.eg.Sa=this},Ei.prototype.toString=function(){return this.sa!==null?"SetIterator@"+this.sa.value:"SetIterator"},tt.Object.defineProperties(Ei.prototype,{iterator:{get:function(){return this}},count:{get:function(){return this.eg.Tb}}}),Ei.prototype.first=Ei.prototype.first,Ei.prototype.hasNext=Ei.prototype.Ad,Ei.prototype.next=Ei.prototype.next,Ei.prototype.reset=Ei.prototype.reset,Ei.className="SetIterator";function E(t){ui(this),this._isFrozen=!1,this.Ub={},this.Tb=0,this.Sa=null,this.Ja=0,this.kf=this.ea=null,typeof t=="string"&&O("Error: Since 2.0 List/Map/Set constructors no longer take an argument that enforces type."),t!==void 0&&this.addAll(t)}d=E.prototype,d.yb=function(){var t=this.Ja;t++,999999999<t&&(t=0),this.Ja=t},d.freeze=function(){return this._isFrozen=!0,this},d.ka=function(){return this._isFrozen=!1,this},d.toString=function(){return"Set()#"+qi(this)},d.add=function(t){if(t===null)return this;this._isFrozen&&rt(this,t);var i=t;return At(t)&&(i=rs(t)),this.Ub[i]===void 0&&(this.Tb++,t=new nl(t,t),this.Ub[i]=t,i=this.kf,i===null?this.ea=t:(t.kl=i,i.va=t),this.kf=t,this.yb()),this},d.addAll=function(t){if(t===null)return this;if(this._isFrozen&&rt(this),ai(t))for(var i=t.length,e=0;e<i;e++)this.add(t[e]);else for(t=t.iterator;t.next();)this.add(t.value);return this},d.contains=function(t){if(t===null)return!1;var i=t;return At(t)&&(i=qi(t),i===void 0)?!1:this.Ub[i]!==void 0},d.has=function(t){return this.contains(t)},d.Sy=function(t){if(t===null)return!0;for(t=t.iterator;t.next();)if(!this.contains(t.value))return!1;return!0},d.Ty=function(t){if(t===null)return!0;for(t=t.iterator;t.next();)if(this.contains(t.value))return!0;return!1},d.first=function(){var t=this.ea;return t===null?null:t.value},E.prototype.any=function(t){for(var i=this.ea;i!==null;){if(t(i.value))return!0;i=i.va}return!1},E.prototype.all=function(t){for(var i=this.ea;i!==null;){if(!t(i.value))return!1;i=i.va}return!0},E.prototype.each=function(t){for(var i=this.ea;i!==null;)t(i.value),i=i.va;return this},E.prototype.map=function(t){for(var i=new E,e=this.ea;e!==null;)i.add(t(e.value)),e=e.va;return i},E.prototype.filter=function(t){for(var i=new E,e=this.ea;e!==null;){var n=e.value;t(n)&&i.add(n),e=e.va}return i},d=E.prototype,d.remove=function(t){if(t===null)return!1;this._isFrozen&&rt(this,t);var i=t;if(At(t)&&(i=qi(t),i===void 0)||(t=this.Ub[i],t===void 0))return!1;var e=t.va,n=t.kl;return e!==null&&(e.kl=n),n!==null&&(n.va=e),this.ea===t&&(this.ea=e),this.kf===t&&(this.kf=n),delete this.Ub[i],this.Tb--,this.yb(),!0},d.delete=function(t){return this.remove(t)},d.gp=function(t){if(t===null)return this;if(this._isFrozen&&rt(this),ai(t))for(var i=t.length,e=0;e<i;e++)this.remove(t[e]);else for(t=t.iterator;t.next();)this.remove(t.value);return this},d.pA=function(t){if(t===null||this.count===0)return this;this._isFrozen&&rt(this);var i=new E;i.addAll(t),t=[];for(var e=this.iterator;e.next();){var n=e.value;i.contains(n)||t.push(n)}return this.gp(t),this},d.clear=function(){this._isFrozen&&rt(this),this.Ub={},this.Tb=0,this.Sa!==null&&this.Sa.reset(),this.kf=this.ea=null,this.yb()},E.prototype.copy=function(){var t=new E,i=this.Ub,e;for(e in i)t.add(i[e].value);return t},E.prototype.Fa=function(){var t=Array(this.Tb),i=this.Ub,e=0,n;for(n in i)t[e]=i[n].value,e++;return t},E.prototype.Hv=function(){var t=new V,i=this.Ub,e;for(e in i)t.add(i[e].value);return t};function ui(t){t.__gohashid=ss++}function rs(t){var i=t.__gohashid;return i===void 0&&(i=ss++,t.__gohashid=i),i}function qi(t){return t.__gohashid}tt.Object.defineProperties(E.prototype,{count:{get:function(){return this.Tb}},size:{get:function(){return this.Tb}},iterator:{get:function(){if(0>=this.Tb)return nn;var t=this.Sa;return t!==null?(t.reset(),t):new Ei(this)}}}),E.prototype.toList=E.prototype.Hv,E.prototype.toArray=E.prototype.Fa,E.prototype.clear=E.prototype.clear,E.prototype.retainAll=E.prototype.pA,E.prototype.removeAll=E.prototype.gp,E.prototype.delete=E.prototype.delete,E.prototype.remove=E.prototype.remove,E.prototype.first=E.prototype.first,E.prototype.containsAny=E.prototype.Ty,E.prototype.containsAll=E.prototype.Sy,E.prototype.has=E.prototype.has,E.prototype.contains=E.prototype.contains,E.prototype.addAll=E.prototype.addAll,E.prototype.add=E.prototype.add,E.prototype.thaw=E.prototype.ka,E.prototype.freeze=E.prototype.freeze;var ss=1;E.className="Set",E.uniqueHash=ui,E.hashIdUnique=rs,E.hashId=qi;function Ci(t){this.ma=t,this.qa=t.Ja,this.sa=null}Ci.prototype.reset=function(){this.qa=this.ma.Ja,this.sa=null},Ci.prototype.next=function(){var t=this.ma;if(t.Ja!==this.qa&&this.key===null)return!1;var i=this.sa;return i=i===null?t.ea:i.va,i!==null?(this.sa=i,this.value=this.key=t=i.key,!0):(this.de(),!1)},Ci.prototype.Ad=function(){return this.next()},Ci.prototype.first=function(){var t=this.ma;return this.qa=t.Ja,t=t.ea,t!==null?(this.sa=t,this.value=this.key=t=t.key):null},Ci.prototype.any=function(t){var i=this.ma;for(this.sa=null,i=i.ea;i!==null;){if(t(i.key))return!0;i=i.va}return!1},Ci.prototype.all=function(t){var i=this.ma;for(this.sa=null,i=i.ea;i!==null;){if(!t(i.key))return!1;i=i.va}return!0},Ci.prototype.each=function(t){var i=this.ma;for(this.sa=null,i=i.ea;i!==null;)t(i.key),i=i.va;return this},Ci.prototype.map=function(t){var i=this.ma;this.sa=null;var e=new V;for(i=i.ea;i!==null;)e.add(t(i.key)),i=i.va;return e.iterator},Ci.prototype.filter=function(t){var i=this.ma;this.sa=null;var e=new V;for(i=i.ea;i!==null;){var n=i.key;t(n)&&e.add(n),i=i.va}return e.iterator},Ci.prototype.de=function(){this.value=this.key=null,this.qa=-1},Ci.prototype.toString=function(){return this.sa!==null?"MapKeySetIterator@"+this.sa.value:"MapKeySetIterator"},tt.Object.defineProperties(Ci.prototype,{iterator:{get:function(){return this}},count:{get:function(){return this.ma.Tb}}}),Ci.prototype.first=Ci.prototype.first,Ci.prototype.hasNext=Ci.prototype.Ad,Ci.prototype.next=Ci.prototype.next,Ci.prototype.reset=Ci.prototype.reset,Ci.className="MapKeySetIterator";function zt(t){E.call(this),ui(this),this._isFrozen=!0,this.ma=t}pt(zt,E),d=zt.prototype,d.freeze=function(){return this},d.ka=function(){return this},d.toString=function(){return"MapKeySet("+this.ma.toString()+")"},d.add=function(){O("This Set is read-only: "+this.toString())},d.contains=function(t){return this.ma.contains(t)},d.has=function(t){return this.contains(t)},d.remove=function(){O("This Set is read-only: "+this.toString())},d.delete=function(t){return this.remove(t)},d.clear=function(){O("This Set is read-only: "+this.toString())},d.first=function(){var t=this.ma.ea;return t!==null?t.key:null},zt.prototype.any=function(t){for(var i=this.ma.ea;i!==null;){if(t(i.key))return!0;i=i.va}return!1},zt.prototype.all=function(t){for(var i=this.ma.ea;i!==null;){if(!t(i.key))return!1;i=i.va}return!0},zt.prototype.each=function(t){for(var i=this.ma.ea;i!==null;)t(i.key),i=i.va;return this},zt.prototype.map=function(t){for(var i=new E,e=this.ma.ea;e!==null;)i.add(t(e.key)),e=e.va;return i},zt.prototype.filter=function(t){for(var i=new E,e=this.ma.ea;e!==null;){var n=e.key;t(n)&&i.add(n),e=e.va}return i},zt.prototype.copy=function(){return new zt(this.ma)},zt.prototype.Iv=function(){var t=new E,i=this.ma.Ub,e;for(e in i)t.add(i[e].key);return t},zt.prototype.Fa=function(){var t=this.ma.Ub,i=Array(this.ma.Tb),e=0,n;for(n in t)i[e]=t[n].key,e++;return i},zt.prototype.Hv=function(){var t=new V,i=this.ma.Ub,e;for(e in i)t.add(i[e].key);return t},tt.Object.defineProperties(zt.prototype,{count:{get:function(){return this.ma.Tb}},size:{get:function(){return this.ma.Tb}},iterator:{get:function(){return 0>=this.ma.Tb?nn:new Ci(this.ma)}}}),zt.prototype.toList=zt.prototype.Hv,zt.prototype.toArray=zt.prototype.Fa,zt.prototype.toSet=zt.prototype.Iv,zt.prototype.first=zt.prototype.first,zt.prototype.clear=zt.prototype.clear,zt.prototype.delete=zt.prototype.delete,zt.prototype.remove=zt.prototype.remove,zt.prototype.has=zt.prototype.has,zt.prototype.contains=zt.prototype.contains,zt.prototype.add=zt.prototype.add,zt.prototype.thaw=zt.prototype.ka,zt.prototype.freeze=zt.prototype.freeze,zt.className="MapKeySet";function Bi(t){this.ma=t,t.jf=null,this.qa=t.Ja,this.sa=null}Bi.prototype.reset=function(){var t=this.ma;t.jf=null,this.qa=t.Ja,this.sa=null},Bi.prototype.next=function(){var t=this.ma;if(t.Ja!==this.qa&&this.key===null)return!1;var i=this.sa;return i=i===null?t.ea:i.va,i!==null?(this.sa=i,this.value=i.value,this.key=i.key,!0):(this.de(),!1)},Bi.prototype.Ad=function(){return this.next()},Bi.prototype.first=function(){var t=this.ma;if(this.qa=t.Ja,t=t.ea,t!==null){this.sa=t;var i=t.value;return this.key=t.key,this.value=i}return null},Bi.prototype.any=function(t){var i=this.ma;for(this.sa=i.jf=null,i=i.ea;i!==null;){if(t(i.value))return!0;i=i.va}return!1},Bi.prototype.all=function(t){var i=this.ma;for(this.sa=i.jf=null,i=i.ea;i!==null;){if(!t(i.value))return!1;i=i.va}return!0},Bi.prototype.each=function(t){var i=this.ma;for(this.sa=i.jf=null,i=i.ea;i!==null;)t(i.value),i=i.va;return this},Bi.prototype.map=function(t){var i=this.ma;this.sa=i.jf=null;var e=new V;for(i=i.ea;i!==null;)e.add(t(i.value)),i=i.va;return e.iterator},Bi.prototype.filter=function(t){var i=this.ma;this.sa=i.jf=null;var e=new V;for(i=i.ea;i!==null;){var n=i.value;t(n)&&e.add(n),i=i.va}return e.iterator},Bi.prototype.de=function(){this.value=this.key=null,this.qa=-1,this.ma.jf=this},Bi.prototype.toString=function(){return this.sa!==null?"MapValueSetIterator@"+this.sa.value:"MapValueSetIterator"},tt.Object.defineProperties(Bi.prototype,{iterator:{get:function(){return this}},count:{get:function(){return this.ma.Tb}}}),Bi.prototype.first=Bi.prototype.first,Bi.prototype.hasNext=Bi.prototype.Ad,Bi.prototype.next=Bi.prototype.next,Bi.prototype.reset=Bi.prototype.reset,Bi.className="MapValueSetIterator";function nl(t,i){this.key=t,this.value=i,this.kl=this.va=null}nl.prototype.toString=function(){return"{"+this.key+":"+this.value+"}"},nl.className="KeyValuePair";function Ri(t){this.ma=t,t.Sa=null,this.qa=t.Ja,this.sa=null}Ri.prototype.reset=function(){var t=this.ma;t.Sa=null,this.qa=t.Ja,this.sa=null},Ri.prototype.next=function(){var t=this.ma;if(t.Ja!==this.qa&&this.key===null)return!1;var i=this.sa;return i=i===null?t.ea:i.va,i!==null?(this.sa=i,this.key=i.key,this.value=i.value,!0):(this.de(),!1)},Ri.prototype.Ad=function(){return this.next()},Ri.prototype.first=function(){var t=this.ma;return this.qa=t.Ja,t=t.ea,t!==null?(this.sa=t,this.key=t.key,this.value=t.value,t):null},Ri.prototype.any=function(t){var i=this.ma;for(this.sa=i.Sa=null,i=i.ea;i!==null;){if(t(i))return!0;i=i.va}return!1},Ri.prototype.all=function(t){var i=this.ma;for(this.sa=i.Sa=null,i=i.ea;i!==null;){if(!t(i))return!1;i=i.va}return!0},Ri.prototype.each=function(t){var i=this.ma;for(this.sa=i.Sa=null,i=i.ea;i!==null;)t(i),i=i.va;return this},Ri.prototype.map=function(t){var i=this.ma;this.sa=i.Sa=null;var e=new V;for(i=i.ea;i!==null;)e.add(t(i)),i=i.va;return e.iterator},Ri.prototype.filter=function(t){var i=this.ma;this.sa=i.Sa=null;var e=new V;for(i=i.ea;i!==null;)t(i)&&e.add(i),i=i.va;return e.iterator},Ri.prototype.de=function(){this.value=this.key=null,this.qa=-1,this.ma.Sa=this},Ri.prototype.toString=function(){return this.sa!==null?"MapIterator@"+this.sa:"MapIterator"},tt.Object.defineProperties(Ri.prototype,{iterator:{get:function(){return this}},count:{get:function(){return this.ma.Tb}}}),Ri.prototype.first=Ri.prototype.first,Ri.prototype.hasNext=Ri.prototype.Ad,Ri.prototype.next=Ri.prototype.next,Ri.prototype.reset=Ri.prototype.reset,Ri.className="MapIterator";function _(t){ui(this),this._isFrozen=!1,this.Ub={},this.Tb=0,this.jf=this.Sa=null,this.Ja=0,this.kf=this.ea=null,typeof t=="string"&&O("Error: Since 2.0 List/Map/Set constructors no longer take an argument that enforces type."),t!==void 0&&this.addAll(t)}d=_.prototype,d.yb=function(){var t=this.Ja;t++,999999999<t&&(t=0),this.Ja=t},d.freeze=function(){return this._isFrozen=!0,this},d.ka=function(){return this._isFrozen=!1,this},d.toString=function(){return"Map()#"+qi(this)},d.add=function(t,i){this._isFrozen&&rt(this,t);var e=t;At(t)&&(e=rs(t));var n=this.Ub[e];return n===void 0?(this.Tb++,t=new nl(t,i),this.Ub[e]=t,e=this.kf,e===null?this.ea=t:(t.kl=e,e.va=t),this.kf=t,this.yb()):n.value=i,this},d.set=function(t,i){return this.add(t,i)},d.addAll=function(t){if(t===null)return this;if(ai(t))for(var i=t.length,e=0;e<i;e++){var n=t[e];this.add(n.key,n.value)}else if(t instanceof _)for(t=t.iterator;t.next();)this.add(t.key,t.value);else for(t=t.iterator;t.next();)i=t.value,this.add(i.key,i.value);return this},d.first=function(){return this.ea},_.prototype.any=function(t){for(var i=this.ea;i!==null;){if(t(i))return!0;i=i.va}return!1},_.prototype.all=function(t){for(var i=this.ea;i!==null;){if(!t(i))return!1;i=i.va}return!0},_.prototype.each=function(t){for(var i=this.ea;i!==null;)t(i),i=i.va;return this},_.prototype.map=function(t){for(var i=new _,e=this.ea;e!==null;)i.add(e.key,t(e)),e=e.va;return i},_.prototype.filter=function(t){for(var i=new _,e=this.ea;e!==null;)t(e)&&i.add(e.key,e.value),e=e.va;return i},d=_.prototype,d.contains=function(t){var i=t;return At(t)&&(i=qi(t),i===void 0)?!1:this.Ub[i]!==void 0},d.has=function(t){return this.contains(t)},d.I=function(t){var i=t;return At(t)&&(i=qi(t),i===void 0)?null:(t=this.Ub[i],t===void 0?null:t.value)},d.get=function(t){return this.I(t)},d.remove=function(t){if(t===null)return!1;this._isFrozen&&rt(this,t);var i=t;if(At(t)&&(i=qi(t),i===void 0)||(t=this.Ub[i],t===void 0))return!1;var e=t.va,n=t.kl;return e!==null&&(e.kl=n),n!==null&&(n.va=e),this.ea===t&&(this.ea=e),this.kf===t&&(this.kf=n),delete this.Ub[i],this.Tb--,this.yb(),!0},d.delete=function(t){return this.remove(t)},d.clear=function(){this._isFrozen&&rt(this),this.Ub={},this.Tb=0,this.Sa!==null&&this.Sa.reset(),this.jf!==null&&this.jf.reset(),this.kf=this.ea=null,this.yb()},_.prototype.copy=function(){var t=new _,i=this.Ub,e;for(e in i){var n=i[e];t.add(n.key,n.value)}return t},_.prototype.Fa=function(){var t=this.Ub,i=Array(this.Tb),e=0,n;for(n in t){var o=t[n];i[e]=new nl(o.key,o.value),e++}return i},_.prototype.Lf=function(){return new zt(this)},tt.Object.defineProperties(_.prototype,{count:{get:function(){return this.Tb}},size:{get:function(){return this.Tb}},iterator:{get:function(){if(0>=this.count)return nn;var t=this.Sa;return t!==null?(t.reset(),t):new Ri(this)}},iteratorKeys:{get:function(){return 0>=this.count?nn:new Ci(this)}},iteratorValues:{get:function(){if(0>=this.count)return nn;var t=this.jf;return t!==null?(t.reset(),t):new Bi(this)}}}),_.prototype.toKeySet=_.prototype.Lf,_.prototype.toArray=_.prototype.Fa,_.prototype.clear=_.prototype.clear,_.prototype.delete=_.prototype.delete,_.prototype.remove=_.prototype.remove,_.prototype.get=_.prototype.get,_.prototype.getValue=_.prototype.I,_.prototype.has=_.prototype.has,_.prototype.contains=_.prototype.contains,_.prototype.first=_.prototype.first,_.prototype.addAll=_.prototype.addAll,_.prototype.set=_.prototype.set,_.prototype.add=_.prototype.add,_.prototype.thaw=_.prototype.ka,_.prototype.freeze=_.prototype.freeze,_.className="Map";function x(t,i){t===void 0?this.y=this.x=0:typeof t=="number"&&typeof i=="number"?(this.x=t,this.y=i):O("Invalid arguments to Point constructor: "+t+", "+i),this._isFrozen=!1}var lo,$f,Qf,qf,Cu;x.prototype.assign=function(t){return this.x=t.x,this.y=t.y,this},x.prototype.h=function(t,i){return this.x=t,this.y=i,this},x.prototype.sg=function(t,i){return this.x=t,this.y=i,this},x.prototype.set=function(t){return this.x=t.x,this.y=t.y,this},x.prototype.copy=function(){var t=new x;return t.x=this.x,t.y=this.y,t},d=x.prototype,d.ja=function(){return this._isFrozen=!0,Object.freeze(this),this},d.J=function(){return this._isFrozen||Object.isFrozen(this)?this:this.copy().freeze()},d.freeze=function(){return this._isFrozen=!0,this},d.ka=function(){return Object.isFrozen(this)&&O("cannot thaw constant: "+this),this._isFrozen=!1,this};function ug(t){if(typeof t=="string"){t=t.split(" ");for(var i=0,e=0;t[i]==="";)i++;var n=t[i++];n&&(e=parseFloat(n));for(var o=0;t[i]==="";)i++;return(n=t[i++])&&(o=parseFloat(n)),new x(e,o)}return new x}function ag(t){return t.x.toString()+" "+t.y.toString()}d.toString=function(){return"Point("+this.x+","+this.y+")"},d.D=function(t){return t instanceof x?this.x===t.x&&this.y===t.y:!1},d.hi=function(t,i){return this.x===t&&this.y===i},d.Xa=function(t){return P.B(this.x,t.x)&&P.B(this.y,t.y)},d.add=function(t){return this.x+=t.x,this.y+=t.y,this},d.re=function(t){return this.x-=t.x,this.y-=t.y,this},d.offset=function(t,i){return this.x+=t,this.y+=i,this},x.prototype.rotate=function(t){if(t===0)return this;var i=this.x,e=this.y;if(i===0&&e===0)return this;if(360<=t?t-=360:0>t&&(t+=360),t===90){t=0;var n=1}else t===180?(t=-1,n=0):t===270?(t=0,n=-1):(n=t*Math.PI/180,t=Math.cos(n),n=Math.sin(n));return this.x=t*i-n*e,this.y=n*i+t*e,this},d=x.prototype,d.scale=function(t,i){return this.x*=t,this.y*=i,this},d.Bf=function(t){var i=t.x-this.x;return t=t.y-this.y,i*i+t*t},d.zd=function(t,i){return t-=this.x,i-=this.y,t*t+i*i},d.normalize=function(){var t=this.x,i=this.y,e=Math.sqrt(t*t+i*i);return 0<e&&(this.x=t/e,this.y=i/e),this},d.ab=function(t){return fg(t.x-this.x,t.y-this.y)},d.direction=function(t,i){return fg(t-this.x,i-this.y)};function fg(t,i){if(t===0)return 0<i?90:0>i?270:0;if(i===0)return 0<t?0:180;if(isNaN(t)||isNaN(i))return 0;var e=180*Math.atan(Math.abs(i/t))/Math.PI;return 0>t?e=0>i?e+180:180-e:0>i&&(e=360-e),e}d.Ry=function(t,i){return P.El(t.x,t.y,i.x,i.y,this.x,this.y)},d.fA=function(t,i,e,n){return P.qh(t,i,e,n,this.x,this.y,this),this},d.gA=function(t,i){return P.qh(t.x,t.y,i.x,i.y,this.x,this.y,this),this},d.uA=function(t,i,e,n){return P.Mo(this.x,this.y,t,i,e,n,this),this},d.vA=function(t,i){return P.Mo(this.x,this.y,t.x,t.y,i.width,i.height,this),this},d.xi=function(t,i){return this.x=t.x+i.x*t.width+i.offsetX,this.y=t.y+i.y*t.height+i.offsetY,this},d.yi=function(t,i,e,n,o){return this.x=t+o.x*e+o.offsetX,this.y=i+o.y*n+o.offsetY,this},d.transform=function(t){return t.Ga(this),this};function Vi(t,i){return i.Cd(t),t}function Yi(t,i,e,n,o,r){var s=o-e,h=r-n,l=s*s+h*h;e-=t,n-=i;var u=-e*s-n*h;return 0>=u||u>=l?(s=o-t,h=r-i,Math.min(e*e+n*n,s*s+h*h)):(t=s*n-h*e,t*t/l)}function uo(t,i,e,n){return t=e-t,i=n-i,t*t+i*i}function bf(t,i,e,n){return t=e-t,i=n-i,t===0?0<i?90:0>i?270:0:i===0?0<t?0:180:isNaN(t)||isNaN(i)?0:(n=180*Math.atan(Math.abs(i/t))/Math.PI,0>t?n=0>i?n+180:180-n:0>i&&(n=360-n),n)}d.w=function(){return isFinite(this.x)&&isFinite(this.y)},x.alloc=function(){var t=tp.pop();return t===void 0?new x:t},x.allocAt=function(t,i){var e=tp.pop();return e===void 0?new x(t,i):(e.x=t,e.y=i,e)},x.free=function(t){tp.push(t)},x.prototype.isReal=x.prototype.w,x.prototype.setSpot=x.prototype.yi,x.prototype.setRectSpot=x.prototype.xi,x.prototype.snapToGridPoint=x.prototype.vA,x.prototype.snapToGrid=x.prototype.uA,x.prototype.projectOntoLineSegmentPoint=x.prototype.gA,x.prototype.projectOntoLineSegment=x.prototype.fA,x.intersectingLineSegments=function(t,i,e,n,o,r,s,h){return P.Ql(t,i,e,n,o,r,s,h)},x.prototype.compareWithLineSegmentPoint=x.prototype.Ry,x.compareWithLineSegment=function(t,i,e,n,o,r){return P.El(t,i,e,n,o,r)},x.prototype.direction=x.prototype.direction,x.prototype.directionPoint=x.prototype.ab,x.prototype.normalize=x.prototype.normalize,x.prototype.distanceSquared=x.prototype.zd,x.prototype.distanceSquaredPoint=x.prototype.Bf,x.prototype.scale=x.prototype.scale,x.prototype.rotate=x.prototype.rotate,x.prototype.offset=x.prototype.offset,x.prototype.subtract=x.prototype.re,x.prototype.add=x.prototype.add,x.prototype.equalsApprox=x.prototype.Xa,x.prototype.equalTo=x.prototype.hi,x.prototype.equals=x.prototype.D,x.prototype.set=x.prototype.set,x.prototype.setTo=x.prototype.sg;var tp=[];x.className="Point",x.parse=ug,x.stringify=ag,x.distanceLineSegmentSquared=Yi,x.distanceSquared=uo,x.direction=bf,x.Origin=lo=new x(0,0).ja(),x.InfiniteTopLeft=$f=new x(-1/0,-1/0).ja(),x.InfiniteBottomRight=Qf=new x(1/0,1/0).ja(),x.SixPoint=qf=new x(6,6).ja(),x.NoPoint=Cu=new x(NaN,NaN).ja(),x.parse=ug,x.stringify=ag,x.distanceLineSegmentSquared=Yi,x.distanceSquared=uo,x.direction=bf;function Z(t,i){t===void 0?this.height=this.width=0:typeof t=="number"&&(0<=t||isNaN(t))&&typeof i=="number"&&(0<=i||isNaN(i))?(this.width=t,this.height=i):O("Invalid arguments to Size constructor: "+t+", "+i),this._isFrozen=!1}var hs,Tu,ip,ls,pg,ep,Lu;Z.prototype.assign=function(t){return this.width=t.width,this.height=t.height,this},Z.prototype.h=function(t,i){return this.width=t,this.height=i,this},Z.prototype.sg=function(t,i){return this.width=t,this.height=i,this},Z.prototype.set=function(t){return this.width=t.width,this.height=t.height,this},Z.prototype.copy=function(){var t=new Z;return t.width=this.width,t.height=this.height,t},d=Z.prototype,d.ja=function(){return this._isFrozen=!0,Object.freeze(this),this},d.J=function(){return this._isFrozen||Object.isFrozen(this)?this:this.copy().freeze()},d.freeze=function(){return this._isFrozen=!0,this},d.ka=function(){return Object.isFrozen(this)&&O("cannot thaw constant: "+this),this._isFrozen=!1,this};function cg(t){if(typeof t=="string"){t=t.split(" ");for(var i=0,e=0;t[i]==="";)i++;var n=t[i++];n&&(e=parseFloat(n));for(var o=0;t[i]==="";)i++;return(n=t[i++])&&(o=parseFloat(n)),new Z(e,o)}return new Z}function dg(t){return t.width.toString()+" "+t.height.toString()}d.toString=function(){return"Size("+this.width+","+this.height+")"},d.D=function(t){return t instanceof Z?this.width===t.width&&this.height===t.height:!1},d.hi=function(t,i){return this.width===t&&this.height===i},d.Xa=function(t){return P.B(this.width,t.width)&&P.B(this.height,t.height)},d.Bc=function(t,i){return t=this.width+t,this.width=0<=t?t:0,i=this.height+i,this.height=0<=i?i:0,this},d.w=function(){return isFinite(this.width)&&isFinite(this.height)},Z.alloc=function(){var t=gg.pop();return t===void 0?new Z:t},Z.free=function(t){gg.push(t)},Z.prototype.isReal=Z.prototype.w,Z.prototype.inflate=Z.prototype.Bc,Z.prototype.equalsApprox=Z.prototype.Xa,Z.prototype.equalTo=Z.prototype.hi,Z.prototype.equals=Z.prototype.D,Z.prototype.set=Z.prototype.set,Z.prototype.setTo=Z.prototype.sg;var gg=[];Z.className="Size",Z.parse=cg,Z.stringify=dg,Z.ZeroSize=hs=new Z(0,0).ja(),Z.OneSize=Tu=new Z(1,1).ja(),Z.SixSize=ip=new Z(6,6).ja(),Z.EightSize=ls=new Z(8,8).ja(),Z.TenSize=pg=new Z(10,10).ja(),Z.InfiniteSize=ep=new Z(1/0,1/0).ja(),Z.NoSize=Lu=new Z(NaN,NaN).ja(),Z.parse=cg,Z.stringify=dg;function T(t,i,e,n){t===void 0?this.height=this.width=this.y=this.x=0:typeof t=="number"&&typeof i=="number"&&typeof e=="number"&&(0<=e||isNaN(e))&&typeof n=="number"&&(0<=n||isNaN(n))?(this.x=t,this.y=i,this.width=e,this.height=n):t instanceof x?(e=t.x,t=t.y,i instanceof x?(n=i.x,i=i.y,this.x=Math.min(e,n),this.y=Math.min(t,i),this.width=Math.abs(e-n),this.height=Math.abs(t-i)):i instanceof Z?(this.x=e,this.y=t,this.width=i.width,this.height=i.height):O("Incorrect second argument supplied to Rect constructor "+i)):O("Invalid arguments to Rect constructor: "+t+", "+i+", "+e+", "+n),this._isFrozen=!1}d=T.prototype,d.assign=function(t){return this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height,this},d.h=function(t,i,e,n){return this.x=t,this.y=i,this.width=e,this.height=n,this};function ao(t,i,e){t.width=i,t.height=e}d.sg=function(t,i,e,n){return this.x=t,this.y=i,this.width=e,this.height=n,this},d.set=function(t){return this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height,this},d.dd=function(t){return this.x=t.x,this.y=t.y,this},d.tA=function(t){return this.width=t.width,this.height=t.height,this},T.prototype.copy=function(){var t=new T;return t.x=this.x,t.y=this.y,t.width=this.width,t.height=this.height,t},d=T.prototype,d.ja=function(){return this._isFrozen=!0,Object.freeze(this),this},d.J=function(){return this._isFrozen||Object.isFrozen(this)?this:this.copy().freeze()},d.freeze=function(){return this._isFrozen=!0,this},d.ka=function(){return Object.isFrozen(this)&&O("cannot thaw constant: "+this),this._isFrozen=!1,this};function yg(t){if(typeof t=="string"){t=t.split(" ");for(var i=0,e=0;t[i]==="";)i++;var n=t[i++];n&&(e=parseFloat(n));for(var o=0;t[i]==="";)i++;(n=t[i++])&&(o=parseFloat(n));for(var r=0;t[i]==="";)i++;(n=t[i++])&&(r=parseFloat(n));for(var s=0;t[i]==="";)i++;return(n=t[i++])&&(s=parseFloat(n)),new T(e,o,r,s)}return new T}function mg(t){return t.x.toString()+" "+t.y.toString()+" "+t.width.toString()+" "+t.height.toString()}d.toString=function(){return"Rect("+this.x+","+this.y+","+this.width+","+this.height+")"},d.D=function(t){return t instanceof T?this.x===t.x&&this.y===t.y&&this.width===t.width&&this.height===t.height:!1},d.hi=function(t,i,e,n){return this.x===t&&this.y===i&&this.width===e&&this.height===n},d.Xa=function(t){return P.B(this.x,t.x)&&P.B(this.y,t.y)&&P.B(this.width,t.width)&&P.B(this.height,t.height)};function np(t,i){return P.$(t.x,i.x)&&P.$(t.y,i.y)&&P.$(t.width,i.width)&&P.$(t.height,i.height)}d.ca=function(t){return this.x<=t.x&&this.x+this.width>=t.x&&this.y<=t.y&&this.y+this.height>=t.y},d.Re=function(t){return this.x<=t.x&&t.x+t.width<=this.x+this.width&&this.y<=t.y&&t.y+t.height<=this.y+this.height},d.contains=function(t,i,e,n){return e===void 0&&(e=0),n===void 0&&(n=0),this.x<=t&&t+e<=this.x+this.width&&this.y<=i&&i+n<=this.y+this.height},d.offset=function(t,i){return this.x+=t,this.y+=i,this},d.Bc=function(t,i){return ju(this,i,t,i,t)},d.Bo=function(t){return ju(this,t.top,t.right,t.bottom,t.left)},d.Fv=function(t){return ju(this,-t.top,-t.right,-t.bottom,-t.left)},d.Hz=function(t,i,e,n){return ju(this,t,i,e,n)};function ju(t,i,e,n,o){var r=t.width;return e+o<=-r?(t.x+=r/2,t.width=0):(t.x-=o,t.width+=e+o),e=t.height,i+n<=-e?(t.y+=e/2,t.height=0):(t.y-=i,t.height+=i+n),t}d.Ex=function(t){return vg(this,t.x,t.y,t.width,t.height)},d.Uu=function(t,i,e,n){return vg(this,t,i,e,n)};function vg(t,i,e,n,o){var r=Math.max(t.x,i),s=Math.max(t.y,e);return i=Math.min(t.x+t.width,i+n),e=Math.min(t.y+t.height,e+o),t.x=r,t.y=s,t.width=Math.max(0,i-r),t.height=Math.max(0,e-s),t}d.Yc=function(t){return this.Vu(t.x,t.y,t.width,t.height)},d.Vu=function(t,i,e,n){var o=this.width,r=this.x;return o!==1/0&&e!==1/0&&(o+=r,e+=t,isNaN(e)||isNaN(o)||r>e||t>o)?!1:(t=this.height,e=this.y,!(t!==1/0&&n!==1/0&&(t+=e,n+=i,isNaN(n)||isNaN(t)||e>n||i>t)))};function xg(t,i){var e=t.width,n=t.x,o=i.x-10;return n>i.width+10+10+o||o>e+n?!1:(e=t.height,t=t.y,n=i.y-10,!(t>i.height+10+10+n||n>e+t))}d.Ye=function(t){return yi(this,t.x,t.y,0,0)},d.ed=function(t){return yi(this,t.x,t.y,t.width,t.height)},d.Kv=function(t,i,e,n){return e===void 0&&(e=0),n===void 0&&(n=0),yi(this,t,i,e,n)};function yi(t,i,e,n,o){var r=Math.min(t.x,i),s=Math.min(t.y,e);return i=Math.max(t.x+t.width,i+n),e=Math.max(t.y+t.height,e+o),t.x=r,t.y=s,t.width=i-r,t.height=e-s,t}d.yi=function(t,i,e){return this.x=t-e.offsetX-e.x*this.width,this.y=i-e.offsetY-e.y*this.height,this};function yn(t,i,e,n,o,r,s,h){return s===void 0&&(s=0),h===void 0&&(h=0),t<=o&&o+s<=t+e&&i<=r&&r+h<=i+n}function wg(t,i,e,n,o,r,s,h){return t>s+o||o>e+t?!1:!(i>h+r||r>n+i)}d.w=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},d.Mz=function(){return this.width===0&&this.height===0},T.alloc=function(){var t=op.pop();return t===void 0?new T:t},T.allocAt=function(t,i,e,n){var o=op.pop();return o===void 0?new T(t,i,e,n):o.h(t,i,e,n)},T.free=function(t){op.push(t)},tt.Object.defineProperties(T.prototype,{left:{get:function(){return this.x},set:function(t){this.x=t}},top:{get:function(){return this.y},set:function(t){this.y=t}},right:{get:function(){return this.x+this.width},set:function(t){this.x+=t-(this.x+this.width)}},bottom:{get:function(){return this.y+this.height},set:function(t){this.y+=t-(this.y+this.height)}},position:{get:function(){return new x(this.x,this.y)},set:function(t){this.x=t.x,this.y=t.y}},size:{get:function(){return new Z(this.width,this.height)},set:function(t){this.width=t.width,this.height=t.height}},center:{get:function(){return new x(this.x+this.width/2,this.y+this.height/2)},set:function(t){this.x=t.x-this.width/2,this.y=t.y-this.height/2}},centerX:{get:function(){return this.x+this.width/2},set:function(t){this.x=t-this.width/2}},centerY:{get:function(){return this.y+this.height/2},set:function(t){this.y=t-this.height/2}}}),T.prototype.isEmpty=T.prototype.Mz,T.prototype.isReal=T.prototype.w,T.intersectsLineSegment=function(t,i,e,n,o,r,s,h){return P.Fx(t,i,e,n,o,r,s,h)},T.prototype.setSpot=T.prototype.yi,T.prototype.union=T.prototype.Kv,T.prototype.unionRect=T.prototype.ed,T.prototype.unionPoint=T.prototype.Ye,T.prototype.intersects=T.prototype.Vu,T.prototype.intersectsRect=T.prototype.Yc,T.prototype.intersect=T.prototype.Uu,T.prototype.intersectRect=T.prototype.Ex,T.prototype.grow=T.prototype.Hz,T.prototype.subtractMargin=T.prototype.Fv,T.prototype.addMargin=T.prototype.Bo,T.prototype.inflate=T.prototype.Bc,T.prototype.offset=T.prototype.offset,T.prototype.contains=T.prototype.contains,T.prototype.containsRect=T.prototype.Re,T.prototype.containsPoint=T.prototype.ca,T.prototype.equalsApprox=T.prototype.Xa,T.prototype.equalTo=T.prototype.hi,T.prototype.equals=T.prototype.D,T.prototype.setSize=T.prototype.tA,T.prototype.setPoint=T.prototype.dd,T.prototype.set=T.prototype.set,T.prototype.setTo=T.prototype.sg;var Fu=null,Mg=null,op=[];T.className="Rect",T.parse=yg,T.stringify=mg,T.contains=yn,T.intersects=wg,T.ZeroRect=Fu=new T(0,0,0,0).ja(),T.NoRect=Mg=new T(NaN,NaN,NaN,NaN).ja(),T.parse=yg,T.stringify=mg,T.contains=yn,T.intersects=wg;function gt(t,i,e,n){t===void 0?this.left=this.bottom=this.right=this.top=0:i===void 0?this.left=this.bottom=this.right=this.top=t:e===void 0?(this.top=t,this.right=i,this.bottom=t,this.left=i):n!==void 0?(this.top=t,this.right=i,this.bottom=e,this.left=n):O("Invalid arguments to Margin constructor: "+t+", "+i+", "+e+", "+n),this._isFrozen=!1}gt.prototype.assign=function(t){return this.top=t.top,this.right=t.right,this.bottom=t.bottom,this.left=t.left,this},gt.prototype.sg=function(t,i,e,n){return this.top=t,this.right=i,this.bottom=e,this.left=n,this},gt.prototype.set=function(t){return this.top=t.top,this.right=t.right,this.bottom=t.bottom,this.left=t.left,this},gt.prototype.copy=function(){var t=new gt;return t.top=this.top,t.right=this.right,t.bottom=this.bottom,t.left=this.left,t},d=gt.prototype,d.ja=function(){return this._isFrozen=!0,Object.freeze(this),this},d.J=function(){return this._isFrozen||Object.isFrozen(this)?this:this.copy().freeze()},d.freeze=function(){return this._isFrozen=!0,this},d.ka=function(){return Object.isFrozen(this)&&O("cannot thaw constant: "+this),this._isFrozen=!1,this};function Sg(t){if(typeof t=="string"){t=t.split(" ");for(var i=0,e=NaN;t[i]==="";)i++;var n=t[i++];if(n&&(e=parseFloat(n)),isNaN(e))return new gt;for(var o=NaN;t[i]==="";)i++;if((n=t[i++])&&(o=parseFloat(n)),isNaN(o))return new gt(e);for(var r=NaN;t[i]==="";)i++;if((n=t[i++])&&(r=parseFloat(n)),isNaN(r))return new gt(e,o);for(var s=NaN;t[i]==="";)i++;return(n=t[i++])&&(s=parseFloat(n)),isNaN(s)?new gt(e,o):new gt(e,o,r,s)}return new gt}function Ng(t){return t.top.toString()+" "+t.right.toString()+" "+t.bottom.toString()+" "+t.left.toString()}d.toString=function(){return"Margin("+this.top+","+this.right+","+this.bottom+","+this.left+")"},d.D=function(t){return t instanceof gt?this.top===t.top&&this.right===t.right&&this.bottom===t.bottom&&this.left===t.left:!1},d.hi=function(t,i,e,n){return this.top===t&&this.right===i&&this.bottom===e&&this.left===n},d.Xa=function(t){return P.B(this.top,t.top)&&P.B(this.right,t.right)&&P.B(this.bottom,t.bottom)&&P.B(this.left,t.left)},d.w=function(){return isFinite(this.top)&&isFinite(this.right)&&isFinite(this.bottom)&&isFinite(this.left)},gt.alloc=function(){var t=Pg.pop();return t===void 0?new gt:t},gt.free=function(t){Pg.push(t)},gt.prototype.isReal=gt.prototype.w,gt.prototype.equalsApprox=gt.prototype.Xa,gt.prototype.equalTo=gt.prototype.hi,gt.prototype.equals=gt.prototype.D,gt.prototype.set=gt.prototype.set,gt.prototype.setTo=gt.prototype.sg;var Ks=null,rp=null,Pg=[];gt.className="Margin",gt.parse=Sg,gt.stringify=Ng,gt.ZeroMargin=Ks=new gt(0,0,0,0).ja(),gt.TwoMargin=rp=new gt(2,2,2,2).ja(),gt.parse=Sg,gt.stringify=Ng;function H(t,i,e,n){t===void 0?this.offsetY=this.offsetX=this.y=this.x=0:(i===void 0&&(i=0),e===void 0&&(e=0),n===void 0&&(n=0),this.x=t,this.y=i,this.offsetX=e,this.offsetY=n),this._isFrozen=!1}var Mi,Ti,fo,Us,ol,vt,rl,Hs,us,Xn,Ws,Js,Zs,_s,sp,hp,lp,up,ap,fp,pp,cp,dp,gp,yp,Si,kg,Cg,Au,Tg,Ke,Ue,ae,He,mp,vp;H.prototype.assign=function(t){return this.x=t.x,this.y=t.y,this.offsetX=t.offsetX,this.offsetY=t.offsetY,this},H.prototype.sg=function(t,i,e,n){return this.x=t,this.y=i,this.offsetX=e,this.offsetY=n,this},H.prototype.set=function(t){return this.x=t.x,this.y=t.y,this.offsetX=t.offsetX,this.offsetY=t.offsetY,this},H.prototype.copy=function(){var t=new H;return t.x=this.x,t.y=this.y,t.offsetX=this.offsetX,t.offsetY=this.offsetY,t},d=H.prototype,d.ja=function(){return this._isFrozen=!0,Object.freeze(this),this},d.J=function(){return this._isFrozen||Object.isFrozen(this)?this:this.copy().freeze()},d.freeze=function(){return this._isFrozen=!0,this},d.ka=function(){return Object.isFrozen(this)&&O("cannot thaw constant: "+this),this._isFrozen=!1,this};function Le(t,i){return t.x=NaN,t.y=NaN,t.offsetX=i,t}function xp(t){if(typeof t=="string"){if(t=t.trim(),t==="None")return Mi;if(t==="TopLeft")return Ti;if(t==="Top"||t==="TopCenter"||t==="MiddleTop")return fo;if(t==="TopRight")return Us;if(t==="Left"||t==="LeftCenter"||t==="MiddleLeft")return ol;if(t==="Center")return vt;if(t==="Right"||t==="RightCenter"||t==="MiddleRight")return rl;if(t==="BottomLeft")return Hs;if(t==="Bottom"||t==="BottomCenter"||t==="MiddleBottom")return us;if(t==="BottomRight")return Xn;if(t==="TopSide")return Ws;if(t==="LeftSide")return Js;if(t==="RightSide")return Zs;if(t==="BottomSide")return _s;if(t==="TopBottomSides")return sp;if(t==="LeftRightSides")return hp;if(t==="TopLeftSides")return lp;if(t==="TopRightSides")return up;if(t==="BottomLeftSides")return ap;if(t==="BottomRightSides")return fp;if(t==="NotTopSide")return pp;if(t==="NotLeftSide")return cp;if(t==="NotRightSide")return dp;if(t==="NotBottomSide")return gp;if(t==="AllSides")return yp;if(t==="Default")return Si;t=t.split(" ");for(var i=0,e=0;t[i]==="";)i++;var n=t[i++];n!==void 0&&0<n.length&&(e=parseFloat(n));for(var o=0;t[i]==="";)i++;n=t[i++],n!==void 0&&0<n.length&&(o=parseFloat(n));for(var r=0;t[i]==="";)i++;n=t[i++],n!==void 0&&0<n.length&&(r=parseFloat(n));for(var s=0;t[i]==="";)i++;return n=t[i++],n!==void 0&&0<n.length&&(s=parseFloat(n)),new H(e,o,r,s)}return new H}function Lg(t){return t.sb()?t.x.toString()+" "+t.y.toString()+" "+t.offsetX.toString()+" "+t.offsetY.toString():t.toString()}d.toString=function(){return this.sb()?this.offsetX===0&&this.offsetY===0?"Spot("+this.x+","+this.y+")":"Spot("+this.x+","+this.y+","+this.offsetX+","+this.offsetY+")":this.D(Mi)?"None":this.D(Ti)?"TopLeft":this.D(fo)?"Top":this.D(Us)?"TopRight":this.D(ol)?"Left":this.D(vt)?"Center":this.D(rl)?"Right":this.D(Hs)?"BottomLeft":this.D(us)?"Bottom":this.D(Xn)?"BottomRight":this.D(Ws)?"TopSide":this.D(Js)?"LeftSide":this.D(Zs)?"RightSide":this.D(_s)?"BottomSide":this.D(sp)?"TopBottomSides":this.D(hp)?"LeftRightSides":this.D(lp)?"TopLeftSides":this.D(up)?"TopRightSides":this.D(ap)?"BottomLeftSides":this.D(fp)?"BottomRightSides":this.D(pp)?"NotTopSide":this.D(cp)?"NotLeftSide":this.D(dp)?"NotRightSide":this.D(gp)?"NotBottomSide":this.D(yp)?"AllSides":this.D(Si)?"Default":"None"},d.D=function(t){return t instanceof H?(this.x===t.x||isNaN(this.x)&&isNaN(t.x))&&(this.y===t.y||isNaN(this.y)&&isNaN(t.y))&&this.offsetX===t.offsetX&&this.offsetY===t.offsetY:!1},d.gv=function(){return new H(.5-(this.x-.5),.5-(this.y-.5),-this.offsetX,-this.offsetY)},d.Hf=function(t){if(!this.$c())return!1;if(!t.$c())if(t.D(kg))t=Js;else if(t.D(Cg))t=Zs;else if(t.D(Au))t=Ws;else if(t.D(Tg))t=_s;else return!1;return t=t.offsetY,(this.offsetY&t)===t},d.sb=function(){return!isNaN(this.x)&&!isNaN(this.y)},d.Mc=function(){return isNaN(this.x)||isNaN(this.y)},d.$c=function(){return isNaN(this.x)&&isNaN(this.y)&&this.offsetX===1&&this.offsetY!==0},d.xs=function(){return isNaN(this.x)&&isNaN(this.y)&&this.offsetX===0&&this.offsetY===0},d.Yb=function(){return isNaN(this.x)&&isNaN(this.y)&&this.offsetX===-1&&this.offsetY===0},H.alloc=function(){var t=jg.pop();return t===void 0?new H:t},H.free=function(t){jg.push(t)},H.prototype.isDefault=H.prototype.Yb,H.prototype.isNone=H.prototype.xs,H.prototype.isSide=H.prototype.$c,H.prototype.isNoSpot=H.prototype.Mc,H.prototype.isSpot=H.prototype.sb,H.prototype.includesSide=H.prototype.Hf,H.prototype.opposite=H.prototype.gv,H.prototype.equals=H.prototype.D,H.prototype.set=H.prototype.set,H.prototype.setTo=H.prototype.sg;var jg=[];H.className="Spot",H.parse=xp,H.stringify=Lg,H.None=Mi=Le(new H(0,0,0,0),0).ja(),H.Default=Si=Le(new H(0,0,-1,0),-1).ja(),H.TopLeft=Ti=new H(0,0,0,0).ja(),H.TopCenter=fo=new H(.5,0,0,0).ja(),H.TopRight=Us=new H(1,0,0,0).ja(),H.LeftCenter=ol=new H(0,.5,0,0).ja(),H.Center=vt=new H(.5,.5,0,0).ja(),H.RightCenter=rl=new H(1,.5,0,0).ja(),H.BottomLeft=Hs=new H(0,1,0,0).ja(),H.BottomCenter=us=new H(.5,1,0,0).ja(),H.BottomRight=Xn=new H(1,1,0,0).ja(),H.MiddleTop=Ke=fo,H.MiddleLeft=Ue=ol,H.MiddleRight=ae=rl,H.MiddleBottom=He=us,H.Top=Au=fo,H.Left=kg=ol,H.Right=Cg=rl,H.Bottom=Tg=us,H.TopSide=Ws=Le(new H(0,0,1,1),1).ja(),H.LeftSide=Js=Le(new H(0,0,1,2),1).ja(),H.RightSide=Zs=Le(new H(0,0,1,4),1).ja(),H.BottomSide=_s=Le(new H(0,0,1,8),1).ja(),H.TopBottomSides=sp=Le(new H(0,0,1,9),1).ja(),H.LeftRightSides=hp=Le(new H(0,0,1,6),1).ja(),H.TopLeftSides=lp=Le(new H(0,0,1,3),1).ja(),H.TopRightSides=up=Le(new H(0,0,1,5),1).ja(),H.BottomLeftSides=ap=Le(new H(0,0,1,10),1).ja(),H.BottomRightSides=fp=Le(new H(0,0,1,12),1).ja(),H.NotTopSide=pp=Le(new H(0,0,1,14),1).ja(),H.NotLeftSide=cp=Le(new H(0,0,1,13),1).ja(),H.NotRightSide=dp=Le(new H(0,0,1,11),1).ja(),H.NotBottomSide=gp=Le(new H(0,0,1,7),1).ja(),H.AllSides=yp=Le(new H(0,0,1,15),1).ja(),mp=new H(.156,.156).ja(),vp=new H(.844,.844).ja(),H.parse=xp,H.stringify=Lg;function it(){this.m11=1,this.m21=this.m12=0,this.m22=1,this.dy=this.dx=0}it.prototype.set=function(t){return this.m11=t.m11,this.m12=t.m12,this.m21=t.m21,this.m22=t.m22,this.dx=t.dx,this.dy=t.dy,this},it.prototype.setTransform=function(t,i,e,n,o,r){return this.m11=t,this.m12=i,this.m21=e,this.m22=n,this.dx=o,this.dy=r,this},it.prototype.copy=function(){var t=new it;return t.m11=this.m11,t.m12=this.m12,t.m21=this.m21,t.m22=this.m22,t.dx=this.dx,t.dy=this.dy,t},it.prototype.toString=function(){return"Transform("+this.m11+","+this.m12+","+this.m21+","+this.m22+","+this.dx+","+this.dy+")"},it.prototype.D=function(t){return this.m11===t.m11&&this.m12===t.m12&&this.m21===t.m21&&this.m22===t.m22&&this.dx===t.dx&&this.dy===t.dy},it.prototype.vs=function(){return this.dx===0&&this.dy===0&&this.m11===1&&this.m12===0&&this.m21===0&&this.m22===1},it.prototype.reset=function(){return this.m11=1,this.m21=this.m12=0,this.m22=1,this.dy=this.dx=0,this},it.prototype.multiply=function(t){var i=this.m11*t.m11+this.m21*t.m12,e=this.m12*t.m11+this.m22*t.m12,n=this.m11*t.m21+this.m21*t.m22,o=this.m12*t.m21+this.m22*t.m22;return this.dx=this.m11*t.dx+this.m21*t.dy+this.dx,this.dy=this.m12*t.dx+this.m22*t.dy+this.dy,this.m11=i,this.m12=e,this.m21=n,this.m22=o,this},it.prototype.bv=function(t){var i=1/(t.m11*t.m22-t.m12*t.m21),e=t.m22*i,n=-t.m12*i,o=-t.m21*i,r=t.m11*i,s=i*(t.m21*t.dy-t.m22*t.dx);return t=i*(t.m12*t.dx-t.m11*t.dy),i=this.m11*e+this.m21*n,e=this.m12*e+this.m22*n,n=this.m11*o+this.m21*r,o=this.m12*o+this.m22*r,this.dx=this.m11*s+this.m21*t+this.dx,this.dy=this.m12*s+this.m22*t+this.dy,this.m11=i,this.m12=e,this.m21=n,this.m22=o,this},it.prototype.Uj=function(){var t=1/(this.m11*this.m22-this.m12*this.m21),i=-this.m12*t,e=-this.m21*t,n=this.m11*t,o=t*(this.m21*this.dy-this.m22*this.dx),r=t*(this.m12*this.dx-this.m11*this.dy);return this.m11=this.m22*t,this.m12=i,this.m21=e,this.m22=n,this.dx=o,this.dy=r,this},it.prototype.rotate=function(t,i,e){if(360<=t?t-=360:0>t&&(t+=360),t===0)return this;if(this.translate(i,e),t===90){t=0;var n=1}else t===180?(t=-1,n=0):t===270?(t=0,n=-1):(n=t*Math.PI/180,t=Math.cos(n),n=Math.sin(n));var o=this.m12*t+this.m22*n,r=this.m11*-n+this.m21*t,s=this.m12*-n+this.m22*t;return this.m11=this.m11*t+this.m21*n,this.m12=o,this.m21=r,this.m22=s,this.translate(-i,-e),this},d=it.prototype,d.translate=function(t,i){return this.dx+=this.m11*t+this.m21*i,this.dy+=this.m12*t+this.m22*i,this},d.scale=function(t,i){return i===void 0&&(i=t),this.m11*=t,this.m12*=t,this.m21*=i,this.m22*=i,this},d.Ga=function(t){var i=t.x,e=t.y;return t.h(i*this.m11+e*this.m21+this.dx,i*this.m12+e*this.m22+this.dy)},d.Cd=function(t){var i=1/(this.m11*this.m22-this.m12*this.m21),e=t.x,n=t.y;return t.h(e*this.m22*i+n*-this.m21*i+i*(this.m21*this.dy-this.m22*this.dx),e*-this.m12*i+n*this.m11*i+i*(this.m12*this.dx-this.m11*this.dy))},d.Eu=function(t){var i=1/(this.m11*this.m22-this.m12*this.m21),e=1.25*t.x,n=1.2*t.y;return t.h(e*this.m22*i+n*-this.m21*i+i*(this.m21*this.dy-this.m22*this.dx),e*-this.m12*i+n*this.m11*i+i*(this.m12*this.dx-this.m11*this.dy))},d.op=function(t){var i=t.x,e=t.y,n=i+t.width,o=e+t.height,r=this.m11,s=this.m12,h=this.m21,l=this.m22,u=this.dx,a=this.dy,f=i*r+e*h+u,p=i*s+e*l+a,c=n*r+e*h+u,g=n*s+e*l+a;return e=i*r+o*h+u,i=i*s+o*l+a,r=n*r+o*h+u,n=n*s+o*l+a,o=Math.min(f,c),f=Math.max(f,c),c=Math.min(p,g),p=Math.max(p,g),o=Math.min(o,e),f=Math.max(f,e),c=Math.min(c,i),p=Math.max(p,i),o=Math.min(o,r),f=Math.max(f,r),c=Math.min(c,n),p=Math.max(p,n),t.h(o,c,f-o,p-c),t},it.alloc=function(){var t=Fg.pop();return t===void 0?new it:t},it.free=function(t){Fg.push(t)},it.prototype.transformRect=it.prototype.op,it.prototype.transformPoint=it.prototype.Ga,it.prototype.scale=it.prototype.scale,it.prototype.translate=it.prototype.translate,it.prototype.rotate=it.prototype.rotate,it.prototype.invert=it.prototype.Uj,it.prototype.multiplyInverted=it.prototype.bv,it.prototype.multiply=it.prototype.multiply,it.prototype.reset=it.prototype.reset,it.prototype.isIdentity=it.prototype.vs,it.prototype.equals=it.prototype.D,it.prototype.setTransform=it.prototype.setTransform,it.prototype.set=it.prototype.set;var Fg=[];it.className="Transform",it.xF="54a702f3e53909c447824c6706603faf4c";var P={AA:"7da71ca0ad381e90",wg:(Math.sqrt(2)-1)/3*4,Uv:null,sqrt:function(t){if(0>=t)return 0;var i=P.Uv;if(i===null){i=[];for(var e=0;2e3>=e;e++)i[e]=Math.sqrt(e);P.Uv=i}return 1>t?(e=1/t,2e3>=e?1/i[e|0]:Math.sqrt(t)):2e3>=t?i[t|0]:Math.sqrt(t)},B:function(t,i){return t-=i,.5>t&&-.5<t},$:function(t,i){return t-=i,5e-8>t&&-5e-8<t},Zb:function(t,i,e,n,o,r,s){if(0>=o&&(o=1e-6),t<e)var h=t,l=e;else h=e,l=t;if(i<n)var u=i,a=n;else u=n,a=i;if(t===e)return u<=s&&s<=a&&t-o<=r&&r<=t+o;if(i===n)return h<=r&&r<=l&&i-o<=s&&s<=i+o;if(l+=o,h-=o,h<=r&&r<=l&&(a+=o,u-=o,u<=s&&s<=a))if(l-h>a-u)if(t-e>o||e-t>o){if(r=(n-i)/(e-t)*(r-t)+i,r-o<=s&&s<=r+o)return!0}else return!0;else if(i-n>o||n-i>o){if(s=(e-t)/(n-i)*(s-i)+t,s-o<=r&&r<=s+o)return!0}else return!0;return!1},bs:function(t,i,e,n,o,r,s,h,l,u,a,f){if(P.Zb(t,i,s,h,f,e,n)&&P.Zb(t,i,s,h,f,o,r))return P.Zb(t,i,s,h,f,u,a);var p=(t+e)/2,c=(i+n)/2,g=(e+o)/2,y=(n+r)/2;o=(o+s)/2,r=(r+h)/2,n=(p+g)/2,e=(c+y)/2,g=(g+o)/2,y=(y+r)/2;var v=(n+g)/2,m=(e+y)/2;return P.bs(t,i,p,c,n,e,v,m,l,u,a,f)||P.bs(v,m,g,y,o,r,s,h,l,u,a,f)},ax:function(t,i,e,n,o,r,s,h,l){var u=(e+o)/2,a=(n+r)/2;return l.h((((t+e)/2+u)/2+(u+(o+s)/2)/2)/2,(((i+n)/2+a)/2+(a+(r+h)/2)/2)/2),l},My:function(t,i,e,n,o,r,s,h){var l=(e+o)/2,u=(n+r)/2;return bf(((t+e)/2+l)/2,((i+n)/2+u)/2,(l+(o+s)/2)/2,(u+(r+h)/2)/2)},Cl:function(t,i,e,n,o,r,s,h,l,u){if(P.Zb(t,i,s,h,l,e,n)&&P.Zb(t,i,s,h,l,o,r))yi(u,t,i,0,0),yi(u,s,h,0,0);else{var a=(t+e)/2,f=(i+n)/2,p=(e+o)/2,c=(n+r)/2;o=(o+s)/2,r=(r+h)/2,n=(a+p)/2,e=(f+c)/2,p=(p+o)/2,c=(c+r)/2;var g=(n+p)/2,y=(e+c)/2;P.Cl(t,i,a,f,n,e,g,y,l,u),P.Cl(g,y,p,c,o,r,s,h,l,u)}return u},Qe:function(t,i,e,n,o,r,s,h,l,u){if(P.Zb(t,i,s,h,l,e,n)&&P.Zb(t,i,s,h,l,o,r))u.length===0&&(u.push(t),u.push(i)),u.push(s),u.push(h);else{var a=(t+e)/2,f=(i+n)/2,p=(e+o)/2,c=(n+r)/2;o=(o+s)/2,r=(r+h)/2,n=(a+p)/2,e=(f+c)/2,p=(p+o)/2,c=(c+r)/2;var g=(n+p)/2,y=(e+c)/2;P.Qe(t,i,a,f,n,e,g,y,l,u),P.Qe(g,y,p,c,o,r,s,h,l,u)}return u},jv:function(t,i,e,n,o,r,s,h,l,u){if(P.Zb(t,i,o,r,u,e,n))return P.Zb(t,i,o,r,u,h,l);var a=(t+e)/2,f=(i+n)/2;e=(e+o)/2,n=(n+r)/2;var p=(a+e)/2,c=(f+n)/2;return P.jv(t,i,a,f,p,c,s,h,l,u)||P.jv(p,c,e,n,o,r,s,h,l,u)},OA:function(t,i,e,n,o,r,s){return s.h(((t+e)/2+(e+o)/2)/2,((i+n)/2+(n+r)/2)/2),s},iv:function(t,i,e,n,o,r,s,h){if(P.Zb(t,i,o,r,s,e,n))yi(h,t,i,0,0),yi(h,o,r,0,0);else{var l=(t+e)/2,u=(i+n)/2;e=(e+o)/2,n=(n+r)/2;var a=(l+e)/2,f=(u+n)/2;P.iv(t,i,l,u,a,f,s,h),P.iv(a,f,e,n,o,r,s,h)}return h},cp:function(t,i,e,n,o,r,s,h){if(P.Zb(t,i,o,r,s,e,n))h.length===0&&(h.push(t),h.push(i)),h.push(o),h.push(r);else{var l=(t+e)/2,u=(i+n)/2;e=(e+o)/2,n=(n+r)/2;var a=(l+e)/2,f=(u+n)/2;P.cp(t,i,l,u,a,f,s,h),P.cp(a,f,e,n,o,r,s,h)}return h},Do:function(t,i,e,n,o,r,s,h,l,u,a,f,p,c){if(P.Zb(t,i,s,h,p,e,n)&&P.Zb(t,i,s,h,p,o,r))return!P.Ql(t,i,s,h,l,u,a,f)||(p=(t-s)*(u-f)-(i-h)*(l-a),p===0)?!1:(c.h(((t*h-i*s)*(l-a)-(t-s)*(l*f-u*a))/p,((t*h-i*s)*(u-f)-(i-h)*(l*f-u*a))/p),!0);var g=(t+e)/2,y=(i+n)/2,v=(e+o)/2,m=(n+r)/2;o=(o+s)/2,r=(r+h)/2,n=(g+v)/2,e=(y+m)/2,v=(v+o)/2,m=(m+r)/2;var w=(n+v)/2,M=(e+m)/2,S=1/0,N=!1,k=0,D=0;return P.Do(t,i,g,y,n,e,w,M,l,u,a,f,p,c)&&(t=(c.x-l)*(c.x-l)+(c.y-u)*(c.y-u),t<S&&(S=t,N=!0,k=c.x,D=c.y)),P.Do(w,M,v,m,o,r,s,h,l,u,a,f,p,c)&&(c.x-l)*(c.x-l)+(c.y-u)*(c.y-u)<S&&(N=!0,k=c.x,D=c.y),N&&(c.x=k,c.y=D),N},Eo:function(t,i,e,n,o,r,s,h,l,u,a,f,p){var c=0;if(P.Zb(t,i,s,h,p,e,n)&&P.Zb(t,i,s,h,p,o,r)){if(p=(t-s)*(u-f)-(i-h)*(l-a),p===0)return c;var g=((t*h-i*s)*(l-a)-(t-s)*(l*f-u*a))/p,y=((t*h-i*s)*(u-f)-(i-h)*(l*f-u*a))/p;if(g>=a)return c;if((l>a?l-a:a-l)<(u>f?u-f:f-u)){if(i<h?(l=i,t=h):(l=h,t=i),y<l||y>t)return c}else if(t<s?(l=t,t=s):l=s,g<l||g>t)return c;0<p?c++:0>p&&c--}else{g=(t+e)/2,y=(i+n)/2;var v=(e+o)/2,m=(n+r)/2;o=(o+s)/2,r=(r+h)/2,n=(g+v)/2,e=(y+m)/2,v=(v+o)/2,m=(m+r)/2;var w=(n+v)/2,M=(e+m)/2;c+=P.Eo(t,i,g,y,n,e,w,M,l,u,a,f,p),c+=P.Eo(w,M,v,m,o,r,s,h,l,u,a,f,p)}return c},qh:function(t,i,e,n,o,r,s){return P.$(t,e)?(i<n?(e=i,i=n):e=n,r<e?(s.h(t,e),!1):r>i?(s.h(t,i),!1):(s.h(t,r),!0)):P.$(i,n)?(t<e?(n=t,t=e):n=e,o<n?(s.h(n,i),!1):o>t?(s.h(t,i),!1):(s.h(o,i),!0)):(o=((t-o)*(t-e)+(i-r)*(i-n))/((e-t)*(e-t)+(n-i)*(n-i)),-5e-6>o?(s.h(t,i),!1):1.000005<o?(s.h(e,n),!1):(s.h(t+o*(e-t),i+o*(n-i)),!0))},Ve:function(t,i,e,n,o,r,s,h,l){return P.B(t,e)&&P.B(i,n)?(l.h(t,i),!1):P.$(o,s)?P.$(t,e)?(P.qh(t,i,e,n,o,r,l),!1):P.qh(t,i,e,n,o,(n-i)/(e-t)*(o-t)+i,l):(h=(h-r)/(s-o),P.$(t,e)?(e=h*(t-o)+r,i<n?(o=i,i=n):o=n,e<o?(l.h(t,o),!1):e>i?(l.h(t,i),!1):(l.h(t,e),!0)):(s=(n-i)/(e-t),P.$(h,s)?(P.qh(t,i,e,n,o,r,l),!1):(o=(s*t-h*o+r-i)/(s-h),P.$(s,0)?(t<e?(n=t,t=e):n=e,o<n?(l.h(n,i),!1):o>t?(l.h(t,i),!1):(l.h(o,i),!0)):P.qh(t,i,e,n,o,s*(o-t)+i,l))))},MA:function(t,i,e,n,o){return P.Ve(e.x,e.y,n.x,n.y,t.x,t.y,i.x,i.y,o)},KA:function(t,i,e,n,o,r,s,h,l,u){function a(v,m){var w=(v-t)*(v-t)+(m-i)*(m-i);w<f&&(f=w,l.h(v,m))}var f=1/0;a(l.x,l.y);var p=0,c=0,g=0,y=0;if(o<s?(p=o,c=s):(p=s,c=o),r<h?(g=o,y=s):(g=s,y=o),p=(c-p)/2+u,u=(y-g)/2+u,o=(o+s)/2,r=(r+h)/2,p===0||u===0)return l;if(.5>(e>t?e-t:t-e)){if(p=1-(e-o)*(e-o)/(p*p),0>p)return l;p=Math.sqrt(p),n=-u*p+r,a(e,u*p+r),a(e,n)}else{if(e=(n-i)/(e-t),n=1/(p*p)+e*e/(u*u),h=2*e*(i-e*t)/(u*u)-2*e*r/(u*u)-2*o/(p*p),p=h*h-4*n*(2*e*t*r/(u*u)-2*i*r/(u*u)+r*r/(u*u)+o*o/(p*p)-1+(i-e*t)*(i-e*t)/(u*u)),0>p)return l;p=Math.sqrt(p),u=(-h+p)/(2*n),a(u,e*u-e*t+i),p=(-h-p)/(2*n),a(p,e*p-e*t+i)}return l},Ff:function(t,i,e,n,o,r,s,h,l){var u=1e21,a=t,f=i;if(P.Ve(t,i,t,n,o,r,s,h,l)){var p=(l.x-o)*(l.x-o)+(l.y-r)*(l.y-r);p<u&&(u=p,a=l.x,f=l.y)}return P.Ve(e,i,e,n,o,r,s,h,l)&&(p=(l.x-o)*(l.x-o)+(l.y-r)*(l.y-r),p<u&&(u=p,a=l.x,f=l.y)),P.Ve(t,i,e,i,o,r,s,h,l)&&(i=(l.x-o)*(l.x-o)+(l.y-r)*(l.y-r),i<u&&(u=i,a=l.x,f=l.y)),P.Ve(t,n,e,n,o,r,s,h,l)&&(t=(l.x-o)*(l.x-o)+(l.y-r)*(l.y-r),t<u&&(u=t,a=l.x,f=l.y)),l.h(a,f),1e21>u},ts:function(t,i,e){return P.Fx(t.x,t.y,t.width,t.height,i.x,i.y,e.x,e.y)},Fx:function(t,i,e,n,o,r,s,h){var l=t+e,u=i+n;return o===s?(r<h?(s=r,r=h):s=h,t<=o&&o<=l&&s<=u&&r>=i):r===h?(o<s?(h=o,o=s):h=s,i<=r&&r<=u&&h<=l&&o>=t):!!(yn(t,i,e,n,o,r)||yn(t,i,e,n,s,h)||P.Ql(t,i,l,i,o,r,s,h)||P.Ql(l,i,l,u,o,r,s,h)||P.Ql(l,u,t,u,o,r,s,h)||P.Ql(t,u,t,i,o,r,s,h))},Ql:function(t,i,e,n,o,r,s,h){return t===e&&i===n&&o===s&&r===h?t===o&&i===r:0>=P.El(t,i,e,n,o,r)*P.El(t,i,e,n,s,h)&&0>=P.El(o,r,s,h,t,i)*P.El(o,r,s,h,e,n)},El:function(t,i,e,n,o,r){return e-=t,n-=i,t=o-t,i=r-i,r=t*n-i*e,r===0&&(r=t*e+i*n,0<r&&(r=(t-e)*e+(i-n)*n,0>r&&(r=0))),r},ap:function(t){return 0>t&&(t+=360),360<=t&&(t-=360),t},jx:function(t,i,e,n,o,r){var s=Math.PI;r||(n*=s/180,o*=s/180);var h=n>o?-1:1;r=[];var l=s/2,u=n;if(n=Math.min(2*s,Math.abs(o-n)),1e-5>n)return l=u+h*Math.min(n,l),h=t+e*Math.cos(u),u=i+e*Math.sin(u),t+=e*Math.cos(l),i+=e*Math.sin(l),e=(h+t)/2,l=(u+i)/2,r.push([h,u,e,l,e,l,t,i]),r;for(;1e-5<n;)o=u+h*Math.min(n,l),r.push(P.Vy(e,u,o,t,i)),n-=Math.abs(o-u),u=o;return r},Vy:function(t,i,e,n,o){var r=(e-i)/2,s=t*Math.cos(r),h=t*Math.sin(r),l=-h,u=s*s+l*l,a=u+s*s+l*h;return u=4/3*(Math.sqrt(2*u*a)-a)/(s*h-l*s),h=s-u*l,s=l+u*s,l=-s,u=r+i,r=Math.cos(u),u=Math.sin(u),[n+t*Math.cos(i),o+t*Math.sin(i),n+h*r-s*u,o+h*u+s*r,n+h*r-l*u,o+h*u+l*r,n+t*Math.cos(e),o+t*Math.sin(e)]},Mo:function(t,i,e,n,o,r,s){e=Math.floor((t-e)/o)*o+e,n=Math.floor((i-n)/r)*r+n;var h=e;return e+o-t<o/2&&(h=e+o),t=n,n+r-i<r/2&&(t=n+r),s.h(h,t),s},vx:function(t,i){var e=Math.max(t,i);t=Math.min(t,i);var n;do i=e%t,e=n=t,t=i;while(0<i);return n},$y:function(t,i,e,n){var o=0>e,r=0>n;if(t<i)var s=1,h=0;else s=0,h=1;var l=s===0?t:i,u=s===0?e:n;return(s===0?o:r)&&(u=-u),s=h,e=s===0?e:n,(s===0?o:r)&&(e=-e),P.az(l,s===0?t:i,u,e,0,0)},az:function(t,i,e,n,o,r){if(0<n)if(0<e){o=t*t,r=i*i,t*=e;var s=i*n,h=-r+s,l=-r+Math.sqrt(t*t+s*s);i=h;for(var u=0;9999999999>u&&(i=.5*(h+l),!(i===h||i===l));++u){var a=t/(i+o),f=s/(i+r);if(a=a*a+f*f-1,0<a)h=i;else if(0>a)l=i;else break}e=o*e/(i+o)-e,n=r*n/(i+r)-n,e=Math.sqrt(e*e+n*n)}else e=Math.abs(n-i);else n=t*t-i*i,r=t*e,r<n?(n=r/n,r=i*Math.sqrt(Math.abs(1-n*n)),e=t*n-e,e=Math.sqrt(e*e+r*r)):e=Math.abs(e-t);return e},Ze:new Xe,tm:new Xe,Mf:new Xe,Nf:0,um:100};P.za=P.AA;function I(t){ui(this),this.l=2,t===void 0&&(t=I.o),this.na=t,this.Ec=this.Dc=this.pd=this.od=0,t===I.o?this.ee=new V:(I.V===null&&(I.V=new V().freeze()),this.ee=I.V),this.$p=this.ee.Ja,this.Hp=new T().freeze(),this.xm=this.sk=null,this.ym=NaN,this.fg=Ti,this.gg=Xn,this.Qk=this.Rk=NaN,this.Uf=Ut}I.prototype.copy=function(){var t=new I;if(t.l=this.l&-2,t.na=this.na,t.od=this.od,t.pd=this.pd,t.Dc=this.Dc,t.Ec=this.Ec,this.na===I.o){for(var i=this.ee.s,e=t.ee,n=0;n<i.length;n++)e.add(i[n].copy());t.ee=e}else t.ee=this.ee;return t.$p=this.$p,t.Hp.assign(this.Hp),t.sk=this.sk,t.xm=this.xm,t.ym=this.ym,t.fg=this.fg.J(),t.gg=this.gg.J(),t.Rk=this.Rk,t.Qk=this.Qk,t.Uf=this.Uf,t},I.prototype.ja=function(){return this.freeze(),Object.freeze(this),this},I.prototype.freeze=function(){if(this._isFrozen=!0,this.type!==I.o)return this;var t=this.figures;t.freeze(),t=t.s;for(var i=t.length,e=0;e<i;e++)t[e].freeze();return this},I.prototype.ka=function(){if(Object.isFrozen(this)&&O("cannot thaw constant: "+this),this._isFrozen=!1,this.type!==I.o)return this;var t=this.figures;t.ka(),t=t.s;for(var i=t.length,e=0;e<i;e++)t[e].ka();return this},I.prototype.Xa=function(t){if(!(t instanceof I))return!1;if(this.type!==t.type)return this.type===I.j&&t.type===I.o?Ag(this,t):t.type===I.j&&this.type===I.o?Ag(t,this):!1;if(this.type===I.o){var i=this.figures.s;t=t.figures.s;var e=i.length;if(e!==t.length)return!1;for(var n=0;n<e;n++)if(!i[n].Xa(t[n]))return!1;return!0}return P.B(this.startX,t.startX)&&P.B(this.startY,t.startY)&&P.B(this.endX,t.endX)&&P.B(this.endY,t.endY)};function Ag(t,i){return t.type!==I.j||i.type!==I.o?!1:!!(i.figures.count===1&&(i=i.figures.M(0),i.segments.count===1&&P.B(t.startX,i.startX)&&P.B(t.startY,i.startY)&&(i=i.segments.M(0),i.type===Dt&&P.B(t.endX,i.endX)&&P.B(t.endY,i.endY))))}I.ia=function(t){return t.toString()},I.prototype.qb=function(t){t.classType===I&&(this.type=t)},I.prototype.toString=function(t){switch(t===void 0&&(t=-1),this.type){case I.j:return 0>t?"M"+this.startX.toString()+" "+this.startY.toString()+"L"+this.endX.toString()+" "+this.endY.toString():"M"+this.startX.toFixed(t)+" "+this.startY.toFixed(t)+"L"+this.endX.toFixed(t)+" "+this.endY.toFixed(t);case I.u:var i=new T(this.startX,this.startY,0,0);return i.Kv(this.endX,this.endY,0,0),0>t?"M"+i.x.toString()+" "+i.y.toString()+"H"+i.right.toString()+"V"+i.bottom.toString()+"H"+i.left.toString()+"z":"M"+i.x.toFixed(t)+" "+i.y.toFixed(t)+"H"+i.right.toFixed(t)+"V"+i.bottom.toFixed(t)+"H"+i.left.toFixed(t)+"z";case I.F:if(i=new T(this.startX,this.startY,0,0),i.Kv(this.endX,this.endY,0,0),0>t)return t=i.left.toString()+" "+(i.y+i.height/2).toString(),"M"+t+"A"+(i.width/2).toString()+" "+(i.height/2).toString()+" 0 0 1 "+(i.right.toString()+" "+(i.y+i.height/2).toString())+"A"+(i.width/2).toString()+" "+(i.height/2).toString()+" 0 0 1 "+t;var e=i.left.toFixed(t)+" "+(i.y+i.height/2).toFixed(t);return"M"+e+"A"+(i.width/2).toFixed(t)+" "+(i.height/2).toFixed(t)+" 0 0 1 "+(i.right.toFixed(t)+" "+(i.y+i.height/2).toFixed(t))+"A"+(i.width/2).toFixed(t)+" "+(i.height/2).toFixed(t)+" 0 0 1 "+e;case I.o:i="",e=this.figures.s;for(var n=e.length,o=0;o<n;o++){var r=e[o];0<o&&(i+=" x "),r.isFilled&&(i+="F "),i+=r.toString(t)}return i;default:return this.type.toString()}},I.nb=function(t){t=t.split(/[Xx]/);for(var i=t.length,e="",n=0;n<i;n++){var o=t[n];e=o.match(/[Ff]/)!==null?n===0?e+o:e+("X"+(o[0]===" "?"":" ")+o):e+((n===0?"":"X ")+"F"+(o[0]===" "?"":" ")+o)}return e},I.parse=function(t,i){function e(){return y>=S-1?!0:u[y+1].match(N)!==null}function n(){return y++,u[y]}function o($){var W=parseFloat(n()),ut=parseFloat(n());v===v.toLowerCase()&&(W=M.x+W,ut=M.y+ut),$.h(W,ut)}function r(){return o(M),M}function s(){return o(w),w}function h(){var $=m.toLowerCase();return $!=="c"&&$!=="s"&&$!=="q"&&$!=="t"?M:new x(2*M.x-w.x,2*M.y-w.y)}i===void 0&&(i=!1);var l=/([UuBbMmZzLlHhVvCcSsQqTtAaFfXx])([UuBbMmZzLlHhVvCcSsQqTtAaFfXx])/gm;t=t.replace(/,/gm," "),t=t.replace(l,"$1 $2"),t=t.replace(l,"$1 $2"),t=t.replace(/([UuBbMmZzLlHhVvCcSsQqTtAaFfXx])([^s])/gm,"$1 $2"),t=t.replace(/([^s])([UuBbMmZzLlHhVvCcSsQqTtAaFfXx])/gm,"$1 $2"),t=t.replace(/([0-9])([+\-])/gm,"$1 $2"),t=t.replace(/[\s\r\t\n]+/gm," "),t=t.replace(/^\s+|\s+$/g,"");var u=t.split(" ");for(t=0;t<u.length;t++){var a=u[t];if(a.match(/(\.[0-9]*)(\.)/gm)!==null){l=kt();for(var f="",p=!1,c=0;c<a.length;c++){var g=a[c];g!=="."||p?g==="."?(l.push(f),f="."):f+=g:(p=!0,f+=g)}for(l.push(f),u.splice(t,1),a=0;a<l.length;a++)u.splice(t+a,0,l[a]);t+=l.length-1,Mt(l)}}var y=-1,v="",m="";l=new x(0,0);var w=new x(0,0),M=new x(0,0),S=u.length;t=By(null),p=f=a=!1,c=!0,g=null;for(var N=/[UuBbMmZzLlHhVvCcSsQqTtAaFfXx]/;!(y>=S-1);)if(m=v,v=n(),v!=="")switch(v.toUpperCase()){case"X":c=!0,f=a=!1;break;case"M":for(g=r(),t.nc===null||c===!0?(Lh(t,g.x,g.y,a,!f,p),c=!1):t.moveTo(g.x,g.y),l.assign(M);!e();)g=r(),t.lineTo(g.x,g.y);break;case"L":for(;!e();)g=r(),t.lineTo(g.x,g.y);break;case"H":for(;!e();)M=new x((v===v.toLowerCase()?M.x:0)+parseFloat(n()),M.y),t.lineTo(M.x,M.y);break;case"V":for(;!e();)M=new x(M.x,(v===v.toLowerCase()?M.y:0)+parseFloat(n())),t.lineTo(M.x,M.y);break;case"C":for(;!e();){g=new x,o(g);var k=s(),D=r();Yo(t,g.x,g.y,k.x,k.y,D.x,D.y)}break;case"S":for(;!e();)g=h(),k=s(),D=r(),Yo(t,g.x,g.y,k.x,k.y,D.x,D.y);break;case"Q":for(;!e();)g=s(),k=r(),Ia(t,g.x,g.y,k.x,k.y);break;case"T":for(;!e();)w=g=h(),k=r(),Ia(t,g.x,g.y,k.x,k.y);break;case"B":for(;!e();){g=parseFloat(n()),k=parseFloat(n()),D=parseFloat(n());var z=parseFloat(n()),Y=parseFloat(n()),A=Y,L=!1;e()||(A=parseFloat(n()),e()||(L=parseFloat(n())!==0)),v===v.toLowerCase()&&(D+=M.x,z+=M.y),t.arcTo(g,k,D,z,Y,A,L)}break;case"A":for(;!e();)g=Math.abs(parseFloat(n())),k=Math.abs(parseFloat(n())),D=parseFloat(n()),Y=z=!1,L=A=0,A=n(),A.length===1?(z=!!parseFloat(A),Y=!!parseFloat(n()),A=parseFloat(n())):A.length===2?(z=!!parseFloat(A[0]),Y=!!parseFloat(A[1]),A=parseFloat(n())):(z=!!parseFloat(A[0]),Y=!!parseFloat(A[1]),A=parseFloat(A.slice(2))),L=parseFloat(n()),v===v.toLowerCase()&&(A=M.x+A,L=M.y+L),M.h(A,L),n1(t,g,k,D,z,Y,A,L);break;case"Z":e1(t),M.assign(l);break;case"F":for(g="",k=1;u[y+k];)if(u[y+k]==="0")p=!0,k++;else if(u[y+k].match(/[Uu]/)!==null)k++;else if(u[y+k].match(N)===null)k++;else{g=u[y+k];break}g.match(/[Mm]/)?a=!0:0<t.nc.segments.length&&(t.nc.isFilled=!0);break;case"U":for(g="",k=1;u[y+k];)if(u[y+k].match(/[Ff]/)!==null)k++;else if(u[y+k].match(N)===null)k++;else{g=u[y+k];break}g.match(/[Mm]/)?f=!0:t.nc.isShadowed=!1}if(l=t.ns,Da=t,i)for(i=l.figures.iterator;i.next();)i.value.isFilled=!0;return l},I.Ha=function(t,i){for(var e=t.length,n=x.alloc(),o=0;o<e;o++){var r=t[o];n.x=r[0],n.y=r[1],i.Ga(n),r[0]=n.x,r[1]=n.y,n.x=r[2],n.y=r[3],i.Ga(n),r[2]=n.x,r[3]=n.y,n.x=r[4],n.y=r[5],i.Ga(n),r[4]=n.x,r[5]=n.y,n.x=r[6],n.y=r[7],i.Ga(n),r[6]=n.x,r[7]=n.y}x.free(n)},I.prototype.Zu=function(){if(this._isInvalidBounds)return!0;if(this.type===I.o){if(this.$p!==this.figures.Ja)return!0;for(var t=this.figures.s,i=t.length,e=0;e<i;e++)if(t[e].Zu())return!0}return!1},I.prototype.computeBounds=function(){if(this._isInvalidBounds=!1,this.xm=this.sk=null,this.ym=NaN,this.type===I.o){this.$p=this.figures.Ja;for(var t=this.figures.s,i=t.length,e=0;e<i;e++){var n=t[e];n._isInvalidBounds=!1;var o=n.segments;n.rr=o.Ja,n=o.s,o=n.length;for(var r=0;r<o;r++){var s=n[r];s._isInvalidBounds=!1,s.ae=null}}}t=this.Hp,t.ka(),isNaN(this.Rk)||isNaN(this.Qk)?t.h(0,0,0,0):t.h(0,0,this.Rk,this.Qk),Og(this,t,!1),yi(t,0,0,0,0),t.freeze()},I.prototype.ix=function(){var t=new T;return Og(this,t,!0),t};function Og(t,i,e){switch(t.type){case I.j:case I.u:case I.F:e?i.h(t.od,t.pd,0,0):yi(i,t.od,t.pd,0,0),yi(i,t.Dc,t.Ec,0,0);break;case I.o:var n=t.figures;t=n.s,n=n.length;for(var o=0;o<n;o++){var r=t[o];e&&o===0?i.h(r.startX,r.startY,0,0):yi(i,r.startX,r.startY,0,0);for(var s=r.segments.s,h=s.length,l=r.startX,u=r.startY,a=0;a<h;a++){var f=s[a];switch(f.type){case Dt:case on:l=f.endX,u=f.endY,yi(i,l,u,0,0);break;case je:P.Cl(l,u,f.point1X,f.point1Y,f.point2X,f.point2Y,f.endX,f.endY,.5,i),l=f.endX,u=f.endY;break;case In:P.iv(l,u,f.point1X,f.point1Y,f.endX,f.endY,.5,i),l=f.endX,u=f.endY;break;case Qt:case mn:var p=f.type===Qt?po(f,r):Or(f,r,l,u),c=p.length;if(c===0){l=f.type===Qt?f.centerX:f.endX,u=f.type===Qt?f.centerY:f.endY,yi(i,l,u,0,0);break}f=null;for(var g=0;g<c;g++)f=p[g],P.Cl(f[0],f[1],f[2],f[3],f[4],f[5],f[6],f[7],.5,i);f!==null&&(l=f[6],u=f[7]);break;default:O("Unknown Segment type: "+f.type)}}}break;default:O("Unknown Geometry type: "+t.type)}}I.prototype.normalize=function(){this._isFrozen&&rt(this);var t=this.ix();return this.offset(-t.x,-t.y),new x(-t.x,-t.y)},I.prototype.offset=function(t,i){return this._isFrozen&&rt(this),this.transform(1,0,0,1,t,i),this},I.prototype.scale=function(t,i){return this._isFrozen&&rt(this),this.transform(t,0,0,i,0,0),this},I.prototype.rotate=function(t,i,e){this._isFrozen&&rt(this),i===void 0&&(i=0),e===void 0&&(e=0);var n=it.alloc();return n.reset(),n.rotate(t,i,e),this.transform(n.m11,n.m12,n.m21,n.m22,n.dx,n.dy),it.free(n),this},d=I.prototype,d.transform=function(t,i,e,n,o,r){switch(this.type){case I.j:case I.u:case I.F:var s=this.od,h=this.pd;this.od=s*t+h*e+o,this.pd=s*i+h*n+r,s=this.Dc,h=this.Ec,this.Dc=s*t+h*e+o,this.Ec=s*i+h*n+r;break;case I.o:for(var l=this.figures.s,u=l.length,a=0;a<u;a++){var f=l[a];s=f.startX,h=f.startY,f.startX=s*t+h*e+o,f.startY=s*i+h*n+r,f=f.segments.s;for(var p=f.length,c=0;c<p;c++){var g=f[c];switch(g.type){case Dt:case on:s=g.endX,h=g.endY,g.endX=s*t+h*e+o,g.endY=s*i+h*n+r;break;case je:s=g.point1X,h=g.point1Y,g.point1X=s*t+h*e+o,g.point1Y=s*i+h*n+r,s=g.point2X,h=g.point2Y,g.point2X=s*t+h*e+o,g.point2Y=s*i+h*n+r,s=g.endX,h=g.endY,g.endX=s*t+h*e+o,g.endY=s*i+h*n+r;break;case In:s=g.point1X,h=g.point1Y,g.point1X=s*t+h*e+o,g.point1Y=s*i+h*n+r,s=g.endX,h=g.endY,g.endX=s*t+h*e+o,g.endY=s*i+h*n+r;break;case Qt:s=g.centerX,h=g.centerY,g.centerX=s*t+h*e+o,g.centerY=s*i+h*n+r,i!==0&&(s=180*Math.atan2(i,t)/Math.PI,0>s&&(s+=360),g.startAngle+=s),0>t&&(g.startAngle=180-g.startAngle,g.sweepAngle=-g.sweepAngle),0>n&&(g.startAngle=-g.startAngle,g.sweepAngle=-g.sweepAngle),g.radiusX*=Math.sqrt(t*t+e*e),g.radiusY!==void 0&&(g.radiusY*=Math.sqrt(i*i+n*n));break;case mn:if(s=g.endX,h=g.endY,g.endX=s*t+h*e+o,g.endY=s*i+h*n+r,g.radiusX===0||g.radiusY===0)break;i!==0&&(s=180*Math.atan2(i,t)/Math.PI,0>s&&(s+=360),g.xAxisRotation+=s),0>t&&(g.xAxisRotation=180-g.xAxisRotation,g.isClockwiseArc=!g.isClockwiseArc),0>n&&(g.xAxisRotation=-g.xAxisRotation,g.isClockwiseArc=!g.isClockwiseArc),g.radiusX*=Math.sqrt(t*t+e*e),g.radiusY*=Math.sqrt(i*i+n*n);break;default:O("Unknown Segment type: "+g.type)}}}}return this._isInvalidBounds=!0,this},d.ca=function(t,i){i===void 0&&(i=0);var e=this.od,n=this.pd,o=this.Dc,r=this.Ec;switch(this.type){case I.j:return P.Zb(e,n,o,r,i,t.x,t.y);case I.u:var s=T.allocAt(Math.min(e,o)-i,Math.min(n,r)-i,Math.abs(o-e)+2*i,Math.abs(r-n)+2*i);return t=s.ca(t),T.free(s),t;case I.F:s=Math.min(e,o)-i;var h=Math.min(n,r)-i;return e=(Math.abs(o-e)+2*i)/2,i=(Math.abs(r-n)+2*i)/2,0>=e||0>=i?!1:(s=t.x-(s+e),h=t.y-(h+i),1>=s*s/(e*e)+h*h/(i*i));case I.o:return wp(this,t,i,!0,!1);default:return!1}};function wp(t,i,e,n,o){var r=i.x;i=i.y;for(var s=t.bounds.x-20,h=0,l,u,a,f,p=t.figures.s,c=p.length,g=0;g<c;g++){var y=p[g],v=!y.isEvenOdd;if(y.isFilled){if(n&&y.ca(r,i,e))return!0;var m=y.segments;l=y.startX,u=y.startY;for(var w=l,M=u,S=m.s,N=0;N<=m.length;N++){var k=void 0;if(N!==m.length){k=S[N];var D=k.type;t=k.endX,f=k.endY}else D=Dt,t=w,f=M;switch(D){case on:if(w=Ou(r,i,s,i,l,u,w,M),isNaN(w))return!0;h+=w,w=t,M=f;break;case Dt:if(l=Ou(r,i,s,i,l,u,t,f),isNaN(l))return!0;h+=l;break;case je:a=P.Eo(l,u,k.point1X,k.point1Y,k.point2X,k.point2Y,t,f,s,i,r,i,.5),h+=a;break;case In:a=P.Eo(l,u,(l+2*k.point1X)/3,(u+2*k.point1Y)/3,(2*k.point1X+t)/3,(2*k.point1Y+f)/3,t,f,s,i,r,i,.5),h+=a;break;case Qt:case mn:D=k.type===Qt?po(k,y):Or(k,y,l,u);var z=D.length;if(z===0){if(l=Ou(r,i,s,i,l,u,k.type===Qt?k.centerX:k.endX,k.type===Qt?k.centerY:k.endY),isNaN(l))return!0;h+=l;break}k=null;for(var Y=0;Y<z;Y++){if(k=D[Y],Y===0){if(a=Ou(r,i,s,i,l,u,k[0],k[1]),isNaN(a))return!0;h+=a}a=P.Eo(k[0],k[1],k[2],k[3],k[4],k[5],k[6],k[7],s,i,r,i,.5),h+=a}k!==null&&(t=k[6],f=k[7]);break;default:O("Unknown Segment type: "+k.type)}l=t,u=f}if(v){if(h!==0)return!0}else if(h%2!==0)return!0;h=0}else if(y.ca(r,i,o?e:e+2))return!0}return!1}function Ou(t,i,e,n,o,r,s,h){if(P.Zb(o,r,s,h,.05,t,i))return NaN;var l=(t-e)*(r-h);if(l===0)return 0;var u=((t*n-i*e)*(o-s)-(t-e)*(o*h-r*s))/l;if(i=(t*n-i*e)*(r-h)/l,u>=t)return 0;if((o>s?o-s:s-o)<(r>h?r-h:h-r)){if(r<h){if(i<r||i>h)return 0}else if(i<h||i>r)return 0}else if(o<s){if(u<o||u>s)return 0}else if(u<s||u>o)return 0;return 0<l?1:-1}function Ig(t,i,e,n){t=t.figures.s;for(var o=t.length,r=0;r<o;r++)if(t[r].ca(i,e,n))return!0;return!1}d.Pu=function(t,i){if(0>t?t=0:1<t&&(t=1),i===void 0&&(i=new x),this.type===I.j)return i.h(this.startX+t*(this.endX-this.startX),this.startY+t*(this.endY-this.startY)),i;for(var e=this.flattenedSegments,n=this.flattenedLengths,o=e.length,r=this.flattenedTotalLength*t,s=0,h=0;h<o;h++){var l=n[h],u=l.length;for(t=0;t<u;t++){var a=l[t];if(s+a>=r)return n=r-s,n=a===0?0:n/a,e=e[h],h=e[2*t],o=e[2*t+1],i.h(h+(e[2*t+2]-h)*n,o+(e[2*t+3]-o)*n),i;s+=a}}return i},d.wx=function(t){if(0>t?t=0:1<t&&(t=1),this.type===I.j)return 180*Math.atan2(this.endY-this.startY,this.endX-this.startX)/Math.PI;for(var i=this.flattenedSegments,e=this.flattenedLengths,n=i.length,o=this.flattenedTotalLength*t,r=0,s=0;s<n;s++){var h=e[s],l=h.length;for(t=0;t<l;t++){var u=h[t];if(r+u>=o)return o=i[s],i=o[2*t],e=o[2*t+1],n=o[2*t+2],t=o[2*t+3],1>Math.abs(n-i)&&1>Math.abs(t-e)?0:1>Math.abs(n-i)?0<=t-e?90:270:1>Math.abs(t-e)?0<=n-i?0:180:180*Math.atan2(t-e,n-i)/Math.PI;r+=u}}return NaN},d.Qu=function(t,i){if(0>t?t=0:1<t&&(t=1),i===void 0&&(i=[]),i.length=3,this.type===I.j)return i[0]=this.startX+t*(this.endX-this.startX),i[1]=this.startY+t*(this.endY-this.startY),i[2]=180*Math.atan2(this.endY-this.startY,this.endX-this.startX)/Math.PI,i;for(var e=this.flattenedSegments,n=this.flattenedLengths,o=e.length,r=this.flattenedTotalLength*t,s=0,h=0;h<o;h++){var l=n[h],u=l.length;for(t=0;t<u;t++){var a=l[t];if(s+a>=r)return n=r-s,n=a===0?0:n/a,a=e[h],e=a[2*t],h=a[2*t+1],o=a[2*t+2],t=a[2*t+3],i[0]=e+(o-e)*n,i[1]=h+(t-h)*n,i[2]=1>Math.abs(o-e)&&1>Math.abs(t-h)?0:1>Math.abs(o-e)?0<=t-h?90:270:1>Math.abs(t-h)?0<=o-e?0:180:180*Math.atan2(t-h,o-e)/Math.PI,i;s+=a}}return i},d.xx=function(t){if(this.type===I.j){var i=this.startX,e=this.startY,n=this.endX,o=this.endY;if(i!==n||e!==o){var r=t.x;if(t=t.y,i===n){if(e<o){var s=e;n=o}else s=o,n=e;return t<=s?s===e?0:1:t>=n?n===e?0:1:Math.abs(t-e)/(n-s)}if(e===o)return i<n?s=i:(s=n,n=i),r<=s?s===i?0:1:r>=n?n===i?0:1:Math.abs(r-i)/(n-s);s=(n-i)*(n-i)+(o-e)*(o-e);var h=x.alloc();return P.qh(i,e,n,o,r,t,h),t=h.x,r=h.y,x.free(h),Math.sqrt(((t-i)*(t-i)+(r-e)*(r-e))/s)}}else if(this.type===I.u){s=this.startX,h=this.startY;var l=this.endX;if(o=this.endY,s!==l||h!==o){i=l-s,e=o-h,r=2*i+2*e,n=t.x,t=t.y,n=Math.min(Math.max(n,s),l),t=Math.min(Math.max(t,h),o),s=Math.abs(n-s),l=Math.abs(n-l),h=Math.abs(t-h),o=Math.abs(t-o);var u=Math.min(s,l,h,o);if(u===h)return n/r;if(u===l)return(i+t)/r;if(u===o)return(2*i+e-n)/r;if(u===s)return(2*i+2*e-t)/r}}else{i=this.flattenedSegments,e=this.flattenedLengths,r=this.flattenedTotalLength,n=x.alloc(),o=1/0,h=s=0,l=i.length;for(var a=u=0,f=0;f<l;f++)for(var p=i[f],c=e[f],g=p.length,y=0;y<g;y+=2){var v=p[y],m=p[y+1];if(y!==0){P.qh(u,a,v,m,t.x,t.y,n);var w=(n.x-t.x)*(n.x-t.x)+(n.y-t.y)*(n.y-t.y);w<o&&(o=w,s=h,s+=Math.sqrt((n.x-u)*(n.x-u)+(n.y-a)*(n.y-a))),h+=c[(y-2)/2]}u=v,a=m}return x.free(n),t=s/r,0>t?0:1<t?1:t}return 0};function Dg(t){if(t.sk===null){var i=t.sk=[],e=t.xm=[],n=[],o=[];if(t.type===I.j)n.push(t.startX),n.push(t.startY),n.push(t.endX),n.push(t.endY),i.push(n),o.push(Math.sqrt((t.startX-t.endX)*(t.startX-t.endX)+(t.startY-t.endY)*(t.startY-t.endY))),e.push(o);else if(t.type===I.u)n.push(t.startX),n.push(t.startY),n.push(t.endX),n.push(t.startY),n.push(t.endX),n.push(t.endY),n.push(t.startX),n.push(t.endY),n.push(t.startX),n.push(t.startY),i.push(n),o.push(Math.abs(t.startX-t.endX)),o.push(Math.abs(t.startY-t.endY)),o.push(Math.abs(t.startX-t.endX)),o.push(Math.abs(t.startY-t.endY)),e.push(o);else if(t.type===I.F){var r=new pi;r.startX=t.endX,r.startY=(t.startY+t.endY)/2;var s=new ft(Qt);if(s.startAngle=0,s.sweepAngle=360,s.centerX=(t.startX+t.endX)/2,s.centerY=(t.startY+t.endY)/2,s.radiusX=Math.abs(t.startX-t.endX)/2,s.radiusY=Math.abs(t.startY-t.endY)/2,r.add(s),t=po(s,r),o=t.length,o===0)n.push(s.centerX),n.push(s.centerY);else{s=r.startX,r=r.startY;for(var h=0;h<o;h++){var l=t[h];P.Qe(s,r,l[2],l[3],l[4],l[5],l[6],l[7],.5,n),s=l[6],r=l[7]}}i.push(n),e.push(Mp(n))}else for(t=t.figures.iterator;t.next();){o=t.value,n=[],n.push(o.startX),n.push(o.startY),s=o.startX,r=o.startY,h=s,l=r;for(var u=o.segments.s,a=u.length,f=0;f<a;f++){var p=u[f];switch(p.type){case on:4<=n.length&&(i.push(n),e.push(Mp(n))),n=[],n.push(p.endX),n.push(p.endY),s=p.endX,r=p.endY,h=s,l=r;break;case Dt:n.push(p.endX),n.push(p.endY),s=p.endX,r=p.endY;break;case je:P.Qe(s,r,p.point1X,p.point1Y,p.point2X,p.point2Y,p.endX,p.endY,.5,n),s=p.endX,r=p.endY;break;case In:P.cp(s,r,p.point1X,p.point1Y,p.endX,p.endY,.5,n),s=p.endX,r=p.endY;break;case Qt:var c=po(p,o),g=c.length;if(g===0){n.push(p.centerX),n.push(p.centerY),s=p.centerX,r=p.centerY;break}for(var y=0;y<g;y++){var v=c[y];P.Qe(s,r,v[2],v[3],v[4],v[5],v[6],v[7],.5,n),s=v[6],r=v[7]}break;case mn:if(c=Or(p,o,s,r),g=c.length,y=p.endX,v=p.endY,g===0){n.push(y),n.push(v),s=y,r=v;break}for(y=0;y<g;y++)v=c[y],P.Qe(s,r,v[2],v[3],v[4],v[5],v[6],v[7],.5,n),s=v[6],r=v[7];break;default:O("Segment not of valid type: "+p.type)}p.isClosed&&(n.push(h),n.push(l))}4<=n.length&&(i.push(n),e.push(Mp(n)))}}}function Mp(t){for(var i=[],e=0,n=0,o=t.length,r=0;r<o;r+=2){var s=t[r],h=t[r+1];r!==0&&i.push(Math.sqrt(uo(e,n,s,h))),e=s,n=h}return i}d.add=function(t){return this.ee.add(t),this},d.om=function(t,i,e,n,o,r,s,h){return this._isFrozen&&rt(this),this.fg=new H(t,i,o,r).freeze(),this.gg=new H(e,n,s,h).freeze(),this},tt.Object.defineProperties(I.prototype,{_isFrozen:{get:function(){return(this.l&1)!==0},set:function(t){this.l=t?this.l|1:this.l&-2}},_isInvalidBounds:{get:function(){return(this.l&2)!==0},set:function(t){this.l=t?this.l|2:this.l&-3}},flattenedSegments:{get:function(){return Dg(this),this.sk}},flattenedLengths:{get:function(){return Dg(this),this.xm}},flattenedTotalLength:{get:function(){var t=this.ym;if(isNaN(t)){if(this.type===I.j){t=Math.abs(this.endX-this.startX);var i=Math.abs(this.endY-this.startY);t=Math.sqrt(t*t+i*i)}else if(this.type===I.u)t=2*Math.abs(this.endX-this.startX)+2*Math.abs(this.endY-this.startY);else{i=this.flattenedLengths;for(var e=i.length,n=t=0;n<e;n++)for(var o=i[n],r=o.length,s=0;s<r;s++)t+=o[s]}this.ym=t}return t}},type:{get:function(){return this.na},set:function(t){this.na!==t&&(this._isFrozen&&rt(this,t),this.na=t,t===I.o?this.ee=new V:(I.V===null&&(I.V=new V().freeze()),this.ee=I.V),this._isInvalidBounds=!0)}},startX:{get:function(){return this.od},set:function(t){this.od!==t&&(this._isFrozen&&rt(this,t),this.od=t,this._isInvalidBounds=!0)}},startY:{get:function(){return this.pd},set:function(t){this.pd!==t&&(this._isFrozen&&rt(this,t),this.pd=t,this._isInvalidBounds=!0)}},endX:{get:function(){return this.Dc},set:function(t){this.Dc!==t&&(this._isFrozen&&rt(this,t),this.Dc=t,this._isInvalidBounds=!0)}},endY:{get:function(){return this.Ec},set:function(t){this.Ec!==t&&(this._isFrozen&&rt(this,t),this.Ec=t,this._isInvalidBounds=!0)}},figures:{get:function(){return this.ee},set:function(t){this.ee!==t&&(this._isFrozen&&rt(this,t),this.ee=t,this._isInvalidBounds=!0)}},spot1:{get:function(){return this.fg},set:function(t){this._isFrozen&&rt(this,t),this.fg=t.J()}},spot2:{get:function(){return this.gg},set:function(t){this._isFrozen&&rt(this,t),this.gg=t.J()}},defaultStretch:{get:function(){return this.Uf},set:function(t){this._isFrozen&&rt(this,t),this.Uf=t}},bounds:{get:function(){return this.Zu()&&this.computeBounds(),this.Hp}}}),I.prototype.setSpots=I.prototype.om,I.prototype.add=I.prototype.add,I.prototype.getFractionForPoint=I.prototype.xx,I.prototype.getPointAndAngleAlongPath=I.prototype.Qu,I.prototype.getAngleAlongPath=I.prototype.wx,I.prototype.getPointAlongPath=I.prototype.Pu,I.prototype.containsPoint=I.prototype.ca,I.prototype.transform=I.prototype.transform,I.prototype.rotate=I.prototype.rotate,I.prototype.scale=I.prototype.scale,I.prototype.offset=I.prototype.offset,I.prototype.normalize=I.prototype.normalize,I.prototype.computeBoundsWithoutOrigin=I.prototype.ix,I.prototype.equalsApprox=I.prototype.Xa,I.className="Geometry",I.j=new R(I,"Line",0),I.u=new R(I,"Rectangle",1),I.F=new R(I,"Ellipse",2),I.o=new R(I,"Path",3),I.V=null,I.hb="UuBbMmZzLlHhVvCcSsQqTtAaFfXx",I.className="Geometry",I.stringify=I.ia,I.fillPath=I.nb,I.parse=I.parse,I.Line=I.j,I.Rectangle=I.u,I.Ellipse=I.F,I.Path=I.o;function pi(t,i,e,n,o){ui(this),e===void 0&&(e=!0),n===void 0&&(n=!0),o===void 0&&(o=!1),this.l=2|(e?4:0)|(n?8:0)|(o?16:0),t!==void 0?this.od=t:this.od=0,i!==void 0?this.pd=i:this.pd=0,this.ol=new V,this.rr=this.ol.Ja,this.fw=null}pi.prototype.copy=function(){var t=new pi;t.l=this.l&-2,t.od=this.od,t.pd=this.pd;for(var i=this.ol.s,e=i.length,n=t.ol,o=0;o<e;o++){var r=i[o].copy();n.add(r)}return t.rr=this.rr,t.fw=this.fw,t},d=pi.prototype,d.Xa=function(t){if(!(t instanceof pi&&P.B(this.startX,t.startX)&&P.B(this.startY,t.startY)))return!1;var i=this.segments.s;t=t.segments.s;var e=i.length;if(e!==t.length)return!1;for(var n=0;n<e;n++)if(!i[n].Xa(t[n]))return!1;return!0},d.toString=function(t){t===void 0&&(t=-1);for(var i=0>t?"M"+this.startX.toString()+" "+this.startY.toString():"M"+this.startX.toFixed(t)+" "+this.startY.toFixed(t),e=this.segments.s,n=e.length,o=0;o<n;o++)i+=" "+e[o].toString(t);return i},d.freeze=function(){this._isFrozen=!0;var t=this.segments;t.freeze();var i=t.s;t=t.length;for(var e=0;e<t;e++)i[e].freeze();return this},d.ka=function(){this._isFrozen=!1;var t=this.segments;t.ka(),t=t.s;for(var i=t.length,e=0;e<i;e++)t[e].ka();return this},d.Zu=function(){if(this._isInvalidBounds)return!0;var t=this.segments;if(this.rr!==t.Ja)return!0;t=t.s;for(var i=t.length,e=0;e<i;e++)if(t[e]._isInvalidBounds)return!0;return!1},d.add=function(t){return this.ol.add(t),this},d.ca=function(t,i,e){for(var n=this.startX,o=this.startY,r=n,s=o,h=this.segments.s,l=h.length,u=0;u<l;u++){var a=h[u];switch(a.type){case on:r=a.endX,s=a.endY,n=a.endX,o=a.endY;break;case Dt:if(P.Zb(n,o,a.endX,a.endY,e,t,i))return!0;n=a.endX,o=a.endY;break;case je:if(P.bs(n,o,a.point1X,a.point1Y,a.point2X,a.point2Y,a.endX,a.endY,.5,t,i,e))return!0;n=a.endX,o=a.endY;break;case In:if(P.jv(n,o,a.point1X,a.point1Y,a.endX,a.endY,.5,t,i,e))return!0;n=a.endX,o=a.endY;break;case Qt:case mn:var f=a.type===Qt?po(a,this):Or(a,this,n,o),p=f.length,c=a.type===Qt?a.centerX:a.endX,g=a.type===Qt?a.centerY:a.endY;if(p===0){if(P.Zb(n,o,c,g,e,t,i))return!0;n=c,o=g;break}for(c=null,g=0;g<p;g++)if(c=f[g],g===0&&P.Zb(n,o,c[0],c[1],e,t,i)||P.bs(c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7],.5,t,i,e))return!0;c!==null&&(n=c[6],o=c[7]);break;default:O("Unknown Segment type: "+a.type)}if(a.isClosed&&(n!==r||o!==s)&&P.Zb(n,o,r,s,e,t,i))return!0}return!1},tt.Object.defineProperties(pi.prototype,{_isFrozen:{get:function(){return(this.l&1)!==0},set:function(t){this.l=t?this.l|1:this.l&-2}},_isInvalidBounds:{get:function(){return(this.l&2)!==0},set:function(t){this.l=t?this.l|2:this.l&-3}},isFilled:{get:function(){return(this.l&4)!==0},set:function(t){this._isFrozen&&rt(this,t),this.l=t?this.l|4:this.l&-5}},isShadowed:{get:function(){return(this.l&8)!==0},set:function(t){this._isFrozen&&rt(this,t),this.l=t?this.l|8:this.l&-9}},isEvenOdd:{get:function(){return(this.l&16)!==0},set:function(t){this._isFrozen&&rt(this,t),this.l=t?this.l|16:this.l&-17}},startX:{get:function(){return this.od},set:function(t){this._isFrozen&&rt(this,t),this.od=t,this._isInvalidBounds=!0}},startY:{get:function(){return this.pd},set:function(t){this._isFrozen&&rt(this,t),this.pd=t,this._isInvalidBounds=!0}},segments:{get:function(){return this.ol},set:function(t){this._isFrozen&&rt(this,t),this.ol=t,this._isInvalidBounds=!0}}}),pi.prototype.add=pi.prototype.add,pi.prototype.equalsApprox=pi.prototype.Xa,pi.className="PathFigure";function ft(t,i,e,n,o,r,s,h){ui(this),t===void 0&&(t=Dt),this.na=t,this.l=2,i!==void 0?this.Dc=i:this.Dc=0,e!==void 0?this.Ec=e:this.Ec=0,n===void 0&&(n=0),o===void 0&&(o=0),r===void 0&&(r=0),s===void 0&&(s=0),t===mn?(t=r%360,0>t&&(t+=360),this.Ne=t,this.Vh=0,this.Wh=Math.max(n,0),this.Pg=Math.max(o,0),typeof s=="boolean"?s&&(this.isLargeArc=!0):typeof s=="number"&&s&&(this.isLargeArc=!0),h&&(this.isClockwiseArc=!0)):(this.Ne=n,this.Vh=o,t===Qt&&(r=Math.max(r,0)),this.Wh=r,typeof s=="number"?(t===Qt&&(s=Math.max(s,0)),this.Pg=s):this.Pg=0),this.ae=null}ft.prototype.copy=function(){var t=new ft;return t.na=this.na,t.l=this.l&-2,t.Dc=this.Dc,t.Ec=this.Ec,t.Ne=this.Ne,t.Vh=this.Vh,t.Wh=this.Wh,t.Pg=this.Pg,t},d=ft.prototype,d.Xa=function(t){if(!(t instanceof ft)||this.type!==t.type||this.isClosed!==t.isClosed)return!1;switch(this.type){case on:case Dt:return P.B(this.endX,t.endX)&&P.B(this.endY,t.endY);case je:return P.B(this.endX,t.endX)&&P.B(this.endY,t.endY)&&P.B(this.point1X,t.point1X)&&P.B(this.point1Y,t.point1Y)&&P.B(this.point2X,t.point2X)&&P.B(this.point2Y,t.point2Y);case In:return P.B(this.endX,t.endX)&&P.B(this.endY,t.endY)&&P.B(this.point1X,t.point1X)&&P.B(this.point1Y,t.point1Y);case Qt:return P.B(this.startAngle,t.startAngle)&&P.B(this.sweepAngle,t.sweepAngle)&&P.B(this.centerX,t.centerX)&&P.B(this.centerY,t.centerY)&&P.B(this.radiusX,t.radiusX)&&P.B(this.radiusY,t.radiusY);case mn:return this.isClockwiseArc===t.isClockwiseArc&&this.isLargeArc===t.isLargeArc&&P.B(this.xAxisRotation,t.xAxisRotation)&&P.B(this.endX,t.endX)&&P.B(this.endY,t.endY)&&P.B(this.radiusX,t.radiusX)&&P.B(this.radiusY,t.radiusY);default:return!1}},d.qb=function(t){t.classType===ft&&(this.type=t)},d.toString=function(t){switch(t===void 0&&(t=-1),this.type){case on:t=0>t?"M"+this.endX.toString()+" "+this.endY.toString():"M"+this.endX.toFixed(t)+" "+this.endY.toFixed(t);break;case Dt:t=0>t?"L"+this.endX.toString()+" "+this.endY.toString():"L"+this.endX.toFixed(t)+" "+this.endY.toFixed(t);break;case je:t=0>t?"C"+this.point1X.toString()+" "+this.point1Y.toString()+" "+this.point2X.toString()+" "+this.point2Y.toString()+" "+this.endX.toString()+" "+this.endY.toString():"C"+this.point1X.toFixed(t)+" "+this.point1Y.toFixed(t)+" "+this.point2X.toFixed(t)+" "+this.point2Y.toFixed(t)+" "+this.endX.toFixed(t)+" "+this.endY.toFixed(t);break;case In:t=0>t?"Q"+this.point1X.toString()+" "+this.point1Y.toString()+" "+this.endX.toString()+" "+this.endY.toString():"Q"+this.point1X.toFixed(t)+" "+this.point1Y.toFixed(t)+" "+this.endX.toFixed(t)+" "+this.endY.toFixed(t);break;case Qt:t=0>t?"B"+this.startAngle.toString()+" "+this.sweepAngle.toString()+" "+this.centerX.toString()+" "+this.centerY.toString()+" "+this.radiusX.toString()+" "+this.radiusY.toString():"B"+this.startAngle.toFixed(t)+" "+this.sweepAngle.toFixed(t)+" "+this.centerX.toFixed(t)+" "+this.centerY.toFixed(t)+" "+this.radiusX.toFixed(t)+" "+this.radiusY.toFixed(t);break;case mn:t=0>t?"A"+this.radiusX.toString()+" "+this.radiusY.toString()+" "+this.xAxisRotation.toString()+" "+(this.isLargeArc?1:0)+" "+(this.isClockwiseArc?1:0)+" "+this.endX.toString()+" "+this.endY.toString():"A"+this.radiusX.toFixed(t)+" "+this.radiusY.toFixed(t)+" "+this.xAxisRotation.toFixed(t)+" "+(this.isLargeArc?1:0)+" "+(this.isClockwiseArc?1:0)+" "+this.endX.toFixed(t)+" "+this.endY.toFixed(t);break;default:t=this.type.toString()}return t+(this.isClosed?"z":"")},d.freeze=function(){return this._isFrozen=!0,this},d.ka=function(){return this._isFrozen=!1,this},d.close=function(){return this.isClosed=!0,this};function po(t,i){if(t.ae!==null&&i._isInvalidBounds===!1)return t.ae;var e=t.radiusX,n=t.radiusY;if(n===void 0&&(n=e),e===0||n===0)return t.ae=[],t.ae;i=t.Ne;var o=t.Vh,r=P.jx(0,0,e<n?e:n,t.startAngle,t.startAngle+t.sweepAngle,!1);if(e!==n){var s=it.alloc();s.reset(),e<n?s.scale(1,n/e):s.scale(e/n,1),I.Ha(r,s),it.free(s)}for(e=r.length,n=0;n<e;n++)s=r[n],s[0]+=i,s[1]+=o,s[2]+=i,s[3]+=o,s[4]+=i,s[5]+=o,s[6]+=i,s[7]+=o;return t.ae=r,t.ae}function Or(t,i,e,n){function o(y,v,m,w){return(y*w<v*m?-1:1)*Math.acos((y*m+v*w)/(Math.sqrt(y*y+v*v)*Math.sqrt(m*m+w*w)))}if(t.ae!==null&&i._isInvalidBounds===!1)return t.ae;if(t.radiusX===0||t.radiusY===0)return t.ae=[],t.ae;i=t.Wh;var r=t.Pg;i===0&&(i=1e-4),r===0&&(r=1e-4);var s=Math.PI/180*t.Ne,h=t.isLargeArc,l=t.isClockwiseArc,u=t.Dc,a=t.Ec,f=Math.cos(s),p=Math.sin(s),c=f*(e-u)/2+p*(n-a)/2;s=-p*(e-u)/2+f*(n-a)/2;var g=c*c/(i*i)+s*s/(r*r);return 1<g&&(i*=Math.sqrt(g),r*=Math.sqrt(g)),g=(h===l?-1:1)*Math.sqrt((i*i*r*r-i*i*s*s-r*r*c*c)/(i*i*s*s+r*r*c*c)),isNaN(g)&&(g=0),h=g*i*s/r,g=g*-r*c/i,isNaN(h)&&(h=0),isNaN(g)&&(g=0),e=(e+u)/2+f*h-p*g,n=(n+a)/2+p*h+f*g,a=o(1,0,(c-h)/i,(s-g)/r),f=(c-h)/i,u=(s-g)/r,c=(-c-h)/i,h=(-s-g)/r,s=o(f,u,c,h),c=(f*c+u*h)/(Math.sqrt(f*f+u*u)*Math.sqrt(c*c+h*h)),-1>=c?s=Math.PI:1<=c&&(s=0),!l&&0<s&&(s-=2*Math.PI),l&&0>s&&(s+=2*Math.PI),l=i>r?1:i/r,c=i>r?r/i:1,i=P.jx(0,0,i>r?i:r,a,a+s,!0),r=it.alloc(),r.reset(),r.translate(e,n),r.rotate(t.Ne,0,0),r.scale(l,c),I.Ha(i,r),it.free(r),t.ae=i,t.ae}tt.Object.defineProperties(ft.prototype,{_isFrozen:{get:function(){return(this.l&1)!==0},set:function(t){this.l=t?this.l|1:this.l&-2}},_isInvalidBounds:{get:function(){return(this.l&2)!==0},set:function(t){this.l=t?this.l|2:this.l&-3}},isClosed:{get:function(){return(this.l&8)!==0},set:function(t){this.isClosed!==t&&(this.l=t?this.l|8:this.l&-9,this._isInvalidBounds=!0)}},type:{get:function(){return this.na},set:function(t){this._isFrozen&&rt(this,t),this.na=t,this._isInvalidBounds=!0}},endX:{get:function(){return this.Dc},set:function(t){this._isFrozen&&rt(this,t),this.Dc=t,this._isInvalidBounds=!0}},endY:{get:function(){return this.Ec},set:function(t){this._isFrozen&&rt(this,t),this.Ec=t,this._isInvalidBounds=!0}},point1X:{get:function(){return this.Ne},set:function(t){this._isFrozen&&rt(this,t),this.Ne=t,this._isInvalidBounds=!0}},point1Y:{get:function(){return this.Vh},set:function(t){this._isFrozen&&rt(this,t),this.Vh=t,this._isInvalidBounds=!0}},point2X:{get:function(){return this.Wh},set:function(t){this._isFrozen&&rt(this,t),this.Wh=t,this._isInvalidBounds=!0}},point2Y:{get:function(){return this.Pg},set:function(t){this._isFrozen&&rt(this,t),this.Pg=t,this._isInvalidBounds=!0}},centerX:{get:function(){return this.Ne},set:function(t){this._isFrozen&&rt(this,t),this.Ne=t,this._isInvalidBounds=!0}},centerY:{get:function(){return this.Vh},set:function(t){this._isFrozen&&rt(this,t),this.Vh=t,this._isInvalidBounds=!0}},radiusX:{get:function(){return this.Wh},set:function(t){0>t&&jt(t,">= zero",ft,"radiusX"),this._isFrozen&&rt(this,t),this.Wh=t,this._isInvalidBounds=!0}},radiusY:{get:function(){return this.Pg},set:function(t){0>t&&jt(t,">= zero",ft,"radiusY"),this._isFrozen&&rt(this,t),this.Pg=t,this._isInvalidBounds=!0}},startAngle:{get:function(){return this.Dc},set:function(t){this._isFrozen&&rt(this,t),t%=360,0>t&&(t+=360),this.Dc=t,this._isInvalidBounds=!0}},sweepAngle:{get:function(){return this.Ec},set:function(t){this._isFrozen&&rt(this,t),360<t&&(t=360),-360>t&&(t=-360),this.Ec=t,this._isInvalidBounds=!0}},isClockwiseArc:{get:function(){return(this.l&4)!==0},set:function(t){this._isFrozen&&rt(this,t),this.l=t?this.l|4:this.l&-5,this._isInvalidBounds=!0}},isLargeArc:{get:function(){return(this.l&16)!==0},set:function(t){this._isFrozen&&rt(this,t),this.l=t?this.l|16:this.l&-17,this._isInvalidBounds=!0}},xAxisRotation:{get:function(){return this.Ne},set:function(t){this._isFrozen&&rt(this,t),t%=360,0>t&&(t+=360),this.Ne=t,this._isInvalidBounds=!0}}}),ft.prototype.equalsApprox=ft.prototype.Xa;var on=new R(ft,"Move",0),Dt=new R(ft,"Line",1),je=new R(ft,"Bezier",2),In=new R(ft,"QuadraticBezier",3),Qt=new R(ft,"Arc",4),mn=new R(ft,"SvgArc",4);ft.className="PathSegment",ft.Move=on,ft.Line=Dt,ft.Bezier=je,ft.QuadraticBezier=In,ft.Arc=Qt,ft.SvgArc=mn;function Fe(){this.H=null,this.wu=new x(0,0).freeze(),this.lt=new x(0,0).freeze(),this.Ap=this.Qq=0,this.Bp=1,this.wq="",this.Vr=this.Sp=!1,this.Qp=this.Dp=0,this.xg=this.mq=this.sq=!1,this.Yp=null,this.Qr=0,this.xd=this.Mr=null}Fe.prototype.copy=function(){var t=new Fe;return this.clone(t)},Fe.prototype.clone=function(t){return t.H=this.H,t.wu.assign(this.viewPoint),t.lt.assign(this.documentPoint),t.Qq=this.Qq,t.Ap=this.Ap,t.Bp=this.Bp,t.wq=this.wq,t.Sp=this.Sp,t.Vr=this.Vr,t.Dp=this.Dp,t.Qp=this.Qp,t.sq=this.sq,t.mq=this.mq,t.xg=this.xg,t.Yp=this.Yp,t.Qr=this.Qr,t.Mr=this.Mr,t.xd=this.xd,t},Fe.prototype.toString=function(){var t="^";return this.modifiers!==0&&(t+="M:"+this.modifiers),this.button!==0&&(t+="B:"+this.button),this.key!==""&&(t+="K:"+this.key),this.clickCount!==0&&(t+="C:"+this.clickCount),this.delta!==0&&(t+="D:"+this.delta),this.handled&&(t+="h"),this.bubbles&&(t+="b"),this.documentPoint!==null&&(t+="@"+this.documentPoint.toString()),t},Fe.prototype.Ro=function(t,i){var e=this.diagram;return e===null||S0(e,t,i),i},Fe.prototype.Bz=function(t,i){var e=this.diagram;return e===null||(S0(e,t,i),i.assign(e.Os(i))),i},tt.Object.defineProperties(Fe.prototype,{diagram:{get:function(){return this.H},set:function(t){this.H=t}},viewPoint:{get:function(){return this.wu},set:function(t){this.wu.assign(t)}},documentPoint:{get:function(){return this.lt},set:function(t){this.lt.assign(t)}},modifiers:{get:function(){return this.Qq},set:function(t){this.Qq=t}},button:{get:function(){return this.Ap},set:function(t){if(this.Ap=t,this.event===null)switch(t){case 0:this.buttons=1;break;case 1:this.buttons=4;break;case 2:this.buttons=2}}},buttons:{get:function(){return this.Bp},set:function(t){this.Bp=t}},key:{get:function(){return this.wq},set:function(t){this.wq=t}},down:{get:function(){return this.Sp},set:function(t){this.Sp=t}},up:{get:function(){return this.Vr},set:function(t){this.Vr=t}},clickCount:{get:function(){return this.Dp},set:function(t){this.Dp=t}},delta:{get:function(){return this.Qp},set:function(t){this.Qp=t}},isMultiTouch:{get:function(){return this.sq},set:function(t){this.sq=t}},handled:{get:function(){return this.mq},set:function(t){this.mq=t}},bubbles:{get:function(){return this.xg},set:function(t){this.xg=t}},event:{get:function(){return this.Yp},set:function(t){this.Yp=t}},isTouchEvent:{get:function(){var t=this.event;return t===null?!1:t.pointerType==="touch"||t.pointerType==="pen"}},timestamp:{get:function(){return this.Qr},set:function(t){this.Qr=t}},targetDiagram:{get:function(){return this.Mr},set:function(t){this.Mr=t}},targetObject:{get:function(){return this.xd},set:function(t){this.xd=t}},control:{get:function(){return(this.modifiers&1)!==0},set:function(t){this.modifiers=t?this.modifiers|1:this.modifiers&-2}},shift:{get:function(){return(this.modifiers&4)!==0},set:function(t){this.modifiers=t?this.modifiers|4:this.modifiers&-5}},alt:{get:function(){return(this.modifiers&2)!==0},set:function(t){this.modifiers=t?this.modifiers|2:this.modifiers&-3}},meta:{get:function(){return(this.modifiers&8)!==0},set:function(t){this.modifiers=t?this.modifiers|8:this.modifiers&-9}},left:{get:function(){var t=this.event;return t===null||t.type!=="mousedown"&&t.type!=="mouseup"&&t.type!=="pointerdown"&&t.type!=="pointerup"?(this.buttons&1)!==0:this.button===0},set:function(t){this.buttons=t?this.buttons|1:this.buttons&-2}},right:{get:function(){var t=this.event;return t===null||t.type!=="mousedown"&&t.type!=="mouseup"&&t.type!=="pointerdown"&&t.type!=="pointerup"?(this.buttons&2)!==0:this.button===2},set:function(t){this.buttons=t?this.buttons|2:this.buttons&-3}},middle:{get:function(){var t=this.event;return t===null||t.type!=="mousedown"&&t.type!=="mouseup"&&t.type!=="pointerdown"&&t.type!=="pointerup"?(this.buttons&4)!==0:this.button===1},set:function(t){this.buttons=t?this.buttons|4:this.buttons&-5}}}),Fe.prototype.getMultiTouchDocumentPoint=Fe.prototype.Bz,Fe.prototype.getMultiTouchViewPoint=Fe.prototype.Ro,Fe.className="InputEvent";function as(){this.H=null,this.xa="",this.$q=this.Kr=null}as.prototype.copy=function(){var t=new as;return t.H=this.H,t.xa=this.xa,t.Kr=this.Kr,t.$q=this.$q,t},as.prototype.toString=function(){var t="*"+this.name;return this.subject!==null&&(t+=":"+this.subject.toString()),this.parameter!==null&&(t+="("+this.parameter.toString()+")"),t},tt.Object.defineProperties(as.prototype,{diagram:{get:function(){return this.H},set:function(t){this.H=t}},name:{get:function(){return this.xa},set:function(t){this.xa=t}},subject:{get:function(){return this.Kr},set:function(t){this.Kr=t}},parameter:{get:function(){return this.$q},set:function(t){this.$q=t}}}),as.className="DiagramEvent";function Et(){this.Em=Ot,this.rf=this.Pq="",this.Kn=this.Ln=this.Qn=this.Rn=this.Pn=this.H=this.dc=null}Et.prototype.clear=function(){this.Kn=this.Ln=this.Qn=this.Rn=this.Pn=this.H=this.dc=null},Et.prototype.copy=function(){var t=new Et;t.Em=this.Em,t.Pq=this.Pq,t.rf=this.rf,t.dc=this.dc,t.H=this.H,t.Pn=this.Pn;var i=this.Rn;return t.Rn=At(i)&&typeof i.J=="function"?i.J():i,i=this.Qn,t.Qn=At(i)&&typeof i.J=="function"?i.J():i,i=this.Ln,t.Ln=At(i)&&typeof i.J=="function"?i.J():i,i=this.Kn,t.Kn=At(i)&&typeof i.J=="function"?i.J():i,t},Et.prototype.qb=function(t){t.classType===Et&&(this.change=t)},Et.prototype.toString=function(){var t="";return t=this.change===vn?t+"* ":this.change===Ot?t+(this.model!==null?"!m":"!d"):t+((this.model!==null?"!m":"!d")+this.change),this.propertyName&&typeof this.propertyName=="string"&&(t+=" "+this.propertyName),this.modelChange&&this.modelChange!==this.propertyName&&(t+=" "+this.modelChange),t+=": ",this.change===vn?this.oldValue!==null&&(t+=" "+this.oldValue):(this.object!==null&&(t+=en(this.object)),this.oldValue!==null&&(t+=" old: "+en(this.oldValue)),this.oldParam!==null&&(t+=" "+this.oldParam),this.newValue!==null&&(t+=" new: "+en(this.newValue)),this.newParam!==null&&(t+=" "+this.newParam)),t},Et.prototype.I=function(t){return t?this.oldValue:this.newValue},Et.prototype.Dz=function(t){return t?this.oldParam:this.newParam},Et.prototype.canUndo=function(){return this.model!==null||this.diagram!==null},Et.prototype.undo=function(){this.canUndo()&&(this.model!==null?this.model.changeState(this,!0):this.diagram!==null&&this.diagram.changeState(this,!0))},Et.prototype.canRedo=function(){return this.model!==null||this.diagram!==null},Et.prototype.redo=function(){this.canRedo()&&(this.model!==null?this.model.changeState(this,!1):this.diagram!==null&&this.diagram.changeState(this,!1))},tt.Object.defineProperties(Et.prototype,{model:{get:function(){return this.dc},set:function(t){this.dc=t}},diagram:{get:function(){return this.H},set:function(t){this.H=t}},change:{get:function(){return this.Em},set:function(t){this.Em=t}},modelChange:{get:function(){return this.Pq},set:function(t){this.Pq=t}},propertyName:{get:function(){return this.rf},set:function(t){this.rf=t}},isTransactionFinished:{get:function(){return this.Em===vn&&(this.rf==="CommittedTransaction"||this.rf==="FinishedUndo"||this.rf==="FinishedRedo")}},object:{get:function(){return this.Pn},set:function(t){this.Pn=t}},oldValue:{get:function(){return this.Rn},set:function(t){this.Rn=t}},oldParam:{get:function(){return this.Qn},set:function(t){this.Qn=t}},newValue:{get:function(){return this.Ln},set:function(t){this.Ln=t}},newParam:{get:function(){return this.Kn},set:function(t){this.Kn=t}}}),Et.prototype.redo=Et.prototype.redo,Et.prototype.canRedo=Et.prototype.canRedo,Et.prototype.undo=Et.prototype.undo,Et.prototype.canUndo=Et.prototype.canUndo,Et.prototype.getParam=Et.prototype.Dz,Et.prototype.getValue=Et.prototype.I,Et.prototype.clear=Et.prototype.clear;var vn=new R(Et,"Transaction",-1),Ot=new R(Et,"Property",0),ii=new R(Et,"Insert",1),si=new R(Et,"Remove",2);Et.className="ChangedEvent",Et.Transaction=vn,Et.Property=Ot,Et.Insert=ii,Et.Remove=si;function mi(){this.o=new V().freeze(),this.xa="",this.j=!1}mi.prototype.toString=function(t){var i="Transaction: "+this.name+" "+this.changes.count.toString()+(this.isComplete?"":", incomplete");if(t!==void 0&&0<t){t=this.changes.count;for(var e=0;e<t;e++){var n=this.changes.M(e);n!==null&&(i+=` `+n.toString())}}return i},mi.prototype.clear=function(){var t=this.changes;t.ka();for(var i=t.count-1;0<=i;i--){var e=t.M(i);e!==null&&e.clear()}t.clear(),t.freeze()},mi.prototype.canUndo=function(){return this.isComplete},mi.prototype.undo=function(){if(this.canUndo())for(var t=this.changes.count-1;0<=t;t--){var i=this.changes.M(t);i!==null&&i.undo()}},mi.prototype.canRedo=function(){return this.isComplete},mi.prototype.redo=function(){if(this.canRedo())for(var t=this.changes.count,i=0;i<t;i++){var e=this.changes.M(i);e!==null&&e.redo()}},mi.prototype.$j=function(){if(this.isComplete){var t=this.changes;t.ka();for(var i=new _,e=0;e<t.count;e++){var n=t.M(e);if(n!==null&&n.change===Ot&&n.object){var o=i.get(n.object);o||(o=new _,i.set(n.object,o));var r=o.get(n.propertyName);r===null?o.set(n.propertyName,-1):(0<r&&t.cd(r,null),o.set(n.propertyName,e))}}for(e=i=0;e<t.count;e++)n=t.M(e),n!==null&&(e>i&&t.cd(i,n),i++);for(;t.length>i;)t.pop();t.freeze()}},tt.Object.defineProperties(mi.prototype,{changes:{get:function(){return this.o}},name:{get:function(){return this.xa},set:function(t){this.xa=t}},isComplete:{get:function(){return this.j},set:function(t){this.j=t}}}),mi.prototype.optimize=mi.prototype.$j,mi.prototype.redo=mi.prototype.redo,mi.prototype.canRedo=mi.prototype.canRedo,mi.prototype.undo=mi.prototype.undo,mi.prototype.canUndo=mi.prototype.canUndo,mi.prototype.clear=mi.prototype.clear,mi.className="Transaction";function Vt(){this.Ot=new E,this.Jd=!1,this.u=new V().freeze(),this.Ce=-1,this.o=999,this.Fe=!1,this.Mp=null,this.bi=0,this.j=!1,this.Ie=new V().freeze(),this.gl=new V,this.st=!0,this.Ct=this.qq=this.Ft=this.Et=!1}Vt.prototype.toString=function(t){var i="UndoManager "+this.historyIndex+"<"+this.history.count+"<="+this.maxHistoryLength;i+="[";for(var e=this.nestedTransactionNames.count,n=0;n<e;n++)0<n&&(i+=" "),i+=this.nestedTransactionNames.M(n);if(i+="]",t!==void 0&&0<t)for(e=this.history.count,n=0;n<e;n++)i+=` `+this.history.M(n).toString(t-1);return i},Vt.prototype.clear=function(){var t=this.history;t.ka();for(var i=t.count-1;0<=i;i--){var e=t.M(i);e!==null&&e.clear()}t.clear(),this.Ce=-1,t.freeze(),this.Fe=!1,this.Mp=null,this.bi=0,this.Ie.ka(),this.Ie.clear(),this.Ie.freeze(),this.gl.clear(),this.Ct=this.qq=this.Ft=this.Et=!1},Vt.prototype.copyProperties=function(t){this.isEnabled=t.isEnabled,this.maxHistoryLength=t.maxHistoryLength,this.checksTransactionLevel=t.checksTransactionLevel},d=Vt.prototype,d.Xw=function(t){this.Ot.add(t)},d.Rx=function(t){this.Ot.remove(t)},d.Ea=function(t){if(t===void 0&&(t=""),t===null&&(t=""),this.isUndoingRedoing)return!1;this.st===!0&&(this.st=!1,this.bi++,this.isInternalTransaction||this.Pb("StartingFirstTransaction",t,this.currentTransaction),0<this.bi&&this.bi--),this.isEnabled&&(this.Ie.ka(),this.Ie.add(t),this.Ie.freeze(),this.currentTransaction===null?this.gl.add(0):this.gl.add(this.currentTransaction.changes.count)),this.bi++;var i=this.transactionLevel===1;return i&&(this.isInternalTransaction||this.Pb("StartedTransaction",t,this.currentTransaction)),i},d.eb=function(t){return t===void 0&&(t=""),Eg(this,!0,t)},d.Kf=function(){return Eg(this,!1,"")};function Eg(t,i,e){if(t.isUndoingRedoing)return!1;t.checksTransactionLevel&&1>t.transactionLevel&&ue("Ending transaction without having started a transaction: "+e);var n=t.transactionLevel===1,o=t.currentTransaction;n&&i&&(t.isInternalTransaction||t.Pb("CommittingTransaction",e,o));var r=0;if(0<t.transactionLevel&&(t.bi--,t.isEnabled)){var s=t.Ie.count;0<s&&(e===""&&(e=t.Ie.M(0)),t.Ie.ka(),t.Ie.mb(s-1),t.Ie.freeze()),s=t.gl.count,0<s&&(r=t.gl.M(s-1),t.gl.mb(s-1))}if(n){if(i)t.qq=!1,o===null&&e!==""&&(o=t.currentTransaction),t.isEnabled&&o!==null&&(o.isComplete||(o.isComplete=!0,o.name=e),t.lx(),i=t.history,i.ka(),n=t.maxHistoryLength,0<=n&&(n===0?i.clear():i.count>=n&&(r=i.M(0),r!==null&&r.clear(),i.mb(0),t.Ce--)),n===0||i.count!==0&&i.get(i.count-1)===o||(i.add(o),t.Ce++),i.freeze()),t.isInternalTransaction||t.Pb("CommittedTransaction",e,o);else{t.Fe=!0;try{t.isEnabled&&o!==null&&(o.isComplete=!0,o.undo())}finally{t.isInternalTransaction||t.Pb("RolledBackTransaction",e,o),t.Fe=!1}o!==null&&o.clear()}return t.Mp=null,t.isPendingClear&&t.clear(),t.isPendingClear=!1,t.isPendingUnmodified=!1,!0}if(t.isEnabled&&!i&&o!==null){for(t=r,e=o.changes,o=e.count-1;o>=t;o--)i=e.M(o),i!==null&&i.undo(),e.ka(),e.mb(o);e.freeze()}return!1}d.lx=function(){if(!this.isUndoingRedoing&&this.canRedo()){var t=this.history;t.ka();for(var i=t.count-1;i>this.historyIndex;i--){var e=t.M(i);e!==null&&e.clear(),t.mb(i),this.qq=!0}t.freeze()}},Vt.prototype.canUndo=function(){if(!this.isEnabled||0<this.transactionLevel)return!1;var t=this.transactionToUndo;return!!(t!==null&&t.canUndo())},Vt.prototype.undo=function(){if(this.canUndo()){var t=this.transactionToUndo;try{this.Fe=!0,this.Pb("StartingUndo","Undo",t),this.Ce--,t.undo()}catch(i){ue("undo error: "+i.toString())}finally{this.Pb("FinishedUndo","Undo",t),this.Fe=!1}}},Vt.prototype.canRedo=function(){if(!this.isEnabled||0<this.transactionLevel)return!1;var t=this.transactionToRedo;return!!(t!==null&&t.canRedo())},Vt.prototype.redo=function(){if(this.canRedo()){var t=this.transactionToRedo;try{this.Fe=!0,this.Pb("StartingRedo","Redo",t),this.Ce++,t.redo()}catch(i){ue("redo error: "+i.toString())}finally{this.Pb("FinishedRedo","Redo",t),this.Fe=!1}}},Vt.prototype.Pb=function(t,i,e){e===void 0&&(e=null);var n=new Et;for(n.change=vn,n.propertyName=t,n.object=e,n.oldValue=i,t=this.models;t.next();)i=t.value,n.model=i,i.cs(n)},Vt.prototype.Tu=function(t){if(this.isEnabled&&!this.isUndoingRedoing&&!this.skipsEvent(t)){var i=this.currentTransaction;i===null&&(this.Mp=i=new mi);var e=t.copy();i=i.changes,i.ka(),i.add(e),i.freeze(),this.checksTransactionLevel&&0>=this.transactionLevel&&!this.st&&(t=t.diagram,t!==null&&t.pi===!1||ue("Change not within a transaction: "+e.toString()))}},Vt.prototype.skipsEvent=function(t){if(t===null||0>t.change.value)return!0;if(t=t.object,t===null)return!1;if(t.layer!==void 0){if(t=t.layer,t!==null&&t.isTemporary)return!0}else if(t.isTemporary)return!0;return!1},tt.Object.defineProperties(Vt.prototype,{models:{get:function(){return this.Ot.iterator}},isEnabled:{get:function(){return this.Jd},set:function(t){this.Jd=t}},transactionToUndo:{get:function(){return 0<=this.historyIndex&&this.historyIndex<=this.history.count-1?this.history.M(this.historyIndex):null}},transactionToRedo:{get:function(){return this.historyIndex<this.history.count-1?this.history.M(this.historyIndex+1):null}},isUndoingRedoing:{get:function(){return this.Fe}},history:{get:function(){return this.u}},maxHistoryLength:{get:function(){return this.o},set:function(t){this.o=t}},historyIndex:{get:function(){return this.Ce}},currentTransaction:{get:function(){return this.Mp}},transactionLevel:{get:function(){return this.bi}},isInTransaction:{get:function(){return 0<this.bi}},checksTransactionLevel:{get:function(){return this.j},set:function(t){this.j=t}},nestedTransactionNames:{get:function(){return this.Ie}},isPendingClear:{get:function(){return this.Et},set:function(t){this.Et=t}},isPendingUnmodified:{get:function(){return this.Ft},set:function(t){this.Ft=t}},isInternalTransaction:{get:function(){return this.Ct},set:function(t){this.Ct=t}},isJustDiscarded:{get:function(){return this.qq}}}),Vt.prototype.handleChanged=Vt.prototype.Tu,Vt.prototype.redo=Vt.prototype.redo,Vt.prototype.undo=Vt.prototype.undo,Vt.prototype.canUndo=Vt.prototype.canUndo,Vt.prototype.discardHistoryAfterIndex=Vt.prototype.lx,Vt.prototype.rollbackTransaction=Vt.prototype.Kf,Vt.prototype.commitTransaction=Vt.prototype.eb,Vt.prototype.startTransaction=Vt.prototype.Ea,Vt.prototype.removeModel=Vt.prototype.Rx,Vt.prototype.addModel=Vt.prototype.Xw,Vt.prototype.clear=Vt.prototype.clear,Vt.className="UndoManager";function at(){ui(this),this.H=rh,this.xa="",this.Jd=!0,this.nb=!1,this.vm=null,this.yy=new Fe,this.Yr=-1}at.prototype.toString=function(){return this.name!==""?this.name+" Tool":Ar(this.constructor)},at.prototype.updateAdornments=function(){},at.prototype.canStart=function(){return this.isEnabled},at.prototype.doStart=function(){},at.prototype.doActivate=function(){this.isActive=!0},at.prototype.doDeactivate=function(){this.isActive=!1},at.prototype.doStop=function(){},at.prototype.doCancel=function(){this.transactionResult=null,this.stopTool()},at.prototype.stopTool=function(){var t=this.diagram;t.currentTool===this&&(t.currentTool=null,t.currentCursor="")},at.prototype.doMouseDown=function(){!this.isActive&&this.canStart()&&this.doActivate()},at.prototype.doMouseMove=function(){},at.prototype.doMouseUp=function(){this.stopTool()},at.prototype.doMouseWheel=function(){},at.prototype.canStartMultiTouch=function(){return!0},at.prototype.standardPinchZoomStart=function(){var t=this.diagram,i=t.lastInput,e=i.Ro(0,x.allocAt(NaN,NaN)),n=i.Ro(1,x.allocAt(NaN,NaN));if(e.w()&&n.w()&&(this.doCancel(),t.Pl("hasGestureZoom"))){t.Bw=t.scale;var o=n.x-e.x,r=n.y-e.y;t.Jw=Math.sqrt(o*o+r*r),i.bubbles=!1}x.free(e),x.free(n)},at.prototype.standardPinchZoomMove=function(){var t=this.diagram,i=t.lastInput,e=i.Ro(0,x.allocAt(NaN,NaN)),n=i.Ro(1,x.allocAt(NaN,NaN));if(e.w()&&n.w()&&(this.doCancel(),t.Pl("hasGestureZoom"))){var o=n.x-e.x,r=n.y-e.y;r=Math.sqrt(o*o+r*r)/t.Jw,o=new x((Math.min(n.x,e.x)+Math.max(n.x,e.x))/2,(Math.min(n.y,e.y)+Math.max(n.y,e.y))/2),r*=t.Bw;var s=t.commandHandler;if(r!==t.scale&&s.canResetZoom(r)){var h=t.zoomPoint;t.zoomPoint=o,s.resetZoom(r),t.zoomPoint=h}i.bubbles=!1}x.free(e),x.free(n)},at.prototype.doKeyDown=function(){this.diagram.lastInput.key==="Esc"&&this.doCancel()},at.prototype.doKeyUp=function(){},at.prototype.Ea=function(t){return t===void 0&&(t=this.name),this.transactionResult=null,this.diagram.Ea(t)},at.prototype.stopTransaction=function(){var t=this.diagram;return this.transactionResult===null?t.Kf():t.eb(this.transactionResult)},at.prototype.standardMouseSelect=function(){var t=this.diagram;if(t.allowSelect){var i=t.lastInput,e=t.Nl(i.documentPoint,!1);if(e!==null){if(To?i.meta:i.control){for(t.R("ChangingSelection",t.selection),i=e;i!==null&&!i.canSelect();)i=i.containingGroup;i!==null&&(i.isSelected=!i.isSelected),t.R("ChangedSelection",t.selection)}else if(i.shift){if(!e.isSelected){for(t.R("ChangingSelection",t.selection),i=e;i!==null&&!i.canSelect();)i=i.containingGroup;i!==null&&(i.isSelected=!0),t.R("ChangedSelection",t.selection)}}else if(!e.isSelected){for(i=e;i!==null&&!i.canSelect();)i=i.containingGroup;i!==null&&t.select(i)}}else!i.left||(To?i.meta:i.control)||i.shift||t.clearSelection()}},at.prototype.standardMouseClick=function(t,i){t===void 0&&(t=null),i===void 0&&(i=function(o){return!o.layer.isTemporary});var e=this.diagram,n=e.lastInput;return t=e.jc(n.documentPoint,t,i),n.targetObject=t,Pv(t,n,e),n.handled};function Pv(t,i,e){if(i.handled=!1,t===null||t.If()){var n=0;i.left?n=i.clickCount===1?1:i.clickCount===2?2:1:i.right&&i.clickCount===1&&(n=3);var o="ObjectSingleClicked";if(t!==null){switch(n){case 1:o="ObjectSingleClicked";break;case 2:o="ObjectDoubleClicked";break;case 3:o="ObjectContextClicked"}n!==0&&e.R(o,t)}else{switch(n){case 1:o="BackgroundSingleClicked";break;case 2:o="BackgroundDoubleClicked";break;case 3:o="BackgroundContextClicked"}n!==0&&e.R(o)}if(t!==null)for(;t!==null;){switch(e=null,n){case 1:e=t.click;break;case 2:e=t.doubleClick?t.doubleClick:t.click;break;case 3:e=t.contextClick}if(e!==null&&(e(i,t),i.handled))break;t=t.panel}else{switch(t=null,n){case 1:t=e.click;break;case 2:t=e.doubleClick?e.doubleClick:e.click;break;case 3:t=e.contextClick}t!==null&&t(i)}}}at.prototype.standardMouseOver=function(){var t=this.diagram,i=t.lastInput;if(t.animationManager.Ab!==!0){var e=t.skipsUndoManager;t.skipsUndoManager=!0;var n=t.viewportBounds.ca(i.documentPoint)?t.jc(i.documentPoint,null,null):null;!i.event||i.event.type!=="pointercancel"&&i.event.type!=="pointerout"||(n=null),i.targetObject=n;var o=!1;if(n!==t.Bk){var r=t.Bk,s=r;for(t.Bk=n,this.doCurrentObjectChanged(r,n),i.handled=!1;r!==null;){var h=r.mouseLeave;if(h!==null&&(n===r||n!==null&&n.rg(r)||(h(i,r,n),o=!0,i.handled)))break;r=r.panel}for(r=s,i.handled=!1;n!==null&&(s=n.mouseEnter,!(s!==null&&(r===n||r!==null&&r.rg(n)||(s(i,n,r),o=!0,i.handled))));)n=n.panel;n=t.Bk}if(n!==null){for(r=n,s="";r!==null&&(s=r.cursor,s==="");)r=r.panel;for(t.currentCursor=s,i.handled=!1,r=n;r!==null&&(n=r.mouseOver,!(n!==null&&(n(i,r),o=!0,i.handled)));)r=r.panel}else this.doUpdateCursor(null),n=t.mouseOver,n!==null&&(n(i),o=!0);o&&t.ac(),t.skipsUndoManager=e}},at.prototype.doUpdateCursor=function(){var t=this.diagram;t&&(t.currentCursor="")},at.prototype.doCurrentObjectChanged=function(){},at.prototype.standardMouseWheel=function(){var t=this.diagram,i=t.lastInput,e=i.delta;if(e!==0&&t.documentBounds.w()){var n=t.commandHandler,o=t.toolManager.mouseWheelBehavior;if(n!==null&&(o===sl&&!i.shift||o===$s&&i.control))(0<e?n.canIncreaseZoom():n.canDecreaseZoom())&&(o=t.zoomPoint,t.zoomPoint=i.viewPoint,0<e?n.increaseZoom():n.decreaseZoom(),t.zoomPoint=o),i.bubbles=!1;else if(o===sl&&i.shift||o===$s&&!i.control){n=t.position.copy();var r=i.event;o=r.deltaMode;var s=r.deltaX;r=r.deltaY;var h="pixel";if(s===0&&r===0||i.shift)!i.shift&&t.allowVerticalScroll?(e=3*e*t.scrollVerticalLineChange,t.scroll(h,0<e?"up":"down",Math.abs(e))):i.shift&&t.allowHorizontalScroll&&(e=3*e*t.scrollHorizontalLineChange,t.scroll(h,0<e?"left":"right",Math.abs(e)));else{switch(o){case 0:h="pixel";break;case 1:h="line";break;case 2:h="page"}s!==0&&t.allowHorizontalScroll&&(s*=t.scrollHorizontalLineChange/16,t.scroll(h,0<s?"right":"left",Math.abs(s))),r!==0&&t.allowVerticalScroll&&(r*=t.scrollVerticalLineChange/16,t.scroll(h,0<r?"down":"up",Math.abs(r)))}this.doWheelChange(t,n,i)}}},at.prototype.doWheelChange=function(t,i,e){t.position.D(i)&&e.event.wheelDeltaX===0||(e.bubbles=!1)},at.prototype.standardWaitAfter=function(t,i){i===void 0&&(i=this.diagram.lastInput),this.cancelWaitAfter();var e=this,n=i.clone(this.yy);this.Yr=ho(function(){e.doWaitAfter(n)},t)},at.prototype.cancelWaitAfter=function(){this.Yr!==-1&&J.clearTimeout(this.Yr),this.Yr=-1},at.prototype.doWaitAfter=function(){},at.prototype.findToolHandleAt=function(t,i){return t=this.diagram.jc(t,function(e){for(;e!==null&&!(e.panel instanceof lt);)e=e.panel;return e}),t===null?null:t.part.category===i?t:null},at.prototype.isBeyondDragSize=function(t,i){var e=this.diagram;t===void 0&&(t=e.firstInput.viewPoint),i===void 0&&(i=e.lastInput.viewPoint);var n=e.toolManager.dragSize,o=n.width;return n=n.height,e.firstInput.isTouchEvent&&(o+=6,n+=6),Math.abs(i.x-t.x)>o||Math.abs(i.y-t.y)>n},tt.Object.defineProperties(at.prototype,{diagram:{get:function(){return this.H},set:function(t){t instanceof C&&(this.H=t)}},name:{get:function(){return this.xa},set:function(t){this.xa=t}},isEnabled:{get:function(){return this.Jd},set:function(t){this.Jd=t}},isActive:{get:function(){return this.nb},set:function(t){this.nb=t}},transactionResult:{get:function(){return this.vm},set:function(t){this.vm=t}}}),at.prototype.startTransaction=at.prototype.Ea,at.className="Tool";function Bt(){at.call(this),this.name="ToolManager",this.hb=new V,this.ob=new V,this.Ib=new V,this.F=this.V=850,this.o=new Z(2,2).ja(),this.Ha=5e3,this.ia=$s,this.u=Rg,this.Lp=this.j=null,this.zj=-1}pt(Bt,at),Bt.prototype.initializeStandardTools=function(){},Bt.prototype.updateAdornments=function(t){var i=this.currentToolTip;if(i instanceof lt&&this.Lp===t){var e=i.adornedObject;(t!==null?e.part===t:e===null)?this.showToolTip(i,e):this.hideToolTip()}},Bt.prototype.doMouseDown=function(){var t=this.diagram,i=t.lastInput;if(i.isTouchEvent&&this.gestureBehavior===Iu&&(i.bubbles=!1),i.isMultiTouch){if(this.cancelWaitAfter(),this.gestureBehavior===Sp){i.bubbles=!0;return}if(this.gestureBehavior===Iu)return;if(t.currentTool.canStartMultiTouch()){t.currentTool.standardPinchZoomStart();return}}for(var e=this.mouseDownTools.length,n=0;n<e;n++){var o=this.mouseDownTools.M(n);if(o.diagram=this.diagram,o.canStart()){t.doFocus(),t.currentTool=o,t.currentTool===o&&(o.isActive||o.doActivate(),o.doMouseDown());return}}t.lastInput.button===1&&(this.mouseWheelBehavior===$s?this.mouseWheelBehavior=sl:this.mouseWheelBehavior===sl&&(this.mouseWheelBehavior=$s)),this.doActivate(),this.standardWaitAfter(this.holdDelay,i)},Bt.prototype.doMouseMove=function(){var t=this.diagram,i=t.lastInput;if(i.isMultiTouch){if(this.gestureBehavior===Sp){i.bubbles=!0;return}if(this.gestureBehavior===Iu)return;if(t.currentTool.canStartMultiTouch()){t.currentTool.standardPinchZoomMove();return}}if(this.isActive)for(var e=this.mouseMoveTools.length,n=0;n<e;n++){var o=this.mouseMoveTools.M(n);if(o.diagram=this.diagram,o.canStart()){t.doFocus(),t.currentTool=o,t.currentTool===o&&(o.isActive||o.doActivate(),o.doMouseMove());return}}Bg(this,t),t=i.event,t===null||t.type!=="pointermove"&&t.cancelable||(i.bubbles=!0)};function Bg(t,i){t.standardMouseOver(),t.isBeyondDragSize()&&t.standardWaitAfter(t.isActive?t.holdDelay:t.hoverDelay,i.lastInput)}Bt.prototype.doCurrentObjectChanged=function(t,i){t=this.currentToolTip,t===null||i!==null&&t instanceof lt&&(i===t||i.rg(t))||this.hideToolTip()},Bt.prototype.doWaitAfter=function(t){var i=this.diagram;i.ta!==null&&(this.doMouseHover(),this.isActive||this.doToolTip(),t.isTouchEvent&&!i.lastInput.handled&&(t=t.copy(),t.button=2,t.buttons=2,i.lastInput=t,i.pu=!0,i.doMouseUp()))},Bt.prototype.doMouseHover=function(){var t=this.diagram,i=t.lastInput;i.targetObject===null&&(i.targetObject=t.jc(i.documentPoint,null,null));var e=i.targetObject;if(e!==null)for(i.handled=!1;e!==null&&(t=this.isActive?e.mouseHold:e.mouseHover,!(t!==null&&(t(i,e),i.handled)));)e=e.panel;else e=this.isActive?t.mouseHold:t.mouseHover,e!==null&&e(i)},Bt.prototype.doToolTip=function(){var t=this.diagram,i=t.lastInput;if(i.targetObject===null&&(i.targetObject=t.jc(i.documentPoint,null,null)),i=i.targetObject,i!==null){if(t=this.currentToolTip,!(t instanceof lt)||i!==t&&!i.rg(t)){for(;i!==null;){if(t=i.toolTip,t!==null){this.showToolTip(t,i);return}i=i.panel}this.hideToolTip()}}else i=t.toolTip,i!==null?this.showToolTip(i,null):this.hideToolTip()},Bt.prototype.showToolTip=function(t,i){var e=this.diagram;if(t!==this.currentToolTip&&this.hideToolTip(),t instanceof lt){t.layerName="Tool",t.selectable=!1,t.scale=1/e.scale,t.category="ToolTip",t.placeholder!==null&&(t.placeholder.scale=e.scale);var n=t.diagram;n!==null&&n!==e&&n.remove(t),e.add(t),i!==null?t.adornedObject=i:t.data=e.model,t.Va(),this.positionToolTip(t,i)}else t instanceof jo&&t!==this.currentToolTip&&t.show(i,e,this);if(this.currentToolTip=t,this.zj!==-1&&(J.clearTimeout(this.zj),this.zj=-1),t=this.toolTipDuration,0<t&&t!==1/0){var o=this;this.zj=ho(function(){o.hideToolTip()},t)}},Bt.prototype.positionToolTip=function(t){if(t.placeholder===null){var i=this.diagram,e=i.lastInput.documentPoint.copy(),n=t.measuredBounds,o=i.viewportBounds;i.lastInput.isTouchEvent&&(e.x-=n.width),e.x+n.width>o.right&&(e.x-=n.width+5/i.scale),e.x<o.x&&(e.x=o.x),e.y=e.y+20/i.scale+n.height>o.bottom?e.y-(n.height+5/i.scale):e.y+20/i.scale,e.y<o.y&&(e.y=o.y),t.position=e}},Bt.prototype.hideToolTip=function(){this.zj!==-1&&(J.clearTimeout(this.zj),this.zj=-1);var t=this.diagram,i=this.currentToolTip;i!==null&&(i instanceof lt?(t.remove(i),this.Lp!==null&&this.Lp.Jf(i.category),i.data=null,i.adornedObject=null):i instanceof jo&&i.hide!==null&&i.hide(t,this),this.currentToolTip=null)},Bt.prototype.doMouseUp=function(){this.cancelWaitAfter();var t=this.diagram;if(this.isActive)for(var i=this.mouseUpTools.length,e=0;e<i;e++){var n=this.mouseUpTools.M(e);if(n.diagram=this.diagram,n.canStart()){t.doFocus(),t.currentTool=n,t.currentTool===n&&(n.isActive||n.doActivate(),n.doMouseUp());return}}t.doFocus(),this.doDeactivate()},Bt.prototype.doMouseWheel=function(){this.standardMouseWheel()},Bt.prototype.doKeyDown=function(){var t=this.diagram;t.commandHandler!==null&&t.commandHandler.doKeyDown()},Bt.prototype.doKeyUp=function(){var t=this.diagram;t.commandHandler!==null&&t.commandHandler.doKeyUp()},Bt.prototype.findTool=function(t){for(var i=this.mouseDownTools.length,e=0;e<i;e++){var n=this.mouseDownTools.M(e);if(n.name===t)return n}for(i=this.mouseMoveTools.length,e=0;e<i;e++)if(n=this.mouseMoveTools.M(e),n.name===t)return n;for(i=this.mouseUpTools.length,e=0;e<i;e++)if(n=this.mouseUpTools.M(e),n.name===t)return n;return null},Bt.prototype.replaceTool=function(t,i){i!==null&&(i.diagram=this.diagram);for(var e=this.mouseDownTools.length,n=0;n<e;n++){var o=this.mouseDownTools.M(n);if(o.name===t)return i!==null?this.mouseDownTools.cd(n,i):this.mouseDownTools.mb(n),o}for(e=this.mouseMoveTools.length,n=0;n<e;n++)if(o=this.mouseMoveTools.M(n),o.name===t)return i!==null?this.mouseMoveTools.cd(n,i):this.mouseMoveTools.mb(n),o;for(e=this.mouseUpTools.length,n=0;n<e;n++)if(o=this.mouseUpTools.M(n),o.name===t)return i!==null?this.mouseUpTools.cd(n,i):this.mouseUpTools.mb(n),o;return null},Bt.prototype.gb=function(t,i,e){i!==null&&(i.name=t,i.diagram=this.diagram),this.findTool(t)?this.replaceTool(t,i):i!==null&&e.add(i)},tt.Object.defineProperties(Bt.prototype,{mouseWheelBehavior:{get:function(){return this.ia},set:function(t){this.ia=t}},gestureBehavior:{get:function(){return this.u},set:function(t){this.u=t}},currentToolTip:{get:function(){return this.j},set:function(t){this.j=t,this.Lp=t!==null&&t instanceof lt?t.adornedPart:null}},mouseDownTools:{get:function(){return this.hb}},mouseMoveTools:{get:function(){return this.ob}},mouseUpTools:{get:function(){return this.Ib}},hoverDelay:{get:function(){return this.V},set:function(t){this.V=t}},holdDelay:{get:function(){return this.F},set:function(t){this.F=t}},dragSize:{get:function(){return this.o},set:function(t){this.o=t.J()}},toolTipDuration:{get:function(){return this.Ha},set:function(t){this.Ha=t}}}),Bt.prototype.replaceStandardTool=Bt.prototype.gb;var $s=new R(Bt,"WheelScroll",0),sl=new R(Bt,"WheelZoom",1),kv=new R(Bt,"WheelNone",2),Rg=new R(Bt,"GestureZoom",3),Iu=new R(Bt,"GestureCancel",4),Sp=new R(Bt,"GestureNone",5);Bt.className="ToolManager",Bt.WheelScroll=$s,Bt.WheelZoom=sl,Bt.WheelNone=kv,Bt.GestureZoom=Rg,Bt.GestureCancel=Iu,Bt.GestureNone=Sp;function Rt(){at.call(this),this.name="Dragging",this.u=this.Sw=this.ob=!0,this.o=this.Ha=this.V=this.Oe=null,this.Xm=this.Ib=!1,this.sl=new x(NaN,NaN),this.Er=new x,this.hb=!0,this.Hk=100,this.Cg=[],this.te=new E().freeze(),this.ia=new ph,this.An=null,this.F="copy",this.Oc="",this.Pc="no-drop"}var fs;pt(Rt,at),Rt.prototype.canStart=function(){if(!this.isEnabled)return!1;var t=this.diagram;if(t.isReadOnly&&!t.allowDragOut||!t.allowMove&&!t.allowCopy&&!t.allowDragOut||!t.allowSelect)return!1;var i=t.lastInput;return!i.left||t.currentTool!==this&&(!this.isBeyondDragSize()||i.isTouchEvent&&i.timestamp-t.firstInput.timestamp<this.Hk)?!1:this.findDraggablePart()!==null},Rt.prototype.findDraggablePart=function(){var t=this.diagram;if(t=t.Nl(t.firstInput.documentPoint,!1),t===null)return null;for(;t!==null&&!t.canSelect();)t=t.containingGroup;return t!==null&&(t.canMove()||t.canCopy())?t:null},Rt.prototype.standardMouseSelect=function(){var t=this.diagram;if(t.allowSelect){var i=t.Nl(t.firstInput.documentPoint,!1);if(i!==null){for(;i!==null&&!i.canSelect();)i=i.containingGroup;this.currentPart=i,this.currentPart===null||this.currentPart.isSelected||(t.R("ChangingSelection",t.selection),i=t.lastInput,(To?i.meta:i.control)||i.shift||t.clearSelection(!0),this.currentPart.isSelected=!0,t.R("ChangedSelection",t.selection))}}},Rt.prototype.doActivate=function(){var t=this.diagram;this.An=null,this.currentPart===null&&this.standardMouseSelect();var i=this.currentPart;i!==null&&(i.canMove()||i.canCopy())&&(t.Fu(!0),vi=null,this.isActive=!0,this.sl.set(t.position),Np(this,t.selection),this.Cg.length=0,t.animationManager.Cc(),this.draggedParts=this.computeEffectiveCollection(t.selection,this.dragOptions),this.Sw=this.diagram.layout.isRealtime,this.diagram.layout.isRealtime=!1,t.Ms=!0,t.Gf("temporaryPixelRatio")===!0&&30<t.$w&&dl(t),_u(t,this.draggedParts),this.Ea("Drag"),this.startPoint=t.firstInput.documentPoint,t.isMouseCaptured=!0,t.allowDragOut&&(this.isDragOutStarted=!0,this.Xm=!1,vi=this,Ir=this.diagram,this.doSimulatedDragOut()))};function Np(t,i){if(t.dragsLink){var e=t.diagram;e.allowRelink&&(e.model.Vj()&&i.count===1&&i.first()instanceof F?(t.draggedLink=i.first(),t.draggedLink.canRelinkFrom()&&t.draggedLink.canRelinkTo()&&t.draggedLink.Dj(),t.Oe=e.toolManager.findTool("Relinking"),t.Oe===null&&(t.Oe=new We,t.Oe.diagram=e),t.Oe.originalLink=t.draggedLink):(t.draggedLink=null,t.Oe=null))}}Rt.prototype.computeEffectiveCollection=function(t,i){return this.diagram.commandHandler.computeEffectiveCollection(t,i)},Rt.prototype.Pd=function(t){return t===void 0?new rr(lo):this.isGridSnapEnabled?new rr(new x(Math.round(1e3*t.x)/1e3,Math.round(1e3*t.y)/1e3)):new rr(t.copy())},Rt.prototype.doDeactivate=function(){this.isActive=!1;var t=this.diagram;if(this.diagram.layout.isRealtime=this.Sw,t.Fu(!1),t.ug(),Pp(this),ml(t,this.draggedParts),this.draggedParts=this.currentPart=this.An=null,this.Xm=this.isDragOutStarted=!1,0<fs.count){for(var i=fs,e=i.length,n=0;n<e;n++){var o=i.M(n);Yg(o),or(o),Pp(o),o.diagram.ug()}i.clear()}Yg(this),this.sl.h(NaN,NaN),Ir!==null&&(Ir.currentCursor=""),vi=Ir=null,or(this),t.isMouseCaptured=!1,t.currentCursor="",t.Ms=!1,this.stopTransaction(),Hu(t,!0)},Rt.prototype.stopTransaction=function(){var t=this.diagram,i=at.prototype.stopTransaction.call(this);return i&&t.undoManager.transactionToUndo!==null&&t.undoManager.transactionToUndo.$j(),i};function Pp(t){var i=t.diagram,e=i.skipsUndoManager;i.skipsUndoManager=!0,zg(t,i.lastInput,null),i.skipsUndoManager=e,t.Cg.length=0}function Vg(){var t=vi;or(t),Cp(t);var i=t.diagram;t.sl.w()&&(i.position=t.sl),i.ug()}Rt.prototype.doCancel=function(){or(this),Cp(this);var t=this.diagram;this.sl.w()&&(t.position=this.sl),this.stopTool()},Rt.prototype.doKeyDown=function(){var t=this.diagram,i=t.lastInput;this.isActive&&(i.key==="Esc"?this.doCancel():i.key!==t.previousInput.key&&this.doMouseMove())},Rt.prototype.doKeyUp=function(){this.isActive&&this.doMouseMove()};function kp(t,i){if(t.copiedParts===null){var e=t.diagram;if((!i||!e.isReadOnly&&!e.isModelReadOnly)&&t.draggedParts!==null){var n=e.undoManager;for(n.isEnabled&&n.isInTransaction?n.currentTransaction!==null&&0<n.currentTransaction.changes.count&&(e.undoManager.Kf(),e.Ea("Drag")):Cp(t),e.skipsUndoManager=!i,e.partManager.addsToTemporaryLayer=!i,t.startPoint=e.firstInput.documentPoint,i=t.copiesEffectiveCollection?t.draggedParts.Lf():e.selection,i=e.Jj(i,e,!0),e=new _,n=t.draggedParts.iterator;n.next();){var o=n.key;if(o.Zc()&&o.canCopy()){var r=i.I(o);r!==null&&(r.location=o.location,r.Va(),e.add(r,t.Pd(r.location)))}}for(i=i.iterator;i.next();)n=i.value,n instanceof F&&n.canCopy()&&e.add(n,t.Pd());t.copiedParts=e,Np(t,e.Lf()),t.draggedLink!==null&&(e=t.draggedLink,i=e.routeBounds,Xo(e,t.startPoint.x-(i.x+i.width/2),t.startPoint.y-(i.y+i.height/2))),t.doUpdateCursor(null)}}}function or(t){var i=t.diagram;if(t.copiedParts!==null){if(i.Hs(t.copiedParts.Lf(),!1),t.copiedParts=null,t.draggedParts!==null)for(var e=t.draggedParts.iterator;e.next();)e.key instanceof F&&(e.value.point=new x(0,0));t.doUpdateCursor(null)}i.skipsUndoManager=!1,i.partManager.addsToTemporaryLayer=!1,t.startPoint=i.firstInput.documentPoint}function Yg(t){if(t.draggedLink!==null){if(t.dragsLink&&t.Oe!==null){var i=t.Oe;i.diagram.remove(i.temporaryFromNode),i.diagram.remove(i.temporaryToNode),t.Oe.originalLink=null}t.draggedLink=null,t.Oe=null}}function ps(t,i,e){var n=t.diagram,o=t.startPoint,r=x.alloc();r.assign(n.lastInput.documentPoint),t.moveParts(i,r.re(o),e),x.free(r),n.Gf("temporaryPixelRatio")===!0&&n.Yh===null&&30<n.$w&&(dl(n),n.gk())}Rt.prototype.moveParts=function(t,i,e){e===void 0&&(e=!1);var n=this.diagram;n!==null&&$p(n,t,i,this.dragOptions,e)};function Cp(t){if(t.draggedParts!==null){for(var i=t.diagram,e=t.draggedParts.iterator;e.next();){var n=e.key;n.Zc()&&(n.location=e.value.point)}for(e=t.draggedParts.iterator;e.next();)if(n=e.key,n instanceof F&&n.suspendsRouting){var o=e.value.point;t.draggedParts.add(n,t.Pd()),Xo(n,-o.x,-o.y)}i.bd()}}function Tp(t,i){var e=t.diagram;t.dragsLink&&(t.draggedLink!==null&&(t.draggedLink.fromNode=null,t.draggedLink.toNode=null),Kg(t,!1));var n=t.findDragOverObject(i),o=e.lastInput;o.targetObject=n,t.doUpdateCursor(n);var r=e.skipsUndoManager,s=!1;try{if(e.skipsUndoManager=!0,s=zg(t,o,n),!t.isActive&&vi===null)return;var h=n!==null?n.part:null;if(h===null||e.handlesDragDropForTopLevelParts&&h.isTopLevel&&!(h instanceof Q)){var l=e.mouseDragOver;l!==null&&(l(o),s=!0)}if(!t.isActive&&vi===null||(t.doDragOver(i,n),!t.isActive&&vi===null))return}finally{e.skipsUndoManager=r,s&&e.bd()}t.An=n,e.isReadOnly||!e.allowMove&&!e.allowCopy||!e.allowHorizontalScroll&&!e.allowVerticalScroll||e.fs(o.viewPoint)}Rt.prototype.findDragOverObject=function(t){var i=this;return Up(this.diagram,t,null,function(e){return e===null?e=!0:(e=e.part,e=!!(e===null||e instanceof lt||e.layer.isTemporary||i.draggedParts&&i.draggedParts.contains(e)||i.copiedParts&&i.copiedParts.contains(e))),!e})},Rt.prototype.doUpdateCursor=function(t){var i=this.diagram;(t===null||this.An!==t)&&(!this.diagram.currentTool.isActive||this.mayCopy()?i.currentCursor=this.copyCursor:this.mayMove()?i.currentCursor=this.moveCursor:this.mayDragOut()&&(i.currentCursor=this.nodropCursor))};function zg(t,i,e){var n=!1,o=t.Cg.length,r=0<o?t.Cg[0]:null;if(e===r)return!1;i.handled=!1;for(var s=0;s<o;s++){var h=t.Cg[s],l=h.mouseDragLeave;if(l!==null&&(l(i,h,e),n=!0,i.handled))break}if(t.Cg.length=0,!t.isActive&&vi===null||e===null)return n;for(i.handled=!1,o=e;o!==null;)t.Cg.push(o),o=Gg(o);for(o=t.Cg.length,e=0;e<o&&(s=t.Cg[e],h=s.mouseDragEnter,h===null||(h(i,s,r),n=!0,!i.handled));e++);return n}function Gg(t){var i=t.panel;return i!==null?i:t instanceof U&&!(t instanceof Q)&&(t=t.containingGroup,t!==null&&t.handlesDragDropForMembers)?t:null}function Xg(t,i,e){var n=t.Oe;if(n===null)return null;var o=t.diagram.og(i,n.portGravity,function(u){return n.findValidLinkablePort(u,e)});t=x.alloc();var r=1/0,s=null;for(o=o.iterator;o.next();){var h=o.value;if(h.part!==null){var l=h.ga(vt,t);l=i.Bf(l),l<r&&(s=h,r=l)}}return x.free(t),s}function Kg(t,i){var e=t.draggedLink;if(e!==null&&!(2>e.pointsCount)){var n=t.diagram;if(!n.isReadOnly){var o=t.Oe;if(o!==null){var r=null,s=null;e.fromNode===null&&(r=Xg(t,e.i(0),!1),r!==null&&(s=r.part));var h=null,l=null;e.toNode===null&&(h=Xg(t,e.i(e.pointsCount-1),!0),h!==null&&(l=h.part)),o.isValidLink(s,r,l,h)?i?(e.defaultFromPoint=e.i(0),e.defaultToPoint=e.i(e.pointsCount-1),e.suspendsRouting=!1,e.fromNode=s,r!==null&&(e.fromPortId=r.portId),e.toNode=l,h!==null&&(e.toPortId=h.portId),e.fromPort!==n.Mx&&n.R("LinkRelinked",e,n.Mx),e.toPort!==n.Nx&&n.R("LinkRelinked",e,n.Nx)):$g(o,s,r,l,h):$g(o,null,null,null,null)}}}}Rt.prototype.doDragOver=function(){};function Ug(t,i){var e=t.diagram;t.dragsLink&&Kg(t,!0),Pp(t);var n=t.findDragOverObject(i),o=e.lastInput;if(o.targetObject=n,n!==null){o.handled=!1;for(var r=n;r!==null;){var s=r.mouseDrop;if(s!==null&&(s(o,r),o.handled))break;Cv(t,o,r),r=Gg(r)}}else r=e.mouseDrop,r!==null&&r(o);if(t.isActive||vi!==null){for(o=(t.copiedParts||t.draggedParts).iterator;o.next();)r=o.key,r instanceof B&&r.linksConnected.each(function(h){h.suspendsRouting=!1});if(t.doDropOnto(i,n),t.isActive||vi!==null){for(t=T.alloc(),i=e.selection.iterator;i.next();)n=i.value,n instanceof B&&Tv(e,n,t);T.free(t)}}}function Cv(t,i,e){t=t.diagram,e=e.part,!t.handlesDragDropForTopLevelParts||!e.isTopLevel||e instanceof Q||(e=t.mouseDrop,e!==null&&e(i))}function Tv(t,i,e){var n=!1;if(e=i.getAvoidableRect(e),t.viewportBounds.Re(e)&&(n=!0),t=t.Nu(e,function(o){return o.part},function(o){return o instanceof F},!0,function(o){return o instanceof F},n),t.count!==0)for(t=t.iterator;t.next();)e=t.value,!e.Td(i)&&e.isAvoiding&&e.bb()}Rt.prototype.doDropOnto=function(){},Rt.prototype.doMouseMove=function(){if(this.isActive){var t=this.diagram,i=t.lastInput;this.simulatedMouseMove(i.event,i.documentPoint,i.targetDiagram)||this.currentPart===null||this.draggedParts===null||(this.mayCopy()?(kp(this,!1),_u(t,this.copiedParts),ps(this,this.copiedParts,!1),ml(t,this.copiedParts)):this.mayMove()?(or(this),ps(this,this.draggedParts,!0)):this.mayDragOut()?(kp(this,!1),ps(this,this.copiedParts,!1)):or(this),Tp(this,t.lastInput.documentPoint))}},Rt.prototype.doMouseUp=function(){if(this.isActive){var t=this.diagram,i=t.lastInput;if(!this.simulatedMouseUp(i.event,i.documentPoint,i.targetDiagram)){i=!1;var e=this.mayCopy();if(e&&this.copiedParts!==null?(or(this),kp(this,!0),_u(t,this.copiedParts),ps(this,this.copiedParts,!1),ml(t,this.copiedParts),this.copiedParts!==null&&(t.R("ChangingSelection",t.selection),t.clearSelection(!0),this.copiedParts.iteratorKeys.each(function(o){o.isSelected=!0}))):(i=!0,or(this),this.mayMove()&&(ps(this,this.draggedParts,!0),Tp(this,t.lastInput.documentPoint))),this.Xm=!0,Ug(this,t.lastInput.documentPoint),this.isActive){var n=e?this.copiedParts.Lf():this.draggedParts.Lf();this.copiedParts=null,i&&Lv(this),t.Ya(),ml(t,this.draggedParts),this.transactionResult=e?"Copy":"Move",t.R(e?"SelectionCopied":"SelectionMoved",n)}this.stopTool(),e&&t.R("ChangedSelection",t.selection)}}},Rt.prototype.simulatedMouseMove=function(t,i,e){if(vi===null)return!1;var n=vi.diagram;e instanceof C||(e=null);var o=Ir;return e!==o&&(o!==null&&o!==n&&(o.ug(),vi.isDragOutStarted=!1,o=o.toolManager.findTool("Dragging"),o!==null&&o.doSimulatedDragLeave()),Ir=e,e!==null&&e!==n&&(Vg(),o=e.toolManager.findTool("Dragging"),o!==null&&(fs.contains(o)||fs.add(o),o.doSimulatedDragEnter())),this.doUpdateCursor(null)),e===null||e===n||!e.allowDrop||e.isReadOnly||!e.allowInsert?!1:(n=e.toolManager.findTool("Dragging"),n!==null&&(t!==null&&(t.targetTouches!==void 0&&(0<t.targetTouches.length?t=t.targetTouches[0]:0<t.changedTouches.length&&(t=t.changedTouches[0])),i=e.getMouse(t)),e.lastInput.documentPoint=i,e.lastInput.viewPoint=e.np(i),e.lastInput.down=!1,e.lastInput.up=!1,n.doSimulatedDragOver()),!0)},Rt.prototype.simulatedMouseUp=function(t,i,e){if(vi===null)return!1;var n=Ir,o=vi.diagram;if(e===null)return vi.doCancel(),!0;if(e!==n){var r=n.toolManager.findTool("Dragging");if(n!==null&&n!==o&&r!==null)return n.ug(),vi.isDragOutStarted=!1,r.doSimulatedDragLeave(),!1;Ir=e,n=e.toolManager.findTool("Dragging"),n!==null&&(Vg(),fs.contains(n)||fs.add(n),n.doSimulatedDragEnter())}return e!==this.diagram?(t!==null?(t.targetTouches!==void 0&&(0<t.targetTouches.length?t=t.targetTouches[0]:0<t.changedTouches.length&&(t=t.changedTouches[0])),i=e.getMouse(t)):i===null&&(i=new x),e.lastInput.documentPoint=i,e.lastInput.viewPoint=e.np(i),e.lastInput.down=!1,e.lastInput.up=!0,t=e.toolManager.findTool("Dragging"),t!==null&&t.doSimulatedDrop(),t=vi,t!==null&&(e=t.mayCopy(),t.transactionResult=e?"Copy":"Move",t.stopTool()),!0):!1};function Lv(t){if(t.draggedParts!==null)for(var i=t.draggedParts.iterator;i.next();){var e=i.key;e instanceof B&&(e=e.containingGroup,e===null||e.placeholder===null||t.draggedParts.contains(e)||e.placeholder.v())}}Rt.prototype.mayCopy=function(){if(!this.isCopyEnabled)return!1;var t=this.diagram;if(t.isReadOnly||t.isModelReadOnly||!t.allowInsert||!t.allowCopy||(To?!t.lastInput.alt:!t.lastInput.control))return!1;for(t=t.selection.iterator;t.next();)if(t.value.canCopy())return!0;return!!(this.draggedLink!==null&&this.dragsLink&&this.draggedLink.canCopy())},Rt.prototype.mayDragOut=function(){if(!this.isCopyEnabled)return!1;var t=this.diagram;if(!t.allowDragOut||!t.allowCopy||t.allowMove)return!1;for(t=t.selection.iterator;t.next();)if(t.value.canCopy())return!0;return!!(this.draggedLink!==null&&this.dragsLink&&this.draggedLink.canCopy())},Rt.prototype.mayMove=function(){var t=this.diagram;if(t.isReadOnly||!t.allowMove)return!1;for(t=t.selection.iterator;t.next();)if(t.value.canMove())return!0;return!!(this.draggedLink!==null&&this.dragsLink&&this.draggedLink.canMove())},Rt.prototype.computeBorder=function(t,i,e){return this.Xm||this.draggedParts===null||this.draggedParts.contains(t)?null:e.assign(i)},Rt.prototype.Az=function(){return vi},Rt.prototype.mayDragIn=function(){var t=this.diagram;if(!t.allowDrop||t.isReadOnly||t.isModelReadOnly||!t.allowInsert)return!1;var i=vi;return!(i===null||i.diagram.model.dataFormat!==t.model.dataFormat)},Rt.prototype.doSimulatedDragEnter=function(){if(this.mayDragIn()){var t=this.diagram;t.animationManager.Cc(),Ao(t),t.animationManager.Cc(),t=vi,t!==null&&(t.diagram.Ms=!1),this.doUpdateCursor(null)}},Rt.prototype.doSimulatedDragLeave=function(){var t=vi;t!==null&&t.doSimulatedDragOut(),this.doCancel()},Rt.prototype.doSimulatedDragOver=function(){var t=this.diagram;t.animationManager.Cm=!0;var i=vi;if(i!==null&&i.draggedParts!==null){if(!this.mayDragIn())return;Hg(this,i.draggedParts.Lf(),!1,t.firstInput),ps(this,this.copiedParts,!1),Tp(this,t.lastInput.documentPoint)}t.animationManager.Cm=!1},Rt.prototype.doSimulatedDrop=function(){var t=this.diagram,i=vi;if(i!==null){var e=i.diagram;if(i.Xm=!0,or(this),!this.mayDragIn())return;t.animationManager.Cm=!0,t.R("ChangingSelection",t.selection),this.Ea("Drop"),Hg(this,i.draggedParts.Lf(),!0,t.lastInput),ps(this,this.copiedParts,!1);var n=new E;this.copiedParts!==null&&(t.clearSelection(!0),this.copiedParts.iteratorKeys.each(function(o){o.isSelected=!0,n.add(o)})),Ug(this,t.lastInput.documentPoint),t.Ya(),this.copiedParts!==null&&(this.transactionResult="ExternalCopy"),this.copiedParts=null,t.doFocus(),t.R("ExternalObjectsDropped",n,e),this.stopTransaction(),t.R("ChangedSelection",t.selection)}t.animationManager.Cm=!1};function Hg(t,i,e,n){if(t.copiedParts===null){var o=t.diagram;if(!o.isReadOnly&&!o.isModelReadOnly){o.skipsUndoManager=!e,o.partManager.addsToTemporaryLayer=!e,t.startPoint=n.documentPoint,e=o.Jj(i,o,!0);var r=T.alloc();o=n=1/0;for(var s=-1/0,h=-1/0,l=i.iterator;l.next();){var u=l.value;if(u.isVisible()){var a=u.location;u=a.x,a=a.y,isNaN(u)||isNaN(a)||(u<n&&(n=u),a<o&&(o=a),u>s&&(s=u),a>h&&(h=a))}}for(n===1/0?r.h(0,0,0,0):r.h(n,o,s-n,h-o),n=r.x+r.width/2,o=r.y+r.height/2,T.free(r),r=t.Er,s=new _,h=x.alloc(),l=i.iterator;l.next();)u=l.value,u instanceof F&&u.canCopy()&&(a=e.I(u),a!==null&&(a.points=u.points,Xo(a,r.x-n,r.y-o),a.suspendsRouting=!0,s.add(a,t.Pd())));for(i=i.iterator;i.next();)u=i.value,u.Zc()&&u.canCopy()&&(l=e.I(u),l!==null&&(u=u.location,h.h(r.x-(n-u.x),r.y-(o-u.y)),l.location=h,l.Va(),s.add(l,t.Pd(h))));x.free(h),t.copiedParts=s,Np(t,s.Lf()),t.draggedLink!==null&&(e=t.draggedLink,i=e.routeBounds,Xo(e,t.startPoint.x-(i.x+i.width/2),t.startPoint.y-(i.y+i.height/2))),t.doUpdateCursor(null)}}}Rt.prototype.doSimulatedDragOut=function(){var t=this.diagram;t.Ms=!1,this.mayCopy()||this.mayMove()?t.currentCursor="":t.currentCursor=this.nodropCursor,this.An=null},Rt.prototype.computeMove=function(t,i,e,n){return e=this.diagram,e!==null?e.computeMove(t,i,this.dragOptions,n):new x},tt.Object.defineProperties(Rt.prototype,{isCopyEnabled:{get:function(){return this.ob},set:function(t){this.ob=t}},copiesEffectiveCollection:{get:function(){return this.u},set:function(t){this.u=t}},dragOptions:{get:function(){return this.ia},set:function(t){this.ia=t}},isGridSnapEnabled:{get:function(){return this.dragOptions.isGridSnapEnabled},set:function(t){this.dragOptions.isGridSnapEnabled=t}},isComplexRoutingRealtime:{get:function(){return this.hb},set:function(t){this.hb=t}},isGridSnapRealtime:{get:function(){return this.dragOptions.isGridSnapRealtime},set:function(t){this.dragOptions.isGridSnapRealtime=t}},gridSnapCellSize:{get:function(){return this.dragOptions.gridSnapCellSize},set:function(t){this.dragOptions.gridSnapCellSize.D(t)||(t=t.J(),this.dragOptions.gridSnapCellSize=t)}},gridSnapCellSpot:{get:function(){return this.dragOptions.gridSnapCellSpot},set:function(t){this.dragOptions.gridSnapCellSpot.D(t)||(t=t.J(),this.dragOptions.gridSnapCellSpot=t)}},gridSnapOrigin:{get:function(){return this.dragOptions.gridSnapOrigin},set:function(t){this.dragOptions.gridSnapOrigin.D(t)||(t=t.J(),this.dragOptions.gridSnapOrigin=t)}},dragsLink:{get:function(){return this.dragOptions.dragsLink},set:function(t){this.dragOptions.dragsLink=t}},dragsTree:{get:function(){return this.dragOptions.dragsTree},set:function(t){this.dragOptions.dragsTree=t}},copyCursor:{get:function(){return this.F},set:function(t){this.F=t}},moveCursor:{get:function(){return this.Oc},set:function(t){this.Oc=t}},nodropCursor:{get:function(){return this.Pc},set:function(t){this.Pc=t}},currentPart:{get:function(){return this.V},set:function(t){this.V=t}},copiedParts:{get:function(){return this.o},set:function(t){this.o=t}},draggedParts:{get:function(){return this.Ha},set:function(t){this.Ha=t}},draggingParts:{get:function(){return this.copiedParts!==null?this.copiedParts.Lf():this.draggedParts!==null?this.draggedParts.Lf():this.te}},draggedLink:{get:function(){return this.diagram.draggedLink},set:function(t){this.diagram.draggedLink=t}},isDragOutStarted:{get:function(){return this.Ib},set:function(t){this.Ib=t}},startPoint:{get:function(){return this.Er},set:function(t){this.Er.D(t)||this.Er.assign(t)}},delay:{get:function(){return this.Hk},set:function(t){this.Hk=t}}}),Rt.prototype.getDraggingSource=Rt.prototype.Az;var vi=null,Ir=null;Rt.className="DraggingTool",fs=new V,On("draggingTool",function(){return this.findTool("Dragging")},function(t){this.gb("Dragging",t,this.mouseMoveTools)}),Bt.prototype.doCancel=function(){vi!==null&&vi.doCancel(),at.prototype.doCancel.call(this)};function Ni(){at.call(this),this.te=100,this.Ha=!1,this.u="pointer";var t=new F,i=new q;i.isPanelMain=!0,i.stroke="blue",t.add(i),i=new q,i.toArrow="Standard",i.fill="blue",i.stroke="blue",t.add(i),t.layerName="Tool",this.Ci=t,t=new B,i=new q,i.portId="",i.figure="Rectangle",i.fill=null,i.stroke="magenta",i.strokeWidth=2,i.desiredSize=Tu,t.add(i),t.selectable=!1,t.layerName="Tool",this.Bi=t,this.j=i,t=new B,i=new q,i.portId="",i.figure="Rectangle",i.fill=null,i.stroke="magenta",i.strokeWidth=2,i.desiredSize=Tu,t.add(i),t.selectable=!1,t.layerName="Tool",this.Di=t,this.o=i,this.Pc=this.Oc=this.ob=this.hb=this.Ib=null,this.ia=!0,this.hy=new _,this.Of=this.gj=this.Pf=null}pt(Ni,at),Ni.prototype.doStop=function(){this.diagram.ug(),this.originalToPort=this.originalToNode=this.originalFromPort=this.originalFromNode=this.originalLink=null,this.validPortsCache.clear(),this.targetPort=null},Ni.prototype.copyPortProperties=function(t,i,e,n,o){if(t!==null&&i!==null&&e!==null&&n!==null){var r=i.Df(),s=Z.alloc();s.width=i.naturalBounds.width*r,s.height=i.naturalBounds.height*r,n.desiredSize=s,Z.free(s),o?(n.toSpot=i.toSpot,n.toEndSegmentLength=i.toEndSegmentLength):(n.fromSpot=i.fromSpot,n.fromEndSegmentLength=i.fromEndSegmentLength),e.locationSpot=vt,r=x.alloc(),e.location=i.ga(vt,r),x.free(r),n.angle=i.li(),this.portTargeted!==null&&this.portTargeted(t,i,e,n,o)}},Ni.prototype.setNoTargetPortProperties=function(t,i,e){i!==null&&(i.desiredSize=Tu,i.fromSpot=Mi,i.toSpot=Mi),t!==null&&(t.location=this.diagram.lastInput.documentPoint),this.portTargeted!==null&&this.portTargeted(null,null,t,i,e)},Ni.prototype.doMouseDown=function(){this.isActive&&this.doMouseMove()},Ni.prototype.doMouseMove=function(){if(this.isActive){var t=this.diagram;if(this.targetPort=this.findTargetPort(this.isForwards),this.targetPort!==null&&this.targetPort.part instanceof B){var i=this.targetPort.part;this.isForwards?this.copyPortProperties(i,this.targetPort,this.temporaryToNode,this.temporaryToPort,!0):this.copyPortProperties(i,this.targetPort,this.temporaryFromNode,this.temporaryFromPort,!1)}else this.isForwards?this.setNoTargetPortProperties(this.temporaryToNode,this.temporaryToPort,!0):this.setNoTargetPortProperties(this.temporaryFromNode,this.temporaryFromPort,!1);(t.allowHorizontalScroll||t.allowVerticalScroll)&&t.fs(t.lastInput.viewPoint)}},Ni.prototype.findValidLinkablePort=function(t,i){if(t===null)return null;var e=t.part;if(!(e instanceof B))return null;for(;t!==null;){var n=i?t.toLinkable:t.fromLinkable;if(n===!0&&(t.portId!==null||t instanceof B)&&(i?this.isValidTo(e,t):this.isValidFrom(e,t)))return t;if(n===!1)break;t=t.panel}return null},Ni.prototype.findTargetPort=function(t){var i=this.diagram,e=i.lastInput.documentPoint,n=this.portGravity;0>=n&&(n=.1);var o=this,r=i.og(e,n,function(f){return o.findValidLinkablePort(f,t)},null,!0);for(n=1/0,i=null,r=r.iterator;r.next();){var s=r.value,h=s.part;if(h instanceof B){var l=s.ga(vt,x.alloc()),u=e.x-l.x,a=e.y-l.y;x.free(l),l=u*u+a*a,l<n&&(u=this.validPortsCache.I(s),u!==null?u&&(i=s,n=l):t&&this.isValidLink(this.originalFromNode,this.originalFromPort,h,s)||!t&&this.isValidLink(h,s,this.originalToNode,this.originalToPort)?(this.validPortsCache.add(s,!0),i=s,n=l):this.validPortsCache.add(s,!1))}}return i!==null&&(e=i.part,e instanceof B&&(e.layer===null||e.layer.allowLink))?i:null},Ni.prototype.isValidFrom=function(t,i){if(t===null||i===null)return this.isUnconnectedLinkValid;if(this.diagram.currentTool===this&&(t.layer!==null&&!t.layer.allowLink||i.fromLinkable!==!0))return!1;var e=i.fromMaxLinks;if(1/0>e){if(this.originalLink!==null&&t===this.originalFromNode&&i===this.originalFromPort)return!0;if(i=i.portId,i===null&&(i=""),t.Lo(i).count>=e)return!1}return!0},Ni.prototype.isValidTo=function(t,i){if(t===null||i===null)return this.isUnconnectedLinkValid;if(this.diagram.currentTool===this&&(t.layer!==null&&!t.layer.allowLink||i.toLinkable!==!0))return!1;var e=i.toMaxLinks;if(1/0>e){if(this.originalLink!==null&&t===this.originalToNode&&i===this.originalToPort)return!0;if(i=i.portId,i===null&&(i=""),t.Sd(i).count>=e)return!1}return!0},Ni.prototype.isInSameNode=function(t,i){return t===null||i===null?!1:t===i?!0:(t=t.part,i=i.part,t!==null&&t===i)},Ni.prototype.isLinked=function(t,i){if(t===null||i===null)return!1;var e=t.part;if(!(e instanceof B))return!1;t=t.portId,t===null&&(t="");var n=i.part;if(!(n instanceof B))return!1;for(i=i.portId,i===null&&(i=""),i=n.Sd(i);i.next();)if(n=i.value,n.fromNode===e&&n.fromPortId===t)return!0;return!1},Ni.prototype.isValidLink=function(t,i,e,n){if(!this.isValidFrom(t,i)||!this.isValidTo(e,n)||!(i===null||n===null||(i.fromLinkableSelfNode&&n.toLinkableSelfNode||!this.isInSameNode(i,n))&&(i.fromLinkableDuplicates&&n.toLinkableDuplicates||!this.isLinked(i,n)))||this.originalLink!==null&&(t!==null&&this.isLabelDependentOnLink(t,this.originalLink)||e!==null&&this.isLabelDependentOnLink(e,this.originalLink))||t!==null&&e!==null&&(t.data===null&&e.data!==null||t.data!==null&&e.data===null)||!this.isValidCycle(t,e,this.originalLink))return!1;if(t!==null){var o=t.linkValidation;if(o!==null&&!o(t,i,e,n,this.originalLink))return!1}return e!==null&&(o=e.linkValidation,o!==null&&!o(t,i,e,n,this.originalLink))?!1:(o=this.linkValidation,o!==null?o(t,i,e,n,this.originalLink):!0)},Ni.prototype.isLabelDependentOnLink=function(t,i){if(t===null)return!1;var e=t.labeledLink;if(e===null)return!1;if(e===i)return!0;var n=new E;return n.add(t),Lp(this,e,i,n)};function Lp(t,i,e,n){if(i===e)return!0;var o=i.fromNode;return o!==null&&o.isLinkLabel&&(n.add(o),Lp(t,o.labeledLink,e,n))?!0:(i=i.toNode,!!(i!==null&&i.isLinkLabel&&(n.add(i),Lp(t,i.labeledLink,e,n))))}Ni.prototype.isValidCycle=function(t,i,e){if(e===void 0&&(e=null),t===null||i===null)return this.isUnconnectedLinkValid;var n=this.diagram.validCycle;if(n!==lc){if(n===z0){if(n=e||this.temporaryLink,n!==null&&!n.isTreeLink)return!0;for(n=i.linksConnected;n.next();){var o=n.value;if(o!==e&&o.isTreeLink&&o.toNode===i)return!1}return!hl(this,t,i,e,!0)}if(n===G0){if(n=e||this.temporaryLink,n!==null&&!n.isTreeLink)return!0;for(n=t.linksConnected;n.next();)if(o=n.value,o!==e&&o.isTreeLink&&o.fromNode===t)return!1;return!hl(this,t,i,e,!0)}if(n===R0)return t===i?t=!0:(n=new E,n.add(i),t=Wg(this,n,t,i,e)),!t;if(n===V0)return!hl(this,t,i,e,!1);if(n===Y0)return t===i?t=!0:(n=new E,n.add(i),t=Jg(this,n,t,i,e)),!t}return!0};function hl(t,i,e,n,o){if(i===e)return!0;if(i===null||e===null)return!1;for(var r=i.linksConnected;r.next();){var s=r.value;if(s!==n&&(!o||s.isTreeLink)&&s.toNode===i&&(s=s.fromNode,s!==i&&hl(t,s,e,n,o)))return!0}return!1}function Wg(t,i,e,n,o){if(e===n)return!0;if(e===null||n===null||i.contains(e))return!1;i.add(e);for(var r=e.linksConnected;r.next();){var s=r.value;if(s!==o&&s.toNode===e&&(s=s.fromNode,s!==e&&Wg(t,i,s,n,o)))return!0}return!1}function Jg(t,i,e,n,o){if(e===n)return!0;if(e===null||n===null||i.contains(e))return!1;i.add(e);for(var r=e.linksConnected;r.next();){var s=r.value;if(s!==o){var h=s.fromNode;if(s=s.toNode,h=h===e?s:h,h!==e&&Jg(t,i,h,n,o))return!0}}return!1}tt.Object.defineProperties(Ni.prototype,{portGravity:{get:function(){return this.te},set:function(t){0<=t&&(this.te=t)}},isUnconnectedLinkValid:{get:function(){return this.Ha},set:function(t){this.Ha=t}},linkingCursor:{get:function(){return this.u},set:function(t){this.u=t}},temporaryLink:{get:function(){return this.Ci},set:function(t){this.Ci=t}},temporaryFromNode:{get:function(){return this.Bi},set:function(t){(this.Bi=t)&&(this.j=t.port)}},temporaryFromPort:{get:function(){return this.j},set:function(t){if(this.j!==null){var i=this.j.panel;if(i!==null){var e=i.O.indexOf(this.j);i.mb(e),i.Hb(e,t)}}this.j=t}},temporaryToNode:{get:function(){return this.Di},set:function(t){(this.Di=t)&&(this.o=t.port)}},temporaryToPort:{get:function(){return this.o},set:function(t){if(this.o!==null){var i=this.o.panel;if(i!==null){var e=i.O.indexOf(this.o);i.mb(e),i.Hb(e,t)}}this.o=t}},originalLink:{get:function(){return this.Ib},set:function(t){this.Ib=t}},originalFromNode:{get:function(){return this.hb},set:function(t){this.hb=t}},originalFromPort:{get:function(){return this.ob},set:function(t){this.ob=t}},originalToNode:{get:function(){return this.Oc},set:function(t){this.Oc=t}},originalToPort:{get:function(){return this.Pc},set:function(t){this.Pc=t}},isForwards:{get:function(){return this.ia},set:function(t){this.ia=t}},validPortsCache:{get:function(){return this.hy}},targetPort:{get:function(){return this.Pf},set:function(t){this.Pf=t}},linkValidation:{get:function(){return this.gj},set:function(t){this.gj=t}},portTargeted:{get:function(){return this.Of},set:function(t){this.Of=t}}}),Ni.className="LinkingBaseTool";function ne(){Ni.call(this),this.name="Linking",this.V={},this.F=null,this.K=Du,this.Xd=null}pt(ne,Ni),ne.prototype.canStart=function(){if(!this.isEnabled)return!1;var t=this.diagram;return t.isReadOnly||t.isModelReadOnly||!t.allowLink||!t.model.ws()||!t.lastInput.left||t.currentTool!==this&&!this.isBeyondDragSize()?!1:this.findLinkablePort()!==null},ne.prototype.findLinkablePort=function(){var t=this.diagram,i=this.startObject;if(i===null&&(i=t.jc(t.firstInput.documentPoint,null,null)),i===null||(t=i.part,!(t instanceof B)))return null;var e=this.direction;if(e===Du||e===Zg){var n=this.findValidLinkablePort(i,!1);if(n!==null||this.startObject===t&&(n=t.port,this.findValidLinkablePort(n,!1)))return this.isForwards=!0,n}return(e===Du||e===_g)&&(i=this.findValidLinkablePort(i,!0),i!==null||this.startObject===t&&(i=t.port,this.findValidLinkablePort(i,!0)))?(this.isForwards=!1,i):null},ne.prototype.doActivate=function(){var t=this.diagram,i=this.findLinkablePort();i===null?this.stopTool():(this.Ea(this.name),t.isMouseCaptured=!0,t.currentCursor=this.linkingCursor,this.isForwards?(this.temporaryToNode!==null&&(this.temporaryToNode.location=t.lastInput.documentPoint),this.originalFromPort=i,i=this.originalFromPort.part,i instanceof B&&(this.originalFromNode=i),this.copyPortProperties(this.originalFromNode,this.originalFromPort,this.temporaryFromNode,this.temporaryFromPort,!1)):(this.temporaryFromNode!==null&&(this.temporaryFromNode.location=t.lastInput.documentPoint),this.originalToPort=i,i=this.originalToPort.part,i instanceof B&&(this.originalToNode=i),this.copyPortProperties(this.originalToNode,this.originalToPort,this.temporaryToNode,this.temporaryToPort,!0)),t.add(this.temporaryFromNode),this.temporaryFromNode&&this.temporaryFromNode.Va(),t.add(this.temporaryToNode),this.temporaryToNode&&this.temporaryToNode.Va(),this.temporaryLink!==null&&(this.temporaryFromNode!==null&&(this.temporaryLink.fromNode=this.temporaryFromNode),this.temporaryToNode!==null&&(this.temporaryLink.toNode=this.temporaryToNode),this.temporaryLink.isTreeLink=this.isNewTreeLink(),this.temporaryLink.bb(),t.add(this.temporaryLink)),this.isActive=!0)},ne.prototype.doDeactivate=function(){this.isActive=!1;var t=this.diagram;t.remove(this.temporaryLink),t.remove(this.temporaryFromNode),t.remove(this.temporaryToNode),t.isMouseCaptured=!1,t.currentCursor="",this.stopTransaction()},ne.prototype.doStop=function(){Ni.prototype.doStop.call(this),this.startObject=null},ne.prototype.doMouseUp=function(){if(this.isActive){var t=this.diagram,i=this.transactionResult=null,e=null,n=null,o=null,r=null;try{var s=this.targetPort=this.findTargetPort(this.isForwards);if(s!==null){var h=s.part;h instanceof B&&(this.isForwards?(this.originalFromNode!==null&&(i=this.originalFromNode,e=this.originalFromPort),n=h,o=s):(i=h,e=s,this.originalToNode!==null&&(n=this.originalToNode,o=this.originalToPort)))}else this.isForwards?this.originalFromNode!==null&&this.isUnconnectedLinkValid&&(i=this.originalFromNode,e=this.originalFromPort):this.originalToNode!==null&&this.isUnconnectedLinkValid&&(n=this.originalToNode,o=this.originalToPort);i!==null||n!==null?(r=this.insertLink(i,e,n,o),r!==null?(s===null&&(this.isForwards?r.defaultToPoint=t.lastInput.documentPoint:r.defaultFromPoint=t.lastInput.documentPoint),t.allowSelect&&(t.R("ChangingSelection",t.selection),t.clearSelection(!0),r.isSelected=!0),this.transactionResult=this.name,t.R("LinkDrawn",r)):this.doNoLink(i,e,n,o)):this.isForwards?this.doNoLink(this.originalFromNode,this.originalFromPort,null,null):this.doNoLink(null,null,this.originalToNode,this.originalToPort)}finally{this.stopTool(),r&&t.allowSelect&&t.R("ChangedSelection",t.selection)}}},ne.prototype.isNewTreeLink=function(){var t=this.archetypeLinkData;if(t===null)return!0;if(t instanceof F)return t.isTreeLink;var i=this.diagram;return i===null?!0:(t=i.partManager.getLinkCategoryForData(t),i=i.partManager.findLinkTemplateForCategory(t),i!==null?i.isTreeLink:!0)},ne.prototype.insertLink=function(t,i,e,n){return this.diagram.partManager.insertLink(t,i,e,n)},ne.prototype.doNoLink=function(){},tt.Object.defineProperties(ne.prototype,{archetypeLinkData:{get:function(){return this.V},set:function(t){this.V=t}},archetypeLabelNodeData:{get:function(){return this.F},set:function(t){this.F=t}},direction:{get:function(){return this.K},set:function(t){this.K=t}},startObject:{get:function(){return this.Xd},set:function(t){this.Xd=t}}});var Du=new R(ne,"Either",0),Zg=new R(ne,"ForwardsOnly",0),_g=new R(ne,"BackwardsOnly",0);ne.className="LinkingTool",ne.Either=Du,ne.ForwardsOnly=Zg,ne.BackwardsOnly=_g;function We(){Ni.call(this),this.name="Relinking";var t=new q;t.figure="Diamond",t.desiredSize=ls,t.fill="lightblue",t.stroke="dodgerblue",t.cursor=this.linkingCursor,t.segmentIndex=0,this.V=t,t=new q,t.figure="Diamond",t.desiredSize=ls,t.fill="lightblue",t.stroke="dodgerblue",t.cursor=this.linkingCursor,t.segmentIndex=-1,this.Xd=t,this.F=null,this.Ew=new T}pt(We,Ni),We.prototype.updateAdornments=function(t){if(t!==null&&t instanceof F){var i="RelinkFrom",e=null;if(t.isSelected&&!this.diagram.isReadOnly){var n=t.selectionObject;n!==null&&t.canRelinkFrom()&&t.actualBounds.w()&&t.isVisible()&&n.actualBounds.w()&&n.Ed()&&(e=t.Oj(i),e===null&&(e=this.makeAdornment(n,!1),t.bh(i,e)))}e===null&&t.Jf(i),i="RelinkTo",e=null,t.isSelected&&!this.diagram.isReadOnly&&(n=t.selectionObject,n!==null&&t.canRelinkTo()&&t.actualBounds.w()&&t.isVisible()&&n.actualBounds.w()&&n.Ed()&&(e=t.Oj(i),e===null?(e=this.makeAdornment(n,!0),t.bh(i,e)):e.v())),e===null&&t.Jf(i)}},We.prototype.makeAdornment=function(t,i){var e=new lt;return e.type=j.Link,i=i?this.toHandleArchetype:this.fromHandleArchetype,i!==null&&e.add(i.copy()),e.adornedObject=t,e},We.prototype.canStart=function(){if(!this.isEnabled)return!1;var t=this.diagram;if(t.isReadOnly||t.isModelReadOnly||!t.allowRelink||!t.model.ws()||!t.lastInput.left)return!1;var i=this.findToolHandleAt(t.firstInput.documentPoint,"RelinkFrom");return i===null&&(i=this.findToolHandleAt(t.firstInput.documentPoint,"RelinkTo")),i!==null},We.prototype.doActivate=function(){var t=this.diagram;if(this.originalLink===null){var i=this.handle;if(i===null&&(i=this.findToolHandleAt(t.firstInput.documentPoint,"RelinkFrom"),i===null&&(i=this.findToolHandleAt(t.firstInput.documentPoint,"RelinkTo"))),i===null)return;var e=i.part;if(!(e instanceof lt&&e.adornedPart instanceof F))return;this.handle=i,this.isForwards=e===null||e.category==="RelinkTo",this.originalLink=e.adornedPart}this.Ea(this.name),t.isMouseCaptured=!0,t.currentCursor=this.linkingCursor,this.originalFromPort=this.originalLink.fromPort,this.originalFromNode=this.originalLink.fromNode,this.originalToPort=this.originalLink.toPort,this.originalToNode=this.originalLink.toNode,this.Ew.set(this.originalLink.actualBounds),this.originalLink!==null&&0<this.originalLink.pointsCount&&(this.originalLink.fromNode===null&&(this.temporaryFromPort!==null&&(this.temporaryFromPort.desiredSize=hs),this.temporaryFromNode!==null&&(this.temporaryFromNode.location=this.originalLink.i(0))),this.originalLink.toNode===null&&(this.temporaryToPort!==null&&(this.temporaryToPort.desiredSize=hs),this.temporaryToNode!==null&&(this.temporaryToNode.location=this.originalLink.i(this.originalLink.pointsCount-1)))),this.copyPortProperties(this.originalFromNode,this.originalFromPort,this.temporaryFromNode,this.temporaryFromPort,!1),this.copyPortProperties(this.originalToNode,this.originalToPort,this.temporaryToNode,this.temporaryToPort,!0),t.add(this.temporaryFromNode),t.add(this.temporaryToNode),this.temporaryLink!==null&&(this.temporaryFromNode!==null&&(this.temporaryLink.fromNode=this.temporaryFromNode),this.temporaryToNode!==null&&(this.temporaryLink.toNode=this.temporaryToNode),this.copyLinkProperties(this.originalLink,this.temporaryLink),this.temporaryLink.bb(),t.add(this.temporaryLink)),this.isActive=!0},We.prototype.copyLinkProperties=function(t,i){if(t!==null&&i!==null){i.adjusting=t.adjusting,i.corner=t.corner;var e=t.curve;(e===Ah||e===Ko)&&(e=Ui),i.curve=e,i.curviness=t.curviness,i.isTreeLink=t.isTreeLink,i.points=t.points,i.routing=t.routing,i.smoothness=t.smoothness,i.fromSpot=t.fromSpot,i.fromEndSegmentLength=t.fromEndSegmentLength,i.fromShortLength=t.fromShortLength,i.toSpot=t.toSpot,i.toEndSegmentLength=t.toEndSegmentLength,i.toShortLength=t.toShortLength}},We.prototype.doDeactivate=function(){this.isActive=!1;var t=this.diagram;t.remove(this.temporaryLink),t.remove(this.temporaryFromNode),t.remove(this.temporaryToNode),t.isMouseCaptured=!1,t.currentCursor="",this.stopTransaction()},We.prototype.doStop=function(){Ni.prototype.doStop.call(this),this.handle=null},We.prototype.doMouseUp=function(){if(this.isActive){var t=this.diagram;this.transactionResult=null;var i=this.originalFromNode,e=this.originalFromPort,n=this.originalToNode,o=this.originalToPort,r=this.originalLink;try{if(this.targetPort=this.findTargetPort(this.isForwards),this.targetPort!==null){var s=this.targetPort.part;s instanceof B&&(this.isForwards?(n=s,o=this.targetPort):(i=s,e=this.targetPort))}else this.isUnconnectedLinkValid?this.isForwards?o=n=null:e=i=null:r=null;r!==null?(this.reconnectLink(r,this.isForwards?n:i,this.isForwards?o:e,this.isForwards),this.targetPort===null&&(this.isForwards?r.defaultToPoint=t.lastInput.documentPoint:r.defaultFromPoint=t.lastInput.documentPoint,r.bb()),this.transactionResult=this.name,t.R("LinkRelinked",r,this.isForwards?this.originalToPort:this.originalFromPort)):this.doNoRelink(this.originalLink,this.isForwards),this.originalLink.Wo(this.Ew)}finally{this.stopTool()}}},We.prototype.reconnectLink=function(t,i,e,n){return e=e!==null&&e.portId!==null?e.portId:"",n?(t.toNode=i,t.toPortId=e):(t.fromNode=i,t.fromPortId=e),!0},We.prototype.doNoRelink=function(){};function $g(t,i,e,n,o){i!==null?(t.copyPortProperties(i,e,t.temporaryFromNode,t.temporaryFromPort,!1),t.diagram.add(t.temporaryFromNode)):t.diagram.remove(t.temporaryFromNode),n!==null?(t.copyPortProperties(n,o,t.temporaryToNode,t.temporaryToPort,!0),t.diagram.add(t.temporaryToNode)):t.diagram.remove(t.temporaryToNode)}tt.Object.defineProperties(We.prototype,{fromHandleArchetype:{get:function(){return this.V},set:function(t){this.V=t}},toHandleArchetype:{get:function(){return this.Xd},set:function(t){this.Xd=t}},handle:{get:function(){return this.F},set:function(t){if(t!==null&&!(t.part instanceof lt))throw Error("new handle is not in an Adornment: "+t);this.F=t}}}),We.className="RelinkingTool",On("linkingTool",function(){return this.findTool("Linking")},function(t){this.gb("Linking",t,this.mouseMoveTools)}),On("relinkingTool",function(){return this.findTool("Relinking")},function(t){this.gb("Relinking",t,this.mouseDownTools)});function qt(){at.call(this),this.name="LinkReshaping";var t=new q;t.figure="Rectangle",t.desiredSize=ip,t.fill="lightblue",t.stroke="dodgerblue",this.o=t,t=new q,t.figure="Diamond",t.desiredSize=ls,t.fill="lightblue",t.stroke="dodgerblue",t.cursor="move",this.u=t,this.F=3,this.Ss=this.j=null,this.Fw=new x,this.Xq=new V}pt(qt,at),qt.prototype.Ru=function(t){return t&&t.reshapingBehavior.value!==0?t.reshapingBehavior:jp},qt.prototype.nm=function(t,i){t.reshapingBehavior=i},qt.prototype.updateAdornments=function(t){if(t!==null&&t instanceof F){var i=null;if(t.isSelected&&!this.diagram.isReadOnly){var e=t.path;e!==null&&t.canReshape()&&t.actualBounds.w()&&t.isVisible()&&e.actualBounds.w()&&e.Ed()&&(i=t.Oj(this.name),i===null||i.Aw!==t.pointsCount||i.Uw!==t.resegmentable)&&(i=this.makeAdornment(e),i!==null&&(i.Aw=t.pointsCount,i.Uw=t.resegmentable,t.bh(this.name,i)))}i===null&&t.Jf(this.name)}},qt.prototype.makeAdornment=function(t){var i=t.part,e=i.pointsCount,n=i.isOrthogonal,o=null;if(i.points!==null&&1<e){o=new lt,o.type=j.Link,e=i.firstPickIndex;var r=i.lastPickIndex,s=n?1:0;if(i.resegmentable&&i.computeCurve()!==Ne)for(var h=e+s;h<r-s;h++){var l=this.makeResegmentHandle(t,h);l!==null&&(l.segmentIndex=h,l.segmentFraction=.5,l.fromMaxLinks=999,o.add(l))}for(s=e+1;s<r;s++)if(h=this.makeHandle(t,s),h!==null){if(h.segmentIndex=s,s!==e)if(s===e+1&&n){l=i.i(e);var u=i.i(e+1);P.B(l.x,u.x)&&P.B(l.y,u.y)&&(u=i.i(e-1)),P.B(l.x,u.x)?(this.nm(h,bs),h.cursor="n-resize"):P.B(l.y,u.y)&&(this.nm(h,qs),h.cursor="w-resize")}else s===r-1&&n?(l=i.i(r-1),u=i.i(r),P.B(l.x,u.x)&&P.B(l.y,u.y)&&(l=i.i(r+1)),P.B(l.x,u.x)?(this.nm(h,bs),h.cursor="n-resize"):P.B(l.y,u.y)&&(this.nm(h,qs),h.cursor="w-resize")):s!==r&&(this.nm(h,Fp),h.cursor="move");o.add(h)}o.adornedObject=t}return o},qt.prototype.makeHandle=function(){var t=this.handleArchetype;return t===null?null:t.copy()},qt.prototype.makeResegmentHandle=function(){var t=this.midHandleArchetype;return t===null?null:t.copy()},qt.prototype.canStart=function(){if(!this.isEnabled)return!1;var t=this.diagram;return!t.isReadOnly&&t.allowReshape&&t.lastInput.left?this.findToolHandleAt(t.firstInput.documentPoint,this.name)!==null:!1},qt.prototype.doActivate=function(){var t=this.diagram;if(this.handle===null&&(this.handle=this.findToolHandleAt(t.firstInput.documentPoint,this.name)),this.handle!==null){var i=this.handle.part.adornedPart;if(i instanceof F){if(this.Ss=i,t.isMouseCaptured=!0,this.Ea(this.name),i.resegmentable&&this.handle.fromMaxLinks===999){var e=i.points.copy(),n=this.getResegmentingPoint();if(e.Hb(this.handle.segmentIndex+1,n),i.isOrthogonal&&e.Hb(this.handle.segmentIndex+1,n),i.points=e,i.Xb(),i.updateAdornments(),this.handle=this.findToolHandleAt(t.firstInput.documentPoint,this.name),this.handle===null){this.doDeactivate();return}}this.Fw=i.i(this.handle.segmentIndex),this.Xq=i.points.copy(),this.isActive=!0}}},qt.prototype.doDeactivate=function(){this.stopTransaction(),this.Ss=this.handle=null,this.isActive=this.diagram.isMouseCaptured=!1},qt.prototype.stopTransaction=function(){var t=this.diagram,i=at.prototype.stopTransaction.call(this);return i&&t.undoManager.transactionToUndo!==null&&t.undoManager.transactionToUndo.$j(),i},qt.prototype.doCancel=function(){var t=this.adornedLink;t!==null&&(t.points=this.Xq),this.stopTool()},qt.prototype.getResegmentingPoint=function(){return this.handle.ga(vt)},qt.prototype.doMouseMove=function(){var t=this.diagram;this.isActive&&(t=this.computeReshape(t.lastInput.documentPoint),this.reshape(t))},qt.prototype.doMouseUp=function(){var t=this.diagram;if(this.isActive){var i=this.computeReshape(t.lastInput.documentPoint);if(this.reshape(i),i=this.adornedLink,i!==null&&i.resegmentable){var e=this.handle.segmentIndex,n=i.i(e-1),o=i.i(e),r=i.i(e+1);if(i.isOrthogonal){if(e>i.firstPickIndex+1&&e<i.lastPickIndex-1){var s=i.i(e-2);if(Math.abs(n.x-o.x)<this.resegmentingDistance&&Math.abs(n.y-o.y)<this.resegmentingDistance&&(Qs(this,s,n,o,r,!0)||Qs(this,s,n,o,r,!1))){var h=i.points.copy();Qs(this,s,n,o,r,!0)?(h.cd(e-2,new x(s.x,(r.y+s.y)/2)),h.cd(e+1,new x(r.x,(r.y+s.y)/2))):(h.cd(e-2,new x((r.x+s.x)/2,s.y)),h.cd(e+1,new x((r.x+s.x)/2,r.y))),h.mb(e),h.mb(e-1),i.points=h,i.Xb()}else s=i.i(e+2),Math.abs(o.x-r.x)<this.resegmentingDistance&&Math.abs(o.y-r.y)<this.resegmentingDistance&&(Qs(this,n,o,r,s,!0)||Qs(this,n,o,r,s,!1))&&(h=i.points.copy(),Qs(this,n,o,r,s,!0)?(h.cd(e-1,new x(n.x,(n.y+s.y)/2)),h.cd(e+2,new x(s.x,(n.y+s.y)/2))):(h.cd(e-1,new x((n.x+s.x)/2,n.y)),h.cd(e+2,new x((n.x+s.x)/2,s.y))),h.mb(e+1),h.mb(e),i.points=h,i.Xb())}}else s=x.alloc(),P.qh(n.x,n.y,r.x,r.y,o.x,o.y,s)&&s.Bf(o)<this.resegmentingDistance*this.resegmentingDistance&&(n=i.points.copy(),n.mb(e),i.points=n,i.Xb()),x.free(s)}t.Ya(),this.transactionResult=this.name,t.R("LinkReshaped",this.adornedLink,this.Xq)}this.stopTool()};function Qs(t,i,e,n,o,r){return r?Math.abs(i.y-e.y)<t.resegmentingDistance&&Math.abs(e.y-n.y)<t.resegmentingDistance&&Math.abs(n.y-o.y)<t.resegmentingDistance:Math.abs(i.x-e.x)<t.resegmentingDistance&&Math.abs(e.x-n.x)<t.resegmentingDistance&&Math.abs(n.x-o.x)<t.resegmentingDistance}qt.prototype.reshape=function(t){var i=this.adornedLink;i.uh();var e=this.handle.segmentIndex,n=this.Ru(this.handle);if(i.isOrthogonal)if(e===i.firstPickIndex+1)e=i.firstPickIndex+1,n===bs?(i.L(e,i.i(e-1).x,t.y),i.L(e+1,i.i(e+2).x,t.y)):n===qs&&(i.L(e,t.x,i.i(e-1).y),i.L(e+1,t.x,i.i(e+2).y));else if(e===i.lastPickIndex-1)e=i.lastPickIndex-1,n===bs?(i.L(e-1,i.i(e-2).x,t.y),i.L(e,i.i(e+1).x,t.y)):n===qs&&(i.L(e-1,t.x,i.i(e-2).y),i.L(e,t.x,i.i(e+1).y));else{n=e;var o=i.i(n),r=i.i(n-1),s=i.i(n+1);P.B(r.x,o.x)&&P.B(o.y,s.y)?(P.B(r.x,i.i(n-2).x)&&!P.B(r.y,i.i(n-2).y)?(i.m(n,t.x,r.y),e++,n++):i.L(n-1,t.x,r.y),P.B(s.y,i.i(n+2).y)&&!P.B(s.x,i.i(n+2).x)?i.m(n+1,s.x,t.y):i.L(n+1,s.x,t.y)):P.B(r.y,o.y)&&P.B(o.x,s.x)?(P.B(r.y,i.i(n-2).y)&&!P.B(r.x,i.i(n-2).x)?(i.m(n,r.x,t.y),e++,n++):i.L(n-1,r.x,t.y),P.B(s.x,i.i(n+2).x)&&!P.B(s.y,i.i(n+2).y)?i.m(n+1,t.x,s.y):i.L(n+1,t.x,s.y)):P.B(r.x,o.x)&&P.B(o.x,s.x)?(P.B(r.x,i.i(n-2).x)&&!P.B(r.y,i.i(n-2).y)?(i.m(n,t.x,r.y),e++,n++):i.L(n-1,t.x,r.y),P.B(s.x,i.i(n+2).x)&&!P.B(s.y,i.i(n+2).y)?i.m(n+1,t.x,s.y):i.L(n+1,t.x,s.y)):P.B(r.y,o.y)&&P.B(o.y,s.y)&&(P.B(r.y,i.i(n-2).y)&&!P.B(r.x,i.i(n-2).x)?(i.m(n,r.x,t.y),e++,n++):i.L(n-1,r.x,t.y),P.B(s.y,i.i(n+2).y)&&!P.B(s.x,i.i(n+2).x)?i.m(n+1,s.x,t.y):i.L(n+1,s.x,t.y)),i.L(e,t.x,t.y)}else i.L(e,t.x,t.y),n=i.fromNode,o=i.fromPort,n!==null&&(r=n.findVisibleNode(),r!==null&&r!==n&&(n=r,o=n.port)),e===1&&i.computeSpot(!0,o).Mc()&&(r=o.ga(vt,x.alloc()),n=i.getLinkPointFromPoint(n,o,r,t,!0,x.alloc()),i.L(0,n.x,n.y),x.free(r),x.free(n)),n=i.toNode,o=i.toPort,n!==null&&(r=n.findVisibleNode(),r!==null&&r!==n&&(n=r,o=n.port)),e===i.pointsCount-2&&i.computeSpot(!1,o).Mc()&&(e=o.ga(vt,x.alloc()),t=i.getLinkPointFromPoint(n,o,e,t,!1,x.alloc()),i.L(i.pointsCount-1,t.x,t.y),x.free(e),x.free(t));i.zf()},qt.prototype.computeReshape=function(t){var i=this.adornedLink,e=this.handle.segmentIndex;switch(this.Ru(this.handle)){case Fp:return t;case bs:return new x(i.i(e).x,t.y);case qs:return new x(t.x,i.i(e).y);default:case jp:return i.i(e)}},tt.Object.defineProperties(qt.prototype,{handleArchetype:{get:function(){return this.o},set:function(t){this.o=t}},midHandleArchetype:{get:function(){return this.u},set:function(t){this.u=t}},handle:{get:function(){return this.j},set:function(t){if(t!==null&&!(t.part instanceof lt))throw Error("new handle is not in an Adornment: "+t);this.j=t}},adornedLink:{get:function(){return this.Ss}},resegmentingDistance:{get:function(){return this.F},set:function(t){this.F=t}},originalPoint:{get:function(){return this.Fw}},originalPoints:{get:function(){return this.Xq}}}),qt.prototype.setReshapingBehavior=qt.prototype.nm,qt.prototype.getReshapingBehavior=qt.prototype.Ru;var jp=new R(qt,"None",0),qs=new R(qt,"Horizontal",1),bs=new R(qt,"Vertical",2),Fp=new R(qt,"All",3);qt.className="LinkReshapingTool",qt.None=jp,qt.Horizontal=qs,qt.Vertical=bs,qt.All=Fp,On("linkReshapingTool",function(){return this.findTool("LinkReshaping")},function(t){this.gb("LinkReshaping",t,this.mouseDownTools)});function zi(){at.call(this),this.name="Resizing",this.o=new Z(1,1).freeze(),this.j=new Z(9999,9999).freeze(),this.yg=new Z(NaN,NaN).freeze(),this.V=!1,this.ia=!0,this.ue=null;var t=new q;t.alignmentFocus=vt,t.figure="Rectangle",t.desiredSize=ip,t.fill="lightblue",t.stroke="dodgerblue",t.strokeWidth=1,t.cursor="pointer",this.F=t,this.u=null,this.Wq=new x,this.Dw=new Z,this.Sn=new x,this.qt=new Z(0,0),this.pt=new Z(1/0,1/0),this.ot=new Z(1,1)}pt(zi,at),zi.prototype.updateAdornments=function(t){if(!(t===null||t instanceof F)){if(t.isSelected&&!this.diagram.isReadOnly){var i=t.resizeObject,e=t.Oj(this.name);if(i!==null&&t.canResize()&&t.actualBounds.w()&&t.isVisible()&&i.actualBounds.w()&&i.Ed()&&((e===null||e.adornedObject!==i)&&(e=this.makeAdornment(i)),e!==null)){i=i.li(),ur(t)&&this.updateResizeHandles(e,i),t.bh(this.name,e);return}}t.Jf(this.name)}},zi.prototype.makeAdornment=function(t){var i=t.part.resizeAdornmentTemplate;if(i===null){i=new lt,i.type=j.Spot,i.locationSpot=vt;var e=new Ki;e.isPanelMain=!0,i.add(e),i.add(this.makeHandle(t,Ti)),i.add(this.makeHandle(t,Us)),i.add(this.makeHandle(t,Xn)),i.add(this.makeHandle(t,Hs)),i.add(this.makeHandle(t,Ke)),i.add(this.makeHandle(t,ae)),i.add(this.makeHandle(t,He)),i.add(this.makeHandle(t,Ue))}else if(Ze(i),i=i.copy(),i===null)return null;return i.adornedObject=t,i},zi.prototype.makeHandle=function(t,i){return t=this.handleArchetype,t===null?null:(t=t.copy(),t.alignment=i,t)},zi.prototype.updateResizeHandles=function(t,i){if(t!==null){if(!t.alignment.Yb()&&(t.cursor==="pointer"||0<t.cursor.indexOf("resize")))t:{var e=t.alignment;if(e.Mc()&&(e=vt),0>=e.x)i=0>=e.y?i+225:1<=e.y?i+135:i+180;else if(1<=e.x)0>=e.y?i+=315:1<=e.y&&(i+=45);else if(0>=e.y)i+=270;else if(1<=e.y)i+=90;else break t;0>i?i+=360:360<=i&&(i-=360),t.cursor=22.5>i?"e-resize":67.5>i?"se-resize":112.5>i?"s-resize":157.5>i?"sw-resize":202.5>i?"w-resize":247.5>i?"nw-resize":292.5>i?"n-resize":337.5>i?"ne-resize":"e-resize"}else if(t instanceof j)for(t=t.elements;t.next();)this.updateResizeHandles(t.value,i)}},zi.prototype.canStart=function(){if(!this.isEnabled)return!1;var t=this.diagram;return!t.isReadOnly&&t.allowResize&&t.lastInput.left?this.findToolHandleAt(t.firstInput.documentPoint,this.name)!==null:!1},zi.prototype.doActivate=function(){var t=this.diagram;this.handle===null&&(this.handle=this.findToolHandleAt(t.firstInput.documentPoint,this.name)),this.handle!==null&&(this.adornedObject=this.handle.part.adornedObject,this.adornedObject!==null&&(t.isMouseCaptured=!0,t.animationManager.Cc(),this.Ea(this.name),this.Wq.set(this.adornedObject.ga(this.handle.alignment.gv())),this.Sn.set(this.adornedObject.part.location),this.Dw.set(this.adornedObject.desiredSize),this.ot=this.computeCellSize(),this.qt=this.computeMinSize(),this.pt=this.computeMaxSize(),this.isActive=!0))},zi.prototype.doDeactivate=function(){var t=this.diagram;this.stopTransaction(),this.ue=this.handle=null,this.isActive=t.isMouseCaptured=!1},zi.prototype.stopTransaction=function(){var t=this.diagram,i=at.prototype.stopTransaction.call(this);return i&&t.undoManager.transactionToUndo!==null&&t.undoManager.transactionToUndo.$j(),i},zi.prototype.doCancel=function(){this.adornedObject!==null&&(this.adornedObject.desiredSize=this.originalDesiredSize,this.adornedObject.part.location=this.originalLocation),this.stopTool()},zi.prototype.doMouseMove=function(){var t=this.diagram;if(this.isActive){var i=this.qt,e=this.pt,n=this.ot,o=this.adornedObject.ps(t.lastInput.documentPoint,x.alloc()),r=this.computeReshape();i=this.computeResize(o,this.handle.alignment,i,e,n,r),this.resize(i),t.bd(),x.free(o)}},zi.prototype.doMouseUp=function(){var t=this.diagram;if(this.isActive){var i=this.qt,e=this.pt,n=this.ot,o=this.adornedObject.ps(t.lastInput.documentPoint,x.alloc()),r=this.computeReshape();i=this.computeResize(o,this.handle.alignment,i,e,n,r),this.resize(i),x.free(o),t.Ya(),this.transactionResult=this.name,t.R("PartResized",this.adornedObject,this.originalDesiredSize)}this.stopTool()},zi.prototype.resize=function(t){var i=this.diagram,e=this.adornedObject;if(e!==null){if(e.desiredSize=t.size,t=e.part,t.Va(),e=e.ga(this.handle.alignment.gv()),t instanceof Q){var n=new V;if(n.add(t),!this.dragsMembers&&t.placeholder===null){var o=new ph;o.dragsMembers=!1}i.moveParts(n,this.oppositePoint.copy().re(e),!0,o)}else t.location=t.location.copy().re(e).add(this.oppositePoint);i.bd()}},zi.prototype.computeResize=function(t,i,e,n,o,r){i.Mc()&&(i=vt);var s=this.adornedObject.naturalBounds,h=s.x,l=s.y,u=s.x+s.width,a=s.y+s.height,f=1;if(!r){f=s.width;var p=s.height;0>=f&&(f=1),0>=p&&(p=1),f=p/f}return p=x.alloc(),P.Mo(t.x,t.y,h,l,o.width,o.height,p),t=s.copy(),0>=i.x?0>=i.y?(t.x=Math.max(p.x,u-n.width),t.x=Math.min(t.x,u-e.width),t.width=Math.max(u-t.x,e.width),t.y=Math.max(p.y,a-n.height),t.y=Math.min(t.y,a-e.height),t.height=Math.max(a-t.y,e.height),r||(1<=t.height/t.width?(t.height=Math.max(Math.min(f*t.width,n.height),e.height),t.width=t.height/f):(t.width=Math.max(Math.min(t.height/f,n.width),e.width),t.height=f*t.width),t.x=u-t.width,t.y=a-t.height)):1<=i.y?(t.x=Math.max(p.x,u-n.width),t.x=Math.min(t.x,u-e.width),t.width=Math.max(u-t.x,e.width),t.height=Math.max(Math.min(p.y-l,n.height),e.height),r||(1<=t.height/t.width?(t.height=Math.max(Math.min(f*t.width,n.height),e.height),t.width=t.height/f):(t.width=Math.max(Math.min(t.height/f,n.width),e.width),t.height=f*t.width),t.x=u-t.width)):(t.x=Math.max(p.x,u-n.width),t.x=Math.min(t.x,u-e.width),t.width=u-t.x,r||(t.height=Math.max(Math.min(f*t.width,n.height),e.height),t.width=t.height/f,t.y=l+.5*(a-l-t.height))):1<=i.x?0>=i.y?(t.width=Math.max(Math.min(p.x-h,n.width),e.width),t.y=Math.max(p.y,a-n.height),t.y=Math.min(t.y,a-e.height),t.height=Math.max(a-t.y,e.height),r||(1<=t.height/t.width?(t.height=Math.max(Math.min(f*t.width,n.height),e.height),t.width=t.height/f):(t.width=Math.max(Math.min(t.height/f,n.width),e.width),t.height=f*t.width),t.y=a-t.height)):1<=i.y?(t.width=Math.max(Math.min(p.x-h,n.width),e.width),t.height=Math.max(Math.min(p.y-l,n.height),e.height),r||(1<=t.height/t.width?(t.height=Math.max(Math.min(f*t.width,n.height),e.height),t.width=t.height/f):(t.width=Math.max(Math.min(t.height/f,n.width),e.width),t.height=f*t.width))):(t.width=Math.max(Math.min(p.x-h,n.width),e.width),r||(t.height=Math.max(Math.min(f*t.width,n.height),e.height),t.width=t.height/f,t.y=l+.5*(a-l-t.height))):0>=i.y?(t.y=Math.max(p.y,a-n.height),t.y=Math.min(t.y,a-e.height),t.height=a-t.y,r||(t.width=Math.max(Math.min(t.height/f,n.width),e.width),t.height=f*t.width,t.x=h+.5*(u-h-t.width))):1<=i.y&&(t.height=Math.max(Math.min(p.y-l,n.height),e.height),r||(t.width=Math.max(Math.min(t.height/f,n.width),e.width),t.height=f*t.width,t.x=h+.5*(u-h-t.width))),x.free(p),t},zi.prototype.computeReshape=function(){var t=Xt;return this.adornedObject instanceof q&&(t=zc(this.adornedObject)),!(t===Dn||this.diagram.lastInput.shift)},zi.prototype.computeMinSize=function(){var t=this.adornedObject.minSize.copy(),i=this.minSize;return!isNaN(i.width)&&i.width>t.width&&(t.width=i.width),!isNaN(i.height)&&i.height>t.height&&(t.height=i.height),t},zi.prototype.computeMaxSize=function(){var t=this.adornedObject.maxSize.copy(),i=this.maxSize;return!isNaN(i.width)&&i.width<t.width&&(t.width=i.width),!isNaN(i.height)&&i.height<t.height&&(t.height=i.height),t},zi.prototype.computeCellSize=function(){var t=new Z(NaN,NaN),i=this.adornedObject.part;return i!==null&&(i=i.resizeCellSize,!isNaN(i.width)&&0<i.width&&(t.width=i.width),!isNaN(i.height)&&0<i.height&&(t.height=i.height)),i=this.cellSize,isNaN(t.width)&&!isNaN(i.width)&&0<i.width&&(t.width=i.width),isNaN(t.height)&&!isNaN(i.height)&&0<i.height&&(t.height=i.height),i=this.diagram,(isNaN(t.width)||isNaN(t.height))&&i&&(i=i.grid,i!==null&&i.visible&&this.isGridSnapEnabled&&(i=i.gridCellSize,isNaN(t.width)&&!isNaN(i.width)&&0<i.width&&(t.width=i.width),isNaN(t.height)&&!isNaN(i.height)&&0<i.height&&(t.height=i.height))),(isNaN(t.width)||t.width===0||t.width===1/0)&&(t.width=1),(isNaN(t.height)||t.height===0||t.height===1/0)&&(t.height=1),t},tt.Object.defineProperties(zi.prototype,{handleArchetype:{get:function(){return this.F},set:function(t){this.F=t}},handle:{get:function(){return this.u},set:function(t){if(t!==null&&!(t.part instanceof lt))throw Error("new handle is not in an Adornment: "+t);this.u=t}},adornedObject:{get:function(){return this.ue},set:function(t){if(t!==null&&t.part instanceof lt)throw Error("new handle must not be in an Adornment: "+t);this.ue=t}},minSize:{get:function(){return this.o},set:function(t){if(!this.o.D(t)){var i=t.width;isNaN(i)&&(i=0),t=t.height,isNaN(t)&&(t=0),this.o.h(i,t)}}},maxSize:{get:function(){return this.j},set:function(t){if(!this.j.D(t)){var i=t.width;isNaN(i)&&(i=1/0),t=t.height,isNaN(t)&&(t=1/0),this.j.h(i,t)}}},cellSize:{get:function(){return this.yg},set:function(t){this.yg.D(t)||this.yg.assign(t)}},isGridSnapEnabled:{get:function(){return this.V},set:function(t){this.V=t}},dragsMembers:{get:function(){return this.ia},set:function(t){this.ia=t}},oppositePoint:{get:function(){return this.Wq},set:function(t){this.Wq.D(t)||this.Wq.assign(t)}},originalDesiredSize:{get:function(){return this.Dw}},originalLocation:{get:function(){return this.Sn}}}),zi.className="ResizingTool",On("resizingTool",function(){return this.findTool("Resizing")},function(t){this.gb("Resizing",t,this.mouseDownTools)});function we(){at.call(this),this.name="Rotating",this.ia=45,this.V=2,this.Sn=new x,this.ue=null;var t=new q;t.figure="Ellipse",t.desiredSize=ls,t.fill="lightblue",t.stroke="dodgerblue",t.strokeWidth=1,t.cursor="pointer",this.o=t,this.j=null,this.Cw=0,this.jr=new x(NaN,NaN),this.u=0,this.F=50}pt(we,at),we.prototype.updateAdornments=function(t){if(t!==null){if(t.ph()){var i=t.rotateObject;if(i===t||i===t.path||i.isPanelMain)return}if(t.isSelected&&!this.diagram.isReadOnly&&(i=t.rotateObject,i!==null&&t.canRotate()&&t.actualBounds.w()&&t.isVisible()&&i.actualBounds.w()&&i.Ed())){var e=t.Oj(this.name);if((e===null||e.adornedObject!==i)&&(e=this.makeAdornment(i)),e!==null){e.angle=i.li(),e.placeholder===null&&(e.location=this.computeAdornmentLocation(i)),t.bh(this.name,e);return}}t.Jf(this.name)}},we.prototype.makeAdornment=function(t){var i=t.part.rotateAdornmentTemplate;if(i===null){i=new lt,i.type=j.Position,i.locationSpot=vt;var e=this.handleArchetype;e!==null&&i.add(e.copy())}else if(Ze(i),i=i.copy(),i===null)return null;return i.adornedObject=t,i},we.prototype.canStart=function(){if(!this.isEnabled)return!1;var t=this.diagram;return!t.isReadOnly&&t.allowRotate&&t.lastInput.left?this.findToolHandleAt(t.firstInput.documentPoint,this.name)!==null:!1},we.prototype.doActivate=function(){var t=this.diagram;if(this.adornedObject===null){if(this.handle===null&&(this.handle=this.findToolHandleAt(t.firstInput.documentPoint,this.name)),this.handle===null)return;this.adornedObject=this.handle.part.adornedObject}this.adornedObject!==null&&(t.isMouseCaptured=!0,t.delaysLayout=!0,this.Ea(this.name),this.Cw=this.adornedObject.angle,this.jr=this.computeRotationPoint(this.adornedObject),this.Sn=this.adornedObject.part.location.copy(),this.isActive=!0)},we.prototype.computeRotationPoint=function(t){var i=t.part,e=i.locationObject;return i.rotationSpot.sb()?t.ga(i.rotationSpot):t===i||t===e?e.ga(i.locationSpot):t.ga(vt)},we.prototype.computeAdornmentLocation=function(t){var i=this.rotationPoint;i.w()||(i=this.computeRotationPoint(t)),i=t.ps(i);var e=this.handleAngle;0>e?e+=360:360<=e&&(e-=360),e=Math.round(45*Math.round(e/45));var n=this.handleDistance;return e===0?i.x=t.naturalBounds.width+n:e===45?(i.x=t.naturalBounds.width+n,i.y=t.naturalBounds.height+n):e===90?i.y=t.naturalBounds.height+n:e===135?(i.x=-n,i.y=t.naturalBounds.height+n):e===180?i.x=-n:e===225?(i.x=-n,i.y=-n):e===270?i.y=-n:e===315&&(i.x=t.naturalBounds.width+n,i.y=-n),t.ga(i)},we.prototype.doDeactivate=function(){var t=this.diagram;this.stopTransaction(),this.ue=this.handle=null,this.jr=new x(NaN,NaN),this.isActive=t.isMouseCaptured=!1},we.prototype.stopTransaction=function(){var t=this.diagram,i=at.prototype.stopTransaction.call(this);return i&&t.undoManager.transactionToUndo!==null&&t.undoManager.transactionToUndo.$j(),i},we.prototype.doCancel=function(){this.diagram.delaysLayout=!1,this.rotate(this.originalAngle),this.stopTool()},we.prototype.doMouseMove=function(){var t=this.diagram;this.isActive&&(t=this.computeRotate(t.lastInput.documentPoint),this.rotate(t))},we.prototype.doMouseUp=function(){var t=this.diagram;if(this.isActive){t.delaysLayout=!1;var i=this.computeRotate(t.lastInput.documentPoint);this.rotate(i),t.Ya(),this.transactionResult=this.name,t.R("PartRotated",this.adornedObject,this.originalAngle)}this.stopTool()},we.prototype.rotate=function(t){var i=this.adornedObject;if(i!==null){i.angle=t,i=i.part,i.Va();var e=i.locationObject,n=i.rotateObject;(e===n||e.rg(n))&&(e=this.Sn.copy(),i.location=e.re(this.rotationPoint).rotate(t-this.originalAngle).add(this.rotationPoint)),this.diagram.bd()}},we.prototype.computeRotate=function(t){t=this.rotationPoint.ab(t)-this.handleAngle;var i=this.adornedObject.panel;i!==null&&(t-=i.li()),360<=t?t-=360:0>t&&(t+=360),i=Math.min(Math.abs(this.snapAngleMultiple),180);var e=Math.min(Math.abs(this.snapAngleEpsilon),i/2);return!this.diagram.lastInput.shift&&0<i&&0<e&&(t%i<e?t=Math.floor(t/i)*i:t%i>i-e&&(t=(Math.floor(t/i)+1)*i)),360<=t?t-=360:0>t&&(t+=360),t},tt.Object.defineProperties(we.prototype,{handleArchetype:{get:function(){return this.o},set:function(t){this.o=t}},handle:{get:function(){return this.j},set:function(t){if(t!==null&&!(t.part instanceof lt))throw Error("new handle is not in an Adornment: "+t);this.j=t}},adornedObject:{get:function(){return this.ue},set:function(t){if(t!==null&&t.part instanceof lt)throw Error("new handle must not be in an Adornment: "+t);this.ue=t}},snapAngleMultiple:{get:function(){return this.ia},set:function(t){this.ia=t}},snapAngleEpsilon:{get:function(){return this.V},set:function(t){this.V=t}},originalAngle:{get:function(){return this.Cw}},rotationPoint:{get:function(){return this.jr},set:function(t){this.jr=t.copy()}},handleAngle:{get:function(){return this.u},set:function(t){this.u=t}},handleDistance:{get:function(){return this.F},set:function(t){this.F=t}}}),we.className="RotatingTool",On("rotatingTool",function(){return this.findTool("Rotating")},function(t){this.gb("Rotating",t,this.mouseDownTools)});function th(){at.call(this),this.name="ClickSelecting"}pt(th,at),th.prototype.canStart=function(){return!(!this.isEnabled||this.isBeyondDragSize())},th.prototype.doMouseUp=function(){this.isActive&&(this.standardMouseSelect(),!this.standardMouseClick()&&this.diagram.lastInput.isTouchEvent&&this.diagram.toolManager.doToolTip()),this.stopTool()},th.className="ClickSelectingTool";function Lo(){at.call(this),this.name="Action",this.nk=null}pt(Lo,at),Lo.prototype.canStart=function(){if(!this.isEnabled)return!1;var t=this.diagram,i=t.lastInput,e=t.jc(i.documentPoint,function(n){for(;n.panel!==null&&!n.isActionable;)n=n.panel;return n});return e!==null&&e.isActionable?(this.nk=e,t.Bk=t.jc(i.documentPoint,null,null),!0):!1},Lo.prototype.doMouseDown=function(){if(this.isActive){var t=this.diagram.lastInput,i=this.nk;i!==null&&(t.targetObject=i,i.actionDown!==null&&i.actionDown(t,i))}else this.canStart()&&this.doActivate()},Lo.prototype.doMouseMove=function(){if(this.isActive){var t=this.diagram.lastInput,i=this.nk;i!==null&&(t.targetObject=i,i.actionMove!==null&&i.actionMove(t,i))}},Lo.prototype.doMouseUp=function(){if(this.isActive){var t=this.diagram.lastInput,i=this.nk;if(i===null)return;t.targetObject=i,i.actionUp!==null&&i.actionUp(t,i),this.standardMouseClick(function(e){for(;e.panel!==null&&(!e.isActionable||e!==i);)e=e.panel;return e},function(e){return e===i})}this.stopTool()},Lo.prototype.doCancel=function(){var t=this.diagram.lastInput,i=this.nk;i!==null&&(t.targetObject=i,i.actionCancel!==null&&i.actionCancel(t,i),this.stopTool())},Lo.prototype.doStop=function(){this.nk=null},Lo.className="ActionTool";function Dr(){at.call(this),this.name="ClickCreating",this.Ri=null,this.o=!0,this.j=!1,this.mw=new x(0,0)}pt(Dr,at),Dr.prototype.canStart=function(){if(!this.isEnabled||this.archetypeNodeData===null)return!1;var t=this.diagram;if(t.isReadOnly||t.isModelReadOnly||!t.allowInsert||!t.lastInput.left||this.isBeyondDragSize())return!1;if(this.isDoubleClick){if(t.lastInput.clickCount===1&&(this.mw=t.lastInput.viewPoint.copy()),t.lastInput.clickCount!==2||this.isBeyondDragSize(this.mw))return!1}else if(t.lastInput.clickCount!==1)return!1;return!(t.currentTool!==this&&t.Nl(t.lastInput.documentPoint,!0)!==null)},Dr.prototype.doMouseUp=function(){var t=this.diagram;this.isActive&&this.insertPart(t.lastInput.documentPoint),this.stopTool()},Dr.prototype.insertPart=function(t){var i=this.diagram,e=this.archetypeNodeData;if(e===null)return null;var n=null;try{if(i.R("ChangingSelection",i.selection),this.Ea(this.name),e instanceof U)e.Zc()&&(Ze(e),n=e.copy(),n!==null&&i.add(n));else if(e!==null){var o=i.model.copyNodeData(e);At(o)&&(i.model.xf(o),n=i.Lc(o))}if(n!==null){var r=x.allocAt(t.x,t.y);this.isGridSnapEnabled&&qp(this.diagram,n,t,r),n.location=r,i.allowSelect&&(i.clearSelection(!0),n.isSelected=!0),x.free(r)}i.Ya(),this.transactionResult=this.name,i.R("PartCreated",n)}finally{this.stopTransaction(),i.R("ChangedSelection",i.selection)}return n},tt.Object.defineProperties(Dr.prototype,{archetypeNodeData:{get:function(){return this.Ri},set:function(t){this.Ri=t}},isDoubleClick:{get:function(){return this.o},set:function(t){this.o=t}},isGridSnapEnabled:{get:function(){return this.j},set:function(t){this.j=t}}}),Dr.className="ClickCreatingTool";function Kn(){at.call(this),this.name="DragSelecting",this.Hk=175,this.o=!1;var t=new U;t.layerName="Tool",t.selectable=!1;var i=new q;i.name="SHAPE",i.figure="Rectangle",i.fill=null,i.stroke="magenta",t.add(i),this.j=t}pt(Kn,at),Kn.prototype.canStart=function(){if(!this.isEnabled)return!1;var t=this.diagram;if(!t.allowSelect)return!1;var i=t.lastInput;return!(!i.left||t.currentTool!==this&&(!this.isBeyondDragSize()||i.timestamp-t.firstInput.timestamp<this.delay||t.Nl(i.documentPoint,!0)!==null))},Kn.prototype.doActivate=function(){var t=this.diagram;this.isActive=!0,t.isMouseCaptured=!0,t.skipsUndoManager=!0,t.add(this.box),this.doMouseMove()},Kn.prototype.doDeactivate=function(){var t=this.diagram;t.ug(),t.remove(this.box),t.skipsUndoManager=!1,this.isActive=t.isMouseCaptured=!1},Kn.prototype.doMouseMove=function(){var t=this.diagram;if(this.isActive&&this.box!==null){var i=this.computeBoxBounds(),e=this.box.fb("SHAPE");e===null&&(e=this.box.Qb());var n=Z.alloc().h(i.width,i.height);e.desiredSize=n,this.box.lm(i.x,i.y,!1),Z.free(n),(t.allowHorizontalScroll||t.allowVerticalScroll)&&t.fs(t.lastInput.viewPoint)}},Kn.prototype.doMouseUp=function(){if(this.isActive){var t=this.diagram;t.remove(this.box);try{t.currentCursor="wait",t.R("ChangingSelection",t.selection),this.selectInRect(this.computeBoxBounds()),t.R("ChangedSelection",t.selection)}finally{t.currentCursor=""}}this.stopTool()},Kn.prototype.computeBoxBounds=function(){var t=this.diagram;return new T(t.firstInput.documentPoint,t.lastInput.documentPoint)},Kn.prototype.selectInRect=function(t){var i=this.diagram,e=i.lastInput;if(t=i.ux(t,this.isPartialInclusion),To?e.meta:e.control)if(e.shift)for(t=t.iterator;t.next();)i=t.value,i.isSelected&&(i.isSelected=!1);else for(t=t.iterator;t.next();)i=t.value,i.isSelected=!i.isSelected;else if(e.shift)for(t=t.iterator;t.next();)i=t.value,i.isSelected||(i.isSelected=!0);else{for(e=new V,i=i.selection.iterator;i.next();){var n=i.value;t.contains(n)||e.add(n)}for(i=e.iterator;i.next();)i.value.isSelected=!1;for(t=t.iterator;t.next();)i=t.value,i.isSelected||(i.isSelected=!0)}},tt.Object.defineProperties(Kn.prototype,{delay:{get:function(){return this.Hk},set:function(t){this.Hk=t}},isPartialInclusion:{get:function(){return this.o},set:function(t){this.o=t}},box:{get:function(){return this.j},set:function(t){this.j=t}}}),Kn.className="DragSelectingTool";function Un(){at.call(this),this.name="Panning",this.Wt=new x,this.xy=new x,this.xg=!1;var t=this;this.Kw=function(){var i=t.diagram;i!==null&&i.removeEventListener(J.document,"scroll",t.Kw,!1),t.stopTool()}}pt(Un,at),Un.prototype.canStart=function(){if(!this.isEnabled)return!1;var t=this.diagram;return!(!t.allowHorizontalScroll&&!t.allowVerticalScroll||!t.lastInput.left||t.currentTool!==this&&!this.isBeyondDragSize())},Un.prototype.doActivate=function(){var t=this.diagram;this.xg?(t.lastInput.bubbles=!0,t.addEventListener(J.document,"scroll",this.Kw,!1)):(t.currentCursor="move",t.isMouseCaptured=!0,this.Wt.assign(t.position)),this.isActive=!0},Un.prototype.doDeactivate=function(){var t=this.diagram;t.currentCursor="",this.isActive=t.isMouseCaptured=!1},Un.prototype.doCancel=function(){var t=this.diagram;t.position=this.Wt,t.isMouseCaptured=!1,this.stopTool()},Un.prototype.doMouseMove=function(){this.move()},Un.prototype.doMouseUp=function(){this.move(),this.stopTool()},Un.prototype.move=function(){var t=this.diagram;if(this.isActive&&t)if(this.xg)t.lastInput.bubbles=!0;else{var i=t.position,e=t.firstInput.documentPoint,n=t.lastInput.documentPoint,o=i.x+e.x-n.x;e=i.y+e.y-n.y,t.allowHorizontalScroll||(o=i.x),t.allowVerticalScroll||(e=i.y),t.position=this.xy.h(o,e)}},tt.Object.defineProperties(Un.prototype,{bubbles:{get:function(){return this.xg},set:function(t){this.xg=t}},originalPosition:{get:function(){return this.Wt}}}),Un.className="PanningTool",On("clickCreatingTool",function(){return this.findTool("ClickCreating")},function(t){this.gb("ClickCreating",t,this.mouseUpTools)}),On("clickSelectingTool",function(){return this.findTool("ClickSelecting")},function(t){this.gb("ClickSelecting",t,this.mouseUpTools)}),On("panningTool",function(){return this.findTool("Panning")},function(t){this.gb("Panning",t,this.mouseMoveTools)}),On("dragSelectingTool",function(){return this.findTool("DragSelecting")},function(t){this.gb("DragSelecting",t,this.mouseMoveTools)}),On("actionTool",function(){return this.findTool("Action")},function(t){this.gb("Action",t,this.mouseDownTools)});function jo(){this.F=this.u=this.j=this.o=null}tt.Object.defineProperties(jo.prototype,{mainElement:{get:function(){return this.u},set:function(t){this.u=t}},show:{get:function(){return this.o},set:function(t){this.o!==t&&(this.o=t)}},hide:{get:function(){return this.j},set:function(t){this.j!==t&&(this.j=t)}},valueFunction:{get:function(){return this.F},set:function(t){this.F=t}}}),jo.className="HTMLInfo";function xn(t,i,e){this.text=t,this.hx=i,this.visible=e}xn.className="ContextMenuButtonInfo";function fe(){at.call(this),this.name="ContextMenu",this.o=this.gt=this.j=null,this.yw=new x,this.it=null,this.Dt=!1;var t=this;this.su=function(){t.stopTool()}}pt(fe,at);function jv(t){var i=new jo;i.show=function(o,r,s){s.showDefaultContextMenu()},i.hide=function(o,r){r.hideDefaultContextMenu()},ih=i,t.su=function(){t.stopTool()},i=tn("div");var e=tn("div");i.style.cssText="top: 0px;z-index:10002;position: fixed;display: none;text-align: center;left: 25%;width: 50%;background-color: #F5F5F5;padding: 16px;border: 16px solid #444;border-radius: 10px;margin-top: 10px",e.style.cssText="z-index:10001;position: fixed;display: none;top: 0;left: 0;width: 100%;height: 100%;background-color: black;opacity: 0.8;";var n=tn("style");J.document.getElementsByTagName("head")[0].appendChild(n),n.sheet.insertRule(".goCXul { list-style: none; }",0),n.sheet.insertRule(".goCXli {font:700 1.5em Helvetica, Arial, sans-serif;position: relative;min-width: 60px; }",0),n.sheet.insertRule(".goCXa {color: #444;display: inline-block;padding: 4px;text-decoration: none;margin: 2px;border: 1px solid gray;border-radius: 10px; }",0),n=t.diagram,n!==null&&(n.addEventListener(i,"contextmenu",Ap,!1),n.addEventListener(i,"selectstart",Ap,!1),n.addEventListener(e,"contextmenu",Ap,!1)),i.className="goCXforeground",e.className="goCXbackground",J.document.body&&(J.document.body.appendChild(i),J.document.body.appendChild(e)),ul=i,ll=e,Op=!0}function Ap(t){return t.preventDefault(),!1}fe.prototype.canStart=function(){if(!this.isEnabled)return!1;var t=this.diagram;return this.isBeyondDragSize()||!t.lastInput.right||1<t.lastInput.clickCount?!1:!!(t.lastInput.isTouchEvent&&this.defaultTouchContextMenu!==null||this.findObjectWithContextMenu()!==null)},fe.prototype.doStart=function(){this.yw.set(this.diagram.firstInput.documentPoint)},fe.prototype.doStop=function(){this.hideContextMenu(),this.currentObject=null},fe.prototype.findObjectWithContextMenu=function(t){t===void 0&&(t=null);var i=this.diagram,e=i.lastInput,n=null;if(t instanceof C||(t instanceof X?n=t:n=i.jc(e.documentPoint,null,function(o){return!o.layer.isTemporary})),n!==null){for(t=n;t!==null;){if(t.contextMenu!==null)return t;t=t.panel}if(i.lastInput.isTouchEvent&&this.defaultTouchContextMenu)return n.part}else if(i.contextMenu!==null)return i;return null},fe.prototype.doActivate=function(){},fe.prototype.doMouseDown=function(){if(at.prototype.doMouseDown.call(this),this.isActive&&this.currentContextMenu instanceof lt){var t=this.diagram.toolManager.findTool("Action");t!==null&&t.canStart()&&(t.doActivate(),t.doMouseDown(),t.doDeactivate())}this.diagram.toolManager.mouseDownTools.contains(this)&&Qg(this)},fe.prototype.doMouseUp=function(){if(this.isActive&&this.currentContextMenu instanceof lt){var t=this.diagram.toolManager.findTool("Action");t!==null&&t.canStart()&&(t.doActivate(),t.doCancel(),t.doDeactivate())}Qg(this)};function Qg(t){var i=t.diagram;if(t.isActive){var e=t.currentContextMenu;if(e!==null){var n=null;e instanceof jo||(n=i.jc(i.lastInput.documentPoint,null,null),n!==null&&n.rg(e)&&t.standardMouseClick(null,null)),t.maybeStopTool(n)}}else t.canStart()&&(qg(t,!0),t.isActive||t.stopTool())}fe.prototype.maybeStopTool=function(){this.stopTool(),this.canStart()&&(this.diagram.currentTool=this,this.doMouseUp())};function qg(t,i,e){if(e===void 0&&(e=null),!t.Dt&&(t.Dt=!0,i&&t.standardMouseSelect(),i=t.standardMouseClick(),t.Dt=!1,!i)){if(t.isActive=!0,i=ih,e===null&&(e=t.findObjectWithContextMenu()),e!==null){var n=e.contextMenu;n!==null?(t.currentObject=e instanceof X?e:null,t.showContextMenu(n,t.currentObject)):i!==null&&t.showContextMenu(i,t.currentObject)}else i!==null&&t.showContextMenu(i,null);t.currentContextMenu instanceof lt&&!t.currentContextMenu.visible&&t.stopTool()}}fe.prototype.doMouseMove=function(){var t=this.diagram.toolManager.findTool("Action");t!==null&&t.doMouseMove(),this.isActive&&this.diagram.toolManager.doMouseMove()},fe.prototype.showContextMenu=function(t,i){var e=this.diagram;if(t!==this.currentContextMenu&&this.hideContextMenu(),t instanceof lt){t.layerName="Tool",t.selectable=!1,t.scale=1/e.scale,t.category=this.name,t.placeholder!==null&&(t.placeholder.scale=e.scale);var n=t.diagram;n!==null&&n!==e&&n.remove(t),e.add(t),i!==null?t.adornedObject=i:t.data=e.model,t.Va(),this.positionContextMenu(t,i)}else t instanceof jo&&t.show(i,e,this);this.currentContextMenu=t},fe.prototype.positionContextMenu=function(t){if(t.placeholder===null){var i=this.diagram,e=i.lastInput.documentPoint.copy(),n=t.measuredBounds,o=i.viewportBounds;i.lastInput.isTouchEvent&&(e.x-=n.width),e.x+n.width>o.right&&(e.x-=n.width+5/i.scale),e.x<o.x&&(e.x=o.x),e.y+n.height>o.bottom&&(e.y-=n.height+5/i.scale),e.y<o.y&&(e.y=o.y),t.position=e}},fe.prototype.hideContextMenu=function(){var t=this.diagram,i=this.currentContextMenu;i!==null&&(i instanceof lt?(t.remove(i),this.gt!==null&&this.gt.Jf(i.category),i.data=null,i.adornedObject=null):i instanceof jo&&(i.hide!==null?i.hide(t,this):i.mainElement!==null&&(i.mainElement.style.display="none")),this.currentContextMenu=null,this.standardMouseOver())};function Fv(t){var i=new V;return i.add(new xn("Copy",function(e){e.commandHandler.copySelection()},function(e){return e.commandHandler.canCopySelection()})),i.add(new xn("Cut",function(e){e.commandHandler.cutSelection()},function(e){return e.commandHandler.canCutSelection()})),i.add(new xn("Delete",function(e){e.commandHandler.deleteSelection()},function(e){return e.commandHandler.canDeleteSelection()})),i.add(new xn("Paste",function(e){e.commandHandler.pasteSelection(t.mouseDownPoint)},function(e){return e.commandHandler.canPasteSelection(t.mouseDownPoint)})),i.add(new xn("Select All",function(e){e.commandHandler.selectAll()},function(e){return e.commandHandler.canSelectAll()})),i.add(new xn("Undo",function(e){e.commandHandler.undo()},function(e){return e.commandHandler.canUndo()})),i.add(new xn("Redo",function(e){e.commandHandler.redo()},function(e){return e.commandHandler.canRedo()})),i.add(new xn("Scroll To Part",function(e){e.commandHandler.scrollToPart()},function(e){return e.commandHandler.canScrollToPart()})),i.add(new xn("Zoom To Fit",function(e){e.commandHandler.zoomToFit()},function(e){return e.commandHandler.canZoomToFit()})),i.add(new xn("Reset Zoom",function(e){e.commandHandler.resetZoom()},function(e){return e.commandHandler.canResetZoom()})),i.add(new xn("Group Selection",function(e){e.commandHandler.groupSelection()},function(e){return e.commandHandler.canGroupSelection()})),i.add(new xn("Ungroup Selection",function(e){e.commandHandler.ungroupSelection()},function(e){return e.commandHandler.canUngroupSelection()})),i.add(new xn("Edit Text",function(e){e.commandHandler.editTextBlock()},function(e){return e.commandHandler.canEditTextBlock()})),i}fe.prototype.showDefaultContextMenu=function(){var t=this.diagram;this.it===null&&(this.it=Fv(this)),ul.innerHTML="",ll.addEventListener("pointerdown",this.su,!1);var i=this,e=tn("ul");e.className="goCXul",ul.appendChild(e),e.innerHTML="";for(var n=this.it.iterator;n.next();){var o=n.value,r=o.visible;if(typeof o.hx=="function"&&(typeof r!="function"||r(t))){r=tn("li"),r.className="goCXli";var s=tn("a");s.className="goCXa",s.href="#",s.ky=o.hx,s.addEventListener("pointerdown",function(h){return this.ky(t),i.stopTool(),h.preventDefault(),!1},!1),s.textContent=o.text,r.appendChild(s),e.appendChild(r)}}ul.style.display="block",ll.style.display="block"},fe.prototype.hideDefaultContextMenu=function(){if(this.currentContextMenu!==null&&this.currentContextMenu===ih){ul.style.display="none",ll.style.display="none";var t=this.diagram;t!==null&&t.removeEventListener(ll,"pointerdown",this.su,!1),this.currentContextMenu=null}},tt.Object.defineProperties(fe.prototype,{currentContextMenu:{get:function(){return this.j},set:function(t){this.j=t,this.gt=t instanceof lt?t.adornedPart:null}},defaultTouchContextMenu:{get:function(){return Op===!1&&ih===null&&rn&&jv(this),ih},set:function(t){t===null&&(Op=!0),ih=t}},currentObject:{get:function(){return this.o},set:function(t){this.o=t}},mouseDownPoint:{get:function(){return this.yw}}});var ih=null,Op=!1,ll=null,ul=null;fe.className="ContextMenuTool",On("contextMenuTool",function(){return this.findTool("ContextMenu")},function(t){this.gb("ContextMenu",t,this.mouseUpTools)});function Ft(){at.call(this),this.name="TextEditing",this.Zh=new St,this.ia=null,this.V=Dp,this.vj=null,this.qa=al,this.u=1,this.F=!0,this.o=null,this.j=new jo,this.jt=null,Av(this,this.j)}pt(Ft,at);function Av(t,i){if(rn){var e=tn("textarea");t.jt=e,e.addEventListener("input",function(){if(t.textBlock!==null){var n=t.Lx(this.value);this.style.width=20+n.measuredBounds.width*this.wA+"px",this.rows=n.lineCount}},!1),e.addEventListener("keydown",function(n){if(!n.isComposing&&t.textBlock!==null){var o=n.key;o==="Enter"?(t.textBlock.isMultiline===!1&&n.preventDefault(),t.acceptText(Bu)):o==="Tab"?(t.acceptText(Ip),n.preventDefault()):o==="Escape"&&(t.doCancel(),t.diagram!==null&&t.diagram.doFocus())}},!1),e.addEventListener("focus",function(){if(t.currentTextEditor!==null&&t.state!==al){var n=t.jt;t.qa===fl&&(t.qa=Ru),typeof n.select=="function"&&t.selectsTextOnActivate&&(n.select(),n.setSelectionRange(0,9999))}},!1),e.addEventListener("blur",function(){if(t.currentTextEditor!==null&&t.state!==al){var n=t.jt;typeof n.focus=="function"&&n.focus(),typeof n.select=="function"&&t.selectsTextOnActivate&&(n.select(),n.setSelectionRange(0,9999))}},!1),i.valueFunction=function(){return e.value},i.mainElement=e,i.show=function(n,o,r){if(n instanceof St&&r instanceof Ft)if(r.state===pl)e.style.border="3px solid red",e.focus();else{var s=n.ga(vt),h=o.position,l=o.scale,u=n.Df()*l;u<r.minimumEditorScale&&(u=r.minimumEditorScale);var a=n.naturalBounds.width*u+6,f=n.naturalBounds.height*u+2,p=(s.x-h.x)*l;s=(s.y-h.y)*l,h=n.verticalAlignment,l=(n.lineHeight+n.spacingAbove+n.spacingBelow)*n.lineCount*u,f=h.y*f-h.y*l+h.offsetY-(.5*f-.5*l)-l/2,e.value=n.text,o.div.style.font=n.font,e.style.position="absolute",e.style.zIndex="100",e.style.font="inherit",e.style.fontSize=100*u+"%",e.style.lineHeight="normal",e.style.width=a+"px",e.style.left=(p-a/2|0)-1+"px",e.style.top=(s+f|0)-1+"px",e.style.textAlign=n.textAlign,e.style.margin="0",e.style.padding="1px",e.style.border="0",e.style.outline="none",e.style.whiteSpace="pre-wrap",e.style.overflow="hidden",e.rows=n.lineCount,e.wA=u,e.className="goTXarea",o.div.appendChild(e),e.focus(),r.selectsTextOnActivate&&(e.select(),e.setSelectionRange(0,9999))}},i.hide=function(n){n.div.removeChild(e)}}}Ft.prototype.canStart=function(){if(!this.isEnabled)return!1;var t=this.diagram;if(t===null||t.isReadOnly||cs&&cs!==this&&(cs.acceptText(Eu),cs&&cs!==this)||!t.lastInput.left||this.isBeyondDragSize())return!1;var i=t.jc(t.lastInput.documentPoint);return i!==null&&i instanceof St&&i.editable&&i.part.canEdit()?(i=i.part,!(i===null||this.starting===Dp&&!i.isSelected||this.starting===i0&&2>t.lastInput.clickCount)):!1},Ft.prototype.doStart=function(){cs=this,this.textBlock!==null&&this.doActivate()},Ft.prototype.doActivate=function(){if(!this.isActive){var t=this.diagram;if(t!==null){var i=this.textBlock;if(i===null&&(i=t.jc(t.lastInput.documentPoint)),i!==null&&i instanceof St&&(this.textBlock=i,i.part!==null)){t.animationManager.Cc(),this.isActive=!0,this.qa=fl;var e=this.defaultTextEditor;i.textEditor!==null&&(e=i.textEditor),this.Zh=this.textBlock.copy();var n=new T(this.textBlock.ga(Ti),this.textBlock.ga(Xn));t.tv(n),e.show(i,t,this),this.currentTextEditor=e}}}},Ft.prototype.doCancel=function(){this.stopTool()},Ft.prototype.doMouseUp=function(){this.canStart()&&this.doActivate()},Ft.prototype.doMouseDown=function(){this.isActive&&this.acceptText(Eu)},Ft.prototype.acceptText=function(t){switch(t){case Eu:this.qa===Bp?this.currentTextEditor instanceof HTMLElement&&this.currentTextEditor.focus():(this.qa===fl||this.qa===pl||this.qa===Ru)&&(this.qa=Ep,bg(this));break;case t0:case Bu:case Ip:(Bu!==t||this.textBlock.isMultiline!==!0)&&(this.qa===fl||this.qa===pl||this.qa===Ru)&&(this.qa=Ep,bg(this))}};function bg(t){var i=t.textBlock,e=t.diagram,n=t.currentTextEditor;if(i!==null&&n!==null){var o=i.text,r="";n.valueFunction!==null&&(r=n.valueFunction()),t.isValidText(i,o,r)?(t.Ea(t.name),t.qa=Bp,t.transactionResult=t.name,i.text=r,t.doSuccess(o,r),e!==null&&e.R("TextEdited",i,o),t.stopTransaction(),t.stopTool(),e!==null&&e.doFocus()):(t.qa=pl,t.doError(o,r))}}Ft.prototype.doError=function(t,i){var e=this.textBlock;e.errorFunction!==null&&e.errorFunction(this,t,i),(t=this.currentTextEditor)&&t.show(e,this.diagram,this)},Ft.prototype.doSuccess=function(t,i){var e=this.textBlock;e.textEdited!==null&&e.textEdited(e,t,i)},Ft.prototype.doDeactivate=function(){var t=this.diagram;t!==null&&(this.qa=al,this.currentTextEditor!==null&&this.currentTextEditor.hide(t,this),this.textBlock=null,this.isActive=!1)},Ft.prototype.doStop=function(){cs=null},Ft.prototype.isValidText=function(t,i,e){var n=this.textValidation;return n!==null&&!n(t,i,e)?!1:(n=t.textValidation,!!(n===null||n(t,i,e)))},Ft.prototype.Lx=function(t){var i=this.Zh;return i.text=t,i.measure(this.textBlock.Ih,1/0),i},tt.Object.defineProperties(Ft.prototype,{textBlock:{get:function(){return this.ia},set:function(t){this.ia=t}},currentTextEditor:{get:function(){return this.o},set:function(t){this.o=t}},defaultTextEditor:{get:function(){return this.j},set:function(t){this.j=t}},starting:{get:function(){return this.V},set:function(t){this.V=t}},textValidation:{get:function(){return this.vj},set:function(t){this.vj=t}},minimumEditorScale:{get:function(){return this.u},set:function(t){this.u=t}},selectsTextOnActivate:{get:function(){return this.F},set:function(t){this.F=t}},state:{get:function(){return this.qa},set:function(t){this.qa!==t&&(this.qa=t)}}}),Ft.prototype.measureTemporaryTextBlock=Ft.prototype.Lx;var t0=new R(Ft,"LostFocus",0),Eu=new R(Ft,"MouseDown",1),Ip=new R(Ft,"Tab",2),Bu=new R(Ft,"Enter",3),Ov=new R(Ft,"SingleClick",0),Dp=new R(Ft,"SingleClickSelected",1),i0=new R(Ft,"DoubleClick",2),al=new R(Ft,"StateNone",0),fl=new R(Ft,"StateActive",1),Ru=new R(Ft,"StateEditing",2),Ep=new R(Ft,"StateValidating",3),pl=new R(Ft,"StateInvalid",4),Bp=new R(Ft,"StateValidated",5),cs=null;Ft.className="TextEditingTool",Ft.LostFocus=t0,Ft.MouseDown=Eu,Ft.Tab=Ip,Ft.Enter=Bu,Ft.SingleClick=Ov,Ft.SingleClickSelected=Dp,Ft.DoubleClick=i0,Ft.StateNone=al,Ft.StateActive=fl,Ft.StateEditing=Ru,Ft.StateValidating=Ep,Ft.StateInvalid=pl,Ft.StateValidated=Bp,On("textEditingTool",function(){return this.findTool("TextEditing")},function(t){this.gb("TextEditing",t,this.mouseUpTools)});function Ae(t){Gu||(r0(),Gu=!0),this.H=rh,this.Nk=this.Ab=this.uq=this.cc=!1,this.Qw=!0,this.Ok=Xu,this.Cm=!1,this.Gh=this.Jd=!0,this.Dg=600,this.cw=this.Ow=!1,this.Zd=new E,this.ce=new Li,this.ce.Yd=this,this.Ei=new E,this.ou=new E,this.Rr=new E,this.nr=new E,t&&Object.assign(this,t)}Ae.prototype.Xe=function(t){this.H=t},Ae.prototype.canStart=function(){return!0};function Fo(t,i){t.Jd&&t.canStart(i)&&(t.Zd.add(i),t.defaultAnimation.isAnimating&&t.Cc(),Gi(t.H),t.Ab=!0)}function Rp(t){if(t.Jd&&t.Ab){var i=t.ce,e=t.H,n=t.Zd.contains("Model");n&&(t.Nk=!0,t.Ok===Xu?(i.isViewportUnconstrained=!0,i.vc.clear(),i.add(e,"position",e.position.copy().offset(0,-200),e.position),i.add(e,"opacity",0,1)):t.Ok===h0&&i.vc.clear(),t.Qw=!!(t.Ok===s0&&e.cu.D(e.pa)),e.R("InitialAnimationStarting",t)),n&&!t.Gh||i.vc.count===0?(t.Zd.clear(),t.Ab=!1,i.vc.clear(),Ku(i,e),t.Nk=!1,e.N()):(t.Zd.clear(),e.kg=!1,n=i.vc.get(e),e.autoScale!==Oe&&n!==null&&(delete n.start.scale,delete n.end.scale),J.requestAnimationFrame(function(){t.Ab===!1||i.cc||(e.Gf("temporaryPixelRatio")&&dl(e),Xp(e),t.Ab=!1,i.start(),i.cc&&(eh(t),e.Ya(),u0(i,0),Ao(e,!0),nh(t),e.R("AnimationStarting",t)))}))}}function Vu(t){return t.Zd.contains("Trigger")&&t.Zd.count===1}function e0(t,i,e,n){t.isTicking||Vu(t)||i instanceof F&&(i.fromNode!==null||i.toNode!==null)||t.ce.add(i,"position",e,n,!1)}d=Ae.prototype,d.fv=function(t){return this.ce.fv(t)},d.Xu=function(t){return this.ce.Xu(t)};function Iv(t,i){function e(){if(0<o.Rr.count&&(n.addAll(o.Rr),o.Rr.clear(),o.cc=!0),o.cc!==!1&&n.count!==0){o.ou.addAll(n);for(var r=o.ou.iterator;r.next();){var s=r.value;if(s.cc!==!1){t:if(0<s.xl.count)var h=!0;else{for(h=s.vc.iterator;h.next();){var l=h.key;if(l instanceof X&&l.diagram!==null||l instanceof C){h=!0;break t}}h=!1}h?l0(s,!1):s.Wk=!0}}o.ou.clear(),o.cc!==!1&&(eh(o),Ao(o.H),nh(o)),J.requestAnimationFrame(e)}}var n=t.Ei,o=t;t.cc?t.Rr.add(i):(t.cc=!0,n.add(i),J.requestAnimationFrame(function(){e()}))}function Dv(t){for(t=t.Ei.iterator;t.next();)t.value.Wk=!1}function eh(t){if(!t.uq){var i=t.H;t.Ow=i.skipsUndoManager,t.cw=i.skipsModelSourceBindings,i.skipsUndoManager=!0,i.skipsModelSourceBindings=!0,t.uq=!0}}function nh(t){var i=t.H;i.skipsUndoManager=t.Ow,i.skipsModelSourceBindings=t.cw,t.uq=!1}d.Cc=function(t){var i=this.ce;if(this.Ab===!0&&(this.Nk=this.Ab=!1,this.Zd.clear(),0<i.vc.count&&this.H.ac()),this.cc){if(i.Ll(!0),i.vc.clear(),Ku(i,null),t===!0)for(t=this.Ei.Fa(),i=0;i<t.length;i++)t[i].Ll(!0)}else i.vc.clear(),Ku(i,this.H)},d.Ll=function(t){t===this.defaultAnimation&&this.defaultAnimation.vc.clear(),this.Ei.remove(t),this.Ei.count===0&&(this.cc=!1,this.H.ac()),t===this.defaultAnimation&&(this.defaultAnimation.vc.clear(),this.H.R("AnimationFinished",this))},d.Cj=function(t,i){this.Ab&&(this.Zd.contains("Expand Tree")||this.Zd.contains("Expand SubGraph"))&&(this.ce.Cj(t,i),o0(this,t))},d.Aj=function(t,i){this.Ab&&(this.Zd.contains("Collapse Tree")||this.Zd.contains("Collapse SubGraph"))&&(this.ce.Aj(t,i),Yp(this.ce,i,"position",i.position,i.position),o0(this,t))};function n0(t,i,e){!t.Ab||i.D(e)||Vu(t)||(t.H.pi||(i=e.copy()),Yp(t.ce,t.H,"position",i,e))}function Vp(t,i,e){i.fd&&(i.Tg=e,t.nr.add(i))}function o0(t,i){for(i=i.findLinksConnected();i.next();){var e=i.value;e.fd&&(e.Tg=e.points.copy(),t.nr.add(e))}}function Yu(t,i,e,n,o){t===null&&(t=[0,0,0,0]),i===null&&(i=[0,0,0,0]);var r=t[0],s=t[1],h=t[2];t=t[3];var l=i[0],u=i[1],a=i[2];return i=i[3],h===0||h===100?(r=l,s=u):(a===0||a===100)&&(l=r,u=s),180<Math.abs(l-r)&&(l>r?r+=360:l+=360),r=o(e,r,l-r,n)%360,s=o(e,s,u-s,n),h=o(e,h,a-h,n),e=o(e,t,i-t,n),"hsla("+r+", "+s+"%, "+h+"%, "+e+")"}function r0(){function t(e,n,o,r,s,h){e.position=new x(r(s,n.x,o.x-n.x,h),r(s,n.y,o.y-n.y,h))}var i=new _;i.add("position:diagram",t),i.add("position",t),i.add("position:part",function(e,n,o,r,s,h){s<h?e.lm(r(s,n.x,o.x-n.x,h),r(s,n.y,o.y-n.y,h),!1):e.position=new x(r(s,n.x,o.x-n.x,h),r(s,n.y,o.y-n.y,h))}),i.add("location",function(e,n,o,r,s,h){s<h?e.lm(r(s,n.x,o.x-n.x,h),r(s,n.y,o.y-n.y,h),!0):e.location=new x(r(s,n.x,o.x-n.x,h),r(s,n.y,o.y-n.y,h))}),i.add("position:placeholder",function(e,n,o,r,s,h){s<h?e.lm(r(s,n.x,o.x-n.x,h),r(s,n.y,o.y-n.y,h),!1):e.position=new x(r(s,n.x,o.x-n.x,h),r(s,n.y,o.y-n.y,h))}),i.add("position:nodeCollapse",function(e,n,o,r,s,h){var l=e.actualBounds,u=o.actualBounds;o=u.x+u.width/2-l.width/2,l=u.y+u.height/2-l.height/2,s<h?e.lm(r(s,n.x,o-n.x,h),r(s,n.y,l-n.y,h),!1):e.position=new x(r(s,n.x,o-n.x,h),r(s,n.y,l-n.y,h))}),i.add("desiredSize",function(e,n,o,r,s,h){e.desiredSize=new T(r(s,n.width,o.width-n.width,h),r(s,n.height,o.height-n.height,h))}),i.add("width",function(e,n,o,r,s,h){e.width=r(s,n,o-n,h)}),i.add("height",function(e,n,o,r,s,h){e.height=r(s,n,o-n,h)}),i.add("fill",function(e,n,o,r,s,h){e.fill=Yu(n,o,s,h,r)}),i.add("stroke",function(e,n,o,r,s,h){e.stroke=Yu(n,o,s,h,r)}),i.add("strokeWidth",function(e,n,o,r,s,h){e.strokeWidth=r(s,n,o-n,h)}),i.add("strokeDashOffset",function(e,n,o,r,s,h){e.strokeDashOffset=r(s,n,o-n,h)}),i.add("background",function(e,n,o,r,s,h){e.background=Yu(n,o,s,h,r)}),i.add("areaBackground",function(e,n,o,r,s,h){e.areaBackground=Yu(n,o,s,h,r)}),i.add("opacity",function(e,n,o,r,s,h){e.opacity=r(s,n,o-n,h)}),i.add("scale",function(e,n,o,r,s,h){e.scale=r(s,n,o-n,h)}),i.add("angle",function(e,n,o,r,s,h){e.angle=r(s,n,o-n,h)}),zu=i}tt.Object.defineProperties(Ae.prototype,{animationReasons:{get:function(){return this.Zd}},isEnabled:{get:function(){return this.Jd},set:function(t){(this.Jd=t)&&this.Ei.each(function(i){i.isAnimating||i.runCount!==1/0||i.start()})}},duration:{get:function(){return this.Dg},set:function(t){1>t&&jt(t,">= 1",Ae,"duration"),this.Dg=t}},isAnimating:{get:function(){return this.cc}},isTicking:{get:function(){return this.uq}},isInitial:{get:function(){return this.Gh},set:function(t){this.Gh=t}},defaultAnimation:{get:function(){return this.ce}},activeAnimations:{get:function(){return this.Ei}},initialAnimationStyle:{get:function(){return this.Ok},set:function(t){this.Ok=t}}}),Ae.prototype.stopAnimation=Ae.prototype.Cc;var zu=null,Gu=!1,Xu=new R(Ae,"Default",1),s0=new R(Ae,"AnimateLocations",2),h0=new R(Ae,"None",3);Ae.className="AnimationManager",Ae.defineAnimationEffect=function(t,i){Gu||(r0(),Gu=!0),zu.add(t,i)},Ae.Default=Xu,Ae.AnimateLocations=s0,Ae.None=h0;function Li(t){this.uu=this.Nw=this.Yd=this.H=null,this.Wk=this.cc=this.j=!1,this.bn=this.Qd=0,this.Kp=this.nt=a0,this.Vk=this.fo=!1,this.bu=1,this.$t=0,this.Gd=this.Dg=NaN,this.gw=0,this.cn=null,this.o=lo,this.vc=new _,this.St=new _,this.xl=new E,this.Tt=new E,this.dw=Br,t&&Object.assign(this,t)}Li.prototype.suspend=function(){this.Wk=!0},Li.prototype.advanceTo=function(t,i){i&&(this.Wk=!1),this.fo&&t>=this.Gd&&(this.Vk=!0,t-=this.Gd),this.gw=t,l0(this,!0),eh(this.Yd),Ao(this.H),nh(this.Yd),this.H.redraw()};function Ku(t,i){if(t.St.clear(),t.Vk=!1,t.$t=0,t.Gd=NaN,0<t.xl.count&&t.xl.clear(),0<t.Tt.count&&t.Tt.clear(),i!==null)for(t=i.links;t.next();)t.value.Tg=null}d=Li.prototype,d.start=function(){if(this.vc.count===0||this.cc)return this;for(var t=this.H,i=this.vc.iterator;i.next();){var e=i.key;t===null&&(e instanceof C?t=e:e instanceof X&&(t=e.diagram))}if(t!==null)this.H=t,this.Yd=t.animationManager;else return this;return i=this.Yd,i.isEnabled===!1?this:(this.Gd=isNaN(this.Dg)?i.duration:this.Dg,this.Kp=this.nt,i.Nk&&i.Ok===Xu&&this===i.defaultAnimation&&(this.Kp=f0,this.Gd=isNaN(this.Dg)?i.duration===600?900:i.duration:this.Dg),this.dw=t.scrollMode,this.isViewportUnconstrained&&(t.sj=uc),eh(i),this.xl.each(function(n){n.data=null,t.add(n)}),nh(i),this.cc=!0,this.Qd=+new Date,this.bn=this.Qd+this.Gd,Iv(i,this),this)},d.Iy=function(t,i){return t.Zc()?(this.xl.add(t),this.H=i,this):this},d.add=function(t,i,e,n,o){if(i==="position"&&e.Xa(n))return this;if(this.H===null&&(t instanceof C?this.H=t:t instanceof X&&t.diagram!==null&&(this.H=t.diagram)),t instanceof U){if(!t.isAnimated)return this;i==="position"&&(i="position:part")}return Yp(this,t,i,e,n,o),this};function Yp(t,i,e,n,o,r){var s=t.vc;if(i instanceof C&&e==="position"&&(e="position:diagram"),(e==="fill"||e==="stroke"||e==="background"||e==="areaBackground")&&(yo(n),Sc(),n=[Se.j,Se.u,Se.o,Se.F],yo(o),Sc(),o=[Se.j,Se.u,Se.o,Se.F]),s.contains(i)){var h=s.I(i),l=h.start,u=h.end;l[e]===void 0&&(l[e]=oh(n)),u[e]=oh(o)}else l={},u={},l[e]=oh(n),u[e]=oh(o),h=l.position,i instanceof X&&h instanceof x&&!h.w()&&i.diagram.animationManager.Zd.contains("Expand SubGraph")&&h.assign(u.position),h=new p0(l,u,r),s.add(i,h);s=l[e],s instanceof x&&!s.w()&&s.assign(t.o),r&&e.indexOf("position:")===0&&i instanceof U?h.Ku.location=oh(i.location):r&&(h.Ku[e]=oh(n))}function oh(t){return t instanceof x||t instanceof Z?t.copy():t}d.fv=function(t){return this.cc?(t=this.vc.I(t),t!==null&&t.nv):!1},d.Xu=function(t){return this.cc?(t=this.vc.I(t),t!==null&&(t.start.position||t.start.location)):!1};function l0(t,i){if(!t.Wk||i){var e=t.Yd;if(t.cc!==!1){var n=+new Date,o=n>t.bn?t.Gd:n-t.Qd;i&&(o=t.gw,o<t.Gd?(t.Qd=+new Date-o,t.bn=t.Qd+t.Gd):o=t.Gd),eh(e),u0(t,o),Ao(t.H,!0),nh(e),n>t.bn&&(t.fo&&!t.Vk?(t.Qd=+new Date,t.bn=t.Qd+t.Gd,t.Vk=!0):t.Ll(!1))}}}function u0(t,i){for(var e=t.Gd,n=t.vc.iterator,o=t.Vk;n.next();){var r=n.key;if(!(r instanceof X&&r.diagram===null)){var s=n.value,h=o?s.end:s.start;s=o?s.start:s.end;var l=zu,u;for(u in s)u==="position"&&(s["position:placeholder"]||s["position:nodeCollapse"])||l.get(u)===null||l.get(u)(r,h[u],s[u],t.Kp,i,e,t)}}}d.stop=function(){return this.cc?(this.Ll(!0),this):this},d.Ll=function(t){if(this.uu!==null&&this.uu.io.remove(this.Nw),this.cc){var i=this.H,e=this.Yd;this.Wk=this.cc=e.Nk=!1,eh(e);for(var n=this.vc,o=this.xl.iterator;o.next();)i.remove(o.value);for(o=this.Tt.iterator;o.next();)o.value.v();o=this.fo,n=n.iterator;for(var r=zu;n.next();){var s=n.key,h=n.value,l=o?h.end:h.start,u=o?h.start:h.end,a=h.Ku,f;for(f in u)if(r.get(f)!==null){var p=f;!h.Hu||p!=="position:nodeCollapse"&&p!=="position:placeholder"||(p="position"),r.get(p)(s,l[f],a[f]!==void 0?a[f]:h.Hu?l[f]:u[f],this.Kp,this.Gd,this.Gd,this)}h.Hu&&a.location!==void 0&&s instanceof U&&(s.location=a.location),h.nv&&s instanceof U&&s.$b(!1)}if(i.zs.clear(),Hu(i,!1),i.Ya(),i.N(),Ao(i,!0),e.defaultAnimation===this){for(f=e.nr.iterator;f.next();)o=f.value,o.Tg!==null&&(o.points=o.Tg,o.Tg=null);e.nr.clear()}Ao(i,!0),this.isViewportUnconstrained&&(i.scrollMode=this.dw),nh(e),this.$t++,!t&&this.bu>this.$t?(this.Vk=!1,this.start()):(this.cn&&this.cn(this),Ku(this,null),e.Ll(this),i.ac())}},d.Cj=function(t,i){var e=i.actualBounds,n=null;if(i instanceof Q&&(n=i.placeholder),n!==null?(e=n.ga(Ti),n=n.padding,e.x+=n.left,e.y+=n.top,this.add(t,"position",e,t.position,!1)):this.add(t,"position",new x(e.x+e.width/2,e.y+e.height/2),t.position,!1),this.add(t,"scale",.01,t.scale,!1),t instanceof Q)for(t=t.memberParts;t.next();)n=t.value,n instanceof B&&this.Cj(n,i)},d.Aj=function(t,i){if(t.isVisible()){var e=null;if(i instanceof Q&&(e=i.placeholder),e!==null){var n=e.ga(Ti);e=e.padding,n.x+=e.left,n.y+=e.top,this.add(t,"position:placeholder",t.position,n,!0)}else this.add(t,"position:nodeCollapse",t.position,i,!0);if(this.add(t,"scale",t.scale,.01,!0),n=this.vc,n.contains(t)&&(n.I(t).nv=!0),t instanceof Q)for(t=t.memberParts;t.next();)n=t.value,n instanceof B&&this.Aj(n,i)}},d.Ez=function(t){var i=this.St.get(t);return i===null&&(i={},this.St.add(t,i)),i},tt.Object.defineProperties(Li.prototype,{duration:{get:function(){return this.Dg},set:function(t){1>t&&jt(t,">= 1",Li,"duration"),this.Dg=t}},reversible:{get:function(){return this.fo},set:function(t){this.fo=t}},runCount:{get:function(){return this.bu},set:function(t){0<t?this.bu=t:O("Animation.runCount value must be a positive integer.")}},finished:{get:function(){return this.cn},set:function(t){this.cn!==t&&(this.cn=t)}},easing:{get:function(){return this.nt},set:function(t){this.nt=t}},isViewportUnconstrained:{get:function(){return this.j},set:function(t){this.j=t}},isAnimating:{get:function(){return this.cc}}}),Li.prototype.getTemporaryState=Li.prototype.Ez,Li.prototype.stop=Li.prototype.stop,Li.prototype.add=Li.prototype.add,Li.prototype.addTemporaryPart=Li.prototype.Iy;function a0(t,i,e,n){return t/=n/2,1>t?e/2*t*t+i:-e/2*(--t*(t-2)-1)+i}function f0(t,i,e,n){return t===n?i+e:e*(-Math.pow(2,-10*t/n)+1)+i}Li.className="Animation",Li.EaseLinear=function(t,i,e,n){return e*t/n+i},Li.EaseInOutQuad=a0,Li.EaseInQuad=function(t,i,e,n){return e*(t/=n)*t+i},Li.EaseOutQuad=function(t,i,e,n){return-e*(t/=n)*(t-2)+i},Li.EaseInExpo=function(t,i,e,n){return t===0?i:e*Math.pow(2,10*(t/n-1))+i},Li.EaseOutExpo=f0;function p0(t,i,e){this.start=t,this.end=i,this.Ku={},this.Hu=e,this.nv=!1}p0.className="AnimationState";function Hn(t,i,e){this.xd=null,this.rf=t,this.ro=e||c0,this.tk=null,i!==void 0&&(this.tk=i,e===void 0&&(this.ro=zp))}Hn.prototype.copy=function(){var t=new Hn(this.rf);t.ro=this.ro;var i=this.tk;if(i!==null){var e={};i.duration!==void 0&&(e.duration=i.duration),i.finished!==void 0&&(e.finished=i.finished),i.easing!==void 0&&(e.easing=i.easing),t.tk=e}return t};function Ev(t,i){t=t.tk,t!==null&&(t.duration&&(i.duration=t.duration),t.finished&&(i.finished=t.finished),t.easing&&(i.easing=t.easing))}tt.Object.defineProperties(Hn.prototype,{propertyName:{get:function(){return this.rf},set:function(t){this.rf=t}},animationSettings:{get:function(){return this.tk},set:function(t){this.tk=t}},startCondition:{get:function(){return this.ro},set:function(t){this.ro=t}}});var c0=new R(Hn,"Default",1),zp=new R(Hn,"Immediate",2),d0=new R(Hn,"Bundled",3);Hn.className="AnimationTrigger",Hn.Default=c0,Hn.Immediate=zp,Hn.Bundled=d0;function ji(t){ui(this),this.H=null,this.Pa=new V,this.xa="",this.pb=1,this.o=!1,this.j=this.Uh=this.u=this.Oi=this.Ni=this.Mi=this.Li=this.Ji=this.Ki=this.Ii=this.Qi=this.Hi=this.Pi=this.Gi=this.Fi=!0,this.Yq=[],t&&Object.assign(this,t)}d=ji.prototype,d.clear=function(){for(var t=this.Pa,i=0;i<t.length;i++){var e=t.s[i];e.Ig=null,yc(e)}t.clear(),this.Yq.length=0},d.Xe=function(t){this.H=t},d.toString=function(t){t===void 0&&(t=0);var i='Layer "'+this.name+'"';if(0>=t)return i;for(var e=0,n=0,o=0,r=0,s=0,h=this.Pa.iterator;h.next();){var l=h.value;l instanceof Q?o++:l instanceof B?n++:l instanceof F?r++:l instanceof lt?s++:e++}if(h="",0<e&&(h+=e+" Parts "),0<n&&(h+=n+" Nodes "),0<o&&(h+=o+" Groups "),0<r&&(h+=r+" Links "),0<s&&(h+=s+" Adornments "),1<t)for(t=this.Pa.iterator;t.next();)e=t.value,h+=` `+e.toString(),n=e.data,n!==null&&qi(n)&&(h+=" #"+qi(n)),e instanceof B?h+=" "+en(n):e instanceof F&&(h+=" "+en(e.fromNode)+" "+en(e.toNode));return i+" "+this.Pa.count+": "+h},d.jc=function(t,i,e){if(i===void 0&&(i=null),e===void 0&&(e=null),this.Uh===!1)return null;var n=!1;this.diagram!==null&&this.diagram.viewportBounds.ca(t)&&(n=!0);for(var o=x.alloc(),r=this.Pa.s,s=r.length;s--;){var h=r[s];if((n!==!0||ur(h)!==!1)&&h.isVisible()&&(o.assign(t),Vi(o,h.oe),h=h.jc(o,i,e),h!==null&&(i!==null&&(h=i(h)),h!==null&&(e===null||e(h)))))return x.free(o),h}return x.free(o),null},d.ji=function(t,i,e,n){if(i===void 0&&(i=null),e===void 0&&(e=null),n instanceof V||n instanceof E||(n=new E),this.Uh===!1)return n;var o=!1;this.diagram!==null&&this.diagram.viewportBounds.ca(t)&&(o=!0);for(var r=x.alloc(),s=this.Pa.s,h=s.length;h--;){var l=s[h];if((o!==!0||ur(l)!==!1)&&l.isVisible()){r.assign(t),Vi(r,l.oe);var u=l;l.ji(r,i,e,n)&&(i!==null&&(u=i(u)),u===null||e!==null&&!e(u)||n.add(u))}}return x.free(r),n},d.Cf=function(t,i,e,n,o){if(i===void 0&&(i=null),e===void 0&&(e=null),n===void 0&&(n=!1),o instanceof V||o instanceof E||(o=new E),this.Uh===!1)return o;var r=!1;this.diagram!==null&&this.diagram.viewportBounds.Re(t)&&(r=!0);for(var s=this.Pa.s,h=s.length;h--;){var l=s[h];if((r!==!0||ur(l)!==!1)&&l.isVisible()){var u=l;l.Cf(t,i,e,n,o)&&(i!==null&&(u=i(u)),u===null||e!==null&&!e(u)||o.add(u))}}return o},d.Nu=function(t,i,e,n,o,r,s){if(this.Uh===!1)return o;for(var h=this.Pa.s,l=h.length;l--;){var u=h[l];if((s!==!0||ur(u)!==!1)&&r(u)&&u.isVisible()){var a=u;u.Cf(t,i,e,n,o)&&(i!==null&&(a=i(a)),a===null||e!==null&&!e(a)||o.add(a))}}return o},d.og=function(t,i,e,n,o,r){if(e===void 0&&(e=null),n===void 0&&(n=null),o===void 0&&(o=!0),o!==!1&&o!==!0&&((o instanceof V||o instanceof E)&&(r=o),o=!0),r instanceof V||r instanceof E||(r=new E),this.Uh===!1)return r;var s=!1;this.diagram!==null&&this.diagram.viewportBounds.ca(t)&&(s=!0);for(var h=x.alloc(),l=x.alloc(),u=this.Pa.s,a=u.length;a--;){var f=u[a];if((s!==!0||ur(f)!==!1)&&f.isVisible()){h.assign(t),Vi(h,f.oe),l.h(t.x+i,t.y),Vi(l,f.oe);var p=f;f.og(h,l,e,n,o,r)&&(e!==null&&(p=e(p)),p===null||n!==null&&!n(p)||r.add(p))}}return x.free(h),x.free(l),r},d.Fd=function(t,i){if(this.visible){var e=this.Pa.s,n=e.length;if(n!==0){t=kt();for(var o=kt(),r=0;r<n;r++){var s=e[r];if(s.vw=r,s instanceof F){if(s.fd===!1)continue}else if(s instanceof lt&&s.adornedPart!==null)continue;var h=s.actualBounds;s.isVisible()&&xg(h,i)?(s.Fd(!0),t.push(s)):(s.Fd(!1),s.adornments!==null&&0<s.adornments.count&&o.push(s))}for(i=0;i<t.length;i++)for(e=t[i],Qc(e),e=e.adornments;e.next();)n=e.value,n.measure(1/0,1/0),n.arrange(),n.Fd(!0);for(i=0;i<o.length;i++)Qc(o[i]);Mt(t),Mt(o)}}};function cl(t,i){var e=1;return t.pb!==1&&(e=i.globalAlpha,i.globalAlpha=e*t.pb),e}d.hc=function(t,i,e){if(this.visible&&this.pb!==0&&(e===void 0&&(e=!0),e||!this.isTemporary)){e=this.Pa.s;var n=e.length;if(n!==0){if(t.isTemporary)for(var o=0;o<n;o++)e[o].Fj();o=cl(this,t);var r=this.Yq;r.length=0;for(var s=i.scale,h=T.alloc(),l=0;l<n;l++)this.Nj(t,e[l],i,r,s,h,!0);if(T.free(h),t.isTemporary)for(i=0;i<n;i++)e[i].Fj();t.globalAlpha=o}}};function Bv(t,i,e,n,o){if(t.visible&&t.pb!==0&&(o||!t.isTemporary)){o=t.Pa.s;var r=o.length;if(r!==0){var s=cl(t,i),h=t.Yq;h.length=0;for(var l=e.scale,u=T.alloc(),a=0;a<r;a++){var f=o[a];n.contains(f)&&t.Nj(i,f,e,h,l,u,!1)}T.free(u),i.globalAlpha=s}}}d.Nj=function(t,i,e,n,o,r,s){if(s&&!ur(i))t.Gs(i);else{if(n!==null&&i instanceof F&&(i.isOrthogonal&&n.push(i),i.fd===!1)){t.Gs(i);return}for(s=!1,n=i.containingGroup;n!==null;)s?n.tb!==null&&r.Ex(n.tb):n.tb!==null&&(s=!0,r.assign(n.tb)),n=n.containingGroup;var h=i.actualBounds;if(n=!1,s&&i.isVisible()){if(!r.Yc(h)){t.Gs(i);return}n=!r.Re(h)}n&&(t.save(),t instanceof pe?t.ak=r.copy():(t.beginPath(),t.rect(r.x,r.y,r.width,r.height),t.clip())),h.width*o>e.Nq||h.height*o>e.Nq?i.hc(t,e):(o=i.actualBounds,r=i.naturalBounds,o.width===0||o.height===0||isNaN(o.x)||isNaN(o.y)||!i.isVisible()||(e=i.transform,i.areaBackground!==null&&(Me(i,t,i.areaBackground,!0,!0,r,o),t.fillRect(o.x,o.y,o.width,o.height)),i.areaBackground===null&&i.background===null&&(Me(i,t,"rgba(0,0,0,0.3)",!0,!1,r,o),t.fillRect(o.x,o.y,o.width,o.height)),i.background!==null&&(t.transform(e.m11,e.m12,e.m21,e.m22,e.dx,e.dy),Me(i,t,i.background,!0,!1,r,o),t.fillRect(0,0,r.width/2,r.height/2),e.vs()||(i=1/(e.m11*e.m22-e.m12*e.m21),t.transform(e.m22*i,-e.m12*i,-e.m21*i,e.m11*i,i*(e.m21*e.dy-e.m22*e.dx),i*(e.m12*e.dx-e.m11*e.dy)))))),n&&(t.restore(),t.Vc(!0))}},d.g=function(t,i,e,n,o){var r=this.diagram;r!==null&&r.cb(Ot,t,this,i,e,n,o)},d.oi=function(t,i,e){var n=this.Pa;if(i.Ig=this,this===null&&yc(i),t>=n.count)t=n.count;else if(n.M(t)===i)return-1;return n.Hb(t,i),i.Uo(e),n=this.diagram,n!==null&&(e?n.N():n.oi(i)),Uu(this,t,i),t},d.qc=function(t,i,e){if(!e&&i.layer!==this&&i.layer!==null)return i.layer.qc(t,i,e);var n=this.Pa;if(0>t||t>=n.length){if(t=n.indexOf(i),0>t)return-1}else if(n.M(t)!==i&&(t=n.indexOf(i),0>t))return-1;return i.Vo(e),n.mb(t),n=this.diagram,n!==null&&(e?n.N():n.qc(i)),i.Ig=null,yc(i),t};function Uu(t,i,e){if(i=Rv(t,i,e),e instanceof Q&&e!==null&&isNaN(e.zOrder)){if(e.memberParts.count!==0){for(var n=-1,o=t.Pa.s,r=o.length,s=0;s<r;s++){var h=o[s];if(h===e&&(i=s,0<=n)||0>n&&h.containingGroup===e&&(n=s,0<=i))break}!(0>n)&&n<i&&(o=t.Pa,o.mb(i),o.Hb(n,e))}i=e.containingGroup,i!==null&&Uu(t,-1,i)}e.svg!==null&&e.svg.remove()}function Rv(t,i,e){var n=e.zOrder;if(isNaN(n))return i;t=t.Pa;var o=t.count;if(1>=o)return i;if(0>i&&(i=t.indexOf(e)),0>i)return-1;for(var r=i-1,s=NaN;0<=r&&(s=t.M(r).zOrder,!!isNaN(s));)r--;for(var h=i+1,l=NaN;h<o&&(l=t.M(h).zOrder,!!isNaN(l));)h++;if(!isNaN(s)&&s>n)for(;;){if(r===-1||s<=n){if(r++,r===i)break;return t.mb(i),t.Hb(r,e),r}for(s=NaN;0<=--r&&(s=t.M(r).zOrder,isNaN(s)););}else if(!isNaN(l)&&l<n)for(;;){if(h===o||l>=n){if(h--,h===i)break;return t.mb(i),t.Hb(h,e),h}for(l=NaN;++h<o&&(l=t.M(h).zOrder,isNaN(l)););}return i}tt.Object.defineProperties(ji.prototype,{parts:{get:function(){return this.Pa.iterator}},partsBackwards:{get:function(){return this.Pa.iteratorBackwards}},diagram:{get:function(){return this.H}},name:{get:function(){return this.xa},set:function(t){var i=this.xa;if(i!==t){var e=this.diagram;if(e!==null)for(i===""&&O("Cannot rename default Layer to: "+t),e=e.layers;e.next();)e.value.name===t&&O("Layer.name is already present in this diagram: "+t);for(this.xa=t,this.g("name",i,t),t=this.Pa.iterator;t.next();)t.value.layerName=this.xa}}},opacity:{get:function(){return this.pb},set:function(t){var i=this.pb;i!==t&&((0>t||1<t)&&jt(t,"0 <= value <= 1",ji,"opacity"),this.pb=t,this.g("opacity",i,t),t=this.diagram,t!==null&&t.N())}},isTemporary:{get:function(){return this.o},set:function(t){var i=this.o;i!==t&&((this.o=t)&&(this.isInDocumentBounds=!1),this.g("isTemporary",i,t))}},visible:{get:function(){return this.u},set:function(t){var i=this.u;if(i!==t){for(this.u=t,this.g("visible",i,t),i=this.Pa.iterator;i.next();)i.value.$b(t);t=this.diagram,t!==null&&t.N()}}},pickable:{get:function(){return this.Uh},set:function(t){var i=this.Uh;i!==t&&(this.Uh=t,this.g("pickable",i,t))}},isInDocumentBounds:{get:function(){return this.j},set:function(t){this.j!==t&&(this.j=t,this.diagram!==null&&this.diagram.Ya())}},allowCopy:{get:function(){return this.Fi},set:function(t){var i=this.Fi;i!==t&&(this.Fi=t,this.g("allowCopy",i,t))}},allowDelete:{get:function(){return this.Gi},set:function(t){var i=this.Gi;i!==t&&(this.Gi=t,this.g("allowDelete",i,t))}},allowTextEdit:{get:function(){return this.Pi},set:function(t){var i=this.Pi;i!==t&&(this.Pi=t,this.g("allowTextEdit",i,t))}},allowGroup:{get:function(){return this.Hi},set:function(t){var i=this.Hi;i!==t&&(this.Hi=t,this.g("allowGroup",i,t))}},allowUngroup:{get:function(){return this.Qi},set:function(t){var i=this.Qi;i!==t&&(this.Qi=t,this.g("allowUngroup",i,t))}},allowLink:{get:function(){return this.Ii},set:function(t){var i=this.Ii;i!==t&&(this.Ii=t,this.g("allowLink",i,t))}},allowRelink:{get:function(){return this.Ki},set:function(t){var i=this.Ki;i!==t&&(this.Ki=t,this.g("allowRelink",i,t))}},allowMove:{get:function(){return this.Ji},set:function(t){var i=this.Ji;i!==t&&(this.Ji=t,this.g("allowMove",i,t))}},allowReshape:{get:function(){return this.Li},set:function(t){var i=this.Li;i!==t&&(this.Li=t,this.g("allowReshape",i,t))}},allowResize:{get:function(){return this.Mi},set:function(t){var i=this.Mi;i!==t&&(this.Mi=t,this.g("allowResize",i,t))}},allowRotate:{get:function(){return this.Ni},set:function(t){var i=this.Ni;i!==t&&(this.Ni=t,this.g("allowRotate",i,t))}},allowSelect:{get:function(){return this.Oi},set:function(t){var i=this.Oi;i!==t&&(this.Oi=t,this.g("allowSelect",i,t))}}}),ji.prototype.findObjectsNear=ji.prototype.og,ji.prototype.findObjectsIn=ji.prototype.Cf,ji.prototype.findObjectsAt=ji.prototype.ji,ji.prototype.findObjectAt=ji.prototype.jc,ji.className="Layer";function C(t,i){if(K0||(_v(),K0=!0),ui(this),rh=this,this.wb=!0,this.Ka=null,this.ya=this.Aa=0,this.ta=null,rn){var e=this,n=function(){e.removeEventListener(J.document,"DOMContentLoaded",n,!1),e.setRTL()};J.document.body!==null?this.setRTL():e.addEventListener(J.document,"DOMContentLoaded",n,!1)}this.nl=null,Qu.add("Model",yt);var o=this;return this.Ib=function(r){var s=o.partManager;if(r.model===s.diagram.model&&s.diagram.aa){s.diagram.aa=!1;try{var h=r.change;r.modelChange===""&&h===Ot&&s.updateDataBindings(r.object,r.propertyName)}finally{s.diagram.aa=!0}}},this.Oc=function(r){o.partManager.doModelChanged(r)},this.gu=this.ju=null,y0(this),this.model=kd(),this.Wg=!0,x0(this),this.layout=new Lt,this.Wg=!1,this.bk=this.dk=this.ek=this.ck=this.ui=this.aA=this.Zj=this.Ov=null,this.gk=function(){},this.preventDefault=null,this.qn=!1,this.Yf=new U0,t!==void 0&&(typeof t=="string"||J.Element&&t instanceof Element?Gp(this,t):i=t),this.wb=!1,i&&this.mm(i),this}var g0,rh;function y0(t){t.Yd=new Ae,t.Yd.Xe(t),t.Eb=17,t.Gw=!1,t.sn=!1,t.au="default",t.Wa=new V,t.pj=new _,t.ml="default",t.Tx(),t.Sx(),t.pb=1,t.pa=new x(NaN,NaN).freeze(),t.cu=new x(NaN,NaN),t.Ca=1,t.Op=1,t.yt=new x(NaN,NaN).freeze(),t.zt=NaN,t.Nt=1e-4,t.Lt=100,t.Bb=new it,t.yu=new x(NaN,NaN).freeze(),t.tt=new T(NaN,NaN,NaN,NaN).freeze(),t.rj=new gt(0,0,0,0).freeze(),t.sj=Br,t.mu=!1,t.Yt=null,t.eu=null,t.yh=Oe,t.yk=Si,t.Fg=Oe,t.oq=Si,t.xt=Ti,t.At=Ti,t.Fc=!0,t.on=!1,t.De=new E,t.Eh=new _,t.Wm=!0,t.tp=250,t.uk=-1,t.wp=new gt(16,16,16,16).freeze(),t.kg=!1,t.Ik=!1,t.en=!0,t.aq=new Fe,t.aq.diagram=t,t.Qg=new Fe,t.Qg.diagram=t,t.cj=new Fe,t.cj.diagram=t,t.zg=null,t.pf=null,t.pu=!1,Jv(t),t.ai=new E,t.Gt=!0,t.tu=gs,t.pw=!1,t.vu=lc,t.ht="auto",t.Np="auto",t.zh=null,t.Fh=null,t.Bh=null,t.Qh=null,t.Oh=null,t.Nh=null,t.Pt=null,t.Lh=null,t.wt=!1,t.Mh=null,t.Ph=null,t.$h=null,t.Ch=null,t.Qt=!1,t.Xt={},t.oj=[null,null],t.Wg=!1,t.Iw=!1,t.nu=!1,t.kt=!1,t.rw=!0,t.ld=!1,t.$i=!1,t.Tw=!0,t.Ce=-2,t.Og=new _,t.Wn=new V,t.Gg=!1,t.Jd=!0,t.Ts=!0,t.Fi=!0,t.Gi=!0,t.Us=!1,t.Vs=!0,t.Pi=!0,t.Hi=!0,t.Qi=!0,t.Xs=!0,t.Ii=!0,t.Ki=!0,t.Ji=!0,t.Li=!0,t.Mi=!0,t.Ni=!0,t.Oi=!0,t.Ys=!0,t.$s=!0,t.qw=!1,t.Uk=!1,t.ln=!0,t.mn=!0,t.Ws=!0,t.Zs=!0,t.hu=16,t.lu=16,t.pr=!1,t.fu=!1,t.ku=0,t.iu=0,t.zb=new gt(5).freeze(),t.Hw=new E().freeze(),t.Mt=999999999,t.nw=new E().freeze(),t.Zi=!0,t.Ee=!0,t.vd=!0,t.Be=!1,t.gf=!1,t.xh=!0,t.hf=!1,t.sy=new E,t.ow=new E,t.Xh=null,t.aw=new Z(8,8),t.bw=999,t.Bw=1,t.Jw=0,t.gc={scale:1,position:new x,bounds:new T,Py:new Z,bA:new Z,Oz:!1},t.gc.canvasSize=t.gc.Py,t.gc.newCanvasSize=t.gc.bA,t.gc.isScroll=!1,t.Rw=new T(NaN,NaN,NaN,NaN).freeze(),t.vo=new Z(NaN,NaN).freeze(),t.Rp=new T(NaN,NaN,NaN,NaN).freeze(),t.Ht=!1,t.Lg=new _;var i=new B,e=new St;e.bind(new Ht("text","",en)),i.add(e),t.ny=i,t.Lg.add("",i),i=new B,e=new St,e.stroke="brown",e.bind(new Ht("text","",en)),i.add(e),t.Lg.add("Comment",i),i=new B,i.selectable=!1,i.avoidable=!1,e=new q,e.figure="Ellipse",e.fill="black",e.stroke=null,e.desiredSize=new Z(3,3).ja(),i.add(e),t.Lg.add("LinkLabel",i),t.Yi=new _,i=new Q,i.selectionObjectName="GROUPPANEL",i.type=j.Vertical,e=new St,e.font="bold 12pt sans-serif",e.bind(new Ht("text","",en)),i.add(e),e=new j(j.Auto),e.name="GROUPPANEL";var n=new q;n.figure="Rectangle",n.fill="rgba(128,128,128,0.2)",n.stroke="black",e.add(n),n=new Ki,n.padding=new gt(5,5,5,5).ja(),e.add(n),i.add(e),t.ly=i,t.Yi.add("",i),t.Kh=new _,i=new F,e=new q,e.isPanelMain=!0,i.add(e),e=new q,e.toArrow="Standard",e.fill="black",e.stroke=null,e.strokeWidth=0,i.add(e),t.my=i,t.Kh.add("",i),i=new F,e=new q,e.isPanelMain=!0,e.stroke="brown",i.add(e),t.Kh.add("Comment",i),i=new lt,i.type=j.Auto,e=new q,e.fill=null,e.stroke="dodgerblue",e.strokeWidth=3,i.add(e),e=new Ki,e.margin=new gt(1.5,1.5,1.5,1.5).ja(),i.add(e),t.Rt=i,t.vt=i,i=new lt,i.type=j.Link,e=new q,e.isPanelMain=!0,e.fill=null,e.stroke="dodgerblue",e.strokeWidth=3,i.add(e),t.Jt=i,t.fe=null,t.lq=!1,t.Bk=null,t.partManager=new yt,t.toolManager=new Bt,t.toolManager.initializeStandardTools(),t.defaultTool=t.toolManager,t.currentTool=t.defaultTool,t.mt=null,t.Vm=new ph,t.Ut=null,t.Vt=null,t.Lr=!1,t.commandHandler=v0(),t.cq=null,t.eq=Cu,t.Pw=!1,t.Nb=1,t.Yh=null,t.Nq=1,t.Rq=0,t.zw=[0,0,0,0,0],t.Sq=0,t.xq=1,t.tw=0,t.uw=new x,t.zy=500,t.vp=new x,t.vq=!1}C.prototype.clear=function(){this.animationManager.Cc(),this.model.clear(),lh=null,vl="",m0(this,!1),this.Wn.clear(),Ch(),this.Og.clear(),this.Xh=null,this.Ya(),this.Va(),this.N()};function m0(t,i){t.animationManager.Cc(!0),t.Hw=new E().freeze(),t.nw=new E().freeze();var e=t.skipsUndoManager,n=t.dc!==null&&t.dc!==void 0;n&&(t.skipsUndoManager=!0);var o=null;t.fe!==null&&(o=t.fe.part,o!==null&&t.remove(o));var r=[],s=t.Wa.length;if(i){for(i=0;i<s;i++)for(var h=t.Wa.s[i].parts;h.next();){var l=h.value;l!==o&&l.data===null&&r.push(l)}for(i=0;i<r.length;i++)t.remove(r[i])}for(i=0;i<s;i++)t.Wa.s[i].clear();return t.partManager.clear(),t.De.clear(),t.Eh.clear(),t.ai.clear(),t.Bk=null,t.Wn.clear(),Ch(),t.Og.clear(),_f=[],o!==null&&(t.add(o),t.partManager.parts.remove(o)),n&&(t.skipsUndoManager=e),r}function v0(){return null}C.prototype.reset=function(){this.clear(),this.wb=!0,y0(this),Do(this),this.Wg=!0,x0(this),this.layout=new Lt,this.Wg=!1,this.model=kd(),this.model.undoManager=new Vt,this.wb=this.qn=!1,this.N()},C.prototype.setRTL=function(t){t=t===void 0?this.div:t,t===null&&(t=J.document.body);var i=tn("div");i.dir="rtl",i.style.cssText="font-size: 14px; width: 1px; height: 1px; position: absolute; top: -1000px; overflow: scroll;",i.textContent="A",t.appendChild(i);var e="reverse";0<i.scrollLeft?e="default":(i.scrollLeft=1,i.scrollLeft===0&&(e="negative")),t.removeChild(i),this.au=e},C.prototype.setScrollWidth=function(t){t=t===void 0?this.div:t,t===null&&(t=J.document.body);var i=0;if(rn){var e=B0;i=g0,e===null&&(e=B0=tn("p"),e.style.width="100%",e.style.height="200px",e.style.boxSizing="content-box",i=g0=tn("div"),i.style.position="absolute",i.style.visibility="hidden",i.style.width="200px",i.style.height="150px",i.style.boxSizing="content-box",i.appendChild(e)),i.style.overflow="hidden",t.appendChild(i);var n=e.offsetWidth;i.style.overflow="scroll",e=e.offsetWidth,n===e&&(e=i.clientWidth),t.removeChild(i),i=n-e,i!==0||To||(i=11)}this.Eb=i,this.Gw=!0},C.prototype.qb=function(t){t.classType===C&&(this.autoScale=t)},C.prototype.toString=function(t){t===void 0&&(t=0);var i="";if(this.div&&this.div.id&&(i=this.div.id),i='Diagram "'+i+'"',0>=t)return i;for(var e=this.Wa.iterator;e.next();)i+=` `+e.value.toString(t-1);return i};function Gp(t,i){if(rn){if(i!=null||O("Diagram setup requires an argument DIV."),t.Ka!==null&&O("Diagram has already completed setup."),typeof i=="string"?t.Ka=J.document.getElementById(i):i instanceof HTMLDivElement?t.Ka=i:O("No DIV or DIV id supplied: "+i),t.Ka===null&&O("Invalid DIV id; could not get element with id: "+i),t.Ka.H!==void 0&&O("Invalid div id; div already has a Diagram associated with it."),!t.nl&&J.ResizeObserver){var e=Fr(function(){t.ac()},250);t.nl=new J.ResizeObserver(function(){e()}),t.nl.observe(t.Ka)}J.getComputedStyle(t.Ka,null).position==="static"&&(t.Ka.style.position="relative"),i=5;var n="rgba(2"+i+"5, 255, 255, 0)";i--,t.Ka.style["-webkit-tap-highlight-color"]=n,t.Ka.innerHTML="",t.Ka.H=t,t.Ka.goDiagram=t,t.Ka.go=J.go;var o=new Je(t);if(o.style!==void 0&&(o.style.position="absolute",o.style.top="0px",o.style.left="0px",J.getComputedStyle(t.Ka,null).getPropertyValue("direction")==="rtl"&&(t.sn=!0),o.style.zIndex="2",o.style.userSelect="none",o.style.MozUserSelect="none",o.style.touchAction="none",o.style.letterSpacing="normal !important",o.style.wordSpacing="normal !important"),t.ta=o,t.ib=o.context,n=t.ib,t.Nb=t.computePixelRatio(),t.viewSize.w()||(t.Aa=t.Ka.clientWidth||1,t.ya=t.Ka.clientHeight||1),N0(t,t.Aa,t.ya),t.Ka.insertBefore(o.Oa,t.Ka.firstChild),o=new Je(null),o.width=1,o.height=1,t.jw=o,t.oy=o.context,rn){o=tn("div");var r=tn("div");o.style.position="absolute",o.style.overflow="auto",o.style.width=t.Aa+"px",o.style.height=t.ya+"px",o.style.zIndex="1",r.style.position="absolute",r.style.width="1px",r.style.height="1px",t.Ka.appendChild(o),o.appendChild(r),o.onscroll=Yv,o.addEventListener("pointerdown",zv),o.H=t,o.uy=!0,o.vy=!0,t.ju=o,t.gu=r}t.gk=Fr(function(){t.Yh=null,t.N()},300),t.Ov=Fr(function(){Xp(t)},250),t.preventDefault=function(s){return s.preventDefault(),!1},t.Zj=function(s){if(t.isEnabled){var h=ds(t,s,!0);h.bubbles=!0;var l=0,u=0;h.delta=0,s.deltaX!==void 0?(s.deltaX!==0&&(l=0<s.deltaX?1:-1),s.deltaY!==0&&(u=0<s.deltaY?1:-1),h.delta=Math.abs(s.deltaX)>Math.abs(s.deltaY)?-l:-u):s.wheelDeltaX!==void 0?(s.wheelDeltaX!==0&&(l=0<s.wheelDeltaX?-1:1),s.wheelDeltaY!==0&&(u=0<s.wheelDeltaY?-1:1),h.delta=Math.abs(s.wheelDeltaX)>Math.abs(s.wheelDeltaY)?-l:-u):s.wheelDelta!==void 0&&s.wheelDelta!==0&&(h.delta=0<s.wheelDelta?1:-1),t.doMouseWheel(),Er(h,s)}},t.aA=function(s){t.isEnabled&&(t.Uk=!1,ds(t,s,!0),s=t.currentTool,s.cancelWaitAfter(),s.standardMouseOver())},t.ui=function(s){if(t.isEnabled){t.Uk=!0;var h=t.Xt;h[s.pointerId]===void 0&&(h[s.pointerId]=s),h=t.oj;var l=!1;if(h[0]===null||h[0].pointerId!==s.pointerId&&h[0].pointerType===s.pointerType)if(h[1]!==null&&h[1].pointerId===s.pointerId)h[1]=s,l=!0;else if(h[0]===null)h[0]=s;else if(h[1]===null)h[1]=s,l=!0;else{s.preventDefault();return}else h[0]=s;(h=s.pointerType==="touch"||s.pointerType==="pen")&&(t.pu=!1,t.vq=!0);var u=l;l=Wp(t,s,!0,!1,!0,u),gl(t,s,l),l.targetDiagram=Hp(s,s.target),l.targetObject=null,u||l.clone(t.aq),u=t.uw,h=h?25:10,s.timeStamp-t.tw<t.zy&&!(Math.abs(u.x-s.screenX)>h||Math.abs(u.y-s.screenY)>h)?t.xq++:t.xq=1,l.clickCount=t.xq,t.tw=s.timeStamp,t.uw.sg(s.screenX,s.screenY),t.doMouseDown(),s.button===1?s.preventDefault():Er(l,s)}},t.ck=function(s){if(t.isEnabled){t.Uk=!0;var h=t.oj;if(h[0]===null||h[0].pointerId!==s.pointerId&&h[0].pointerType===s.pointerType){if(h[1]!==null&&h[1].pointerId===s.pointerId){h[1]=s;return}if(h[0]===null)h[0]=s;else return}else h[0]=s;if(h[0].pointerId===s.pointerId){h=Wp(t,s,!1,!1,!1,h[1]!==null);var l=J.document.elementFromPoint(s.clientX,s.clientY)||null;l!==null&&l.shadowRoot!==void 0&&l.shadowRoot!==null&&(l=l.shadowRoot.elementFromPoint(s.clientX,s.clientY));var u=t,a=s;l&&l.H&&(a=s,u=l.H),h.targetDiagram=u,gl(t,a,h),h.targetObject=null,t.doMouseMove(),Er(h,s)}}},t.ek=function(s){if(t.isEnabled){t.Uk=!0;var h=s.pointerType==="touch"||s.pointerType==="pen",l=t.Xt;if(h&&t.pu)delete l[s.pointerId],s.preventDefault();else if(l=t.oj,l[0]===null||l[0].pointerId!==s.pointerId&&l[0].pointerType===s.pointerType)l[1]!==null&&l[1].pointerId===s.pointerId&&(l[1]=null);else{l[0]=null,l=Wp(t,s,!1,!0,!0,!1);var u=J.document.elementFromPoint(s.clientX,s.clientY)||null;u!==null&&u.shadowRoot!==void 0&&u.shadowRoot!==null&&(u=u.shadowRoot.elementFromPoint(s.clientX,s.clientY)),u!==null&&u.H instanceof C&&u.H!==t&&gl(u.H,s,l),u===null&&(u=s.target),gl(t,s,l),l.clickCount=t.xq,l.targetDiagram=Hp(s,u),l.targetObject=null,t.doMouseUp(),Er(l,s),h&&(t.vq=!1)}}},t.dk=function(s){if(t.isEnabled){t.Uk=!1;var h=t.Xt;h[s.pointerId]&&delete h[s.pointerId],h=t.oj,h[0]!==null&&h[0].pointerId===s.pointerId&&(h[0]=null),h[1]!==null&&h[1].pointerId===s.pointerId&&(h[1]=null),s.pointerType!=="touch"&&s.pointerType!=="pen"&&(s=t.currentTool,s.cancelWaitAfter(),s.standardMouseOver())}},t.bk=function(s){var h=t.oj;h[0]!==null&&h[0].pointerId===s.pointerId?(h[0]=null,t.vq=!1):h[1]!==null&&h[1].pointerId===s.pointerId&&(h[1]=null)},t.Up=n.Z["d"+H0[1]+H0[2]+"wI"+ah.slice(1,5)]["b"+c1.slice(1,i)](n.Z,X0,i,i),n.Vc(!0),Vv(t),t.ml==="svg"&&(i=t.pj.get("svg"),t.Ka.appendChild(i.Oa),t.ib=i.context)}}C.prototype.addEventListener=function(t,i,e,n){t.addEventListener(i,e,{capture:n,passive:!1})},C.prototype.removeEventListener=function(t,i,e,n){t.removeEventListener(i,e,{capture:n})};function Vv(t){var i=t.ta.Oa;i instanceof HTMLCanvasElement||(i=t.div),t.addEventListener(i,"pointerdown",t.ui,!1),t.addEventListener(i,"pointermove",t.ck,!1),t.addEventListener(i,"pointerup",t.ek,!1),t.addEventListener(i,"pointerout",t.dk,!1),t.addEventListener(i,"pointercancel",t.bk,!1),t.addEventListener(i,"pointerenter",t.bz,!1),t.addEventListener(i,"pointerleave",t.cz,!1),t.addEventListener(i,"wheel",t.Zj,!1),t.addEventListener(i,"keydown",t.Qz,!1),t.addEventListener(i,"keyup",t.Rz,!1),t.addEventListener(i,"blur",t.Ny,!1),t.addEventListener(i,"focus",t.Oy,!1),t.addEventListener(i,"selectstart",function(e){return e.preventDefault(),!1},!1),t.addEventListener(i,"contextmenu",function(e){return e.preventDefault(),!1},!1),t.addEventListener(J,"resize",t.Ov,!1)}function dl(t){30<t.Rq&&(t.Yh=1)}function Hu(t,i){t.Yh!==null&&(t.Yh=null,i&&t.gk(),ku&&ku.nx||(t.Rq=0,t.zw=[0,0,0,0,0],t.Sq=0))}C.prototype.computePixelRatio=function(){return this.Yh!==null?this.Yh:J.devicePixelRatio||1},C.prototype.doMouseMove=function(){this.currentTool.doMouseMove()},C.prototype.doMouseDown=function(){this.currentTool.doMouseDown()},C.prototype.doMouseUp=function(){this.currentTool.doMouseUp()},C.prototype.doMouseWheel=function(){this.currentTool.doMouseWheel()},C.prototype.doKeyDown=function(){this.currentTool.doKeyDown()},C.prototype.doKeyUp=function(){this.currentTool.doKeyUp()},C.prototype.doFocus=function(){this.focus()},C.prototype.focus=function(){if(this.ta)if(this.scrollsPageOnFocus)this.ta.focus();else{var t=J.scrollX||J.pageXOffset,i=J.scrollY||J.pageYOffset;this.ta.focus(),J.scrollTo(t,i)}},C.prototype.Oy=function(){this.H.R("GainedFocus")},C.prototype.Ny=function(){this.H.R("LostFocus")};function Xp(t){if(t.ta!==null){var i=t.Ka;if(i!==null&&i.clientWidth!==0&&i.clientHeight!==0){t.Gw||t.setScrollWidth();var e=t.gf?t.Eb:0,n=t.Be?t.Eb:0,o=t.Nb;t.Nb=t.computePixelRatio(),t.Nb!==o&&(t.on=!0,t.ac()),(i.clientWidth!==t.Aa+e||i.clientHeight!==t.ya+n)&&(t.Ee=!0,t.Fc=!0,i=t.layout,i!==null&&i.isViewportSized&&t.autoScale===Oe&&(t.Ik=!0,i.C()),t.ld||t.ac())}}}function x0(t){var i=new ji;i.name="Background",t.zl(i),i=new ji,i.name="",t.zl(i),i=new ji,i.name="Foreground",t.zl(i),i=new ji,i.name="Adornment",i.isTemporary=!0,i.isInDocumentBounds=!1,t.zl(i),i=new ji,i.name="Tool",i.isTemporary=!0,i.isInDocumentBounds=!0,t.zl(i),i=new ji,i.name="Grid",i.allowSelect=!1,i.pickable=!1,i.isTemporary=!0,i.isInDocumentBounds=!1,t.Ww(i,t.Pj("Background"))}function w0(t){var i=new j(j.Grid);i.name="GRID";var e=new q;return e.figure="LineH",e.stroke="lightgray",e.strokeWidth=.5,e.interval=1,i.add(e),e=new q,e.figure="LineH",e.stroke="gray",e.strokeWidth=.5,e.interval=5,i.add(e),e=new q,e.figure="LineH",e.stroke="gray",e.strokeWidth=1,e.interval=10,i.add(e),e=new q,e.figure="LineV",e.stroke="lightgray",e.strokeWidth=.5,e.interval=1,i.add(e),e=new q,e.figure="LineV",e.stroke="gray",e.strokeWidth=.5,e.interval=5,i.add(e),e=new q,e.figure="LineV",e.stroke="gray",e.strokeWidth=1,e.interval=10,i.add(e),e=new U,e.add(i),e.layerName="Grid",e.zOrder=0,e.isInDocumentBounds=!1,e.isAnimated=!1,e.pickable=!1,e.locationObjectName="GRID",t.add(e),t.partManager.parts.remove(e),i.visible=!1,i}function Yv(){this.H.fu?this.H.fu=!1:this.H.isEnabled?this.H.kx(this):Zp(this.H)}function zv(t){this.H.isEnabled?(this.H.ku=t.target.scrollTop,this.H.iu=t.target.scrollLeft):Zp(this.H)}C.prototype.kx=function(t){if(this.ta!==null){var i=this.ju,e=this.gu;this.pr=!0;var n=this.documentBounds,o=this.viewportBounds,r=this.rj,s=n.x-r.left,h=n.y-r.top,l=n.width+r.left+r.right,u=n.height+r.top+r.bottom,a=n.right+r.right;r=n.bottom+r.bottom;var f=o.x;n=o.y;var p=o.width,c=o.height,g=o.right,y=o.bottom;o=this.scale;var v=t.scrollLeft;if(this.sn)switch(this.au){case"negative":v=v+t.scrollWidth-t.clientWidth;break;case"reverse":v=t.scrollWidth-v-t.clientWidth}var m=v;p<l||c<u?(v=x.allocAt(this.position.x,this.position.y),this.allowHorizontalScroll&&this.iu!==m&&(v.x=m/o+s,this.iu=m),this.allowVerticalScroll&&this.ku!==t.scrollTop&&(v.y=t.scrollTop/o+h,this.ku=t.scrollTop),this.position=v,x.free(v),this.Ee=this.pr=!1):(v=x.alloc(),t.uy&&this.allowHorizontalScroll&&(s<f&&(this.position=v.h(m+s,this.position.y)),a>g&&(this.position=v.h(-(i.scrollWidth-this.Aa)+m-this.Aa/o+a,this.position.y))),t.vy&&this.allowVerticalScroll&&(h<n&&(this.position=v.h(this.position.x,t.scrollTop+h)),r>y&&(this.position=v.h(this.position.x,-(i.scrollHeight-this.ya)+t.scrollTop-this.ya/o+r))),x.free(v),this.vd=!0,this.Ee=this.pr=!1,n=this.documentBounds,o=this.viewportBounds,a=n.right,g=o.right,r=n.bottom,y=o.bottom,s=n.x,f=o.x,h=n.y,n=o.y,p>=l&&s>=f&&a<=g&&(e.style.width="1px"),c>=u&&h>=n&&r<=y&&(e.style.height="1px"))}},C.prototype.computeBounds=function(t){return t===void 0&&(t=new T),Gi(this),M0(this,t)};function M0(t,i){if(t.fixedBounds.w())return i.assign(t.fixedBounds),i.Bo(t.zb),i;for(var e=!0,n=t.Wa.s,o=n.length,r=0;r<o;r++){var s=n[r];if(s.visible&&s.isInDocumentBounds){s=s.Pa.s;for(var h=s.length,l=0;l<h;l++){var u=s[l];u.isInDocumentBounds&&u.isVisible()&&(u=u.actualBounds,u.w()&&(e?(e=!1,i.assign(u)):i.ed(u)))}}}return e&&i.h(0,0,0,0),i.Bo(t.zb),i}C.prototype.computePartsBounds=function(t,i){i===void 0&&(i=!1);var e=null;if(ai(t))for(var n=0;n<t.length;n++){var o=t[n];!i&&o instanceof F||(o.Va(),e===null?e=o.actualBounds.copy():e.ed(o.actualBounds))}else for(t=t.iterator;t.next();)n=t.value,!i&&n instanceof F||(n.Va(),e===null?e=n.actualBounds.copy():e.ed(n.actualBounds));return e===null?new T(NaN,NaN,0,0):e};function wn(t,i){if((i||t.hf)&&!t.wb&&t.ta!==null&&t.documentBounds.w()){if(t.wb=!0,i){var e=t.initialPosition;if(e.w()){t.wb=!1,t.position=e;return}e=x.alloc(),e.xi(t.documentBounds,t.initialDocumentSpot);var n=t.viewportBounds;n=T.allocAt(0,0,n.width,n.height);var o=x.alloc();o.xi(n,t.initialViewportSpot),o.h(e.x-o.x,e.y-o.y),t.position=o,T.free(n),x.free(o),x.free(e)}e=t.yh,i&&t.Fg!==Oe&&(e=t.Fg);var r=e!==Oe?sh(t,e):t.scale;e=t.pa.x,n=t.pa.y,o=t.Aa/r;var s=t.ya/r,h=t.yk,l=t.oq;i&&!h.sb()&&(l.sb()||l.Yb())&&(h=l.Yb()?vt:l),Kp(t,t.documentBounds,o,s,h,i),i=t.scale,t.scale=r,t.wb=!1,r=t.viewportBounds,P.B(r.x,e)&&P.B(r.y,n)&&P.B(r.width,o)&&P.B(r.height,s)||t.onViewportBoundsChanged(new T(e,n,o,s),r,i,!1)}}function sh(t,i){var e=t.Op;if(t.ta===null)return e;t.Va();var n=t.documentBounds;if(!n.w())return e;var o=n.width;n=n.height;var r=t.Aa+(t.gf?t.Eb:0),s=t.ya+(t.Be?t.Eb:0),h=r/o,l=s/n;return i===uh?(i=Math.min(l,h),i>e&&(i=e),i<t.minScale&&(i=t.minScale),i>t.maxScale&&(i=t.maxScale),i):i===qu?(i=l>h?(s-t.Eb)/n:(r-t.Eb)/o,i>e&&(i=e),i<t.minScale&&(i=t.minScale),i>t.maxScale&&(i=t.maxScale),i):t.scale}C.prototype.zoomToFit=function(){var t=this.sj;this.sj=Br,this.scale=sh(this,uh),t!==Br&&(wn(this,!1),Kp(this,this.documentBounds,this.Aa/this.Ca,this.ya/this.Ca,this.yk,!1)),this.sj=t},d=C.prototype,d.BA=function(t,i){i===void 0&&(i=uh);var e=t.width,n=t.height;if(!(e===0||n===0||isNaN(e)&&isNaN(n))){var o=1;if(i===uh||i===qu)if(isNaN(e))o=this.viewportBounds.height*this.scale/n;else if(isNaN(n))o=this.viewportBounds.width*this.scale/e;else{o=this.Aa;var r=this.ya;o=i===qu?r/n>o/e?(r-(this.Be?this.Eb:0))/n:(o-(this.gf?this.Eb:0))/e:Math.min(r/n,o/e)}this.scale=o,this.position=new x(t.x,t.y)}},d.Jy=function(t,i){this.Va();var e=this.documentBounds,n=this.viewportBounds;this.position=new x(e.x+(t.x*e.width+t.offsetX)-(i.x*n.width-i.offsetX),e.y+(t.y*e.height+t.offsetY)-(i.y*n.height-i.offsetY))},d.zz=function(t){if(t instanceof X){this.cq=t;var i=x.alloc();this.eq=this.np(t.ga(Ti,i)),x.free(i)}else this.cq=null,this.eq=Cu};function Kp(t,i,e,n,o,r){var s=x.allocAt(t.pa.x,t.pa.y),h=s.x,l=s.y;if(t.cq!==null){var u=x.alloc();u=t.cq.ga(Ti,u),h=u.x-t.eq.x/t.scale,l=u.y-t.eq.y/t.scale,o=Mi,x.free(u)}(r||t.scrollMode===Br)&&(o.sb()&&(e>i.width&&(h=i.x+(o.x*i.width+o.offsetX)-(o.x*e-o.offsetX)),n>i.height&&(l=i.y+(o.y*i.height+o.offsetY)-(o.y*n-o.offsetY))),o=t.rj,r=e-i.width,e<i.width+o.left+o.right?(h=Math.min(h+e/2,i.right+Math.max(r,o.right)-e/2),h=Math.max(h,i.left-Math.max(r,o.left)+e/2),h-=e/2):h>i.left?h=i.left:h<i.right-e&&(h=i.right-e),e=n-i.height,n<i.height+o.top+o.bottom?(l=Math.min(l+n/2,i.bottom+Math.max(e,o.bottom)-n/2),l=Math.max(l,i.top-Math.max(e,o.top)+n/2),l-=n/2):l>i.top?l=i.top:l<i.bottom-n&&(l=i.bottom-n)),s.x=isFinite(h)?h:-t.zb.left,s.y=isFinite(l)?l:-t.zb.top,t.positionComputation!==null&&(i=t.positionComputation(t,s),s.x=i.x,s.y=i.y),n0(t.Yd,t.pa,s),t.pa.h(s.x,s.y),Do(t),x.free(s)}d.Nl=function(t,i){if(i===void 0&&(i=!0),i){if(t=Up(this,t,function(e){return e.part},function(e){return e.canSelect()}),t instanceof U)return t}else if(t=Up(this,t,function(e){return e.part}),t instanceof U)return t;return null},d.jc=function(t,i,e){i===void 0&&(i=null),e===void 0&&(e=null),Gi(this);for(var n=this.Wa.iteratorBackwards;n.next();){var o=n.value;if(o.visible&&(o=o.jc(t,i,e),o!==null))return o}return null};function Up(t,i,e,n){for(e===void 0&&(e=null),n===void 0&&(n=null),Gi(t),t=t.Wa.iteratorBackwards;t.next();){var o=t.value;if(o.visible&&!o.isTemporary&&(o=o.jc(i,e,n),o!==null))return o}return null}d.lz=function(t,i,e){return i===void 0&&(i=!0),Gv(this,t,function(n){return n.part},i?function(n){return n instanceof U&&n.canSelect()}:null,e)};function Gv(t,i,e,n,o){for(e===void 0&&(e=null),n===void 0&&(n=null),o instanceof V||o instanceof E||(o=new E),Gi(t),t=t.Wa.iteratorBackwards;t.next();){var r=t.value;r.visible&&!r.isTemporary&&r.ji(i,e,n,o)}return o}d.ji=function(t,i,e,n){i===void 0&&(i=null),e===void 0&&(e=null),n instanceof V||n instanceof E||(n=new E),Gi(this);for(var o=this.Wa.iteratorBackwards;o.next();){var r=o.value;r.visible&&r.ji(t,i,e,n)}return n},d.ux=function(t,i,e,n){return i===void 0&&(i=!1),e===void 0&&(e=!0),Xv(this,t,function(o){return o instanceof U&&(!e||o.canSelect())},i,n)},d.Cf=function(t,i,e,n,o){i===void 0&&(i=null),e===void 0&&(e=null),n===void 0&&(n=!1),o instanceof V||o instanceof E||(o=new E),Gi(this);for(var r=this.Wa.iteratorBackwards;r.next();){var s=r.value;s.visible&&s.Cf(t,i,e,n,o)}return o},d.Nu=function(t,i,e,n,o,r){var s=new E;Gi(this);for(var h=this.Wa.iteratorBackwards;h.next();){var l=h.value;l.visible&&l.Nu(t,i,e,n,s,o,r)}return s};function Xv(t,i,e,n,o){var r=null;for(e===void 0&&(e=null),n===void 0&&(n=!1),o instanceof V||o instanceof E||(o=new E),Gi(t),t=t.Wa.iteratorBackwards;t.next();){var s=t.value;s.visible&&!s.isTemporary&&s.Cf(i,r,e,n,o)}return o}d.mz=function(t,i,e,n,o){return e===void 0&&(e=!0),n===void 0&&(n=!0),Kv(this,t,i,function(r){return r instanceof U&&(!n||r.canSelect())},e,o)},d.og=function(t,i,e,n,o,r){e===void 0&&(e=null),n===void 0&&(n=null),o===void 0&&(o=!0),o!==!1&&o!==!0&&((o instanceof V||o instanceof E)&&(r=o),o=!0),r instanceof V||r instanceof E||(r=new E),Gi(this);for(var s=this.Wa.iteratorBackwards;s.next();){var h=s.value;h.visible&&h.og(t,i,e,n,o,r)}return r};function Kv(t,i,e,n,o,r){var s=null;for(n===void 0&&(n=null),o===void 0&&(o=!0),o!==!1&&o!==!0&&((o instanceof V||o instanceof E)&&(r=o),o=!0),r instanceof V||r instanceof E||(r=new E),Gi(t),t=t.Wa.iteratorBackwards;t.next();){var h=t.value;h.visible&&!h.isTemporary&&h.og(i,e,s,n,o,r)}return r}C.prototype.acceptEvent=function(t){return ds(this,t,t instanceof MouseEvent)};function ds(t,i,e){var n=t.Qg;return t.Qg=t.cj,t.cj=n,n.diagram=t,n.event=i,e?gl(t,i,n):(n.viewPoint=t.Qg.viewPoint,n.documentPoint=t.Qg.documentPoint),t=0,i.ctrlKey&&(t+=1),i.altKey&&(t+=2),i.shiftKey&&(t+=4),i.metaKey&&(t+=8),n.modifiers=t,n.button=i.button,i.buttons!==void 0&&(n.buttons=i.buttons),To&&i.button===0&&i.ctrlKey&&(n.button=2),n.down=!1,n.up=!1,n.clickCount=1,n.delta=0,n.handled=!1,n.bubbles=!1,n.timestamp=i.timeStamp,n.isMultiTouch=!1,n.targetDiagram=Hp(i,i.target),n.targetObject=null,n}function Hp(t,i){return i===null?null:(i=i.H)?i:((i=t.path)||typeof t.composedPath!="function"||(i=t.composedPath()),i&&i[0]&&i[0].H?i[0].H:null)}function Wp(t,i,e,n,o,r){var s=t.Qg;return t.Qg=t.cj,t.cj=s,s.diagram=t,s.clickCount=1,t=s.delta=0,i.ctrlKey&&(t+=1),i.altKey&&(t+=2),i.shiftKey&&(t+=4),i.metaKey&&(t+=8),s.modifiers=t,s.event=i,s.timestamp=i.timeStamp,s.button=i.button,s.buttons=i.buttons,To&&i.button===0&&i.ctrlKey&&(s.button=2),s.down=e,s.up=n,s.handled=!1,s.bubbles=o,s.isMultiTouch=r,s}function Er(t,i){return t.bubbles?!0:(i.stopPropagation!==void 0&&i.stopPropagation(),i.cancelable!==!1&&i.preventDefault(),i.cancelBubble=!0,!1)}C.prototype.Qz=function(t){var i=this.H;if(!this.H.isEnabled)return!1;var e=ds(i,t,!1);switch(e.key=String.fromCharCode(t.which),e.down=!0,t.which){case 8:e.key="Backspace";break;case 33:e.key="PageUp";break;case 34:e.key="PageDown";break;case 35:e.key="End";break;case 36:e.key="Home";break;case 37:e.key="Left";break;case 38:e.key="Up";break;case 39:e.key="Right";break;case 40:e.key="Down";break;case 45:e.key="Insert";break;case 46:e.key="Del";break;case 48:e.key="0";break;case 187:case 61:case 107:e.key="Add";break;case 189:case 173:case 109:e.key="Subtract";break;case 27:e.key="Esc"}return i.doKeyDown(),Er(e,t)},C.prototype.Rz=function(t){var i=this.H;if(!i.isEnabled)return!1;var e=ds(i,t,!1);switch(e.key=String.fromCharCode(t.which),e.up=!0,t.which){case 8:e.key="Backspace";break;case 33:e.key="PageUp";break;case 34:e.key="PageDown";break;case 35:e.key="End";break;case 36:e.key="Home";break;case 37:e.key="Left";break;case 38:e.key="Up";break;case 39:e.key="Right";break;case 40:e.key="Down";break;case 45:e.key="Insert";break;case 46:e.key="Del"}return i.doKeyUp(),Er(e,t)},C.prototype.bz=function(t){var i=this.H;if(!i.isEnabled)return!1;var e=ds(i,t,!0);return i.mouseEnter!==null&&i.mouseEnter(e),i.currentTool.standardMouseOver(),Er(e,t)},C.prototype.cz=function(t){var i=this.H;if(!i.isEnabled)return!1;var e=ds(i,t,!0);return i.mouseLeave!==null&&i.mouseLeave(e),Er(e,t)},C.prototype.getMouse=function(t){var i=this.ta;if(i===null)return new x(0,0);var e=i.getBoundingClientRect();return i=t.clientX-this.Aa/e.width*e.left,t=t.clientY-this.ya/e.height*e.top,this.Bb!==null?Vi(new x(i,t),this.Bb):new x(i,t)};function gl(t,i,e){var n=t.ta,o=t.Aa,r=t.ya,s=0,h=0;n!==null&&(n=n.getBoundingClientRect(),s=i.clientX-o/n.width*n.left,h=i.clientY-r/n.height*n.top),e.viewPoint.h(s,h),t.Bb!==null?(i=x.allocAt(s,h),t.Bb.Cd(i),e.documentPoint.assign(i),x.free(i)):e.documentPoint.h(s,h)}function S0(t,i,e){if(t.oj[0]!==null){i=t.oj[i];var n=t.ta;n!==null&&(n=n.getBoundingClientRect(),e.h(i.clientX-t.Aa/n.width*n.left,i.clientY-t.ya/n.height*n.top))}}C.prototype.Ya=function(){this.Zi||(this.Zi=!0,this.ac(!1))};function Uv(t){t.ld||Gi(t),t.Va()}C.prototype.redraw=function(){this.wb||this.ld||(this.N(),this.bd())},d=C.prototype,d.Pz=function(){return this.kg},d.Xy=function(t){t===void 0&&(t=null);var i=this.animationManager,e=i.isEnabled;i.Cc(),i.isEnabled=!1,Ao(this),this.hf=!1,this.cu=new x(NaN,NaN),i.isEnabled=e,this.ld=!0;var n=this;t!==null&&ho(function(){n.ld=!1,Fo(i,"Model"),t(n)},1)},d.ac=function(t){if(t===void 0&&(t=!1),this.kg!==!0&&!(this.wb||t===!1&&this.ld)){this.kg=!0;var i=this;J.requestAnimationFrame(function(){i.kg&&i.bd()})}},d.bd=function(){(!this.en||this.kg)&&(this.en&&(this.en=!1),Ao(this))};function Wu(t,i,e){!t.Ee||t.wb||t.animationManager.defaultAnimation.isAnimating||Zp(t)||(i&&Gi(t),e&&wn(t,!1))}function Ao(t,i){if(!t.ld&&(t.kg=!1,t.Ka!==null||t.vo.w())){t.ld=!0;var e=t.animationManager,n=t.Wn;if(!e.isAnimating&&n.length!==0){for(var o=n.s,r=o.length,s=0;s<r;s++){var h=o[s];Ie(h,!1),h.v()}n.clear()}n=t.ow,0<n.count&&(n.each(function(l){l.Nv()}),n.clear()),o=n=!1,e.defaultAnimation.isAnimating&&(o=!0,n=t.skipsUndoManager,t.skipsUndoManager=!0),e.Ab||Xp(t),Wu(t,!1,!0),t.fe!==null&&(t.fe.visible&&!t.lq&&(Io(t),t.lq=!0),!t.fe.visible&&t.lq&&(t.lq=!1)),Gi(t),r=!1,(!t.hf||t.xh)&&(t.hf?nc(t,!t.Ik):(t.Ea("Initial Layout"),e.isEnabled===!1&&e.Cc(),nc(t,!1)),r=!0),t.Ik=!1,Gi(t),t.nu||Uv(t),Wu(t,!0,!1),s=!1,r?(e=T.alloc(),e.assign(t.viewportBounds),t.hf||(s=t.hf=!0,t.skipsUndoManager||(t.undoManager.isPendingClear=!0),t.undoManager.isPendingUnmodified=!0,Hv(t)),t.R("LayoutCompleted"),Wu(t,!0,!1),T.free(e)):e.Nk&&e.Qw&&(t.Fg!==Oe?t.scale=sh(t,t.Fg):t.yh!==Oe?t.scale=sh(t,t.yh):(e=t.initialScale,isFinite(e)&&0<e&&(t.scale=e)),wn(t,!0)),r&&s&&t.eb("Initial Layout"),Gi(t),i||t.hc(t.ib),o&&(t.skipsUndoManager=n),t.ld=!1}}function Hv(t){if(t.Fg!==Oe)t.scale=sh(t,t.Fg);else if(t.yh!==Oe)t.scale=sh(t,t.yh);else{var i=t.initialScale;isFinite(i)&&0<i&&(t.scale=i)}wn(t,!0),i=t.Wa.s,t.Fd(i,i.length,t,t.viewportBounds),t.R("InitialLayoutCompleted"),t.cu.assign(t.pa),Io(t)}function Gi(t){if(t.De.count!==0&&(t.ld||!t.animationManager.isTicking)){for(var i=0;23>i;i++){var e=t.De.iterator;if(e===null||t.De.count===0)break;t.De=new E,t.Nv(e,t.De)}t.nodes.each(function(n){n instanceof Q&&n.U&65536&&(n.U=n.U^65536)})}}d.Nv=function(t,i){for(t.reset();t.next();){var e=t.value;!e.Zc()||e instanceof Q||(e.si()?(e.measure(1/0,1/0),e.arrange()):i.add(e))}for(t.reset();t.next();)e=t.value,e instanceof Q&&e.isVisible()&&Jp(this,e);for(t.reset();t.next();)e=t.value,e instanceof F&&e.isVisible()&&(e.si()?(e.measure(1/0,1/0),e.arrange()):i.add(e));for(t.reset();t.next();)e=t.value,e instanceof lt&&e.isVisible()&&(e.si()?(e.measure(1/0,1/0),e.arrange()):i.add(e))};function Jp(t,i){for(var e=kt(),n=kt(),o=i.memberParts;o.next();){var r=o.value;r.isVisible()&&(r instanceof Q?(Eo(r)||hn(r)||lr(r))&&Jp(t,r):r instanceof F?r.fromNode===i||r.toNode===i?n.push(r):e.push(r):(r.measure(1/0,1/0),r.arrange()))}for(t=e.length,o=0;o<t;o++)r=e[o],r.measure(1/0,1/0),r.arrange();for(Mt(e),i.measure(1/0,1/0),i.arrange(),t=n.length,i=0;i<t;i++)e=n[i],e.measure(1/0,1/0),e.arrange();Mt(n)}d.Fd=function(t,i,e,n){if(this.vd||this.animationManager.isAnimating)for(var o=0;o<i;o++)t[o].Fd(e,n)},d.hc=function(t){if(this.Ka!==null){if(this.ta===null&&O("No canvas specified"),this.ml==="svg"){if(this.Ka!==null){var i=this.animationManager;if(!i.Ab&&(!i.isAnimating||i.isTicking)){hh(this);var e=this.Aa,n=this.ya;if(t.Gv.resize(e,n,e,n),e=this.Wa.s,n=e.length,this.Fd(e,n,this,this.viewportBounds),this.Fc||i.isAnimating){i=this.pa;var o=this.Ca,r=Math.round(i.x*o)/o,s=Math.round(i.y*o)/o,h=this.Bb;for(h.reset(),o!==1&&h.scale(o),i.x===0&&i.y===0||h.translate(-r,-s),t.ti=null,ty(t,h.m11,h.m12,h.m21,h.m22,h.dx,h.dy),this.pb!==1&&(t.globalAlpha=this.pb),Zu(this,t),i=this.Nb,this.ta.context.setTransform(i,0,0,i,0,0),this.ta.context.clearRect(0,0,this.Aa,this.ya),i=0;i<n;i++)e[i].hc(t,this);t=!1,this.Yf?fh(this.Yf,this)&&(t=this.Up()):t=!0,t&&(it.prototype.Cd=it.prototype.Eu),this.Fc=this.vd=!1}}}}else t:if(r=this.animationManager,!r.Ab&&(!r.isAnimating||r.isTicking)&&(e=new Date,hh(this),this.Ka.style.opacity!=="0")){if(n=t!==this.ib,i=this.Wa.s,o=i.length,this.Fd(i,o,this,this.viewportBounds),n)t.Vc(!0),this.vd=!0;else if(!this.Fc&&!r.isAnimating)break t;r=this.Bb,r.reset(),s=this.Nb,h=this.pa;var l=this.Ca,u=Math.round(h.x*l)/l,a=Math.round(h.y*l)/l;for(l!==1&&r.scale(l),h.x===0&&h.y===0||r.translate(-u,-a),t.setTransform(s,0,0,s,0,0),t.clearRect(0,0,this.Aa,this.ya),this.pb!==1&&(t.globalAlpha=this.pb),Zu(this,t),h=0;h<o;h++)t.setTransform(s,0,0,s,0,0),t.transform(r.m11,r.m12,r.m21,r.m22,r.dx,r.dy),t.yc(),i[h].hc(t,this);if(i=!1,this.Yf?fh(this.Yf,this)&&(i=this.Up()):i=!0,i&&(it.prototype.Cd=it.prototype.Eu),n?(this.ib.Vc(!0),this.vd=!0):this.Fc=this.vd=!1,i=+new Date-+e,n=ku&&ku.nx,e=this.zw,n||this.Yh===null){for(e[this.Sq]=i,this.Sq=(this.Sq+1)%e.length,o=i=0;o<e.length;o++)i+=e[o];this.Rq=i/e.length}if(this.pb!==1&&(t.globalAlpha=1),n)for(t.setTransform(1,0,0,1,0,0),n=0;n<e.length;n++)t.fillText(e[n].toString(),20,150+ +(20*n))}}};function Ju(t,i,e,n,o,r,s,h,l,u){if(t.Ka!==null){t.ta===null&&O("No canvas specified"),s===void 0&&(s=null),h===void 0&&(h=null),l===void 0&&(l=!1),u===void 0&&(u=!1),hh(t),t.ib.Vc(!0),t.vd=!0,t.$i=!0;var a=t.Ca;t.Ca=o;var f=t.Wa.s,p=f.length;try{var c=new T(r.x,r.y,n.width/o,n.height/o),g=c.copy();g.Bo(e),Io(t,g),Gi(t),t.Fd(f,p,t,c),i.setTransform(1,0,0,1,0,0),i.clearRect(0,0,n.width,n.height),h!==null&&h!==""&&(i.fillStyle=h,i.ox(0,0,n.width,n.height));var y=t.Nb;i.scale(y,y);var v=it.alloc();v.reset(),v.translate(e.left,e.top),v.scale(o),r.x===0&&r.y===0||v.translate(-r.x,-r.y),i.setTransform(v.m11,v.m12,v.m21,v.m22,v.dx,v.dy),i.yc(),i instanceof pe&&ty(i,v.m11,v.m12,v.m21,v.m22,v.dx,v.dy),it.free(v),Zu(t,i),i.globalAlpha=t.pb;var m=t.Pj("Grid");if(s){var w=new E,M=s.iterator;for(M.reset();M.next();){var S=M.value;S instanceof U&&(u||S.layer!==m)&&(S.Fj(),w.add(S))}for(u=0;u<p;u++)Bv(f[u],i,t,w,l);w.each(function(k){return k.Fj()})}else for(w=0;w<p;w++){var N=f[w];N===m?u&&N.hc(i,t,!0):N.hc(i,t,l)}t.$i=!1,t.Yf&&fh(t.Yf,t)&&t.Up()}finally{t.Ca=a,t.ib.Vc(!0),t.vd=!0,t.Fd(f,p,t,t.viewportBounds),Io(t),t.ib instanceof pe&&(t.ib.Mj.PA(),t.redraw())}}}d.Gf=function(t){return this.Rg[t]},d.Xx=function(t,i){t==="minDrawingLength"&&(this.Nq=i),this.Rg[t]=i,this.redraw()},d.Tx=function(){this.Rg=new Xe,this.Rg.drawShadows=!0,this.Rg.textGreeking=!0,this.Rg.viewportOptimizations=!(To||Nv),this.Rg.temporaryPixelRatio=!0,this.Rg.pictureRatioOptimization=!0,this.Nq=this.Rg.minDrawingLength=1};function Zu(t,i){t=t.Rg,t!==null&&(t.imageSmoothingEnabled!==void 0&&i.Wx(!!t.imageSmoothingEnabled),t=t.defaultFont,t!=null&&(i.font=t))}d.Pl=function(t){return this.nn[t]},d.sA=function(t,i){this.nn[t]=i},d.Sx=function(){this.nn=new Xe,this.nn.extraTouchArea=10,this.nn.extraTouchThreshold=10,this.nn.hasGestureZoom=!0},d.set=function(t){return Object.assign(this,t),this},d.Du=function(t){return this.mm(t)},d.mm=function(t){return yl(this,t),this};function yl(t,i){var e=t instanceof j,n=t instanceof C,o;for(o in i){o===""&&O("Setting properties requires non-empty property names");var r=t,s=o;if(e||n){var h=o.indexOf(".");if(0<h){var l=o.substring(0,h);e?r=t.fb(l):(r=t[l],r==null&&(r=t.toolManager[l])),At(r)?s=o.substr(h+1):O("Unable to find object named: "+l+" in "+t.toString()+" when trying to set property: "+o)}}if(s[0]!=="_"&&!lg(r,s))if(n&&s==="ModelChanged"){t.Yw(i[s]);continue}else if(n&&s==="Changed"){t.Pe(i[s]);continue}else if(n&&lg(t.toolManager,s))r=t.toolManager;else if(n&&F0(t,s)){t.Bj(s,i[s]);continue}else if(t instanceof G&&s==="Changed"){t.Pe(i[s]);continue}else O('Trying to set undefined property "'+s+'" on object: '+r.toString());r[s]=i[o],s[0]==="_"&&r instanceof X&&r.Vw(s)}}d.bx=function(){if(this.Eh.count!==0&&!(1<this.undoManager.transactionLevel)){for(;0<this.Eh.count;){var t=this.Eh;for(this.Eh=new _,t=t.iterator;t.next();){var i=t.key;i.Wo(t.value),i.rc()}}this.N()}},d.N=function(t){if(t===void 0)this.Fc=!0,this.ac();else{var i=this.viewportBounds;t.w()&&i.Yc(t)&&(this.Fc=!0,this.ac())}this.R("InvalidateDraw")},C.prototype.invalidateViewport=function(t,i){if(this.Fc!==!0)if(this.Fc=!0,this.ml==="svg")this.bd();else{var e=this.Gf("temporaryPixelRatio")===!0;if(this.Gf("viewportOptimizations")===!0&&this.scrollMode!==uc&&this.rj.hi(0,0,0,0)&&i.width===t.width&&i.height===t.height){var n=this.scale,o=Math.max(t.y,i.y),r=Math.min(t.y+t.height,i.y+i.height);if(0<Math.max(0,Math.min(t.x+t.width,i.x+i.width)-Math.max(t.x,i.x))*n&&0<Math.max(0,r-o)*n){if(!(this.ld||(this.kg=!1,this.Ka===null||(this.ld=!0,this.documentBounds.w()||(n=T.alloc(),ec(this,this.computeBounds(n)),T.free(n)),n=this.ta,n===null||n instanceof En)))){var s=this.Nb;o=this.Aa*s;var h=this.ya*s,l=this.scale*s;r=Math.round(Math.round(i.x*l)-Math.round(t.x*l)),i=Math.round(Math.round(i.y*l)-Math.round(t.y*l)),l=this.jw,t=this.oy,l.width!==o&&(l.width=o),l.height!==h&&(l.height=h),t.clearRect(0,0,o,h),l=190*s;var u=70*s,a=Math.max(r,0),f=Math.max(i,0),p=Math.floor(o-a),c=Math.floor(h-f);t.drawImage(n.Oa,a,f,p,c,0,0,p,c),fh(this.Yf,this)&&t.clearRect(0,0,l,u),n=kt(),t=kt(),c=Math.abs(r),p=Math.abs(i);var g=a===0?0:o-c;a=x.allocAt(g,0),c=x.allocAt(c+g,h),t.push(new T(Math.min(a.x,c.x),Math.min(a.y,c.y),Math.abs(a.x-c.x),Math.abs(a.y-c.y)));var y=this.Bb;if(y.reset(),y.scale(s,s),this.Ca!==1&&y.scale(this.Ca),s=this.pa,(s.x!==0||s.y!==0)&&isFinite(s.x)&&isFinite(s.y)&&y.translate(-s.x,-s.y),Vi(a,y),Vi(c,y),n.push(new T(Math.min(a.x,c.x),Math.min(a.y,c.y),Math.abs(a.x-c.x),Math.abs(a.y-c.y))),g=f===0?0:h-p,a.h(0,g),c.h(o,p+g),t.push(new T(Math.min(a.x,c.x),Math.min(a.y,c.y),Math.abs(a.x-c.x),Math.abs(a.y-c.y))),Vi(a,y),Vi(c,y),n.push(new T(Math.min(a.x,c.x),Math.min(a.y,c.y),Math.abs(a.x-c.x),Math.abs(a.y-c.y))),fh(this.Yf,this)&&(o=0<r?0:-r,h=0<i?0:-i,a.h(o,h),c.h(l+o,u+h),t.push(new T(Math.min(a.x,c.x),Math.min(a.y,c.y),Math.abs(a.x-c.x),Math.abs(a.y-c.y))),Vi(a,y),Vi(c,y),n.push(new T(Math.min(a.x,c.x),Math.min(a.y,c.y),Math.abs(a.x-c.x),Math.abs(a.y-c.y)))),x.free(a),x.free(c),Wu(this,!1,!0),this.Ka===null&&O("No div specified"),this.ta===null&&O("No canvas specified"),!this.animationManager.Ab&&(o=this.ib,this.Fc)){for(hh(this),h=this.Nb,o.setTransform(1,0,0,1,0,0),o.clearRect(0,0,this.Aa*h,this.ya*h),o.drawImage(this.jw.Oa,0<r?0:Math.round(-r),0<i?0:Math.round(-i)),r=this.pa,s=this.Ca,l=Math.round(r.x*s)/s,u=Math.round(r.y*s)/s,i=this.Bb,i.reset(),s!==1&&i.scale(s),r.x===0&&r.y===0||i.translate(-l,-u),o.save(),o.beginPath(),r=t.length,s=0;s<r;s++)l=t[s],l.width!==0&&l.height!==0&&o.rect(Math.floor(l.x),Math.floor(l.y),Math.ceil(l.width),Math.ceil(l.height));for(o.clip(),o.setTransform(h,0,0,h,0,0),o.transform(i.m11,i.m12,i.m21,i.m22,i.dx,i.dy),o.yc(),i=this.Wa.s,r=i.length,this.Fd(i,r,this,this.viewportBounds),Zu(this,o),o.globalAlpha=this.pb,h=0;h<r;h++)if(s=i[h],l=n,s.visible&&s.pb!==0){u=cl(s,o),f=s.Yq,f.length=0,a=this.scale,p=T.alloc(),c=s.Pa.s,y=c.length,g=l.length;for(var v=0;v<y;v++){var m=c[v],w=Hr(m,m.actualBounds);t:{for(var M=2/a,S=4/a,N=0;N<g;N++){var k=l[N];if(k.width!==0&&k.height!==0&&w.Vu(k.x-M,k.y-M,k.width+S,k.height+S)){w=!0;break t}}w=!1}w&&s.Nj(o,m,this,f,a,p,!0)}T.free(p),o.globalAlpha=u}o.restore(),o.Vc(!0),this.Yf&&fh(this.Yf,this)&&this.Up(),this.Fc=this.vd=!1,this.gk()}Mt(n),Mt(t),this.ld=!1}}else this.bd();e&&(dl(this),this.bd(),Hu(this,!0))}else e?(dl(this),this.bd(),Hu(this,!0)):this.bd()}};function hh(t){t.on!==!1&&(t.on=!1,N0(t,t.Aa,t.ya))}function N0(t,i,e){Do(t);var n=t.Nb;t.ta.resize(i*n,e*n,i,e)&&(t.Fc=!0,t.ib.Vc(!0))}function Zp(t){var i=t.ta;if(i===null||t.vo.w())return!0;var e=t.Aa,n=t.ya,o=t.Ka,r=!1,s=t.gf?t.Eb:0,h=t.Be?t.Eb:0,l=o.clientWidth||e+s,u=o.clientHeight||n+h,a=t.viewportBounds;o=a.x;var f=a.y,p=a.width,c=a.height;if((l!==e+s||u!==n+h)&&(t.gf=!1,t.Be=!1,h=s=0,t.Aa=l,t.ya=u,r=t.on=!0,Do(t)),!t.hf||!t.viewportBounds.w())return!0;var g=t.ju,y=t.gu;if(t.Ee=!1,!(r||t.gf||t.Be||t.ln||t.mn))return!0;var v=t.documentBounds,m=0,w=0,M=0,S=0,N=a.width,k=a.height,D=t.rj;t.contentAlignment.sb()?(v.width>N&&(m=D.left,w=D.right),v.height>k&&(M=D.top,S=D.bottom)):(m=D.left,w=D.right,M=D.top,S=D.bottom);var z=v.width+m+w,Y=v.height+M+S;D=t.scale;var A=z>l/D,L=Y>u/D;if(!(r||t.gf||t.Be||A||L))return!0;m=v.x-m,l=a.x,w=v.right+w,u=a.right+s,M=v.y-M;var $=a.y;v=v.bottom+S,a=a.bottom+h;var W="1px";if(S="1px",t.scrollMode===Br&&(A||L)&&(A&&t.hasHorizontalScrollbar&&t.allowHorizontalScroll&&(A=1,m+1<l&&(A=Math.max((l-m)*D+t.Aa,A)),w>u+1&&(A=Math.max((w-u)*D+t.Aa,A)),N+s+1<z&&(A=Math.max((z-N)*D+t.Aa,A)),W=A.toString()+"px"),L&&t.hasVerticalScrollbar&&t.allowVerticalScroll&&(A=1,M+1<$&&(A=Math.max(($-M)*D+t.ya,A)),v>a+1&&(A=Math.max((v-a)*D+t.ya,A)),k+h+1<Y&&(A=Math.max((Y-k)*D+t.ya,A)),S=A.toString()+"px")),A=W!=="1px",L=S!=="1px",A&&L||!A&&!L||(L&&(u-=t.Eb),A&&(a-=t.Eb),z<N+s||!t.hasHorizontalScrollbar||!t.allowHorizontalScroll||(s=1,m+1<l&&(s=Math.max((l-m)*D+t.Aa,s)),w>u+1&&(s=Math.max((w-u)*D+t.Aa,s)),N+1<z&&(s=Math.max((z-N)*D+t.Aa,s)),W=s.toString()+"px"),A=W!=="1px",s=t.ya,A!==t.Be&&(s=A?t.ya-t.Eb:t.ya+t.Eb),Y<k+h||!t.hasVerticalScrollbar||!t.allowVerticalScroll||(h=1,M+1<$&&(h=Math.max(($-M)*D+s,h)),v>a+1&&(h=Math.max((v-a)*D+s,h)),k+1<Y&&(h=Math.max((Y-k)*D+s,h)),S=h.toString()+"px"),L=S!=="1px"),t.pr&&A===t.Be&&L===t.gf)return e===t.Aa&&n===t.ya||t.bd(),!1;if(A!==t.Be&&(W==="1px"?t.ya=t.ya+t.Eb:t.ya=Math.max(t.ya-t.Eb,1),r=!0),t.Be=A,y.style.width=W,L!==t.gf&&(S==="1px"?t.Aa=t.Aa+t.Eb:t.Aa=Math.max(t.Aa-t.Eb,1),r=!0,t.sn&&(h=x.alloc(),L?(i.style.left=t.Eb+"px",t.position=h.h(t.pa.x+t.Eb/t.scale,t.pa.y)):(i.style.left="0px",t.position=h.h(t.pa.x-t.Eb/t.scale,t.pa.y)),x.free(h))),r&&Do(t),t.gf=L,y.style.height=S,t.fu=!0,r&&(t.on=!0),i=g.scrollLeft,t.hasHorizontalScrollbar&&t.allowHorizontalScroll&&(N+1<z?i=(t.position.x-m)*D:m+1<l?i=g.scrollWidth-g.clientWidth:w>u+1&&(i=t.position.x*D)),t.sn)switch(t.au){case"negative":i=-(g.scrollWidth-i-g.clientWidth);break;case"reverse":i=g.scrollWidth-i-g.clientWidth}return g.scrollLeft=i,t.hasVerticalScrollbar&&t.allowVerticalScroll&&(k+1<Y?g.scrollTop=(t.position.y-M)*D:M+1<$?g.scrollTop=g.scrollHeight-g.clientHeight:v>a+1&&(g.scrollTop=t.position.y*D)),l=t.Aa,u=t.ya,g.style.width=l+(t.gf?t.Eb:0)+"px",g.style.height=u+(t.Be?t.Eb:0)+"px",e!==l||n!==u||t.animationManager.Ab?(e=T.allocAt(o,f,p,c),t.onViewportBoundsChanged(e,t.viewportBounds,D,r),T.free(e),!1):!0}d=C.prototype,d.add=function(t){var i=t.diagram;if(i!==this&&(i!==null&&O("Cannot add part "+t.toString()+" to "+this.toString()+". It is already a part of "+i.toString()),i=this.Pj(t.layerName),i===null&&(i=this.Pj("")),i===null&&O('Cannot add a Part when unable find a Layer named "'+t.layerName+'" and there is no default Layer'),t.layer!==i)){var e=i.oi(99999999,t,t.diagram===this);0<=e&&this.cb(ii,"parts",i,null,t,null,e),i.isTemporary||this.Ya(),t.C(1),e=t.layerChanged,e!==null&&e(t,null,i)}},d.oi=function(t){this.partManager.oi(t);var i=this;Xr(t,function(e){T0(i,e)}),(t instanceof lt||t instanceof Q&&t.placeholder!==null)&&t.v(),t.data!==null&&Xr(t,function(e){Sd(i.partManager,e)}),hn(t)!==!0&&lr(t)!==!0||this.De.add(t),Ky(t,!0,this),Hy(t)?(t.actualBounds.w()&&this.N(Hr(t,t.actualBounds)),this.Ya()):t.isVisible()&&t.actualBounds.w()&&this.N(Hr(t,t.actualBounds)),this.ac()},d.qc=function(t){t.Dj(),this.partManager.qc(t);var i=this;t.data!==null&&Xr(t,function(e){Nd(i.partManager,e,i)}),this.De.remove(t),Hy(t)?(t.actualBounds.w()&&this.N(Hr(t,t.actualBounds)),this.Ya()):t.isVisible()&&t.actualBounds.w()&&this.N(Hr(t,t.actualBounds)),this.ac()},d.remove=function(t){_p(this,t,!0)};function _p(t,i,e){var n=i.layer;n!==null&&n.diagram===t&&(i.isSelected=!1,i.isHighlighted=!1,i.C(2),e&&i.Kj(),e=n.qc(-1,i,!1),0<=e&&t.cb(si,"parts",n,i,null,e,null),t=i.layerChanged,t!==null&&t(i,n,null))}d.Hs=function(t,i){if(i===void 0&&(i=!1),ai(t))for(var e=t.length,n=0;n<e;n++){var o=t[n];i&&!o.canDelete()||this.remove(o)}else for(e=new E,e.addAll(t),t=e.iterator;t.next();)e=t.value,i&&!e.canDelete()||this.remove(e)},d.Jj=function(t,i,e){return e===void 0&&(e=!1),this.partManager.Jj(t,i,e)},C.prototype.moveParts=function(t,i,e,n){if(e===void 0&&(e=!1),n===void 0&&(n=Qp(this)),this.toolManager!==null){var o=new _;if(t!==null)if(ai(t))for(var r=0;r<t.length;r++)Oo(this,o,t[r],e,n);else for(t=t.iterator;t.next();)Oo(this,o,t.value,e,n);else{for(t=this.parts;t.next();)Oo(this,o,t.value,e,n);for(t=this.nodes;t.next();)Oo(this,o,t.value,e,n);for(t=this.links;t.next();)Oo(this,o,t.value,e,n)}$p(this,o,i,n,e)}};function Oo(t,i,e,n,o,r){if(!i.contains(e)&&(r===void 0&&(r=!1),!n||r||e.canMove()||e.canCopy()))if(o===void 0&&(o=Qp(t)),e instanceof B){if(i.add(e,t.Pd(o,e,e.location)),e instanceof Q&&(e.placeholder!==null||o.dragsMembers))for(r=e.memberParts;r.next();)Oo(t,i,r.value,n,o,o.groupsAlwaysMove);for(r=e.linksConnected;r.next();){var s=r.value;if(!i.contains(s)){var h=s.fromNode,l=s.toNode;h!==null&&i.contains(h)&&l!==null&&i.contains(l)&&Oo(t,i,s,n,o)}}if(o.dragsTree)for(e=e.Ou();e.next();)Oo(t,i,e.value,n,o)}else if(e instanceof F)for(i.add(e,t.Pd(o,e)),e=e.labelNodes;e.next();)Oo(t,i,e.value,n,o);else e instanceof lt||i.add(e,t.Pd(o,e,e.location))}function $p(t,i,e,n,o){if(i!==null&&i.count!==0){var r=x.alloc(),s=x.alloc();s.assign(e),isNaN(s.x)&&(s.x=0),isNaN(s.y)&&(s.y=0),(e=t.Lr)||_u(t,i);for(var h=kt(),l=kt(),u=i.iterator,a=x.alloc();u.next();){var f=u.key,p=u.value;if(f.Zc()){var c=P0(t,f,i);c!==null?h.push(new W0(f,p,c)):(!o||f.canMove())&&(c=p.point,r.assign(c),t.computeMove(f,r.add(s),n,a),f.location=a,p.shifted===void 0&&(p.shifted=new x),p.shifted.assign(a.re(c)))}else u.key instanceof F&&l.push(u.sa)}for(x.free(a),o=h.length,u=0;u<o;u++)f=h[u],r.assign(f.info.point),f.Su.shifted===void 0&&(f.Su.shifted=new x),f.node.location=r.add(f.Su.shifted);for(o=x.alloc(),u=x.alloc(),f=l.length,p=0;p<f;p++){var g=l[p];if(c=g.key,c instanceof F)if(c.suspendsRouting){c.Tg=null,a=c.fromNode;var y=c.toNode;if(t.draggedLink!==null&&n.dragsLink)if(y=g.value.point,c.dragComputation===null)i.add(c,t.Pd(n,c,s)),Xo(c,s.x-y.x,s.y-y.y);else{g=x.allocAt(0,0),(a=c.i(0))&&a.w()&&g.assign(a);var v=a=x.alloc().assign(g).add(s);n.isGridSnapEnabled&&(n.isGridSnapRealtime||t.lastInput.up)&&(v=x.alloc(),qp(t,c,a,v,n)),a.assign(c.dragComputation(c,a,v)).re(g),i.add(c,t.Pd(n,c,a)),Xo(c,a.x-y.x,a.y-y.y),x.free(g),x.free(a),v!==a&&x.free(v)}else a!==null&&(o.assign(a.location),v=i.I(a),v!==null&&o.re(v.point)),y!==null&&(u.assign(y.location),v=i.I(y),v!==null&&u.re(v.point)),a!==null&&y!==null?o.Xa(u)?(a=g.value.point,y=r,y.assign(o),y.re(a),i.add(c,t.Pd(n,c,o)),Xo(c,y.x,y.y)):(c.suspendsRouting=!1,c.bb()):(g=g.value.point,a=a!==null?o:y!==null?u:s,i.add(c,t.Pd(n,c,a)),Xo(c,a.x-g.x,a.y-g.y))}else(c.fromNode===null||c.toNode===null)&&(a=g.value.point,i.add(c,t.Pd(n,c,s)),Xo(c,s.x-a.x,s.y-a.y))}x.free(r),x.free(s),x.free(o),x.free(u),Mt(h),Mt(l),e||(Gi(t),ml(t,i))}}C.prototype.computeMove=function(t,i,e,n){if(n===void 0&&(n=new x),n.assign(i),t===null)return n;var o=i,r=e.isGridSnapEnabled;r&&(e.isGridSnapRealtime||this.lastInput.up)&&(o=x.alloc(),qp(this,t,i,o,e)),e=t.dragComputation!==null?t.dragComputation(t,i,o):o;var s=t.minLocation,h=s.x;isNaN(h)&&(h=r?Math.round(1e3*t.location.x)/1e3:t.location.x),s=s.y,isNaN(s)&&(s=r?Math.round(1e3*t.location.y)/1e3:t.location.y);var l=t.maxLocation,u=l.x;return isNaN(u)&&(u=r?Math.round(1e3*t.location.x)/1e3:t.location.x),l=l.y,isNaN(l)&&(l=r?Math.round(1e3*t.location.y)/1e3:t.location.y),n.h(Math.max(h,Math.min(e.x,u)),Math.max(s,Math.min(e.y,l))),o!==i&&x.free(o),n};function Qp(t){var i=t.toolManager.findTool("Dragging");return i!==null?i.dragOptions:t.Vm}function qp(t,i,e,n,o){if(o===void 0&&(o=Qp(t)),n.assign(e),i!==null){var r=t.grid;i=o.gridSnapCellSize,t=i.width,i=i.height;var s=o.gridSnapOrigin,h=s.x;if(s=s.y,o=o.gridSnapCellSpot,r!==null){var l=r.gridCellSize;isNaN(t)&&(t=l.width),isNaN(i)&&(i=l.height),r=r.gridOrigin,isNaN(h)&&(h=r.x),isNaN(s)&&(s=r.y)}r=x.allocAt(0,0),r.yi(0,0,t,i,o),P.Mo(e.x,e.y,h+r.x,s+r.y,t,i,n),x.free(r)}}function _u(t,i){if(i!==null)for(t.Lr=!0,t=i.iterator;t.next();)i=t.key,i instanceof F&&(i.suspendsRouting=!0)}function ml(t,i){if(i!==null){for(i=i.iterator;i.next();){var e=i.key;e instanceof F&&(e.suspendsRouting=!1,sm(e)&&e.bb())}t.Lr=!1}}function P0(t,i,e){return i=i.containingGroup,i!==null&&(t=P0(t,i,e),t!==null||(t=e.I(i),t!==null))?t:null}d=C.prototype,d.Pd=function(t,i,e){if(e===void 0)return new rr(lo);var n=t.isGridSnapEnabled;return t.groupsSnapMembers||i.containingGroup===null||(n=!1),n?new rr(new x(Math.round(1e3*e.x)/1e3,Math.round(1e3*e.y)/1e3)):new rr(e.copy())};function bp(t,i,e){if(i.diagram!==null&&i.diagram!==t&&O("Cannot share a Layer with another Diagram: "+i+" of "+i.diagram),e===null?i.diagram!==null&&O("Cannot add an existing Layer to this Diagram again: "+i):(e.diagram!==t&&O("Existing Layer must be in this Diagram: "+e+" not in "+e.diagram),i===e&&O("Cannot move a Layer before or after itself: "+i)),i.diagram!==t){i=i.name,t=t.Wa,e=t.count;for(var n=0;n<e;n++)t.M(n).name===i&&O("Cannot add Layer with the name '"+i+"'; a Layer with the same name is already present in this Diagram.")}}d.zl=function(t){bp(this,t,null),t.Xe(this);var i=this.Wa,e=i.count-1;if(!t.isTemporary)for(;0<=e&&i.M(e).isTemporary;)e--;return i.Hb(e+1,t),this.dc!==null&&this.cb(ii,"layers",this,null,t,null,e+1),this.N(),this.Ya(),this},d.Ww=function(t,i){bp(this,t,i),t.Xe(this);var e=this.Wa,n=e.indexOf(t);0<=n&&(e.remove(t),this.dc!==null&&this.cb(si,"layers",this,t,null,n,null));var o=e.count,r;for(r=0;r<o;r++)if(e.M(r)===i){e.Hb(r,t);break}return this.dc!==null&&this.cb(ii,"layers",this,null,t,null,r),this.N(),0>n&&this.Ya(),this},d.Cy=function(t,i){bp(this,t,i),t.Xe(this);var e=this.Wa,n=e.indexOf(t);0<=n&&(e.remove(t),this.dc!==null&&this.cb(si,"layers",this,t,null,n,null));var o=e.count,r;for(r=0;r<o;r++)if(e.M(r)===i){e.Hb(r+1,t);break}return this.dc!==null&&this.cb(ii,"layers",this,null,t,null,r+1),this.N(),0>n&&this.Ya(),this},d.kA=function(t){if(t.diagram!==this&&O("Cannot remove a Layer from another Diagram: "+t+" of "+t.diagram),t.name!==""){var i=this.Wa,e=i.indexOf(t);if(i.remove(t)){for(i=t.Pa.copy().iterator;i.next();){var n=i.value,o=n.layerName;o!==t.name?n.layerName=o:n.layerName=""}this.dc!==null&&this.cb(si,"layers",this,t,null,e,null),this.N(),this.Ya()}}},d.Pj=function(t){for(var i=this.layers;i.next();){var e=i.value;if(e.name===t)return e}return null},d.Yw=function(t){return this.pf===null&&(this.pf=new V),this.pf.add(t),this.model.Pe(t),this},d.mA=function(t){this.pf!==null&&(this.pf.remove(t),this.pf.count===0&&(this.pf=null)),this.model.hk(t)},d.Pe=function(t){return this.zg===null&&(this.zg=new V),this.zg.add(t),this},d.hk=function(t){this.zg!==null&&(this.zg.remove(t),this.zg.count===0&&(this.zg=null))},d.cs=function(t){if(this.skipsUndoManager||this.model.skipsUndoManager||this.model.undoManager.Tu(t),t.change!==vn&&(this.isModified=!0),this.zg!==null)for(var i=this.zg,e=i.length,n=0;n<e;n++)i.M(n)(t)},d.cb=function(t,i,e,n,o,r,s){r===void 0&&(r=null),s===void 0&&(s=null);var h=new Et;h.diagram=this,h.change=t,h.propertyName=i,h.object=e,h.oldValue=n,h.oldParam=r,h.newValue=o,h.newParam=s,this.cs(h)},d.g=function(t,i,e,n,o){this.cb(Ot,t,this,i,e,n,o)},C.prototype.changeState=function(t,i){if(t!==null&&t.diagram===this){var e=this.skipsModelSourceBindings;try{this.skipsModelSourceBindings=!0;var n=t.change;if(n===Ot){var o=t.object;if(Ct(o,t.propertyName,t.I(i)),o instanceof X){var r=o.part;r!==null&&r.Xb()}this.isModified=!0}else if(n===ii){var s=t.object,h=t.newParam,l=t.newValue;if(s instanceof j)if(typeof h=="number"&&l instanceof X){i?s.qc(h):s.Hb(h,l);var u=s.part;u!==null&&u.Xb()}else typeof h=="number"&&l instanceof _t&&(l.isRow?yy(s,h,i?void 0:l):my(s,h,i?void 0:l));else if(s instanceof ji){var a=t.oldParam===!0;typeof h=="number"&&l instanceof U&&(i?(l.isSelected=!1,l.isHighlighted=!1,l.Xb(),s.qc(a?h:-1,l,a)):s.oi(h,l,a))}else s instanceof C?typeof h=="number"&&l instanceof ji&&(i?this.Wa.mb(h):(l.Xe(this),this.Wa.Hb(h,l))):O("unknown ChangedEvent.Insert object: "+t.toString());this.isModified=!0}else if(n===si){var f=t.object,p=t.oldParam,c=t.oldValue;if(f instanceof j)typeof p=="number"&&c instanceof X?i?f.Hb(p,c):f.qc(p):typeof p=="number"&&c instanceof _t&&(c.isRow?yy(f,p,i?c:void 0):my(f,p,i?c:void 0));else if(f instanceof ji){var g=t.newParam===!0;typeof p=="number"&&c instanceof U&&(i?0>f.Pa.indexOf(c)&&f.oi(p,c,g):(c.isSelected=!1,c.isHighlighted=!1,c.Xb(),f.qc(g?p:-1,c,g)))}else f instanceof C?typeof p=="number"&&c instanceof ji&&(i?(c.Xe(this),this.Wa.Hb(p,c)):this.Wa.mb(p)):O("unknown ChangedEvent.Remove object: "+t.toString());this.isModified=!0}else n!==vn&&O("unknown ChangedEvent: "+t.toString())}finally{this.skipsModelSourceBindings=e}}},C.prototype.Ea=function(t){return this.undoManager.Ea(t)},C.prototype.eb=function(t){return this.undoManager.eb(t)},C.prototype.Kf=function(){return this.undoManager.Kf()},C.prototype.commit=function(t,i){i===void 0&&(i="");var e=this.skipsUndoManager;i===null&&(this.skipsUndoManager=!0,i=""),this.undoManager.Ea(i);var n=!1;try{t(this),n=!0}finally{n?this.undoManager.eb(i):this.undoManager.Kf(),this.skipsUndoManager=e}},C.prototype.updateAllTargetBindings=function(t){this.partManager.updateAllTargetBindings(t)},C.prototype.qp=function(){this.partManager.qp()};function k0(t,i,e){var n=t.animationManager;if(t.wb||t.ld)t.Ca=e,Do(t),t.N(),t.Ee=!0,n.Ab&&(Vu(n)||n.ce.add(n.H,"scale",i,t.Ca));else if(t.ta===null)t.Ca=e,Do(t);else{t.wb=!0;var o=t.viewportBounds.copy(),r=t.Aa,s=t.ya,h=t.zoomPoint.x,l=t.zoomPoint.y,u=t.contentAlignment;isNaN(h)&&(u.$c()?u.Hf(Js)?h=0:u.Hf(Zs)&&(h=r-1):h=u.sb()?u.x*(r-1):r/2),isNaN(l)&&(u.$c()?u.Hf(Ws)?l=0:u.Hf(_s)&&(l=s-1):l=u.sb()?u.y*(s-1):s/2),t.scaleComputation===null||t.animationManager.defaultAnimation.isAnimating||(e=t.scaleComputation(t,e)),e<t.minScale&&(e=t.minScale),e>t.maxScale&&(e=t.maxScale),r=x.allocAt(t.pa.x+h/i-h/e,t.pa.y+l/i-l/e),t.position=r,x.free(r),t.Ca=e,Do(t),t.wb=!1,t.onViewportBoundsChanged(o,t.viewportBounds,i,!1),wn(t,!1),n.Ab&&(Vu(n)||n.ce.add(n.H,"scale",i,t.Ca))}}C.prototype.onViewportBoundsChanged=function(t,i,e,n){if(!t.D(i)){n===void 0&&(n=!1),n||(this.Ee=!0),this.vd=!0;var o=this.layout;o===null||!o.isViewportSized||this.autoScale!==Oe||t.width===i.width&&t.height===i.height||o.C(),o=this.currentTool,this.Uk===!0&&o instanceof Bt&&(this.lastInput.documentPoint=this.Os(this.lastInput.viewPoint),Bg(o,this)),this.wb||this.invalidateViewport(t,i),Io(this),this.gc.scale=e,this.gc.position.x=t.x,this.gc.position.y=t.y,this.gc.bounds.assign(t),this.gc.canvasSize.width=Math.round(t.width*e),this.gc.canvasSize.height=Math.round(t.height*e),this.gc.newCanvasSize.width=this.Aa,this.gc.newCanvasSize.height=this.ya,this.gc.isScroll=n,this.R("ViewportBoundsChanged",this.gc,t),this.isVirtualized&&this.links.each(function(r){r.isAvoiding&&r.actualBounds.Yc(i)&&r.bb()})}};function Io(t,i){var e=t.fe;if(e!==null&&e.visible){for(var n=Z.alloc(),o=1,r=1,s=e.O.s,h=s.length,l=0;l<h;l++){var u=s[l],a=Math.abs(u.interval);2>a||(Ac(u.figure)?r=r*a/P.vx(r,a):o=o*a/P.vx(o,a))}if(s=e.gridCellSize,n.h(r*s.width,o*s.height),i!==void 0)o=i.width,r=i.height,t=i.x,s=i.y;else{if(i=T.alloc(),t=t.viewportBounds,i.h(t.x,t.y,t.width,t.height),!i.w()){T.free(i);return}o=i.width,r=i.height,t=i.x,s=i.y,T.free(i)}e.width=o+2*n.width,e.height=r+2*n.height,i=x.alloc(),P.Mo(t,s,0,0,n.width,n.height,i),i.offset(-n.width,-n.height),Z.free(n),e.part.location=i,x.free(i)}}C.prototype.clearSelection=function(t){t===void 0&&(t=!1);var i=this.selection;if(i.count!==0){t||this.R("ChangingSelection",i);for(var e=i.Fa(),n=e.length,o=0;o<n;o++)e[o].isSelected=!1;i.ka(),i.clear(),i.freeze(),t||this.R("ChangedSelection",i)}},C.prototype.select=function(t){t!==null&&t.diagram===this&&(!t.isSelected||1<this.selection.count)&&(this.R("ChangingSelection",this.selection),this.clearSelection(!0),t.isSelected=!0,this.R("ChangedSelection",this.selection))},C.prototype.rA=function(t){if(this.R("ChangingSelection",this.selection),this.clearSelection(!0),ai(t))for(var i=t.length,e=0;e<i;e++){var n=t[e];n instanceof U||O("Diagram.selectCollection given something that is not a Part: "+n),n.isSelected=!0}else for(t=t.iterator;t.next();)i=t.value,i instanceof U||O("Diagram.selectCollection given something that is not a Part: "+i),i.isSelected=!0;this.R("ChangedSelection",this.selection)},C.prototype.clearHighlighteds=function(){var t=this.highlighteds;if(0<t.count){for(var i=t.Fa(),e=i.length,n=0;n<e;n++)i[n].isHighlighted=!1;t.ka(),t.clear(),t.freeze()}},d=C.prototype,d.Iz=function(t){t!==null&&t.diagram===this&&(!t.isHighlighted||1<this.highlighteds.count)&&(this.clearHighlighteds(),t.isHighlighted=!0)},d.Jz=function(t){t=new E().addAll(t);for(var i=this.highlighteds.copy().gp(t).iterator;i.next();)i.value.isHighlighted=!1;for(t=t.iterator;t.next();)i=t.value,i instanceof U||O("Diagram.highlightCollection given something that is not a Part: "+i),i.isHighlighted=!0},d.scroll=function(t,i,e){e===void 0&&(e=1);var n=i==="up"||i==="down",o=0,r=x.alloc();if(t==="pixel")o=e;else if(t==="line")o=e*(n?this.scrollVerticalLineChange:this.scrollHorizontalLineChange);else if(t==="page")t=n?this.viewportBounds.height:this.viewportBounds.width,t*=this.scale,t!==0&&(o=e*Math.max(t-(n?this.scrollVerticalLineChange:this.scrollHorizontalLineChange),0));else{if(t==="document"){o=this.documentBounds,e=this.viewportBounds,i==="up"?this.position=r.h(e.x,o.y):i==="left"?this.position=r.h(o.x,e.y):i==="down"?this.position=r.h(e.x,o.bottom-e.height):i==="right"&&(this.position=r.h(o.right-e.width,e.y)),x.free(r);return}O("scrolling unit must be 'pixel', 'line', 'page', or 'document', not: "+t)}o/=this.scale,e=this.position,i==="up"?this.position=r.h(e.x,e.y-o):i==="down"?this.position=r.h(e.x,e.y+o):i==="left"?this.position=r.h(e.x-o,e.y):i==="right"?this.position=r.h(e.x+o,e.y):O("scrolling direction must be 'up', 'down', 'left', or 'right', not: "+i),x.free(r)},d.tv=function(t){var i=this.viewportBounds;i.Re(t)||(t=t.center,t.x-=i.width/2,t.y-=i.height/2,this.position=t)},d.ds=function(t){var i=this.viewportBounds;t=t.center,t.x-=i.width/2,t.y-=i.height/2,this.position=t},d.np=function(t){var i=this.Bb;i.reset(),this.Ca!==1&&i.scale(this.Ca);var e=this.pa;return(e.x!==0||e.y!==0)&&isFinite(e.x)&&isFinite(e.y)&&i.translate(-e.x,-e.y),t.copy().transform(this.Bb)},d.zA=function(t){var i=this.Bb,e=t.x,n=t.y,o=e+t.width,r=n+t.height,s=i.m11,h=i.m12,l=i.m21,u=i.m22,a=i.dx,f=i.dy,p=e*s+n*l+a;i=e*h+n*u+f;var c=o*s+n*l+a;return t=o*h+n*u+f,n=e*s+r*l+a,e=e*h+r*u+f,s=o*s+r*l+a,o=o*h+r*u+f,r=Math.min(p,c),p=Math.max(p,c),c=Math.min(i,t),i=Math.max(i,t),r=Math.min(r,n),p=Math.max(p,n),c=Math.min(c,e),i=Math.max(i,e),r=Math.min(r,s),p=Math.max(p,s),c=Math.min(c,o),i=Math.max(i,o),new T(r,c,p-r,i-c)},d.Os=function(t){var i=this.Bb;i.reset(),this.Ca!==1&&i.scale(this.Ca);var e=this.pa;return(e.x!==0||e.y!==0)&&isFinite(e.x)&&isFinite(e.y)&&i.translate(-e.x,-e.y),Vi(t.copy(),this.Bb)};function C0(t){var i=t.isModified;t.Tw!==i&&(t.Tw=i,t.R("Modified"))}function Wv(t){return t=Qu.get(t),t!==null?new t:new yt}C.prototype.doModelChanged=function(t){var i=this;if(t.model===this.model){var e=t.change,n=t.propertyName;if(e===vn&&n[0]==="S")if(n==="StartingFirstTransaction"){var o=this;t=this.toolManager,t.mouseDownTools.each(function(l){return l.diagram=o}),t.mouseMoveTools.each(function(l){return l.diagram=o}),t.mouseUpTools.each(function(l){return l.diagram=o}),this.ld||this.hf||(this.Ik=!0,this.en&&(this.kg=!0))}else n==="StartingUndo"||n==="StartingRedo"?(t=this.animationManager,t.defaultAnimation.isAnimating&&!this.skipsUndoManager&&t.Cc(),this.R("ChangingSelection",this.selection)):n==="StartedTransaction"&&(t=this.animationManager,t.defaultAnimation.isAnimating&&!this.skipsUndoManager&&t.Cc());else if(this.aa){this.aa=!1;try{if(t.modelChange===""&&e===vn){(n==="FinishedUndo"||n==="FinishedRedo")&&(this.R("ChangedSelection",this.selection),Gi(this));var r=this.animationManager;n==="RolledBackTransaction"&&r.Cc(),this.bx(),this.Ik=!0,this.bd(),this.undoManager.transactionLevel!==0&&this.undoManager.transactionLevel!==1||Rp(r),n==="CommittedTransaction"&&this.undoManager.isJustDiscarded&&(this.Ce=Math.min(this.Ce,this.undoManager.historyIndex-1)),n!=="CommittedTransaction"&&n!=="RolledBackTransaction"||!this.undoManager.isPendingUnmodified||setTimeout(function(){i.isModified=!1},1);var s=t.isTransactionFinished;if(s&&(C0(this),this.zs.clear(),Dv(this.animationManager)),!this.Qt&&s&&this.lastInput.targetDiagram){this.Qt=!0;var h=this;ho(function(){h.currentTool.standardMouseOver(),h.Qt=!1},10)}}}finally{this.aa=!0}}}};function T0(t,i){i=i.O.s;for(var e=i.length,n=0;n<e;n++)tc(t,i[n])}function tc(t,i){if(i instanceof te){var e=i.element;if(e!==null&&e instanceof HTMLImageElement){e.Bg instanceof E&&e.Bg.add(t);var n=i.Eg;if(n!==null&&n.rq===!0&&i.diagram!==null&&i.diagram.Wn.add(i),e.gn)if(e=e.getAttribute("src")||"",n=t.Og.I(e),n===null)n=[],n.push(i),t.Og.add(e,n);else{for(t=0;t<n.length;t++)if(n[t]===i)return;n.push(i)}}}}function ic(t,i){if(i instanceof te){var e=i.element;if(e!==null&&e instanceof HTMLImageElement&&e.gn){var n=e.getAttribute("src")||"",o=t.Og.I(n);if(o!==null){for(var r=0;r<o.length;r++)if(o[r]===i){o.splice(r,1),o.length===0&&(t.Og.remove(n),e.Eq&&e.removeEventListener("load",e.Eq),e.Xp&&e.removeEventListener("error",e.Xp),delete e.Eq,delete e.Xp,e.Bg instanceof E&&e.Bg.remove(t),Ch(n));break}}}}}C.prototype.Wd=function(){this.partManager.Wd()},C.prototype.Aj=function(t,i){this.Yd.Aj(t,i)},C.prototype.Cj=function(t,i){this.Yd.Cj(t,i)},C.prototype.findPartForKey=function(t){return this.partManager.findPartForKey(t)},C.prototype.Wb=function(t){return this.partManager.Wb(t)},C.prototype.findLinkForKey=function(t){return this.partManager.findLinkForKey(t)},d=C.prototype,d.Lc=function(t){return this.partManager.Lc(t)},d.ii=function(t){return this.partManager.ii(t)},d.Kc=function(t){return this.partManager.Kc(t)},d.ls=function(t){for(var i=[],e=0;e<arguments.length;++e)i[e]=arguments[e];return this.partManager.ls.apply(this.partManager,i instanceof Array?i:st(b(i)))},d.ks=function(t){for(var i=[],e=0;e<arguments.length;++e)i[e]=arguments[e];return this.partManager.ks.apply(this.partManager,i instanceof Array?i:st(b(i)))};function Do(t){var i=t.pa,e=t.Ca;t.Rw.h(i.x,i.y,Math.max(t.Aa,0)/e,Math.max(t.ya,0)/e),t.vd=!0}function ec(t,i){t.Zi=!1;var e=t.Rp;e.D(i)||(e=e.copy(),t.Rp.assign(i),wn(t,!1),t.R("DocumentBoundsChanged",void 0,e),t.Ee=!0,t.N())}d.Va=function(){if(this.Zi){var t=T.alloc();ec(this,this.computeBounds(t)),T.free(t)}},d.rz=function(){for(var t=new E,i=this.nodes;i.next();){var e=i.value;e.isTopLevel&&t.add(e)}for(i=this.links;i.next();)e=i.value,e.isTopLevel&&t.add(e);return t.iterator},d.qz=function(){return this.ai.iterator},d.Uz=function(t){Gi(this),t&&$u(this,!0),this.ld?nc(this,!1):(this.Ik=!0,Ao(this))};function $u(t,i){for(var e=t.ai.iterator;e.next();)L0(t,e.value,i);t.layout&&(i?t.layout.isValidLayout=!1:t.layout.C())}function L0(t,i,e){if(i!==null){for(var n=i.fl.iterator;n.next();)L0(t,n.value,e);i.layout!==null&&(e?i.layout.isValidLayout=!1:i.layout.C())}}function nc(t,i){if(t.xh&&!t.kt){var e=t.aa;t.aa=!0;var n=t.undoManager.transactionLevel,o=t.layout,r=t.animationManager;try{n===0&&(t.undoManager.isInternalTransaction=!0,t.Ea("Layout")),1>=n&&!r.defaultAnimation.isAnimating&&!r.Ab&&(i||Fo(r,"Layout")),t.xh=!1;for(var s=t.ai.iterator;s.next();)j0(t,s.value,i,n);o.isValidLayout||(!i||o.isRealtime||o.isRealtime===null||n===0?(o.doLayout(t),Gi(t),o.isValidLayout=!0):t.xh=!0)}finally{i=t.undoManager.isInternalTransaction,n===0&&(t.eb("Layout"),t.undoManager.isInternalTransaction=!1),!i||n!==0&&n!==1||Rp(r),t.aa=e}}}function j0(t,i,e,n){if(i!==null){for(var o=i.fl.iterator;o.next();)j0(t,o.value,e,n);o=i.layout,o===null||o.isValidLayout||(!e||o.isRealtime||n===0?(i.rh=!i.location.w(),o.doLayout(i),i.C(32),Jp(t,i),o.isValidLayout=!0):t.xh=!0)}}d.yz=function(){for(var t=new V,i=this.nodes;i.next();){var e=i.value;e.isTopLevel&&e.kh()===null&&t.add(e)}return t.iterator};function Jv(t){function i(o){var r=o.toLowerCase(),s=new V;e.add(o,s),e.add(r,s),n.add(o,o),n.add(r,o)}var e=new _,n=new _;i("InitialAnimationStarting"),i("AnimationStarting"),i("AnimationFinished"),i("BackgroundSingleClicked"),i("BackgroundDoubleClicked"),i("BackgroundContextClicked"),i("ClipboardChanged"),i("ClipboardPasted"),i("DocumentBoundsChanged"),i("ExternalObjectsDropped"),i("GainedFocus"),i("InitialLayoutCompleted"),i("LayoutCompleted"),i("LinkDrawn"),i("LinkRelinked"),i("LinkReshaped"),i("LostFocus"),i("Modified"),i("ObjectSingleClicked"),i("ObjectDoubleClicked"),i("ObjectContextClicked"),i("PartCreated"),i("PartResized"),i("PartRotated"),i("SelectionMoved"),i("SelectionCopied"),i("SelectionDeleting"),i("SelectionDeleted"),i("SelectionGrouped"),i("SelectionUngrouped"),i("ChangingSelection"),i("ChangedSelection"),i("SubGraphCollapsed"),i("SubGraphExpanded"),i("TextEdited"),i("TreeCollapsed"),i("TreeExpanded"),i("ViewportBoundsChanged"),i("InvalidateDraw"),t.iw=e,t.hw=n}function F0(t,i){var e=t.hw.I(i);return e!==null?e:t.hw.I(i.toLowerCase())}function oc(t,i){var e=t.iw.I(i);if(e!==null||(e=t.iw.I(i.toLowerCase()),e!==null))return e;O("Unknown DiagramEvent name: "+i)}d.Bj=function(t,i){return t=oc(this,t),t!==null&&t.add(i),this},d.$l=function(t,i){t=oc(this,t),t!==null&&t.remove(i)},d.R=function(t,i,e){var n=oc(this,t),o=new as;if(o.diagram=this,t=F0(this,t),t!==null&&(o.name=t),i!==void 0&&(o.subject=i),e!==void 0&&(o.parameter=e),i=n.length,i===1)n.M(0)(o);else if(i!==0)for(n=n.Fa(),e=0;e<i;e++)(0,n[e])(o)};function A0(t){if(t.animationManager.isTicking)return!1;var i=t.currentTool;return i===t.toolManager.findTool("Dragging")?!t.Lr||i.isComplexRoutingRealtime:!0}d.Xj=function(t,i){return rc(this,!1,null,i||null).Xj(t.x,t.y,t.width,t.height)},C.prototype.computeOccupiedArea=function(t){return this.isVirtualized?this.viewportBounds.copy():this.Zi?M0(this,t):t.assign(this.documentBounds)};function rc(t,i,e,n){var o=t.Xh;if(o===null&&(t.Xh=o=new Wl(t.avoidanceCellSize)),o.us||o.group!==e||o.Yx!==n){if(o.Hx=Math.max(o.Ns+1,Math.floor(t.avoidanceLimit/t.avoidanceCellSize.width)),o.Ix=Math.max(o.Ns+1,Math.floor(t.avoidanceLimit/t.avoidanceCellSize.height)),e!==null&&(e=O0(t,e)),e===null){i=T.alloc(),t.computeOccupiedArea(i),i.Bc(100,100),o.initialize(i);for(var r=t.nodes;r.next();){var s=r.value,h=s.layer;h!==null&&h.visible&&!h.isTemporary&&sc(t,s,n,i)}T.free(i)}else{for(0<e.memberParts.count&&(i=t.computePartsBounds(e.memberParts,!1),i.Bc(20,20),o.initialize(i)),i=T.alloc(),r=e.memberParts;r.next();)s=r.value,s instanceof B&&sc(t,s,n,i);T.free(i)}o.group=e,o.Yx=n,o.us=!1}else i&&fm(o);return o}function O0(t,i){return i.avoidable&&!i.isLinkLabel?i:i.containingGroup!==null?O0(t,i.containingGroup):null}function sc(t,i,e,n){if(i!==e&&i.isVisible()){if(i.avoidable&&!i.isLinkLabel){i=i.getAvoidableRect(n),t=t.Xh;var o=i.x,r=i.y;if(Oh(t,o,r))for(e=(r-t.Od)/t.tc|0,n=Math.min((o+i.width-t.Nd)/t.sc|0,t.di),i=Math.min((r+i.height-t.Od)/t.tc|0,t.ei),o=(o-t.Nd)/t.sc|0;o<=n;o++)if(r=t.bc[o],r.fill)r.fill(Uo,e,i+1);else for(var s=e;s<=i;s++)r[s]=Uo}else if(i instanceof Q)for(i=i.memberParts;i.next();)o=i.value,o instanceof B&&sc(t,o,e,n)}}function hc(t,i){t.Xh===null||t.Xh.us||i!==void 0&&(!i.avoidable||i.isLinkLabel)||(t.Xh.us=!0)}C.prototype.fs=function(t){this.vp.assign(t),this.computeAutoScrollPosition(this.vp).Xa(this.position)?this.ug():I0(this)};function I0(t){t.uk===-1&&(t.uk=ho(function(){if(t.uk!==-1&&(t.ug(),t.lastInput.event!==null)){var i=t.computeAutoScrollPosition(t.vp);i.Xa(t.position)||(t.position=i,t.lastInput.documentPoint=t.Os(t.vp),t.doMouseMove(),t.Zi=!0,i=T.alloc(),t.computeBounds(i),i.ed(t.documentBounds),ec(t,i),T.free(i),t.Fc=!0,t.bd(),I0(t))}},t.tp))}C.prototype.ug=function(){this.uk!==-1&&(J.clearTimeout(this.uk),this.uk=-1)},C.prototype.computeAutoScrollPosition=function(t){var i=this.position,e=this.wp;if(0>=e.top&&0>=e.left&&0>=e.right&&0>=e.bottom)return i;var n=this.viewportBounds,o=this.scale;n=T.allocAt(0,0,n.width*o,n.height*o);var r=x.allocAt(0,0);if(t.x>=n.x&&t.x<n.x+e.left&&this.allowHorizontalScroll){var s=Math.max(this.scrollHorizontalLineChange,1);s|=0,r.x-=s,t.x<n.x+e.left/2&&(r.x-=s),t.x<n.x+e.left/4&&(r.x-=4*s)}else t.x<=n.x+n.width&&t.x>n.x+n.width-e.right&&this.allowHorizontalScroll&&(s=Math.max(this.scrollHorizontalLineChange,1),s|=0,r.x+=s,t.x>n.x+n.width-e.right/2&&(r.x+=s),t.x>n.x+n.width-e.right/4&&(r.x+=4*s));return t.y>=n.y&&t.y<n.y+e.top&&this.allowVerticalScroll?(s=Math.max(this.scrollVerticalLineChange,1),s|=0,r.y-=s,t.y<n.y+e.top/2&&(r.y-=s),t.y<n.y+e.top/4&&(r.y-=4*s)):t.y<=n.y+n.height&&t.y>n.y+n.height-e.bottom&&this.allowVerticalScroll&&(s=Math.max(this.scrollVerticalLineChange,1),s|=0,r.y+=s,t.y>n.y+n.height-e.bottom/2&&(r.y+=s),t.y>n.y+n.height-e.bottom/4&&(r.y+=4*s)),r.Xa(lo)||(i=new x(i.x+r.x/o,i.y+r.y/o)),T.free(n),x.free(r),i},d=C.prototype,d.Bs=function(){return null},d.av=function(){return null},d.$r=function(t,i){this.pj.add(t,i)},d.Fu=function(t){(this.Pw=t)||this.nodes.each(function(i){i instanceof Q&&(i.Zp=null)})};function D0(t,i,e){function n(){var a=+new Date;for(r=!0,s.reset();s.next();)if(!s.value[0].$k){r=!1;break}r||a-u>l?i(e,o,h):J.requestAnimationFrame(n)}for(var o=e.callback,r=!0,s=t.Og.iterator;s.next();)if(!s.value[0].$k){r=!1;break}if(typeof o!="function"||r)return i(e,o,t);var h=t,l=e.callbackTimeout||300,u=+new Date;return J.requestAnimationFrame(function(){n()}),null}d.Wz=function(t){return rn?(t===void 0&&(t={}),t.returnType="Image",this.Jx(t)):null},d.Jx=function(t){return t===void 0&&(t={}),D0(this,this.Xz,t)},d.Xz=function(t,i,e){var n=E0(e,t,"canvas",null);if(n===null)return null;e=n.Z.canvas;var o=null;if(e!==null)switch(o=t.returnType,o===void 0?o="string":o=o.toLowerCase(),o){case ah+"data":o=n.getImageData(0,0,e.width,e.height);break;case ah:n=(t.document||document).createElement("img"),n.src=e.toDataURL(t.type,t.details),o=n;break;case"blob":return typeof i!="function"&&O('Error: Diagram.makeImageData called with "returnType: toBlob", but no required "callback" function property defined.'),typeof e.toBlob=="function"?(e.toBlob(i,t.type,t.details),"toBlob"):(i(null),null);default:o=e.toDataURL(t.type,t.details)}return typeof i=="function"?(i(o),null):o};function E0(t,i,e,n){if(t.animationManager.Cc(),t.bd(),t.ta===null)return null;typeof i!="object"&&O("properties argument must be an Object.");var o=i.size||null,r=i.scale||null;i.scale!==void 0&&isNaN(i.scale)&&(r="NaN");var s=i.maxSize;i.maxSize===void 0&&(s=e==="SVG"?new Z(1/0,1/0):new Z(2e3,2e3));var h=i.position||null,l=i.parts||null,u=i.padding===void 0?1:i.padding,a=i.background||null,f=i.omitTemporary;f===void 0&&(f=!0);var p=i.document||document,c=i.elementFinished||null,g=i.showTemporary;g===void 0&&(g=!f),i=i.showGrid,i===void 0&&(i=g),o!==null&&isNaN(o.width)&&isNaN(o.height)&&(o=null),typeof u=="number"?u=new gt(u):u instanceof gt||O("MakeImage padding must be a Margin or a number."),u.left=Math.max(u.left,0),u.right=Math.max(u.right,0),u.top=Math.max(u.top,0),u.bottom=Math.max(u.bottom,0),t.ib.Vc(!0),f=new Je(null,p,void 0,!0);var y=f.context;if(!(o||r||l||h))return f.width=t.Aa+Math.ceil(u.left+u.right),f.height=t.ya+Math.ceil(u.top+u.bottom),e==="SVG"?n===null?null:(n.resize(f.width,f.height,f.width,f.height),n.ownerDocument=p,n.gs=c,Ju(t,n.context,u,new Z(f.width,f.height),t.Ca,t.pa,l,a,g,i),n.context):(t.Wm=!1,Ju(t,y,u,new Z(f.width,f.height),t.Ca,t.pa,l,a,g,i),t.Wm=!0,f.context);var v=t.Op,m=t.documentBounds.copy();if(m.Fv(t.zb),g)for(var w=t.Wa.s,M=w.length,S=0;S<M;S++){var N=w[S];if(N.visible&&N.isTemporary){N=N.Pa.s;for(var k=N.length,D=0;D<k;D++){var z=N[D];z.isInDocumentBounds&&z.isVisible()&&(z=z.actualBounds,z.w()&&m.ed(z))}}}if(w=new x(m.x,m.y),l!==null){for(M=new T(0,0,0,0),S=!0,N=l.iterator,N.reset();N.next();)k=N.value,k instanceof U&&(D=k.layer,D!==null&&!D.visible||D!==null&&!g&&D.isTemporary||!k.isVisible()||(k=k.actualBounds,k.w()&&(S?(S=!1,M.assign(k)):M.ed(k))));m.width=M.width,m.height=M.height,w.x=M.x,w.y=M.y}return h!==null&&h.w()&&(w=h,r||(r=v)),M=h=0,u!==null&&(h=u.left+u.right,M=u.top+u.bottom),S=N=0,o!==null&&(N=o.width,S=o.height,isFinite(N)&&(N=Math.max(0,N-h)),isFinite(S)&&(S=Math.max(0,S-M))),o!==null&&r!==null?(r==="NaN"&&(r=v),o.w()?(o=N,m=S):isNaN(S)?(o=N,m=m.height*r):(o=m.width*r,m=S)):o!==null?o.w()?(r=Math.min(N/m.width,S/m.height),o=N,m=S):isNaN(S)?(r=N/m.width,o=N,m=m.height*r):(r=S/m.height,o=m.width*r,m=S):r!==null?r==="NaN"&&s.w()?(r=Math.min((s.width-h)/m.width,(s.height-M)/m.height),r>v?(r=v,o=m.width,m=m.height):(o=s.width,m=s.height)):(o=m.width*r,m=m.height*r):(r=v,o=m.width,m=m.height),u!==null?(o+=h,m+=M):u=new gt(0),s!==null&&(v=s.width,s=s.height,isNaN(v)&&(v=2e3),isNaN(s)&&(s=2e3),isFinite(v)&&(o=Math.min(o,v)),isFinite(s)&&(m=Math.min(m,s))),f.width=Math.ceil(o),f.height=Math.ceil(m),e==="SVG"?n===null?null:(n.resize(f.width,f.height,f.width,f.height),n.ownerDocument=p,n.gs=c,Ju(t,n.context,u,new Z(Math.ceil(o),Math.ceil(m)),r,w,l,a,g,i),n.context):(t.Wm=!1,Ju(t,y,u,new Z(Math.ceil(o),Math.ceil(m)),r,w,l,a,g,i),t.Wm=!0,f.context)}tt.Object.defineProperties(C.prototype,{renderer:{get:function(){return this.ml},set:function(t){this instanceof Wn||(t===""&&(t="default"),t=t.toLowerCase(),t!==this.ml&&(this.ml=t,t==="default"||t==="canvas"?(t=this.pj.get("svg"),t!==null&&t.Oa.remove(),this.ta&&(this.ib=this.ta.context)):t==="svg"?(this.pj.contains("svg")?t=this.pj.get("svg"):(t=new En(this,J.document),this.$r("svg",t)),this.div!==null&&this.div.appendChild(t.Oa),this.ib=t.context,this.ta&&(this.ta.context.setTransform(this.Nb,0,0,this.Nb,0,0),this.ta.context.clearRect(0,0,this.Aa,this.ya))):t!=="debug"||this.pj.contains("SVG")||(t=new En(this,J.document),this.$r("SVG",t),t.Oa.style.backgroundColor="whitesmoke",this.div!==null&&this.div.after(t.Oa)),this.gk()))}},div:{get:function(){return this.Ka},set:function(t){if(this.Ka!==t){var i=this.Ka;i!==null?(i.H=void 0,i.goDiagram=void 0,i.go=void 0,i.innerHTML="",this.ta!==null&&(i=this.ta.Oa,this.removeEventListener(i,"pointermove",this.ck,!1),this.removeEventListener(i,"pointerdown",this.ui,!1),this.removeEventListener(i,"pointerup",this.ek,!1),this.removeEventListener(i,"pointerout",this.dk,!1),this.removeEventListener(i,"pointercancel",this.bk,!1),this.ta.mx()),this.nl&&(this.nl.disconnect(),this.nl=null),i=this.toolManager,i!==null&&(i.mouseDownTools.each(function(e){e.cancelWaitAfter()}),i.mouseMoveTools.each(function(e){e.cancelWaitAfter()}),i.mouseUpTools.each(function(e){e.cancelWaitAfter()})),i.cancelWaitAfter(),this.currentTool.doCancel(),this.ta=null,this.removeEventListener(J,"resize",this.Ov,!1),this.removeEventListener(J,"wheel",this.Zj,!0),rh===this&&(rh=null)):this.ui===null&&(this.hf=!1),this.Ka=null,t!==null&&((i=t.H)&&(i.div=null),Gp(this,t),this.gk())}}},$w:{get:function(){return this.Rq}},pi:{get:function(){return this.hf}},draggedLink:{get:function(){return this.mt},set:function(t){this.mt!==t&&(this.mt=t,t!==null&&(this.Ut=t.fromPort,this.Vt=t.toPort))}},Mx:{get:function(){return this.Ut},set:function(t){this.Ut=t}},Nx:{get:function(){return this.Vt},set:function(t){this.Vt=t}},animationManager:{get:function(){return this.Yd}},undoManager:{get:function(){return this.dc.undoManager}},skipsUndoManager:{get:function(){return this.Wg},set:function(t){this.Wg=t,this.dc.skipsUndoManager=t}},delaysLayout:{get:function(){return this.kt},set:function(t){this.kt=t}},opacity:{get:function(){return this.pb},set:function(t){var i=this.pb;i!==t&&((0>t||1<t)&&jt(t,"0 <= value <= 1",C,"opacity"),this.pb=t,this.g("opacity",i,t),this.N())}},validCycle:{get:function(){return this.vu},set:function(t){var i=this.vu;i!==t&&(this.vu=t,this.g("validCycle",i,t))}},layers:{get:function(){return this.Wa.iterator}},isModelReadOnly:{get:function(){var t=this.dc;return t===null?!1:t.isReadOnly},set:function(t){var i=this.dc;i!==null&&(i.isReadOnly=t)}},isReadOnly:{get:function(){return this.Gg},set:function(t){var i=this.Gg;i!==t&&(this.Gg=t,this.g("isReadOnly",i,t))}},isEnabled:{get:function(){return this.Jd},set:function(t){var i=this.Jd;i!==t&&(this.Jd=t,this.g("isEnabled",i,t))}},allowClipboard:{get:function(){return this.Ts},set:function(t){var i=this.Ts;i!==t&&(this.Ts=t,this.g("allowClipboard",i,t))}},allowCopy:{get:function(){return this.Fi},set:function(t){var i=this.Fi;i!==t&&(this.Fi=t,this.g("allowCopy",i,t))}},allowDelete:{get:function(){return this.Gi},set:function(t){var i=this.Gi;i!==t&&(this.Gi=t,this.g("allowDelete",i,t))}},allowDragOut:{get:function(){return this.Us},set:function(t){var i=this.Us;i!==t&&(this.Us=t,this.g("allowDragOut",i,t))}},allowDrop:{get:function(){return this.Vs},set:function(t){var i=this.Vs;i!==t&&(this.Vs=t,this.g("allowDrop",i,t))}},allowTextEdit:{get:function(){return this.Pi},set:function(t){var i=this.Pi;i!==t&&(this.Pi=t,this.g("allowTextEdit",i,t))}},allowGroup:{get:function(){return this.Hi},set:function(t){var i=this.Hi;i!==t&&(this.Hi=t,this.g("allowGroup",i,t))}},allowUngroup:{get:function(){return this.Qi},set:function(t){var i=this.Qi;i!==t&&(this.Qi=t,this.g("allowUngroup",i,t))}},allowInsert:{get:function(){return this.Xs},set:function(t){var i=this.Xs;i!==t&&(this.Xs=t,this.g("allowInsert",i,t))}},allowLink:{get:function(){return this.Ii},set:function(t){var i=this.Ii;i!==t&&(this.Ii=t,this.g("allowLink",i,t))}},allowRelink:{get:function(){return this.Ki},set:function(t){var i=this.Ki;i!==t&&(this.Ki=t,this.g("allowRelink",i,t))}},allowMove:{get:function(){return this.Ji},set:function(t){var i=this.Ji;i!==t&&(this.Ji=t,this.g("allowMove",i,t))}},allowReshape:{get:function(){return this.Li},set:function(t){var i=this.Li;i!==t&&(this.Li=t,this.g("allowReshape",i,t))}},allowResize:{get:function(){return this.Mi},set:function(t){var i=this.Mi;i!==t&&(this.Mi=t,this.g("allowResize",i,t))}},allowRotate:{get:function(){return this.Ni},set:function(t){var i=this.Ni;i!==t&&(this.Ni=t,this.g("allowRotate",i,t))}},allowSelect:{get:function(){return this.Oi},set:function(t){var i=this.Oi;i!==t&&(this.Oi=t,this.g("allowSelect",i,t))}},allowUndo:{get:function(){return this.Ys},set:function(t){var i=this.Ys;i!==t&&(this.Ys=t,this.g("allowUndo",i,t))}},allowZoom:{get:function(){return this.$s},set:function(t){var i=this.$s;i!==t&&(this.$s=t,this.g("allowZoom",i,t))}},hasVerticalScrollbar:{get:function(){return this.mn},set:function(t){var i=this.mn;i!==t&&(this.mn=t,this.Ee=!0,this.N(),this.g("hasVerticalScrollbar",i,t),wn(this,!1))}},hasHorizontalScrollbar:{get:function(){return this.ln},set:function(t){var i=this.ln;i!==t&&(this.ln=t,this.Ee=!0,this.N(),this.g("hasHorizontalScrollbar",i,t),wn(this,!1))}},allowHorizontalScroll:{get:function(){return this.Ws},set:function(t){var i=this.Ws;i!==t&&(this.Ws=t,this.g("allowHorizontalScroll",i,t),wn(this,!1))}},allowVerticalScroll:{get:function(){return this.Zs},set:function(t){var i=this.Zs;i!==t&&(this.Zs=t,this.g("allowVerticalScroll",i,t),wn(this,!1))}},scrollHorizontalLineChange:{get:function(){return this.hu},set:function(t){var i=this.hu;i!==t&&(0>t&&jt(t,">= 0",C,"scrollHorizontalLineChange"),this.hu=t,this.g("scrollHorizontalLineChange",i,t))}},scrollVerticalLineChange:{get:function(){return this.lu},set:function(t){var i=this.lu;i!==t&&(0>t&&jt(t,">= 0",C,"scrollVerticalLineChange"),this.lu=t,this.g("scrollVerticalLineChange",i,t))}},lastInput:{get:function(){return this.cj},set:function(t){this.cj=t}},previousInput:{get:function(){return this.Qg},set:function(t){this.Qg=t}},firstInput:{get:function(){return this.aq},set:function(t){this.aq=t}},currentCursor:{get:function(){return this.ht},set:function(t){if(t===""&&(t=this.Np),this.ht!==t){var i=this.ta,e=this.Ka;if(i!==null&&e!==null){this.ht=t;var n=i.style.cursor;i.style.cursor=t,e.style.cursor=t,i.style.cursor===n&&(i.style.cursor="-webkit-"+t,e.style.cursor="-webkit-"+t,i.style.cursor===n&&(i.style.cursor="-moz-"+t,e.style.cursor="-moz-"+t,i.style.cursor===n&&(i.style.cursor=t,e.style.cursor=t)))}}}},defaultCursor:{get:function(){return this.Np},set:function(t){t===""&&(t="auto");var i=this.Np;i!==t&&(this.Np=t,this.g("defaultCursor",i,t))}},click:{get:function(){return this.zh},set:function(t){var i=this.zh;i!==t&&(this.zh=t,this.g("click",i,t))}},doubleClick:{get:function(){return this.Fh},set:function(t){var i=this.Fh;i!==t&&(this.Fh=t,this.g("doubleClick",i,t))}},contextClick:{get:function(){return this.Bh},set:function(t){var i=this.Bh;i!==t&&(this.Bh=t,this.g("contextClick",i,t))}},mouseOver:{get:function(){return this.Qh},set:function(t){var i=this.Qh;i!==t&&(this.Qh=t,this.g("mouseOver",i,t))}},mouseHover:{get:function(){return this.Oh},set:function(t){var i=this.Oh;i!==t&&(this.Oh=t,this.g("mouseHover",i,t))}},mouseHold:{get:function(){return this.Nh},set:function(t){var i=this.Nh;i!==t&&(this.Nh=t,this.g("mouseHold",i,t))}},mouseDragOver:{get:function(){return this.Pt},set:function(t){var i=this.Pt;i!==t&&(this.Pt=t,this.g("mouseDragOver",i,t))}},mouseDrop:{get:function(){return this.Lh},set:function(t){var i=this.Lh;i!==t&&(this.Lh=t,this.g("mouseDrop",i,t))}},handlesDragDropForTopLevelParts:{get:function(){return this.wt},set:function(t){var i=this.wt;i!==t&&(this.wt=t,this.g("handlesDragDropForTopLevelParts",i,t))}},mouseEnter:{get:function(){return this.Mh},set:function(t){var i=this.Mh;i!==t&&(this.Mh=t,this.g("mouseEnter",i,t))}},mouseLeave:{get:function(){return this.Ph},set:function(t){var i=this.Ph;i!==t&&(this.Ph=t,this.g("mouseLeave",i,t))}},toolTip:{get:function(){return this.$h},set:function(t){var i=this.$h;i!==t&&(this.$h=t,this.g("toolTip",i,t))}},contextMenu:{get:function(){return this.Ch},set:function(t){var i=this.Ch;i!==t&&(this.Ch=t,this.g("contextMenu",i,t))}},commandHandler:{get:function(){return this.nb},set:function(t){this.nb!==t&&(this.nb=t,t.Xe(this))}},toolManager:{get:function(){return this.te},set:function(t){this.te!==t&&(this.te=t,t.diagram=this)}},defaultTool:{get:function(){return this.ob},set:function(t){var i=this.ob;i!==t&&(this.ob=t,t.diagram=this,this.currentTool===i&&(this.currentTool=t))}},currentTool:{get:function(){return this.hb},set:function(t){var i=this.hb;i&&(i.isActive&&i.doDeactivate(),i.cancelWaitAfter(),i.doStop()),t===null&&(t=this.defaultTool),t!==null&&(this.hb=t,t.diagram=this,t.doStart())}},selection:{get:function(){return this.Hw}},maxSelectionCount:{get:function(){return this.Mt},set:function(t){var i=this.Mt;if(i!==t)if(0<=t&&!isNaN(t)){if(this.Mt=t,this.g("maxSelectionCount",i,t),!this.undoManager.isUndoingRedoing&&(t=this.selection.count-t,0<t)){this.R("ChangingSelection",this.selection),i=this.selection.Fa();for(var e=0;e<t;e++)i[e].isSelected=!1;this.R("ChangedSelection",this.selection)}}else jt(t,">= 0",C,"maxSelectionCount")}},nodeSelectionAdornmentTemplate:{get:function(){return this.Rt},set:function(t){var i=this.Rt;i!==t&&(this.Rt=t,this.g("nodeSelectionAdornmentTemplate",i,t))}},groupSelectionAdornmentTemplate:{get:function(){return this.vt},set:function(t){var i=this.vt;i!==t&&(this.vt=t,this.g("groupSelectionAdornmentTemplate",i,t))}},linkSelectionAdornmentTemplate:{get:function(){return this.Jt},set:function(t){var i=this.Jt;i!==t&&(this.Jt=t,this.g("linkSelectionAdornmentTemplate",i,t))}},highlighteds:{get:function(){return this.nw}},isModified:{get:function(){var t=this.undoManager;return t.isEnabled?t.currentTransaction!==null?!0:this.qn&&this.Ce!==t.historyIndex:this.qn},set:function(t){if(this.qn!==t){this.qn=t;var i=this.undoManager;!t&&i.isEnabled&&(this.Ce=i.historyIndex),t||C0(this)}}},model:{get:function(){return this.dc},set:function(t){var i=this.dc;if(i!==t){this.currentTool.doCancel(),i&&i.undoManager!==t.undoManager&&i.undoManager.isInTransaction&&O("Do not replace a Diagram.model while a transaction is in progress."),this.animationManager.Cc(!0);var e=m0(this,!0);this.hf=!1,this.en=!0,this.Ce=-2,this.kg=!1;var n=this.wb;this.wb=!0,Fo(this.animationManager,"Model"),i&&(this.pf!==null&&this.pf.each(function(r){return i.hk(r)}),i.hk(this.Oc)),this.dc=t,this.partManager=Wv(this.dc.type);for(var o=0;o<e.length;o++)this.add(e[o]);t.Pe(this.Ib),this.partManager.addAllModeledParts(),t.hk(this.Ib),t.Pe(this.Oc),this.pf!==null&&this.pf.each(function(r){return t.Pe(r)}),this.wb=n,this.Ya(),this.wb||this.N(),i&&t.undoManager.copyProperties(i.undoManager)}}},aa:{get:function(){return this.rw},set:function(t){this.rw=t}},zs:{get:function(){return this.sy}},skipsModelSourceBindings:{get:function(){return this.Iw},set:function(t){this.Iw=t}},Ms:{get:function(){return this.nu},set:function(t){this.nu=t}},nodeTemplate:{get:function(){return this.Lg.I("")},set:function(t){var i=this.Lg.I("");i!==t&&(this.Lg.add("",t),this.g("nodeTemplate",i,t),this.undoManager.isUndoingRedoing||this.Wd())}},nodeTemplateMap:{get:function(){return this.Lg},set:function(t){var i=this.Lg;i!==t&&(this.Lg=t,this.g("nodeTemplateMap",i,t),this.undoManager.isUndoingRedoing||this.Wd())}},groupTemplate:{get:function(){return this.Yi.I("")},set:function(t){var i=this.Yi.I("");i!==t&&(this.Yi.add("",t),this.g("groupTemplate",i,t),this.undoManager.isUndoingRedoing||this.Wd())}},groupTemplateMap:{get:function(){return this.Yi},set:function(t){var i=this.Yi;i!==t&&(this.Yi=t,this.g("groupTemplateMap",i,t),this.undoManager.isUndoingRedoing||this.Wd())}},linkTemplate:{get:function(){return this.Kh.I("")},set:function(t){var i=this.Kh.I("");i!==t&&(this.Kh.add("",t),this.g("linkTemplate",i,t),this.undoManager.isUndoingRedoing||this.Wd())}},linkTemplateMap:{get:function(){return this.Kh},set:function(t){var i=this.Kh;i!==t&&(this.Kh=t,this.g("linkTemplateMap",i,t),this.undoManager.isUndoingRedoing||this.Wd())}},isMouseCaptured:{get:function(){return this.qw},set:function(t){var i=this.ta;i!==null&&(i=i.Oa,i instanceof SVGElement||(t?(this.lastInput.bubbles=!1,this.removeEventListener(i,"pointermove",this.ck,!1),this.removeEventListener(i,"pointerdown",this.ui,!1),this.removeEventListener(i,"pointerup",this.ek,!1),this.removeEventListener(i,"pointerout",this.dk,!1),this.removeEventListener(i,"pointercancel",this.bk,!1),this.addEventListener(J,"pointermove",this.ck,!0),this.addEventListener(J,"pointerdown",this.ui,!0),this.addEventListener(J,"pointerup",this.ek,!0),this.addEventListener(J,"pointerout",this.dk,!0),this.addEventListener(J,"pointercancel",this.bk,!0),this.removeEventListener(i,"wheel",this.Zj,!1),this.addEventListener(J,"wheel",this.Zj,!0),this.addEventListener(J,"selectstart",this.preventDefault,!1)):(this.removeEventListener(J,"pointermove",this.ck,!0),this.removeEventListener(J,"pointerdown",this.ui,!0),this.removeEventListener(J,"pointerup",this.ek,!0),this.removeEventListener(J,"pointerout",this.dk,!0),this.removeEventListener(J,"pointercancel",this.bk,!0),this.addEventListener(i,"pointermove",this.ck,!1),this.addEventListener(i,"pointerdown",this.ui,!1),this.addEventListener(i,"pointerup",this.ek,!1),this.addEventListener(i,"pointerout",this.dk,!1),this.addEventListener(i,"pointercancel",this.bk,!1),this.removeEventListener(J,"wheel",this.Zj,!0),this.removeEventListener(J,"selectstart",this.preventDefault,!1),this.addEventListener(i,"wheel",this.Zj,!1)),this.qw=t))}},position:{get:function(){return this.pa},set:function(t){var i=x.alloc().assign(this.pa);if(!i.D(t)){var e=this.viewportBounds.copy();this.pa.assign(t),n0(this.animationManager,i,this.pa),this.wb||this.ta===null&&!this.vo.w()?Do(this):(this.wb=!0,t=this.scale,Kp(this,this.Rp,this.Aa/t,this.ya/t,this.yk,!1),this.wb=!1),this.wb||this.onViewportBoundsChanged(e,this.viewportBounds,this.Ca,!1)}x.free(i)}},initialPosition:{get:function(){return this.yt},set:function(t){this.yt.D(t)||(this.yt=t.J())}},initialScale:{get:function(){return this.zt},set:function(t){this.zt!==t&&(this.zt=t)}},grid:{get:function(){return this.fe===null&&(this.fe=w0(this)),this.fe},set:function(t){var i=this.fe;if(i!==t){i===null&&(i=this.fe=w0(this)),t.type!==j.Grid&&O("Diagram.grid must be a Panel of type Panel.Grid");var e=i.panel;e!==null&&e.remove(i),this.fe=t,t.name="GRID",e!==null&&e.add(t),Io(this),this.N(),this.g("grid",i,t)}}},viewportBounds:{get:function(){return this.Rw}},viewSize:{get:function(){return this.vo},set:function(t){var i=this.viewSize;i.D(t)||(this.vo=t=t.J(),this.ya=this.Aa=0,t.w()?(this.Aa=t.width,this.ya=t.height):this.Ka!==null&&(this.Aa=this.Ka.clientWidth||1,this.ya=this.Ka.clientHeight||1),Do(this),this.Ya(),this.g("viewSize",i,t),this.redraw())}},fixedBounds:{get:function(){return this.tt},set:function(t){var i=this.tt;i.D(t)||(t.width!==-1/0&&t.height!==1/0&&t.height!==-1/0||O("fixedBounds width/height must not be Infinity"),this.tt=t=t.J(),this.Ya(),this.g("fixedBounds",i,t))}},scrollMargin:{get:function(){return this.rj},set:function(t){typeof t=="number"&&(t=new gt(t));var i=this.rj;i.D(t)||(this.rj=t=t.J(),this.g("scrollMargin",i,t),this.gk())}},scrollMode:{get:function(){return this.sj},set:function(t){var i=this.sj;i!==t&&(this.sj=t,t===Br&&wn(this,!1),this.g("scrollMode",i,t),this.Ee=!0,this.N())}},scrollsPageOnFocus:{get:function(){return this.mu},set:function(t){var i=this.mu;i!==t&&(this.mu=t,this.g("scrollsPageOnFocus",i,t))}},positionComputation:{get:function(){return this.Yt},set:function(t){var i=this.Yt;i!==t&&(this.Yt=t,wn(this,!1),this.g("positionComputation",i,t))}},scaleComputation:{get:function(){return this.eu},set:function(t){var i=this.eu;i!==t&&(this.eu=t,k0(this,this.scale,this.scale),this.g("scaleComputation",i,t))}},documentBounds:{get:function(){return this.Rp}},isVirtualized:{get:function(){return this.Ht},set:function(t){var i=this.Ht;i!==t&&(this.Ht=t,this.g("isVirtualized",i,t))}},scale:{get:function(){return this.Ca},set:function(t){var i=this.Ca;i!==t&&k0(this,i,t)}},defaultScale:{get:function(){return this.Op},set:function(t){this.Op=t}},autoScale:{get:function(){return this.yh},set:function(t){var i=this.yh;i!==t&&(this.yh=t,this.g("autoScale",i,t),t!==Oe&&wn(this,!1))}},initialAutoScale:{get:function(){return this.Fg},set:function(t){var i=this.Fg;i!==t&&(this.Fg=t,this.g("initialAutoScale",i,t))}},initialViewportSpot:{get:function(){return this.At},set:function(t){var i=this.At;i!==t&&(t.sb()||O("initialViewportSpot must be a specific Spot: "+t),this.At=t,this.g("initialViewportSpot",i,t))}},initialDocumentSpot:{get:function(){return this.xt},set:function(t){var i=this.xt;i!==t&&(t.sb()||O("initialViewportSpot must be a specific Spot: "+t),this.xt=t,this.g("initialDocumentSpot",i,t))}},minScale:{get:function(){return this.Nt},set:function(t){var i=this.Nt;i!==t&&(0<t?(this.Nt=t,this.g("minScale",i,t),t>this.scale&&(this.scale=t)):jt(t,"> 0",C,"minScale"))}},maxScale:{get:function(){return this.Lt},set:function(t){var i=this.Lt;i!==t&&(0<t?(this.Lt=t,this.g("maxScale",i,t),t<this.scale&&(this.scale=t)):jt(t,"> 0",C,"maxScale"))}},zoomPoint:{get:function(){return this.yu},set:function(t){this.yu.D(t)||(this.yu=t=t.J())}},contentAlignment:{get:function(){return this.yk},set:function(t){var i=this.yk;i.D(t)||(this.yk=t=t.J(),this.g("contentAlignment",i,t),wn(this,!1))}},initialContentAlignment:{get:function(){return this.oq},set:function(t){var i=this.oq;i.D(t)||(this.oq=t=t.J(),this.g("initialContentAlignment",i,t))}},padding:{get:function(){return this.zb},set:function(t){typeof t=="number"&&(t=new gt(t));var i=this.zb;i.D(t)||(this.zb=t=t.J(),this.Ya(),this.g("padding",i,t))}},partManager:{get:function(){return this.Pc},set:function(t){var i=this.Pc;i!==t&&(t.diagram!==null&&O("Cannot share PartManagers between Diagrams: "+t.toString()),i&&i.Xe(null),this.Pc=t,t.Xe(this))}},nodes:{get:function(){return this.partManager.nodes.iterator}},links:{get:function(){return this.partManager.links.iterator}},parts:{get:function(){return this.partManager.parts.iterator}},layout:{get:function(){return this.Sc},set:function(t){var i=this.Sc;i!==t&&(this.Sc=t,t.diagram=this,t.group=null,this.xh=!0,this.g("layout",i,t),this.ac())}},isTreePathToChildren:{get:function(){return this.Gt},set:function(t){var i=this.Gt;if(i!==t&&(this.Gt=t,this.g("isTreePathToChildren",i,t),!this.undoManager.isUndoingRedoing))for(t=this.nodes;t.next();)Bl(t.value)}},treeCollapsePolicy:{get:function(){return this.tu},set:function(t){var i=this.tu;i!==t&&(t!==gs&&t!==ac&&t!==fc&&O("Unknown Diagram.treeCollapsePolicy: "+t),this.tu=t,this.g("treeCollapsePolicy",i,t))}},Ue:{get:function(){return this.pw},set:function(t){this.pw=t}},avoidanceCellSize:{get:function(){return this.aw},set:function(t){this.Xh=null,this.aw=new Z(Math.max(1,t.width),Math.max(1,t.height))}},avoidanceLimit:{get:function(){return this.bw},set:function(t){this.bw=Math.max(1,t)}},autoScrollInterval:{get:function(){return this.tp},set:function(t){var i=this.tp;i!==t&&(this.tp=t,this.g("autoScrollInterval",i,t))}},autoScrollRegion:{get:function(){return this.wp},set:function(t){typeof t=="number"&&(t=new gt(t));var i=this.wp;i.D(t)||(this.wp=t=t.J(),this.Ya(),this.g("autoScrollRegion",i,t))}}}),tt.Object.defineProperties(C,{licenseKey:{get:function(){return pc.kc()},set:function(t){pc.add(t.replace(/\s/g,""))}},version:{get:function(){return Zv}}}),C.prototype.makeImageData=C.prototype.Jx,C.prototype.makeImage=C.prototype.Wz,C.prototype.cacheGroupExternalLinks=C.prototype.Fu,C.prototype.addRenderer=C.prototype.$r,C.prototype.makeSVG=C.prototype.av,C.prototype.makeSvg=C.prototype.Bs,C.prototype.stopAutoScroll=C.prototype.ug,C.prototype.doAutoScroll=C.prototype.fs,C.prototype.isUnoccupied=C.prototype.Xj,C.prototype.raiseDiagramEvent=C.prototype.R,C.prototype.removeDiagramListener=C.prototype.$l,C.prototype.addDiagramListener=C.prototype.Bj,C.prototype.findTreeRoots=C.prototype.yz,C.prototype.layoutDiagram=C.prototype.Uz,C.prototype.findTopLevelGroups=C.prototype.qz,C.prototype.findTopLevelNodesAndLinks=C.prototype.rz,C.prototype.ensureBounds=C.prototype.Va,C.prototype.findLinksByExample=C.prototype.ks,C.prototype.findNodesByExample=C.prototype.ls,C.prototype.findLinkForData=C.prototype.Kc,C.prototype.findNodeForData=C.prototype.ii,C.prototype.findPartForData=C.prototype.Lc,C.prototype.findLinkForKey=C.prototype.findLinkForKey,C.prototype.findNodeForKey=C.prototype.Wb,C.prototype.findPartForKey=C.prototype.findPartForKey,C.prototype.rebuildParts=C.prototype.Wd,C.prototype.transformViewToDoc=C.prototype.Os,C.prototype.transformRectDocToView=C.prototype.zA,C.prototype.transformDocToView=C.prototype.np,C.prototype.centerRect=C.prototype.ds,C.prototype.scrollToRect=C.prototype.tv,C.prototype.scroll=C.prototype.scroll,C.prototype.highlightCollection=C.prototype.Jz,C.prototype.highlight=C.prototype.Iz,C.prototype.selectCollection=C.prototype.rA,C.prototype.select=C.prototype.select,C.prototype.updateAllRelationshipsFromData=C.prototype.qp,C.prototype.updateAllTargetBindings=C.prototype.updateAllTargetBindings,C.prototype.commit=C.prototype.commit,C.prototype.rollbackTransaction=C.prototype.Kf,C.prototype.commitTransaction=C.prototype.eb,C.prototype.startTransaction=C.prototype.Ea,C.prototype.raiseChanged=C.prototype.g,C.prototype.raiseChangedEvent=C.prototype.cb,C.prototype.removeChangedListener=C.prototype.hk,C.prototype.addChangedListener=C.prototype.Pe,C.prototype.removeModelChangedListener=C.prototype.mA,C.prototype.addModelChangedListener=C.prototype.Yw,C.prototype.findLayer=C.prototype.Pj,C.prototype.removeLayer=C.prototype.kA,C.prototype.addLayerAfter=C.prototype.Cy,C.prototype.addLayerBefore=C.prototype.Ww,C.prototype.addLayer=C.prototype.zl,C.prototype.moveParts=C.prototype.moveParts,C.prototype.copyParts=C.prototype.Jj,C.prototype.removeParts=C.prototype.Hs,C.prototype.remove=C.prototype.remove,C.prototype.add=C.prototype.add,C.prototype.clearDelayedGeometries=C.prototype.bx,C.prototype.setProperties=C.prototype.mm,C.prototype.attach=C.prototype.Du,C.prototype.set=C.prototype.set,C.prototype.resetInputOptions=C.prototype.Sx,C.prototype.setInputOption=C.prototype.sA,C.prototype.getInputOption=C.prototype.Pl,C.prototype.resetRenderingHints=C.prototype.Tx,C.prototype.setRenderingHint=C.prototype.Xx,C.prototype.getRenderingHint=C.prototype.Gf,C.prototype.maybeUpdate=C.prototype.bd,C.prototype.requestUpdate=C.prototype.ac,C.prototype.delayInitialization=C.prototype.Xy,C.prototype.isUpdateRequested=C.prototype.Pz,C.prototype.invalidateDocumentBounds=C.prototype.Ya,C.prototype.findObjectsNear=C.prototype.og,C.prototype.findPartsNear=C.prototype.mz,C.prototype.findObjectsIn=C.prototype.Cf,C.prototype.findPartsIn=C.prototype.ux,C.prototype.findObjectsAt=C.prototype.ji,C.prototype.findPartsAt=C.prototype.lz,C.prototype.findObjectAt=C.prototype.jc,C.prototype.findPartAt=C.prototype.Nl,C.prototype.focusObject=C.prototype.zz,C.prototype.alignDocument=C.prototype.Jy,C.prototype.zoomToRect=C.prototype.BA,C.prototype.zoomToFit=C.prototype.zoomToFit,C.prototype.diagramScroll=C.prototype.kx,C.prototype.focus=C.prototype.focus;var Qu=new _,B0=null,rn=J.document!==void 0,lh=null,vl="",Oe=new R(C,"None",0),uh=new R(C,"Uniform",1),qu=new R(C,"UniformToFill",2),lc=new R(C,"CycleAll",10),R0=new R(C,"CycleNotDirected",11),V0=new R(C,"CycleNotDirectedFast",12),Y0=new R(C,"CycleNotUndirected",13),z0=new R(C,"CycleDestinationTree",14),G0=new R(C,"CycleSourceTree",15),Br=new R(C,"DocumentScroll",1),uc=new R(C,"InfiniteScroll",2),gs=new R(C,"TreeParentCollapsed",21),ac=new R(C,"AllParentsCollapsed",22),fc=new R(C,"AnyParentsCollapsed",23),pc=new V,Zv="2.3.11",ah="image",X0=null,K0=!1;function _v(){if(rn){var t=J.document.createElement("canvas"),i=t.getContext("2d"),e=dt("7ca11abfd022028846");i[e]=dt("398c3597c01238");for(var n=["5da73c80a36455d7038e4972187c3cae51fd22",An.Dx+"4ae6247590da4bb21c324ba3a84e385776",it.xF+"fb236cdfda5de14c134ba1a95a2d4c7cc6f93c1387",P.za],o=1;5>o;o++)i[dt("7ca11abfd7330390")](dt(n[o-1]),10,15*o);for(i[e]=dt("39f046ebb36e4b"),e=1;5>e;e++)i[dt("7ca11abfd7330390")](dt(n[e-1]),10,15*e);(n.length!==4||n[0][0]!=="5"||n[3][0]!=="7")&&(it.prototype.Cd=it.prototype.Eu),X0=t}}C.className="Diagram",C.fromDiv=function(t){var i=t;return typeof t=="string"&&(i=J.document.getElementById(t)),i instanceof HTMLDivElement&&i.H instanceof C?i.H:null},C.inherit=function(t,i){function e(){}if(Object.getPrototypeOf(t).prototype)throw Error(`Used go.Diagram.inherit defining already defined class `+t);e.prototype=i.prototype,t.prototype=new e,t.prototype.constructor=t},C.useDOM=function(t){rn=t?J.document!==void 0:!1},C.isUsingDOM=function(){return rn},C.None=Oe,C.Uniform=uh,C.UniformToFill=qu,C.CycleAll=lc,C.CycleNotDirected=R0,C.CycleNotDirectedFast=V0,C.CycleNotUndirected=Y0,C.CycleDestinationTree=z0,C.CycleSourceTree=G0,C.DocumentScroll=Br,C.InfiniteScroll=uc,C.TreeParentCollapsed=gs,C.AllParentsCollapsed=ac,C.AnyParentsCollapsed=fc;function U0(){this.wy=null,this.j="zz@orderNum",this._tk==="63ad05bbe23a1786468a4c741b6d2"?this.Rc=this.j=!0:this.Rc=null}function fh(t,i){if(i.ib.setTransform(i.Nb,0,0,i.Nb,0,0),i.ib.yc(),t.Rc===null)t:{i="f";var e=J[dt("76a715b2f73f148a")][dt("72ba13b5")]||"";if(t.Rc=!0,rn){var n=C[dt("76a115b6ed251eaf4692")];if(n)for(var o=pc.iterator;o.next()&&(n=o.value,n=dt(n).split(dt("39e9")),!(6>n.length));){var r=dt(n[1]).split(".");if(n[4]!=="7da71ca0")break;var s=dt(An[dt("6cae19")]).split(".");if(r[0]>s[0]||r[0]===s[0]&&r[1]>=s[1]){var h=J[dt("74a900bae4370f8b51")][dt("6fbb13a1c2311e8a57")].toLowerCase();if(s=h[dt("73a612b6fb191d")](dt("3aad1ab6e022098b4dc4")),r=dt(n[2]),-1<s&&(h=h[dt("73a612b6fb191d")](r.toLowerCase()+"/"),t.Rc=!(-1<h&&h<s),!t.Rc))break;for(s=e[dt("76ad18b4f73e")],h=e[dt("73a612b6fb191d")](dt("35e7"))+2;h<s;h++)i+=e[h];if(s=i[dt("73a612b6fb191d")](r),0>s&&r!==dt("7da71ca0ad381e90")&&(s=i[dt("73a612b6fb191d")](dt("76a715b2ef3e149757"))),0>s&&(s=i[dt("73a612b6fb191d")](dt("76a715b2ef3e149757"))),0>s&&(s=i[dt("73a612b6fb191d")](dt("2bfa41fdb3784bca12"))),0>s&&(s=e[dt("73a612b6fb191d")](dt("7baa19a6f76c1988428554"))),t.Rc=!(0<=s&&s<i[dt("73a612b6fb191d")](dt("35"))||i[dt("73a612b6fb191d")](dt("35"))===-1),!t.Rc||e[dt("73a612b6fb191d")](dt("7fb002b6ed25128b4da25b2e"))&&(t.Rc=!(-1<e[dt("73a612b6fb191d")](r)),!t.Rc)||(s=J[dt("76a715b2f73f148a")][dt("69ad17a1e03e")],h=s[dt("73a612b6fb191d")](dt("7fb002b6ed25128b4da25b2e")),-1<h&&(t.Rc=!(s[dt("73a612b6fb191d")](r)>h),!t.Rc)))break;if(r[0]==="#"){s=J.document.createElement("div");for(var l=n[0].replace(/[A-Za-z]/g,"");4>l.length;)l+="9";if(h=l,l=l.substr(l.length-4),n="",n+=["gsh","gsf"][parseInt(l.substr(0,1),10)%2],n+=["Header","Background","Display","Feedback"][parseInt(l.substr(0,1),10)%4],s[dt("79a417a0f0181a8946")]=n,J.document[dt("78a712aa")]){J.document[dt("78a712aa")][dt("7bb806b6ed32388c4a875b")](s),l=J.getComputedStyle(s).getPropertyValue(dt("78a704b7e62456904c9b12701b6532a8"));var u=J.getComputedStyle(s).getPropertyValue(dt("75b817b0ea2202"));if(J.document[dt("78a712aa")][dt("68ad1bbcf533388c4a875b")](s),l){if(s=J[dt("77a902b0eb1b1e804a8a")],u==="0."+parseInt(h,10)%100||l.indexOf(parseInt(r[1]+r[2],16))!==-1&&l.indexOf(parseInt(r[3]+r[4],16))!==-1){t.Rc=!1;break}else if(s&&s(dt("32ae19a1e0331fc94084537c067a67fa59f1386b89d006")).matches)for(n="."+n,r=0;r<document.styleSheets.length;r++){s=document.styleSheets[r].rules||document.styleSheets[r].cssRules;for(var a in s)if(n===s[a].selectorText){t.Rc=!1;break t}}}}else t.Rc=null,t.Rc=!1}}}else{for(a=e[dt("76ad18b4f73e")],o=e[dt("73a612b6fb191d")](dt("35e7"))+2;o<a;o++)i+=e[o];e=i[dt("73a612b6fb191d")](dt("7da71ca0ad381e90")),t.Rc=!(0<=e&&e<i[dt("73a612b6fb191d")](dt("35")))}}}return 0<t.Rc&&t!==t.wy}U0.className="DiagramHelper";function rr(t){this.j=t===void 0?new x:t,this.o=new x}tt.Object.defineProperties(rr.prototype,{point:{get:function(){return this.j},set:function(t){this.j=t}},shifted:{get:function(){return this.o},set:function(t){this.o=t}}});var H0="DraggingInfo";rr.className="DraggingInfo";function W0(t,i,e){this.node=t,this.info=i,this.Su=e}W0.className="DraggingNodeInfoPair";function ph(){this.reset()}ph.prototype.reset=function(){this.isGridSnapEnabled=!1,this.isGridSnapRealtime=!0,this.gridSnapCellSize=new Z(NaN,NaN).freeze(),this.gridSnapCellSpot=Ti,this.gridSnapOrigin=new x(NaN,NaN).freeze(),this.groupsSnapMembers=this.dragsTree=this.dragsLink=!1,this.dragsMembers=this.groupsAlwaysMove=!0},ph.className="DraggingOptions";function bu(t,i){if(typeof t=="string"||J.Element&&t instanceof Element)var e=C.call(this,t)||this;else e=C.call(this)||this,i=t;return J0(e),i&&e.mm(i),e}pt(bu,C);function J0(t){t.allowDragOut=!0,t.allowMove=!1,t.isReadOnly=!0,t.contentAlignment=fo,t.layout=new ci}bu.prototype.reset=function(){C.prototype.reset.call(this),J0(this)},bu.className="Palette";function Wn(t,i){if(typeof t=="string"||J.Element&&t instanceof Element)var e=C.call(this,t)||this;else e=C.call(this)||this,i=t;var n=e;e.animationManager.isEnabled=!1,e.wb=!0,e.V=null,e.ln=!1,e.mn=!1,e.F=!0,e.u=!0,e.ia=0,e.o=!1,e.pl=null,e.Xx("drawShadows",!1),t=new U;var o=new q;return o.stroke="magenta",o.strokeWidth=2,o.fill="transparent",o.name="BOXSHAPE",t.selectable=!0,t.selectionAdorned=!1,t.selectionObjectName="BOXSHAPE",t.locationObjectName="BOXSHAPE",t.resizeObjectName="BOXSHAPE",t.cursor="move",t.add(o),e.j=t,e.allowCopy=!1,e.allowDelete=!1,e.allowSelect=!0,e.autoScrollRegion=new gt(0,0,0,0),e.pa.h(0,0),e.toolManager.gb("Dragging",new ys,e.toolManager.mouseMoveTools),e.click=function(){var r=n.observed;if(r!==null){var s=r.viewportBounds,h=n.lastInput.documentPoint;r.position=new x(h.x-s.width/2,h.y-s.height/2)}},e.Pf=function(){n.Ya(),xl(n)},e.Xd=function(){n.observed!==null&&(n.Ya(),n.N())},e.Ha=function(){1>n.updateDelay?n.N():n.o||(n.o=!0,setTimeout(function(){return n.redraw()},n.updateDelay))},e.Of=function(){n.observed!==null&&xl(n)},e.autoScale=uh,e.wb=!1,i&&Object.assign(e,i),e}pt(Wn,C),Wn.prototype.computePixelRatio=function(){return 1},Wn.prototype.redraw=function(){if(this.o&&1<=this.updateDelay){this.o=!1;var t=this.ta,i=this.ib;if(t!==null&&i!==null){if(hh(this),this.pl===null){var e=new Je(null);e.width=t.width,e.height=t.height,this.pl=e}try{this.ta=this.pl,this.ib=this.ta.context,this.ib.Vc(!0),this.ib.setTransform(1,0,0,1,0,0),this.ib.clearRect(0,0,this.ta.width,this.ta.height),Z0(this)}finally{this.ta=t,this.ib=i}}}C.prototype.redraw.call(this)},Wn.prototype.hc=function(){if(this.Ka===null&&O("No div specified"),this.ta===null&&O("No canvas specified"),!(this.ta instanceof En)&&(Qc(this.box),this.Fc)){var t=this.observed;if(t!==null&&!t.animationManager.defaultAnimation.isAnimating&&t.pi){hh(this);var i=this.ta;t=this.ib,t.Vc(!0),t.setTransform(1,0,0,1,0,0),t.clearRect(0,0,i.width,i.height),1>this.updateDelay?Z0(this):this.pl!==null&&(t.drawImage(this.pl.Oa,0,0),i=this.Bb,i.reset(),this.scale!==1&&i.scale(this.scale),this.position.x===0&&this.position.y===0||i.translate(-this.position.x,-this.position.y),t.scale(this.Nb,this.Nb),t.transform(i.m11,i.m12,i.m21,i.m22,i.dx,i.dy),t.yc()),i=this.Wa.s;for(var e=i.length,n=0;n<e;n++)i[n].hc(t,this);this.Fc=this.vd=!1}}};function Z0(t){var i=t.observed;if(i!==null){var e=t.drawsTemporaryLayers,n=t.drawsGrid&&e,o=i.grid;n&&o!==null&&o.visible&&!isNaN(o.width)&&!isNaN(o.height)&&(o=T.alloc().assign(t.viewportBounds).ed(i.viewportBounds),Io(i,o),T.free(o),Gi(i));var r=t.Bb;r.reset(),t.scale!==1&&r.scale(t.scale),t.position.x===0&&t.position.y===0||r.translate(-t.position.x,-t.position.y),o=t.ib,o.scale(t.Nb,t.Nb),o.transform(r.m11,r.m12,r.m21,r.m22,r.dx,r.dy),o.yc(),i=i.Wa.s,r=i.length;for(var s=0;s<r;s++){var h=i[s],l=t;if(h.visible&&h.opacity!==0){var u=h.diagram.grid.part;if(!e&&h.isTemporary)n&&u.layer===h&&(h=cl(h,o),u.hc(o,l),o.globalAlpha=h);else{for(var a=cl(h,o),f=l.scale,p=T.alloc(),c=h.Pa.s,g=c.length,y=0;y<g;y++){var v=c[y];(n||v!==u)&&h.Nj(o,v,l,null,f,p,!1)}T.free(p),o.globalAlpha=a}}}}}function xl(t){var i=t.box;if(i!==null){var e=t.observed;if(e!==null){t.Fc=!0,e=e.viewportBounds;var n=i.selectionObject,o=Z.alloc();o.h(e.width,e.height),n.desiredSize=o,Z.free(o),t=2/t.scale,n instanceof q&&(n.strokeWidth=t),i.location=new x(e.x-t/2,e.y-t/2),i.isSelected=!0}}}Wn.prototype.computeBounds=function(){var t=this.observed;if(t===null)return Fu;var i=t.documentBounds.copy();return i.ed(t.viewportBounds),i},Wn.prototype.invalidateViewport=function(){this.Fc!==!0&&(this.Fc=!0,this.ac())},Wn.prototype.onViewportBoundsChanged=function(t,i,e,n){this.wb||(this.vd=!0,this.N(),this.Ee=!0,this.Ya(),xl(this),this.gc.scale=e,this.gc.position.x=t.x,this.gc.position.y=t.y,this.gc.bounds.assign(t),this.gc.Oz=n,this.R("ViewportBoundsChanged",this.gc,t))},tt.Object.defineProperties(Wn.prototype,{observed:{get:function(){return this.V},set:function(t){var i=this.V;if(t instanceof Wn&&O("Overview.observed Diagram may not be an Overview itself: "+t),i!==t){if(i!==null&&(this.remove(this.box),i.$l("ViewportBoundsChanged",this.Pf),i.$l("DocumentBoundsChanged",this.Xd),i.$l("InvalidateDraw",this.Ha),i.$l("AnimationFinished",this.Of)),this.V=t,t!==null&&(t.Bj("ViewportBoundsChanged",this.Pf),t.Bj("DocumentBoundsChanged",this.Xd),t.Bj("InvalidateDraw",this.Ha),t.Bj("AnimationFinished",this.Of),this.add(this.box)),this.Ya(),t===null){this.pl=null;var e=this.ta,n=this.ib;e&&n&&(n.setTransform(1,0,0,1,0,0),n.clearRect(0,0,e.width,e.height))}else this.Ha(null),xl(this),this.N();this.g("observed",i,t)}}},box:{get:function(){return this.j},set:function(t){var i=this.j;i!==t&&(this.j=t,this.remove(i),this.add(this.j),xl(this),this.g("box",i,t))}},drawsTemporaryLayers:{get:function(){return this.F},set:function(t){this.F!==t&&(this.F=t,this.redraw())}},drawsGrid:{get:function(){return this.u},set:function(t){this.u!==t&&(this.u=t,this.redraw())}},updateDelay:{get:function(){return this.ia},set:function(t){0>t&&(t=0),this.ia!==t&&(this.ia=t)}}}),Wn.className="Overview";function ys(){Rt.call(this),this.j=null}pt(ys,Rt),ys.prototype.canStart=function(){if(!this.isEnabled)return!1;var t=this.diagram;if(t===null||!t.allowMove||!t.allowSelect)return!1;var i=t.observed;if(i===null)return!1;var e=t.lastInput;return!e.left||t.currentTool!==this&&(!this.isBeyondDragSize()||e.isTouchEvent&&e.timestamp-t.firstInput.timestamp<this.delay)?!1:(this.findDraggablePart()===null&&(e=i.viewportBounds,this.j=new x(e.width/2,e.height/2),t=t.firstInput.documentPoint,i.position=new x(t.x-this.j.x,t.y-this.j.y)),!0)},ys.prototype.doActivate=function(){this.j=null,Rt.prototype.doActivate.call(this)},ys.prototype.doUpdateCursor=function(){var t=this.diagram,i=t.box;i!==null&&i.cursor&&(t.currentCursor=i.cursor)},ys.prototype.moveParts=function(){var t=this.diagram,i=t.observed;if(i!==null){var e=t.box;if(e!==null){if(this.j===null){var n=t.firstInput.documentPoint;e=e.location,this.j=new x(n.x-e.x,n.y-e.y)}t=t.lastInput.documentPoint,i.position=new x(t.x-this.j.x,t.y-this.j.y)}}},ys.className="OverviewDraggingTool";function xt(){ui(this),this.H=rh,this.Ha=this.u=this.o=!0,this.F=this.V=this.nb=this.ia=!1,this.ij=this.j=null,this.Ib=1.05,this.It=NaN,this.sw=null,this.zu=NaN,this.xu=Fu,this.hb=!0,this.cg=null,this.ob=200}xt.prototype.toString=function(){return"CommandHandler"},xt.prototype.Xe=function(t){this.H=t},xt.prototype.doKeyDown=function(){var t=this.diagram,i=t.lastInput,e=To?i.meta:i.control,n=i.shift,o=i.alt,r=i.key;!e||r!=="C"&&r!=="Insert"?e&&r==="X"||n&&r==="Del"?this.canCutSelection()&&this.cutSelection():e&&r==="V"||n&&r==="Insert"?this.canPasteSelection()&&this.pasteSelection():e&&r==="Y"||o&&n&&r==="Backspace"?this.canRedo()&&this.redo():e&&r==="Z"||o&&r==="Backspace"?this.canUndo()&&this.undo():r==="Del"||r==="Backspace"?this.canDeleteSelection()&&this.deleteSelection():e&&r==="A"?this.canSelectAll()&&this.selectAll():r==="Esc"?this.canStopCommand()&&this.stopCommand():r==="Up"?t.allowVerticalScroll&&(e?t.scroll("pixel","up"):t.scroll("line","up")):r==="Down"?t.allowVerticalScroll&&(e?t.scroll("pixel","down"):t.scroll("line","down")):r==="Left"?t.allowHorizontalScroll&&(e?t.scroll("pixel","left"):t.scroll("line","left")):r==="Right"?t.allowHorizontalScroll&&(e?t.scroll("pixel","right"):t.scroll("line","right")):r==="PageUp"?n&&t.allowHorizontalScroll?t.scroll("page","left"):t.allowVerticalScroll&&t.scroll("page","up"):r==="PageDown"?n&&t.allowHorizontalScroll?t.scroll("page","right"):t.allowVerticalScroll&&t.scroll("page","down"):r==="Home"?e&&t.allowVerticalScroll?t.scroll("document","up"):!e&&t.allowHorizontalScroll&&t.scroll("document","left"):r==="End"?e&&t.allowVerticalScroll?t.scroll("document","down"):!e&&t.allowHorizontalScroll&&t.scroll("document","right"):r===" "?this.canScrollToPart()&&this.scrollToPart():r==="Subtract"?this.canDecreaseZoom()&&this.decreaseZoom():r==="Add"?this.canIncreaseZoom()&&this.increaseZoom():e&&r==="0"?this.canResetZoom()&&this.resetZoom():n&&r==="Z"?this.canZoomToFit()&&this.zoomToFit():e&&!n&&r==="G"?this.canGroupSelection()&&this.groupSelection():e&&n&&r==="G"?this.canUngroupSelection()&&this.ungroupSelection():r==="F2"||i.event&&i.event.key==="F2"?this.canEditTextBlock()&&this.editTextBlock():r==="ContextMenu"||i.event&&i.event.key==="ContextMenu"?this.canShowContextMenu()&&this.showContextMenu():i.bubbles=!0:this.canCopySelection()&&this.copySelection()},xt.prototype.doKeyUp=function(){this.diagram.lastInput.bubbles=!0},xt.prototype.stopCommand=function(){var t=this.diagram,i=t.currentTool;i instanceof Bt&&t.allowSelect&&t.clearSelection(),i!==null&&i.doCancel()},xt.prototype.canStopCommand=function(){return!0},xt.prototype.selectAll=function(){var t=this.diagram;t.N();try{t.currentCursor="wait",t.R("ChangingSelection",t.selection);for(var i=t.parts;i.next();)i.value.isSelected=!0;for(var e=t.nodes;e.next();)e.value.isSelected=!0;for(var n=t.links;n.next();)n.value.isSelected=!0}finally{t.R("ChangedSelection",t.selection),t.currentCursor=""}},xt.prototype.canSelectAll=function(){return this.diagram.allowSelect},xt.prototype.deleteSelection=function(){var t=this.diagram;try{t.currentCursor="wait",t.R("ChangingSelection",t.selection),t.Ea("Delete"),t.R("SelectionDeleting",t.selection);for(var i=new E,e=t.selection.iterator;e.next();)ar(i,e.value,!0,this.deletesTree?1/0:0,this.deletesConnectedLinks?null:!1,function(n){return n.canDelete()});t.Hs(i,!0),t.R("SelectionDeleted",i)}finally{t.eb("Delete"),t.R("ChangedSelection",t.selection),t.currentCursor=""}},xt.prototype.canDeleteSelection=function(){var t=this.diagram;return!(t.isReadOnly||t.isModelReadOnly||!t.allowDelete||t.selection.count===0)},xt.prototype.copySelection=function(){var t=this.diagram,i=new E;for(t=t.selection.iterator;t.next();)ar(i,t.value,!0,this.copiesTree?1/0:0,this.copiesConnectedLinks,function(e){return e.canCopy()});this.copyToClipboard(i)},xt.prototype.canCopySelection=function(){var t=this.diagram;return!!(t.allowCopy&&t.allowClipboard&&t.selection.count!==0)},xt.prototype.cutSelection=function(){this.copySelection(),this.deleteSelection()},xt.prototype.canCutSelection=function(){var t=this.diagram;return!!(!t.isReadOnly&&!t.isModelReadOnly&&t.allowCopy&&t.allowDelete&&t.allowClipboard&&t.selection.count!==0)},xt.prototype.copyToClipboard=function(t){var i=this.diagram,e=null;if(t===null)lh=null,vl="";else{e=i.model;var n=!1,o=!1,r=null;try{e.Sl()&&(n=e.Ij,e.Ij=this.copiesParentKey),e.Vj()&&(o=e.Hj,e.Hj=this.copiesGroupKey),r=i.Jj(t,null,!0)}finally{e.Sl()&&(e.Ij=n),e.Vj()&&(e.Hj=o),e=new V,e.addAll(r),lh=e,vl=i.model.dataFormat}}i.R("ClipboardChanged",e)},xt.prototype.pasteFromClipboard=function(){var t=new E,i=lh;if(i===null)return t;var e=this.diagram;if(vl!==e.model.dataFormat)return t;var n=e.model,o=!1,r=!1,s=null;try{n.Sl()&&(o=n.Ij,n.Ij=this.copiesParentKey),n.Vj()&&(r=n.Hj,n.Hj=this.copiesGroupKey),s=e.Jj(i,e,!1)}finally{for(n.Sl()&&(n.Ij=o),n.Vj()&&(n.Hj=r),i=s.iterator;i.next();)e=i.value,n=i.key,e.location.w()||(n.location.w()?e.location=n.location:!e.position.w()&&n.position.w()&&(e.position=n.position)),t.add(e)}return t},xt.prototype.pasteSelection=function(t){t===void 0&&(t=null);var i=this.diagram;try{i.currentCursor="wait",i.R("ChangingSelection",i.selection),i.Ea("Paste");var e=this.pasteFromClipboard();0<e.count&&i.clearSelection(!0);for(var n=e.iterator;n.next();)n.value.isSelected=!0;if(t!==null){var o=i.computePartsBounds(i.selection);if(o.w()){var r=this.computeEffectiveCollection(i.selection,i.Vm);$p(i,r,new x(t.x-o.centerX,t.y-o.centerY),i.Vm,!1)}}i.R("ClipboardPasted",e)}finally{i.eb("Paste"),i.R("ChangedSelection",i.selection),i.currentCursor=""}},xt.prototype.canPasteSelection=function(){var t=this.diagram;return!(t.isReadOnly||t.isModelReadOnly||!t.allowInsert||!t.allowClipboard||lh===null||lh.count===0||vl!==t.model.dataFormat)},xt.prototype.undo=function(){this.diagram.undoManager.undo()},xt.prototype.canUndo=function(){var t=this.diagram;return t.isReadOnly||t.isModelReadOnly?!1:t.allowUndo&&t.undoManager.canUndo()},xt.prototype.redo=function(){this.diagram.undoManager.redo()},xt.prototype.canRedo=function(){var t=this.diagram;return t.isReadOnly||t.isModelReadOnly?!1:t.allowUndo&&t.undoManager.canRedo()},xt.prototype.decreaseZoom=function(t){t===void 0&&(t=1/this.zoomFactor);var i=this.diagram;i.autoScale===Oe&&(t=i.scale*t,t<i.minScale||t>i.maxScale||(i.scale=t))},xt.prototype.canDecreaseZoom=function(t){t===void 0&&(t=1/this.zoomFactor);var i=this.diagram;return i.autoScale!==Oe?!1:(t=i.scale*t,t<i.minScale||t>i.maxScale?!1:i.allowZoom)},xt.prototype.increaseZoom=function(t){t===void 0&&(t=this.zoomFactor);var i=this.diagram;i.autoScale===Oe&&(t=i.scale*t,t<i.minScale||t>i.maxScale||(i.scale=t))},xt.prototype.canIncreaseZoom=function(t){t===void 0&&(t=this.zoomFactor);var i=this.diagram;return i.autoScale!==Oe?!1:(t=i.scale*t,t<i.minScale||t>i.maxScale?!1:i.allowZoom)},xt.prototype.resetZoom=function(t){t===void 0&&(t=this.defaultScale);var i=this.diagram;t<i.minScale||t>i.maxScale||(i.scale=t)},xt.prototype.canResetZoom=function(t){t===void 0&&(t=this.defaultScale);var i=this.diagram;return t<i.minScale||t>i.maxScale?!1:i.allowZoom},xt.prototype.zoomToFit=function(){var t=this.diagram,i=t.animationManager;i.Cc(),t.redraw();var e=t.position,n=t.scale;Fo(i,"Zoom To Fit"),this.isZoomToFitRestoreEnabled&&n===this.zu&&!isNaN(this.It)&&t.documentBounds.D(this.xu)?(t.scale=this.It,t.position=this.sw,this.zu=NaN,this.xu=Fu):(this.It=n,this.sw=e.copy(),t.zoomToFit(),this.zu=t.scale,this.xu=t.documentBounds.copy()),Rp(i)},xt.prototype.canZoomToFit=function(){return this.diagram.allowZoom},xt.prototype.scrollToPart=function(t){t===void 0&&(t=null);var i=this.diagram;if(i.Va(),t===null){try{this.cg!==null&&(this.cg.next()?t=this.cg.value:this.cg=null)}catch{this.cg=null}t===null&&(0<i.highlighteds.count?this.cg=i.highlighteds.iterator:0<i.selection.count&&(this.cg=i.selection.iterator),this.cg!==null&&this.cg.next()&&(t=this.cg.value))}if(t!==null){var e=i.animationManager;Fo(e,"Scroll To Part");var n=this.scrollToPartPause;if(0<n){var o=ms(this,t,[t]);if(o.length===1)i.Ea(),i.ds(t.actualBounds),i.eb("Scroll To Part");else{var r=function(){i.Ea();for(var l=o.pop();0<o.length&&l instanceof B&&l.isTreeExpanded&&(!(l instanceof Q)||l.isSubGraphExpanded);)l=o.pop();0<o.length?(l instanceof U&&i.tv(l.actualBounds),l instanceof B&&!l.isTreeExpanded&&(l.isTreeExpanded=!0),l instanceof Q&&!l.isSubGraphExpanded&&(l.isSubGraphExpanded=!0)):(l instanceof U&&i.ds(l.actualBounds),i.$l("LayoutCompleted",s)),i.eb("Scroll To Part")},s=function(){ho(r,(e.isEnabled?e.duration:0)+n)};i.Bj("LayoutCompleted",s),r()}}else{var h=i.position.copy();i.ds(t.actualBounds),h.Xa(i.position)&&e.Cc()}}};function ms(t,i,e){if(i.isVisible())return e;if(i instanceof lt)ms(t,i.adornedPart,e);else if(i instanceof F){var n=i.fromNode;n!==null&&ms(t,n,e),i=i.toNode,i!==null&&ms(t,i,e)}else i instanceof B&&(n=i.labeledLink,n!==null&&ms(t,n,e),n=i.pg(),n!==null&&(n.isTreeExpanded||n.wasTreeExpanded||e.push(n),ms(t,n,e))),i=i.containingGroup,i!==null&&(i.isSubGraphExpanded||i.wasSubGraphExpanded||e.push(i),ms(t,i,e));return e}xt.prototype.canScrollToPart=function(t){return t===void 0&&(t=null),t!==null&&!(t instanceof U)?!1:(t=this.diagram,t.selection.count===0&&t.highlighteds.count===0?!1:t.allowHorizontalScroll&&t.allowVerticalScroll)},xt.prototype.collapseTree=function(t){t===void 0&&(t=null);var i=this.diagram;try{i.Ea("Collapse Tree"),Fo(i.animationManager,"Collapse Tree");var e=new V;if(t!==null&&t.isTreeExpanded)t.collapseTree(),e.add(t);else if(t===null)for(var n=i.selection.iterator;n.next();){var o=n.value;o instanceof B&&o.isTreeExpanded&&(o.collapseTree(),e.add(o))}i.R("TreeCollapsed",e)}finally{i.eb("Collapse Tree")}},xt.prototype.canCollapseTree=function(t){t===void 0&&(t=null);var i=this.diagram;if(i.isReadOnly)return!1;if(t!==null){if(!(t instanceof B&&t.isTreeExpanded))return!1;if(0<t.Po().count)return!0}else for(t=i.selection.iterator;t.next();)if(i=t.value,i instanceof B&&i.isTreeExpanded&&0<i.Po().count)return!0;return!1},xt.prototype.expandTree=function(t){t===void 0&&(t=null);var i=this.diagram;try{i.Ea("Expand Tree"),Fo(i.animationManager,"Expand Tree");var e=new V;if(t!==null&&!t.isTreeExpanded)t.expandTree(),e.add(t);else if(t===null)for(var n=i.selection.iterator;n.next();){var o=n.value;o instanceof B&&!o.isTreeExpanded&&(o.expandTree(),e.add(o))}i.R("TreeExpanded",e)}finally{i.eb("Expand Tree")}},xt.prototype.canExpandTree=function(t){t===void 0&&(t=null);var i=this.diagram;if(i.isReadOnly)return!1;if(t!==null){if(!(t instanceof B)||t.isTreeExpanded)return!1;if(0<t.Po().count)return!0}else for(t=i.selection.iterator;t.next();)if(i=t.value,i instanceof B&&!i.isTreeExpanded&&0<i.Po().count)return!0;return!1},xt.prototype.groupSelection=function(){var t=this.diagram,i=t.model;if(i.Wj()){var e=this.archetypeGroupData;if(e!==null){var n=null;try{t.currentCursor="wait",t.R("ChangingSelection",t.selection),t.Ea("Group");for(var o=new V,r=t.selection.iterator;r.next();){var s=r.value;s.Zc()&&s.canGroup()&&o.add(s)}for(var h=new V,l=o.iterator;l.next();){var u=l.value;r=!1;for(var a=o.iterator;a.next();)if(u.Td(a.value)){r=!0;break}r||h.add(u)}if(0<h.count){var f=h.first().containingGroup;if(f!==null)for(;f!==null;){o=!1;for(var p=h.iterator;p.next();)if(!p.value.Td(f)){o=!0;break}if(o)f=f.containingGroup;else break}if(e instanceof Q)Ze(e),n=e.copy(),n!==null&&t.add(n);else if(i.Yu(e)){var c=i.copyNodeData(e);At(c)&&(i.xf(c),n=t.ii(c))}if(n!==null){f!==null&&this.isValidMember(f,n)&&(n.containingGroup=f);for(var g=h.iterator;g.next();){var y=g.value;this.isValidMember(n,y)&&(y.containingGroup=n)}t.clearSelection(!0),n.isSelected=!0}}t.R("SelectionGrouped",n)}finally{t.eb("Group"),t.R("ChangedSelection",t.selection),t.currentCursor=""}}}},xt.prototype.canGroupSelection=function(){var t=this.diagram;if(t.isReadOnly||t.isModelReadOnly||!t.allowInsert||!t.allowGroup||!t.model.Wj()||this.archetypeGroupData===null)return!1;for(t=t.selection.iterator;t.next();){var i=t.value;if(i.Zc()&&i.canGroup())return!0}return!1};function cc(t){var i=kt();for(t=t.iterator;t.next();){var e=t.value;e instanceof F||i.push(e)}t=new E,e=i.length;for(var n=0;n<e;n++){for(var o=i[n],r=!0,s=0;s<e;s++)if(o.Td(i[s])){r=!1;break}r&&t.add(o)}return Mt(i),t}xt.prototype.isValidMember=function(t,i){if(i===null||t===i||i instanceof F)return!1;if(t!==null){if(t===i||t.Td(i))return!1;var e=t.memberValidation;if(e!==null&&!e(t,i)||t.data===null&&i.data!==null||t.data!==null&&i.data===null)return!1}return e=this.memberValidation,e!==null?e(t,i):!0},xt.prototype.ungroupSelection=function(t){t===void 0&&(t=null);var i=this.diagram,e=i.model;if(e.Wj())try{i.currentCursor="wait",i.R("ChangingSelection",i.selection),i.Ea("Ungroup");var n=new V;if(t!==null)n.add(t);else for(var o=i.selection.iterator;o.next();){var r=o.value;r instanceof Q&&r.canUngroup()&&n.add(r)}var s=new V;if(0<n.count){i.clearSelection(!0);for(var h=n.iterator;h.next();){var l=h.value;l.expandSubGraph();var u=l.containingGroup,a=u!==null&&u.data!==null?e.wa(u.data):void 0;s.addAll(l.memberParts);for(var f=s.iterator;f.next();){var p=f.value;if(p.isSelected=!0,!(p instanceof F)){var c=p.data;c!==null?e.lp(c,a):p.containingGroup=u}}i.remove(l)}}i.R("SelectionUngrouped",n,s)}finally{i.eb("Ungroup"),i.R("ChangedSelection",i.selection),i.currentCursor=""}},xt.prototype.canUngroupSelection=function(t){t===void 0&&(t=null);var i=this.diagram;if(i.isReadOnly||i.isModelReadOnly||!i.allowDelete||!i.allowUngroup||!i.model.Wj())return!1;if(t!==null){if(!(t instanceof Q))return!1;if(t.canUngroup())return!0}else for(t=i.selection.iterator;t.next();)if(i=t.value,i instanceof Q&&i.canUngroup())return!0;return!1},xt.prototype.addTopLevelParts=function(t,i){var e=!0;for(t=cc(t).iterator;t.next();){var n=t.value;n.containingGroup!==null&&(!i||this.isValidMember(null,n)?n.containingGroup=null:e=!1)}return e},xt.prototype.collapseSubGraph=function(t){t===void 0&&(t=null);var i=this.diagram;try{i.Ea("Collapse SubGraph"),Fo(i.animationManager,"Collapse SubGraph");var e=new V;if(t!==null&&t.isSubGraphExpanded)t.collapseSubGraph(),e.add(t);else if(t===null)for(var n=i.selection.iterator;n.next();){var o=n.value;o instanceof Q&&o.isSubGraphExpanded&&(o.collapseSubGraph(),e.add(o))}i.R("SubGraphCollapsed",e)}finally{i.eb("Collapse SubGraph")}},xt.prototype.canCollapseSubGraph=function(t){t===void 0&&(t=null);var i=this.diagram;if(i.isReadOnly)return!1;if(t!==null)return!!(t instanceof Q&&t.isSubGraphExpanded);for(t=i.selection.iterator;t.next();)if(i=t.value,i instanceof Q&&i.isSubGraphExpanded)return!0;return!1},xt.prototype.expandSubGraph=function(t){t===void 0&&(t=null);var i=this.diagram;try{i.Ea("Expand SubGraph"),Fo(i.animationManager,"Expand SubGraph");var e=new V;if(t!==null&&!t.isSubGraphExpanded)t.expandSubGraph(),e.add(t);else if(t===null)for(var n=i.selection.iterator;n.next();){var o=n.value;o instanceof Q&&!o.isSubGraphExpanded&&(o.expandSubGraph(),e.add(o))}i.R("SubGraphExpanded",e)}finally{i.eb("Expand SubGraph")}},xt.prototype.canExpandSubGraph=function(t){t===void 0&&(t=null);var i=this.diagram;if(i.isReadOnly)return!1;if(t!==null)return t instanceof Q&&!t.isSubGraphExpanded;for(t=i.selection.iterator;t.next();)if(i=t.value,i instanceof Q&&!i.isSubGraphExpanded)return!0;return!1},xt.prototype.editTextBlock=function(t){t===void 0&&(t=null);var i=this.diagram,e=i.toolManager.findTool("TextEditing");if(e!==null){if(t===null){t=null;for(var n=i.selection.iterator;n.next();){var o=n.value;if(o.canEdit()){t=o;break}}if(t===null)return;t=t.Ml(function(r){return r instanceof St&&r.editable})}t!==null&&(i.currentTool=null,e.textBlock=t,i.currentTool=e)}},xt.prototype.canEditTextBlock=function(t){t===void 0&&(t=null);var i=this.diagram;if(i.isReadOnly||i.isModelReadOnly||!i.allowTextEdit||i.toolManager.findTool("TextEditing")===null)return!1;if(t!==null){if(!(t instanceof St))return!1;if(t=t.part,t!==null&&t.canEdit())return!0}else for(i=i.selection.iterator;i.next();)if(t=i.value,t.canEdit()&&(t=t.Ml(function(e){return e instanceof St&&e.editable}),t!==null))return!0;return!1},xt.prototype.showContextMenu=function(t){var i=this.diagram,e=i.toolManager.findTool("ContextMenu");if(e!==null&&(t===void 0&&(t=0<i.selection.count?i.selection.first():i),t=e.findObjectWithContextMenu(t),t!==null)){var n=i.lastInput,o=null;t instanceof X?o=t.ga(vt):i.viewportBounds.ca(n.documentPoint)||(o=i.viewportBounds,o=new x(o.x+o.width/2,o.y+o.height/2)),o!==null&&(n.viewPoint=i.np(o),n.documentPoint=o,n.left=!1,n.right=!0,n.up=!0),i.currentTool=e,qg(e,!1,t)}},xt.prototype.canShowContextMenu=function(t){var i=this.diagram,e=i.toolManager.findTool("ContextMenu");return e===null?!1:(t===void 0&&(t=0<i.selection.count?i.selection.first():i),e.findObjectWithContextMenu(t)!==null)},xt.prototype.computeEffectiveCollection=function(t,i){var e=this.diagram,n=e.toolManager.findTool("Dragging"),o=e.currentTool===n;if(i===void 0&&(i=o?n.dragOptions:e.Vm),n=new _,t===null)return n;for(var r=t.iterator;r.next();)Oo(e,n,r.value,o,i);if(e.draggedLink!==null&&i.dragsLink)return n;for(r=t.iterator;r.next();)t=r.value,t instanceof F&&(i=t.fromNode,i===null||n.contains(i)?(i=t.toNode,i===null||n.contains(i)||n.remove(t)):n.remove(t));return n},tt.Object.defineProperties(xt.prototype,{diagram:{get:function(){return this.H}},copiesClipboardData:{get:function(){return this.o},set:function(t){this.o=t}},copiesConnectedLinks:{get:function(){return this.u},set:function(t){this.u=t}},deletesConnectedLinks:{get:function(){return this.Ha},set:function(t){this.Ha=t}},copiesTree:{get:function(){return this.ia},set:function(t){this.ia=t}},deletesTree:{get:function(){return this.nb},set:function(t){this.nb=t}},copiesParentKey:{get:function(){return this.V},set:function(t){this.V=t}},copiesGroupKey:{get:function(){return this.F},set:function(t){this.F=t}},archetypeGroupData:{get:function(){return this.j},set:function(t){this.j=t}},memberValidation:{get:function(){return this.ij},set:function(t){this.ij=t}},defaultScale:{get:function(){return this.diagram.defaultScale},set:function(t){this.diagram.defaultScale=t}},zoomFactor:{get:function(){return this.Ib},set:function(t){1<t||O("zoomFactor must be larger than 1.0, not: "+t),this.Ib=t}},isZoomToFitRestoreEnabled:{get:function(){return this.hb},set:function(t){this.hb=t}},scrollToPartPause:{get:function(){return this.ob},set:function(t){this.ob=t}}}),xt.className="CommandHandler",v0=function(){return new xt};function X(){ui(this),this.l=30723,this.pb=1,this.an="",this.Ma=this.Me=null,this.pa=new x(NaN,NaN).freeze(),this.jd=Lu,this.Bb=new it,this.wh=new it,this.Mb=null,this.Ca=this.Jk=1,this.Lb=0,this.Kg=Ks,this.uc=new T(NaN,NaN,NaN,NaN).freeze(),this.Jb=new T(NaN,NaN,NaN,NaN).freeze(),this.ec=new T(0,0,NaN,NaN).freeze(),this.ba=this.Xn=this.Yn=null,this.rk=this.Kb=Si,this.Ag=this.ho=0,this.V=this.tb=this.Dh=this.A=this.Ua=null,this.Uc=!1,this.io=this.Ng=null}var Ut,Xt,Dn,wi,Pi,sn,wl,Ml,Sl,Nl;X.prototype.cloneProtected=function(t){t.l=this.l|6144,t.pb=this.pb,t.an=this.an,t.Ma=this.Ma,t.pa.assign(this.pa),t.jd=this.jd.J(),this.Mb!==null?t.Mb=this.Mb.copy():t.Mb=null,t.Ca=this.Ca,t.Lb=this.Lb,t.Kg=this.Kg.J(),t.uc.assign(this.uc),t.Jb.assign(this.Jb),t.ec.assign(this.ec),t.Xn=this.Xn,this.ba!==null&&(t.ba=this.ba.copy()),t.Kb=this.Kb.J(),t.rk=this.rk.J(),t.ho=this.ho,t.Ag=this.Ag,this.Ua!==null&&(t.Ua=this.Ua.copy()),this.A!==null&&(t.A=this.A.oc?this.A:this.A.copy()),this.Dh!==null&&(t.Dh=Gs(this.Dh)),this.tb!==null&&(t.tb=this.tb.copy())},X.prototype.Vw=function(t){var i=this.Dh;if(ai(i)){for(var e=0;e<i.length;e++)if(i[e]===t)return}else this.Dh=i=[];i.push(t)},X.prototype.Af=function(t){t.Yn=null,t.Ng=null,t.v()},X.prototype.clone=function(){var t=new this.constructor;if(this.cloneProtected(t),this.Dh!==null)for(var i=0;i<this.Dh.length;i++){var e=this.Dh[i];t[e]=this[e]}return t},X.prototype.copy=function(){return this.clone()},d=X.prototype,d.qb=function(t){t.classType===F?t.name.indexOf("Orient")===0?this.segmentOrientation=t:O("Unknown Link enum value for GraphObject.segmentOrientation property: "+t):t.classType===X&&(this.stretch=t)},d.toString=function(){return Ar(this.constructor)+"#"+qi(this)},d.th=function(){this.A!==null&&(this.A.oc=!0)};function ei(t){t.A===null?t.A=new xs:t.A.oc&&(t.A=t.A.copy())}d.Xc=function(){if(this.ba===null){var t=new kl;t.Xi=Mi,t.yj=Mi,t.Vi=10,t.wj=10,t.Wi=0,t.xj=0,this.ba=t}},d.cb=function(t,i,e,n,o,r,s){var h=this.part;if(h!==null&&(h.fk(t,i,e,n,o,r,s),e===this&&t===Ot&&vs(this)&&Rr(this,h,i),r=this.diagram,this.animationTriggers===null||r===null||!r.pi||r.undoManager.isUndoingRedoing||r.animationManager.Cm||(t=this.animationTriggers.get(i),t!==null&&r.animationManager.isEnabled&&!r.animationManager.isTicking&&(this.io===null&&(this.io=new _),s=r.undoManager.transactionLevel===0,t.startCondition===zp?s=!0:t.startCondition===d0&&(s=!1),s?(r=new Li,Ev(t,r),s=this.io.get(t),s!==null&&s.stop(),this.io.add(t,r),r.uu=this,r.Nw=t,r.add(this,i,n,o),r.start()):(Fo(r.animationManager,"Trigger"),r.animationManager.defaultAnimation.add(this,i,n,o)))),this instanceof j&&e===h&&(h.l&16777216)!==0&&h.data!==null))for(e=this.O.s,n=e.length,o=0;o<n;o++)h=e[o],h instanceof j&&Xr(h,function(l){l.data!==null&&l.l&16777216&&l.La(i)})};function Rr(t,i,e){var n=t.ih();if(n!==null)for(var o=t.localBindings.iterator;o.next();){var r=o.value,s=null;if(r.sourceName!==null){if(s=Im(r,n,t),s===null)continue;r.rp(t,s,e,null)}else if(r.isToModel){var h=i.diagram;h===null||h.skipsModelSourceBindings||r.rp(t,h.model.modelData,e,n)}else{if(h=n.data,h===null)continue;var l=i.diagram;l===null||l.skipsModelSourceBindings||r.rp(t,h,e,n)}s===t&&(h=n.js(r.Ai),h!==null&&r.Mv(h,s,e))}}d.js=function(t){return this.bindingId===t?this:null},d.g=function(t,i,e){this.cb(Ot,t,this,i,e)},d.Ge=function(t,i,e,n){var o=this.uc;if(o.h(t,i,e,n),this.Ca!==1||this.Lb!==0){this.Mb===null&&(this.Mb=new it);var r=this.Mb;r.reset(),this.mo(r,t,i,e,n),r.op(o)}};function _0(t,i,e,n){return t.pickable===!1?!1:(n.multiply(t.transform),e?t.Yc(i,n):t.fh(i,n))}d.tx=function(t,i,e){if(this.pickable===!1)return!1;var n=this.naturalBounds;return i=t.Bf(i),e?Yi(t.x,t.y,0,0,0,n.height)<=i||Yi(t.x,t.y,0,n.height,n.width,n.height)<=i||Yi(t.x,t.y,n.width,n.height,n.width,0)<=i||Yi(t.x,t.y,n.width,0,0,0)<=i:t.zd(0,0)<=i&&t.zd(0,n.height)<=i&&t.zd(n.width,0)<=i&&t.zd(n.width,n.height)<=i},d.se=function(){return!0},d.ca=function(t){var i=x.alloc();i.assign(t),this.transform.Ga(i);var e=this.actualBounds;if(!e.w())return x.free(i),!1;var n=this.diagram;if(n!==null&&n.vq){var o=n.Pl("extraTouchThreshold"),r=n.Pl("extraTouchArea"),s=r/2,h=this.naturalBounds;n=this.Df()*n.scale;var l=1/n;if(h.width*n<o&&h.height*n<o)return t=yn(e.x-s*l,e.y-s*l,e.width+r*l,e.height+r*l,i.x,i.y),x.free(i),t}return o=!1,(this instanceof lt||this instanceof q?yn(e.x-5,e.y-5,e.width+10,e.height+10,i.x,i.y):e.ca(i))&&(this.tb&&!this.tb.ca(i)?o=!1:this.areaBackground!==null&&e.ca(i)||this.Ma!==null&&this.ec.ca(t)?o=!0:o=this.gh(t)),x.free(i),o},d.gh=function(t){var i=this.naturalBounds;return yn(0,0,i.width,i.height,t.x,t.y)},d.Re=function(t){if(this.angle===0)return this.actualBounds.Re(t);var i=this.naturalBounds;i=T.allocAt(0,0,i.width,i.height);var e=this.transform,n=!1,o=x.allocAt(t.x,t.y);return i.ca(e.Cd(o))&&(o.h(t.x,t.bottom),i.ca(e.Cd(o))&&(o.h(t.right,t.bottom),i.ca(e.Cd(o))&&(o.h(t.right,t.y),i.ca(e.Cd(o))&&(n=!0)))),x.free(o),T.free(i),n},d.fh=function(t,i){if(i===void 0)return t.Re(this.actualBounds);var e=this.naturalBounds,n=!1,o=x.allocAt(0,0);return t.ca(i.Ga(o))&&(o.h(0,e.height),t.ca(i.Ga(o))&&(o.h(e.width,e.height),t.ca(i.Ga(o))&&(o.h(e.width,0),t.ca(i.Ga(o))&&(n=!0)))),x.free(o),n},d.Yc=function(t,i){if(i===void 0&&(i=this.transform,this.angle===0))return t.Yc(this.actualBounds);var e=this.naturalBounds,n=x.allocAt(0,0),o=x.allocAt(0,e.height),r=x.allocAt(e.width,e.height),s=x.allocAt(e.width,0),h=!1;if(t.ca(i.Ga(n))||t.ca(i.Ga(o))||t.ca(i.Ga(r))||t.ca(i.Ga(s)))h=!0;else{e=T.allocAt(0,0,e.width,e.height);var l=x.allocAt(t.x,t.y);e.ca(i.Cd(l))?h=!0:(l.h(t.x,t.bottom),e.ca(i.Cd(l))?h=!0:(l.h(t.right,t.bottom),e.ca(i.Cd(l))?h=!0:(l.h(t.right,t.y),e.ca(i.Cd(l))&&(h=!0)))),x.free(l),T.free(e),!h&&(P.ts(t,n,o)||P.ts(t,o,r)||P.ts(t,r,s)||P.ts(t,s,n))&&(h=!0)}return x.free(n),x.free(o),x.free(r),x.free(s),h},d.ga=function(t,i){if(i===void 0&&(i=new x),t instanceof H){var e=this.naturalBounds;i.h(t.x*e.width+t.offsetX,t.y*e.height+t.offsetY)}else i.set(t);return this.oe.Ga(i),i},d.mi=function(t){t===void 0&&(t=new T);var i=this.naturalBounds,e=this.oe,n=x.allocAt(0,0).transform(e);return t.h(n.x,n.y,0,0),n.h(i.width,0).transform(e),yi(t,n.x,n.y,0,0),n.h(i.width,i.height).transform(e),yi(t,n.x,n.y,0,0),n.h(0,i.height).transform(e),yi(t,n.x,n.y,0,0),x.free(n),t},d.li=function(){var t=this.oe;return t.m11===1&&t.m12===0?t=0:(t=180*Math.atan2(t.m12,t.m11)/Math.PI,0>t&&(t+=360)),t},d.Df=function(){if(!(this.l&4096))return this.Jk;var t=this.Ca;return this.panel!==null?t*this.panel.Df():t},d.ps=function(t,i){return i===void 0&&(i=new x),i.assign(t),this.oe.Cd(i),i},d.qs=function(t,i,e){return this.Rj(t.x,t.y,i.x,i.y,e)},d.Rj=function(t,i,e,n,o){var r=this.transform,s=1/(r.m11*r.m22-r.m12*r.m21),h=r.m22*s,l=-r.m12*s,u=-r.m21*s,a=r.m11*s,f=s*(r.m21*r.dy-r.m22*r.dx),p=s*(r.m12*r.dx-r.m11*r.dy);return this.areaBackground!==null?(r=this.actualBounds,P.Ff(r.left,r.top,r.right,r.bottom,t,i,e,n,o)):(s=t*h+i*u+f,t=t*l+i*a+p,i=e*h+n*u+f,e=e*l+n*a+p,o.h(0,0),n=this.naturalBounds,e=P.Ff(0,0,n.width,n.height,s,t,i,e,o),o.transform(r),e)},X.prototype.measure=function(t,i,e,n){if(Eo(this)!==!1){var o=this.Kg,r=o.right+o.left;o=o.top+o.bottom,t=Math.max(t-r,0),i=Math.max(i-o,0),e=Math.max((e||0)-r,0),n=Math.max((n||0)-o,0),r=this.angle,o=this.desiredSize;var s=this.jq();r===90||r===270?(t=isFinite(o.height)?o.height+s:t,i=isFinite(o.width)?o.width+s:i):(t=isFinite(o.width)?o.width+s:t,i=isFinite(o.height)?o.height+s:i),o=e||0,s=n||0;var h=this instanceof j;switch(Mn(this,!0)){case Xt:s=o=0,h&&(i=t=1/0);break;case Ut:isFinite(t)&&t>e&&(o=t),isFinite(i)&&i>n&&(s=i);break;case wi:isFinite(t)&&t>e&&(o=t),s=0,h&&(i=1/0);break;case Pi:isFinite(i)&&i>n&&(s=i),o=0,h&&(t=1/0)}h=this.maxSize;var l=this.minSize;o>h.width&&l.width<h.width&&(o=h.width),s>h.height&&l.height<h.height&&(s=h.height),e=Math.max(o,l.width),n=Math.max(s,l.height),h.width<e&&(e=Math.min(l.width,e)),h.height<n&&(n=Math.min(l.height,n)),t=Math.min(h.width,t),i=Math.min(h.height,i),t=Math.max(e,t),i=Math.max(n,i),(r===90||r===270)&&(r=t,t=i,i=r,r=e,e=n,n=r),this.uc.ka(),this.Vl(t,i,e,n),this.uc.freeze(),this.uc.w()||O("Non-real measuredBounds has been set. Object "+this+", measuredBounds: "+this.uc.toString()),Ie(this,!1)}},X.prototype.Vl=function(){},X.prototype.Dd=function(){return!1},X.prototype.arrange=function(t,i,e,n,o){this.Tk();var r=T.alloc();r.assign(this.Jb),this.Jb.ka(),hn(this)===!1?this.Jb.h(t,i,e,n):this.eh(t,i,e,n),this.Jb.freeze(),o===void 0?this.tb=null:this.tb=o,e=!1,o!==void 0?e=!0:(o=this.panel,o!==null&&Vo(o)&&(o=o.panel),o!==null&&(o=o.ec,n=this.measuredBounds,this.areaBackground!==null&&(n=this.Jb),e=i+n.height,n=t+n.width,e=!(0<=t+.05&&n<=o.width+.05&&0<=i+.05&&e<=o.height+.05),this instanceof St&&(t=this.naturalBounds,this.Kq>t.height||this.Db>t.width))&&(e=!0)),this.l=e?this.l|256:this.l&-257,this.Jb.w()||O("Non-real actualBounds has been set. Object "+this+", actualBounds: "+this.Jb.toString()),this.Wl(r,this.Jb),Vr(this,!1),T.free(r)},d=X.prototype,d.eh=function(){};function dc(t,i,e,n,o){if(t.Jb.h(i,e,n,o),!t.desiredSize.w()){var r=t.uc;e=t.Kg,i=e.right+e.left;var s=e.top+e.bottom;switch(e=r.width+i,r=r.height+s,n+=i,o+=s,i=Mn(t,!0),e===n&&r===o&&(i=Xt),i){case Xt:(e>n||r>o)&&(Ie(t,!0),t.measure(e>n?n:e,r>o?o:r,0,0));break;case Ut:Ie(t,!0),t.measure(n,o,0,0);break;case wi:Ie(t,!0),t.measure(n,r,0,0);break;case Pi:Ie(t,!0),t.measure(e,o,0,0)}}}d.Wl=function(t,i){var e=this.part;e!==null&&e.diagram!==null&&(e.selectionObject!==this&&e.resizeObject!==this&&e.rotateObject!==this||td(e,!0),this.N(),np(t,i)||(e.oh(),this.On(e)))},d.On=function(t){this.portId!==null&&(td(t,!0),t instanceof B&&_y(t,this))},d.hc=function(t,i){if(!$v(this,t,i)&&this.visible){var e=this.opacity;if(e!==0){var n=1;e!==1&&(n=t.globalAlpha,t.globalAlpha=n*e);var o="";this.filter!==""&&(o=t.filter,t.filter=this.filter);var r=this instanceof j&&Vo(this),s=this.Jb;if(r){var h=this.Jb,l=this.ec,u=this.areaBackground,a=this.Ma;u===null&&a===null||t.yc(),u!==null&&(Me(this,t,u,!0,!0,l,h),u instanceof ct&&u.type===Ee?(t.beginPath(),t.rect(h.x,h.y,h.width,h.height),t.ng(u)):t.fillRect(h.x,h.y,h.width,h.height)),a!==null&&(Me(this,t,a,!0,!1,l,h),a instanceof ct&&a.type===Ee?(t.beginPath(),t.rect(h.x,h.y,h.width,h.height),t.ng(a)):t.fillRect(h.x,h.y,h.width,h.height)),this.hh(t,i)}if(!r&&(r||s.width!==0&&s.height!==0&&!isNaN(s.x)&&!isNaN(s.y))){r=this.transform,h=this.panel,this.l&4096&&ea(this),u=this.part,l=!1;var f=0;u&&i.Gf("drawShadows")&&(l=u.isShadowed)&&(a=u.shadowOffset,f=Math.max(a.y,a.x)*i.scale*i.Nb),a=this.Dd();var p;if(!(p=i.$i||!a)){var c=this.naturalBounds;p=this.wh;var g=p.m11,y=p.m21,v=p.dx,m=p.m12,w=p.m22,M=p.dy,S,N=S=0;p=S*g+N*y+v;var k=S*m+N*w+M;S=c.width+f,N=0;var D=S*g+N*y+v;S=S*m+N*w+M,N=Math.min(p,D);var z=Math.min(k,S),Y=Math.max(p+0,D)-N,A=Math.max(k+0,S)-z;p=N,k=z,S=c.width+f,N=c.height+f,D=S*g+N*y+v,S=S*m+N*w+M,N=Math.min(p,D),z=Math.min(k,S),Y=Math.max(p+Y,D)-N,A=Math.max(k+A,S)-z,p=N,k=z,S=0,N=c.height+f,D=S*g+N*y+v,S=S*m+N*w+M,N=Math.min(p,D),z=Math.min(k,S),Y=Math.max(p+Y,D)-N,A=Math.max(k+A,S)-z,p=N,k=z,f=i.viewportBounds,c=f.x,g=f.y,p=!(p>f.width+c||c>Y+p||k>f.height+g||g>A+k)}if(p){if(p=(this.l&256)!==0,t.clipInsteadOfFill&&(p=!1),this instanceof St&&(t.font=this.font),p){if(k=h.se()?h.naturalBounds:h.actualBounds,Y=Math.max(s.x,k.x),A=Math.max(s.y,k.y),f=Math.min(s.right,k.right)-Y,c=Math.min(s.bottom,k.bottom)-A,g=this.tb,g!==null&&(Y=g.x,A=g.y,f=g.width,c=g.height),Y>s.width+s.x||s.x>k.width+k.x){e!==1&&(t.globalAlpha=n),this.filter!==""&&(t.filter=o);return}t.save(),t.beginPath(),t.rect(Y,A,f,c),t.clip()}if(a){if(!u.isVisible()){e!==1&&(t.globalAlpha=n),this.filter!==""&&(t.filter=o);return}l&&(k=u.shadowOffset,t.Ev(k.x*i.scale*this.scale*i.Nb,k.y*i.scale*this.scale*i.Nb,u.shadowBlur),go(t),t.shadowColor=u.shadowColor)}l&&this.shadowVisible===!0?go(t):l&&this.shadowVisible===!1&&Jn(t),u=this.naturalBounds,this.areaBackground!==null&&(t.yc(),gc(this,t,u,s)),t.transform(r.m11,r.m12,r.m21,r.m22,r.dx,r.dy),l&&ta(this,h)&&this.shadowVisible===null&&Jn(t),this.Ma!==null&&(t.yc(),ia(this,t,u,s)),l&&(this.Ma!==null||this.areaBackground!==null||ta(this,h))?(na(this,!0),this.shadowVisible===null&&Jn(t)):na(this,!1),this.hh(t,i),l&&this.l&512&&go(t),a&&l&&Jn(t),p&&(t.restore(),t.Vc(this instanceof j)),r.vs()||(i=1/(r.m11*r.m22-r.m12*r.m21),t.transform(r.m22*i,-r.m12*i,-r.m21*i,r.m11*i,i*(r.m21*r.dy-r.m22*r.dx),i*(r.m12*r.dx-r.m11*r.dy)))}}e!==1&&(t.globalAlpha=n),this.filter!==""&&(t.filter=o)}}};function ta(t,i){return i===null?!1:(Vo(i)&&(i=i.panel),(i.l&512)!==0||(i.type===j.Auto||i.type===j.Spot)&&i.Qb()!==t)}d.Dv=function(){};function gc(t,i,e,n){Me(t,i,t.areaBackground,!0,!0,e,n),t.areaBackground instanceof ct&&t.areaBackground.type===Ee?(i.beginPath(),i.rect(n.x,n.y,n.width,n.height),i.ng(t.areaBackground)):i.fillRect(n.x,n.y,n.width,n.height)}function ia(t,i,e,n){var o=t.jq(),r=e.x,s=e.y,h=e.width+o,l=e.height+o;Me(t,i,t.Ma,!0,!1,e,n),t.Ma instanceof ct&&t.Ma.type===Ee?(i.beginPath(),i.rect(r-o/2,s-o/2,h,l),i.ng(t.Ma)):i.fillRect(r-o/2,s-o/2,h,l)}function $0(t,i,e){for(var n=i.O.s,o=n.length,r=-1,s=0;s<o;s++)if(n[s]===t){r=s;break}if(t=r,t!==-1)if(t===0)i.svg.gd?i.svg.gd.after(e):i.svg.Ma?i.svg.Ma.after(e):i.type===j.Table?(i=i.svg.getElementsByClassName("gojs-ts"),i=i.length!==0?i[0]:null,i!==null&&i.after(e)):i.svg.prepend(e);else{for(;t!==0&&!i.M(t-1).Ed();)t--;t===0?i.svg.prepend(e):(t=i.M(t-1).svg,t!==null?t.after(e):i.svg.appendChild(e))}}function $v(t,i,e){if(!(i instanceof pe))return!1;if(!t.visible||t.opacity===0||t.Dd()&&!t.isVisible())return t.svg!==null&&t.svg.parentNode!==null&&t.svg.remove(),!0;var n=t.panel,o=t.mk(i);if(t.jk(i,e,o))return Q0(t,t.svg),t.svg.parentElement!==null?(t.Dd()&&(i.ti=t.svg),!0):(t.Dd()?(i.ti!==null?i.ti.after(t.svg):i.Mj.prepend(t.svg),i.ti=t.svg):n&&$0(t,n,t.svg),!0);if(t.Dd()&&t.isShadowed){var r=t.shadowOffset;i.Ev(r.x*e.scale*t.scale*e.Nb,r.y*e.scale*t.scale*e.Nb,t.shadowBlur),go(i),i.shadowColor=t.shadowColor}t instanceof St&&(i.font=t.font),i.yd=null;var s=t.transform;r=t instanceof j;var h=t instanceof j?Vo(t):!1;t.l&4096&&ea(t);var l=t.Jb;if(i.rb.ha=[1,0,0,1,0,0],i.o=!1,o&&(i.o=!0,r&&h?(Cl(i,1,0,0,1,0,0),t.svg=i.ad):r?(Cl(i,s.m11,s.m12,s.m21,s.m22,s.dx,s.dy),t.svg=i.ad):Cl(i,1,0,0,1,0,0)),o=t.naturalBounds,t.areaBackground!==null){var u=s.copy().Uj();i.rb.ha=[u.m11,u.m12,u.m21,u.m22,u.dx,u.dy],gc(t,i,o,l),i.rb.ha=[1,0,0,1,0,0],i.yd.gd=i.ad,i.yd.prepend(i.ad)}return r||(i.rb.ha=[s.m11,s.m12,s.m21,s.m22,s.dx,s.dy]),t.background!==null&&(r?(h&&(i.rb.ha=[s.m11,s.m12,s.m21,s.m22,s.dx,s.dy]),ia(t,i,o,l),h&&(i.rb.ha=[1,0,0,1,0,0])):(i.rb.ha=[s.m11,s.m12,s.m21,s.m22,s.dx,s.dy],ia(t,i,o,l)),i.yd.Ma=i.ad,i.yd.prepend(i.ad)),s=i.yd,o=t.part,h=!1,o&&e.Gf("drawShadows")&&(h=o.isShadowed),i.clipInsteadOfFill&&(h=!1),t.Dd()&&h&&go(i),h&&t.shadowVisible===!0?go(i):h&&t.shadowVisible===!1&&Jn(i),o=t.panel,h&&ta(t,o)&&t.shadowVisible===null&&Jn(i),i.Hl&&(u=e.computePixelRatio(),u="drop-shadow("+i.shadowOffsetX/u+"px "+i.shadowOffsetY/u+"px "+i.shadowBlur/u/2+"px "+i.shadowColor+")",t.background!==null&&s.Ma.setAttributeNS(null,"filter",u),t.areaBackground!==null&&s.gd.setAttributeNS(null,"filter",u)),h&&(t.Ma!==null||t.areaBackground!==null||ta(t,o))?(na(t,!0),t.shadowVisible===null&&Jn(i)):na(t,!1),o=h,t.hh(i,e),r&&i.nh.pop(),i.o&&i.nh.pop(),s=i.Gv.gs,h=r?t.svg:i.yd,u=t.svg,!r&&u!==null&&h!==u&&u.parentNode===t.panel.svg?(t.svg.replaceWith(h),t.svg=h,h!==null&&t.Zo(i,n,l,h),q0(i,u),!0):(t.svg=h,s!==null&&h===null&&(ra(i),i.nh.pop()),h===null||(t.Zo(i,n,l,h),i.Hl&&(e=e.computePixelRatio(),t.Dv(h,"drop-shadow("+i.shadowOffsetX/e+"px "+i.shadowOffsetY/e+"px "+i.shadowBlur/e/2+"px "+i.shadowColor+")")),o&&t.l&512&&go(i),t.Dd()&&Jn(i),e=t.Dd()?t.opacity*i.globalAlpha:t.opacity,e!==1&&h.setAttributeNS(null,"opacity",e.toString()),t.filter!==""&&h.setAttributeNS(null,"filter",t.filter),t.Dd()?(i.ti?i.ti.after(h):i.Mj.prepend(h),i.ti=h):n!==null&&$0(t,n,h),s!==null&&s(t,h),Q0(t,h)),!0)}function Q0(t,i){i=i.dataset,t instanceof X&&(t.portId!==null&&(i.portId=t.portId),t instanceof j&&(isNaN(t.itemIndex)||(i.itemIndex=t.itemIndex.toString()),t instanceof U&&(i.className=Ar(t),t.key!==void 0&&(i.key=t.key.toString()),t instanceof F&&(t.fromNode!==null&&(i.fromKey=t.fromNode.key.toString()),t.fromPortId!==""&&(i.fromPortId=t.fromPortId),t.toNode!==null&&(i.toKey=t.toNode.key.toString()),t.toPortId!==""&&(i.toPortId=t.toPortId)))))}d.Zo=function(t,i,e,n){var o=(this.l&256)!==0;if(t.clipInsteadOfFill&&(o=!1),o){var r=i.se()?i.naturalBounds:i.actualBounds;i=Math.max(e.x,r.x),o=Math.max(e.y,r.y);var s=Math.min(e.right,r.right)-i;e=Math.min(e.bottom,r.bottom)-o,r=this.tb,r!==null&&(i=r.x,o=r.y,s=r.width,e=r.height),r=n.getAttribute("clip-path");var h=null;r!==null&&(h=t.svg.getElementById(r.split("#")[1].slice(0,-1))),h===null?(r="CLIP"+ss++,h=t.Ud("clipPath",{id:r}),i=t.Ud("rect",{x:i,y:o,width:s,height:e}),this instanceof j&&(o=this.transform.copy().Uj(),i.setAttribute("transform","matrix("+o.m11+", "+o.m12+", "+o.m21+", "+o.m22+", "+o.dx+", "+o.dy+")")),h.appendChild(i),t.svg.appendChild(h),n.setAttributeNS(null,"clip-path","url(#"+r+")")):(t=h.firstElementChild,t.setAttribute("x",i.toString()),t.setAttribute("y",o.toString()),t.setAttribute("width",s.toString()),t.setAttribute("height",e.toString()))}else n.removeAttributeNS(null,"clip-path"),q0(t,n)};function q0(t,i){i=i.getAttribute("clip-path"),i!==null&&(t=t.svg.getElementById(i.split("#")[1].slice(0,-1)),t!==null&&t.remove())}function yc(t){if(t.svg!==null){var i=t.svg.innerHTML.match(/url\(#((CLIP|GRAD).+?)\)/g),e=t.svg.ownerDocument;if(i!==null){i=b(i);for(var n=i.next();!n.done;n=i.next())n=e.getElementById(n.value.split("#")[1].slice(0,-1)),n!==null&&n.remove()}t.svg.remove()}}d.hh=function(){},d.lv=function(){this.Uc=!0},d.jk=function(t,i,e){if(this.Uc)return this.lv(),this.Uc=!1;if(i=this.svg,i===null)return!1;if(!this.visible)return i.remove(),!1;if(i.nodeName!=="g"&&e||i.nodeName==="g"&&!e)return!1;var n=this.transform,o=this instanceof j?Vo(this):!1;if(!(this instanceof j&&o))if(this instanceof te){var r=this.at;t.rb.ha=[n.m11,n.m12,n.m21,n.m22,n.dx,n.dy],r!==null&&iy(t,r[0],r[1],r[2],r[3],r[4],r[5],r[6],r[7]),e?i.lastElementChild.setAttributeNS(null,"transform",ey(t)):i.setAttributeNS(null,"transform",ey(t))}else if(!e||this instanceof j)i.setAttributeNS(null,"transform","matrix("+n.m11+", "+n.m12+", "+n.m21+", "+n.m22+", "+n.dx+", "+n.dy+")");else if(this instanceof q){r=i.getElementsByTagName("path");for(var s=0;s<r.length;s++)r[s].setAttributeNS(null,"transform","matrix("+n.m11+", "+n.m12+", "+n.m21+", "+n.m22+", "+n.dx+", "+n.dy+")")}else(i.lastElementChild||i).setAttributeNS(null,"transform","matrix("+n.m11+", "+n.m12+", "+n.m21+", "+n.m22+", "+n.dx+", "+n.dy+")");return r=this.Dd()?this.opacity*t.globalAlpha:this.opacity,r===1?i.removeAttribute("opacity"):i.setAttributeNS(null,"opacity",r.toString()),t.rb.ha=[1,0,0,1,0,0],(this.areaBackground!==null||i.gd!==void 0)&&(r=i.gd,this.areaBackground===null?(i.gd.remove(),i.gd=void 0):(s=n.copy().Uj(),t.rb.ha=[s.m11,s.m12,s.m21,s.m22,s.dx,s.dy],gc(this,t,this.naturalBounds,this.actualBounds),t.rb.ha=[1,0,0,1,0,0],i.gd?(s=i.gd.getAttribute("filter"),s!==null&&t.ad.setAttribute("filter",s),i.gd.replaceWith(t.ad)):i.prepend(t.ad),i.gd=t.ad),r&&sa(t,r)),(this.background!==null||i.Ma!==void 0)&&(r=i.Ma,this.background===null?(sa(t,i.Ma),i.Ma.remove(),i.Ma=void 0):((o||e&&!(this instanceof j))&&(t.rb.ha=[n.m11,n.m12,n.m21,n.m22,n.dx,n.dy]),ia(this,t,this.naturalBounds,this.actualBounds),i.Ma?(sa(t,i.Ma),e=i.Ma.getAttribute("filter"),e!==null&&t.ad.setAttribute("filter",e),i.Ma.replaceWith(t.ad)):i.prepend(t.ad),i.Ma=t.ad),r&&sa(t,r)),this.Zo(t,this.panel,this.actualBounds,i),!0},d.mk=function(t){if(this.background!==null||this.areaBackground!==null)return!0;var i=(this.l&256)!==0;return t.clipInsteadOfFill&&(i=!1),!!i};function Me(t,i,e,n,o,r,s){if(e!==null){var h=1,l=1;if(typeof e=="string")n?i.fillStyle=e:i.strokeStyle=e;else if(e.type===Ro)n?i.fillStyle=e.color:i.strokeStyle=e.color;else{var u=t.jq();if(h=r.width,l=r.height,o?(h=s.width,l=s.height):n||(h+=u,l+=u),(r=i instanceof Gr)&&e.xe&&(e.type===Mh||e.xk===h&&e.et===l))var a=e.xe;else{var f=0,p=0,c=0,g=0,y=0,v=0;if(v=y=0,o?(y=s.x,v=s.y):n||(y-=u/2,v-=u/2),f=e.start.x*h+e.start.offsetX,p=e.start.y*l+e.start.offsetY,c=e.end.x*h+e.end.offsetX,g=e.end.y*l+e.end.offsetY,f+=y,c+=y,p+=v,g+=v,e.type===mo)a=i.createLinearGradient(f,p,c,g);else if(e.type===Ee)v=isNaN(e.endRadius)?Math.max(h,l)/2:e.endRadius,isNaN(e.startRadius)?(y=0,v=Math.max(h,l)/2):y=e.startRadius,a=i.createRadialGradient(f,p,y,c,g,v);else if(e.type===Mh)try{a=i.createPattern(e.pattern,"repeat")}catch{a=null}if(e.type!==Mh&&(o=e.colorStops,o!==null))for(o=o.iterator;o.next();)a.addColorStop(o.key,o.value);if(r&&(e.xe=a,a!==null&&(e.xk=h,e.et=l),a===null&&e.type===Mh&&e.xk!==-1)){e.xk=-1;var m=t.diagram;m!==null&&e.xk===-1&&ho(function(){m.redraw()},600)}}n?i.fillStyle=a:i.strokeStyle=a}}}d.rg=function(t){if(t instanceof j)t:{if(this!==t&&t!==null)for(var i=this.panel;i!==null;){if(i===t){t=!0;break t}i=i.panel}t=!1}else t=!1;return t},d.Ed=function(){if(!this.visible)return!1;var t=this.panel;return t!==null?t.Ed():!0},d.If=function(){for(var t=this instanceof j?this:this.panel;t!==null&&t.isEnabled;)t=t.panel;return t===null};function ea(t){if(t.l&2048){var i=t.Bb;if(i.reset(),!t.Jb.w()||!t.uc.w()){dh(t,!1);return}if(i.translate(t.Jb.x-t.uc.x,t.Jb.y-t.uc.y),t.scale!==1||t.angle!==0){var e=t.naturalBounds;t.mo(i,e.x,e.y,e.width,e.height)}dh(t,!1),sr(t,!0)}t.l&4096&&(i=t.panel,i===null?(t.wh.set(t.Bb),t.Jk=t.scale,sr(t,!1)):i.oe!==null&&(e=t.wh,e.reset(),i.se()?e.multiply(i.wh):i.panel!==null&&e.multiply(i.panel.wh),e.multiply(t.Bb),t.Jk=t.scale*i.Jk,sr(t,!1)))}d.mo=function(t,i,e,n,o){if(this.Ca!==1&&t.scale(this.Ca),this.Lb!==0){var r=x.alloc();r.yi(i,e,n,o,vt),t.rotate(this.Lb,r.x,r.y),x.free(r)}},d.v=function(t){if(!Eo(this)){t===void 0&&(t=!1),Ie(this,!0),Vr(this,!0);var i=this.panel;i===null||t||i.v()}},d.Tj=function(){Eo(this)||(Ie(this,!0),Vr(this,!0))};function ch(t){if(!hn(t)){var i=t.panel;i!==null?i.v():t.Dd()&&(i=t.diagram,i!==null&&(i.De.add(t),t instanceof B&&t.Bd(),i.ac())),Vr(t,!0)}}d.Tk=function(){!(this.l&2048)&&(dh(this,!0),sr(this,!0))},d.Wu=function(){sr(this,!0)},d.N=function(){var t=this.part;t!==null&&t.N()};function Mn(t,i){var e=t.stretch,n=t.panel;return n!==null&&n.type===j.Table?Pl(t,n.Gb(t.row),n.Fb(t.column),i):n!==null&&n.type===j.Auto&&n.Qb()===t?co(t,Ut,i):e===sn?n!==null?n.type===j.Spot&&n.Qb()===t?co(t,Ut,i):(e=n.defaultStretch,e===sn?co(t,Xt,i):co(t,e,i)):co(t,Xt,i):co(t,e,i)}function Pl(t,i,e,n){var o=t.stretch;if(o!==sn)return co(t,o,n);var r=o=null;switch(i.stretch){case Pi:r=!0;break;case Ut:r=!0}switch(e.stretch){case wi:o=!0;break;case Ut:o=!0}return i=t.panel.defaultStretch,o===null&&(o=i===wi||i===Ut),r===null&&(r=i===Pi||i===Ut),o===!0&&r===!0?co(t,Ut,n):o===!0?co(t,wi,n):r===!0?co(t,Pi,n):co(t,Xt,n)}function co(t,i,e){if(e)return i;if(i===Xt||(e=t.desiredSize,e.w()))return Xt;if(t=t.angle,!isNaN(e.width))if(t!==90&&t!==270){if(i===wi)return Xt;if(i===Ut)return Pi}else{if(i===Pi)return Xt;if(i===Ut)return wi}if(!isNaN(e.height))if(t!==90&&t!==270){if(i===Pi)return Xt;if(i===Ut)return wi}else{if(i===wi)return Xt;if(i===Ut)return Pi}return i}function na(t,i){t.l=i?t.l|512:t.l&-513}function vs(t){return(t.l&1024)!==0}function mc(t,i){t.l=i?t.l|1024:t.l&-1025}function dh(t,i){t.l=i?t.l|2048:t.l&-2049}function sr(t,i){t.l=i?t.l|4096:t.l&-4097}function Eo(t){return(t.l&8192)!==0}function Ie(t,i){t.l=i?t.l|8192:t.l&-8193}function hn(t){return(t.l&16384)!==0}function Vr(t,i){t.l=i?t.l|16384:t.l&-16385}d.Fj=function(){this.svg=null},d.wi=function(t){this.Me=t,this.svg!==null&&this.svg.remove()},d.Av=function(){},d.zv=function(t){return this.pa=t,ch(this),!0},d.lm=function(t,i){(this.pa.x!==t||this.pa.y!==i)&&(this.pa.h(t,i),this.Tk())},d.jq=function(){return 0};function Yr(t){var i=t.part;if(i instanceof B&&(t.portId!==null||t===i.port)){var e=i.diagram;e===null||e.undoManager.isUndoingRedoing||_y(i,t)}}function b0(t){var i=t.diagram;i===null||i.undoManager.isUndoingRedoing||(t instanceof j?t instanceof B?t.Bd():t.pm(t,function(e){Yr(e)}):Yr(t))}d.bind=function(t,i,e,n){var o=null;return typeof t=="string"?o=new Ht(t,i,e,n):o=t,o.xd=this,t=this.ih(),t!==null&&vy(t)&&O("Cannot add a Binding to a template that has already been copied: "+o),this.localBindings===null&&(this.localBindings=new V),this.localBindings.add(o),this},d.set=function(t){return Object.assign(this,t),this},d.Du=function(t){return vc(this,t),this},d.apply=function(t){return t(this),this},d.mm=function(t){return yl(this,t),this},d.pz=function(){return this.ih()},d.ih=function(){for(var t=this instanceof j?this:this.panel;t!==null;){if(t.allBindings!==null)return t;t=t.panel}return null},d.Jv=function(t){return t.xd=this,this.animationTriggers===null&&(this.animationTriggers=new _),this.animationTriggers.add(t.propertyName,t),this};function De(t,i){for(var e=1;e<arguments.length;++e);e=arguments;var n=null,o=null;if(typeof t=="function")o=t;else if(typeof t=="string"){var r=gh.I(t);typeof r=="function"?(e=Gs(arguments),n=r(e),At(n)||O('GraphObject.make invoked object builder "'+t+'", but it did not return an Object')):o=J.go[t]}if(n===null&&(o!=null&&o.constructor||O("GraphObject.make requires a class function or GoJS class name or name of an object builder, not: "+t),n=new o),o=1,n instanceof C&&1<e.length){r=n;var s=e[1];(typeof s=="string"||s instanceof HTMLDivElement)&&(Gp(r,s),o++)}for(;o<e.length;o++)r=e[o],r===void 0?O("Undefined value at argument "+o+" for object being constructed by GraphObject.make: "+n):vc(n,r);return n}function vc(t,i){if(typeof i=="string")if(t instanceof St)t.text=i;else if(t instanceof q)t.figure=i;else if(t instanceof te)t.source=i;else if(t instanceof j)i=ln.I(i),i!==null&&(t.type=i);else if(t instanceof ct){var e=os(ct,i);e!==null?t.type=e:O("Unknown Brush type as an argument to GraphObject.make: "+i)}else t instanceof I?(i=os(I,i),i!==null&&(t.type=i)):t instanceof ft&&(i=os(ft,i),i!==null&&(t.type=i));else if(i instanceof X)t instanceof j||O("A GraphObject can only be added to a Panel, not to: "+t),t.add(i);else if(i instanceof _t){var n;i.isRow&&typeof t.getRowDefinition=="function"?n=t.getRowDefinition(i.index):i.isRow||typeof t.getColumnDefinition!="function"||(n=t.getColumnDefinition(i.index)),n instanceof _t?Sa(n,i):O("A RowColumnDefinition can only be added to an object that implements getRowDefinition/getColumnDefinition, not to: "+t)}else if(i instanceof R)typeof t.qb=="function"&&t.qb(i);else if(i instanceof bt)t.type=i;else if(i instanceof Ht)t instanceof X||t instanceof _t?t.bind(i):O("A Binding can only be applied to a GraphObject or RowColumnDefinition, not to: "+t);else if(i instanceof Hn)t instanceof X?t.Jv(i):O("An AnimationTrigger can only be applied to a GraphObject, not to: "+t);else if(i instanceof pi)t instanceof I&&t.type===I.o?t.figures.add(i):O("A PathFigure can only be added to a Path Geometry, not to: "+t);else if(i instanceof ft)t instanceof pi?t.segments.add(i):O("A PathSegment can only be added to a PathFigure, not to: "+t);else if(i instanceof Lt)t instanceof C||t instanceof Q?t.layout=i:O("A Layout can only be assigned to a Diagram or a Group, not to: "+t);else if(Array.isArray(i))for(e=0;e<i.length;e++)vc(t,i[e]);else if(typeof i=="object"&&i!==null)if(t instanceof ct){e=new Xe;for(var o in i)n=parseFloat(o),isNaN(n)?e[o]=i[o]:t.addColorStop(n,i[o]);yl(t,e)}else if(t instanceof _t){i.row!==void 0?(o=i.row,(o==null||o===1/0||isNaN(o)||0>o)&&O("Must specify non-negative integer row for RowColumnDefinition "+i+", not: "+o),t.isRow=!0,t.index=o):i.column!==void 0&&(o=i.column,(o==null||o===1/0||isNaN(o)||0>o)&&O("Must specify non-negative integer column for RowColumnDefinition "+i+", not: "+o),t.isRow=!1,t.index=o),o=new Xe;for(e in i)e!=="row"&&e!=="column"&&(o[e]=i[e]);yl(t,o)}else yl(t,i);else O('Unknown initializer "'+i+'" for object being constructed by GraphObject.make: '+t)}function Bo(t,i){gh.add(t,i)}function oa(t,i,e){e===void 0&&(e=null);var n=t[1];if(typeof e=="function"?e(n):typeof n=="string")return t.splice(1,1),n;if(i===void 0)throw Error("no "+(typeof e=="function"?"satisfactory":"string")+" argument for GraphObject builder "+t[0]);return i}tt.Object.defineProperties(X.prototype,{bindingId:{get:function(){return this.A!==null?this.A.yp:-1},set:function(t){this.bindingId!==t&&(this.A===null&&(this.A=new xs),this.A.yp=t)}},localBindings:{get:function(){return this.A!==null?this.A.te:null},set:function(t){this.localBindings!==t&&(this.A===null&&(this.A=new xs),this.A.te=t)}},srcBindings:{get:function(){return this.A!==null?this.A.vm:null},set:function(t){this.srcBindings!==t&&(this.A===null&&(this.A=new xs),this.A.vm=t)}},shadowVisible:{get:function(){return this.A!==null?this.A.Ci:null},set:function(t){var i=this.shadowVisible;i!==t&&(ei(this),this.A.Ci=t,this.Uc=!0,this.N(),this.g("shadowVisible",i,t))}},enabledChanged:{get:function(){return this.A!==null?this.A.Ib:null},set:function(t){var i=this.enabledChanged;i!==t&&(ei(this),this.A.Ib=t,this.g("enabledChanged",i,t))}},segmentOrientation:{get:function(){return this.Ua!==null?this.Ua.qr:Ui},set:function(t){var i=this.segmentOrientation;i!==t&&(this.Ua===null&&(this.Ua=new hr),this.Ua.qr=t,this.v(),this.g("segmentOrientation",i,t),t===Ui&&(this.angle=0))}},segmentIndex:{get:function(){return this.Ua!==null?this.Ua.u:-1/0},set:function(t){t=Math.round(t);var i=this.segmentIndex;i!==t&&(this.Ua===null&&(this.Ua=new hr),this.Ua.u=t,this.v(),this.g("segmentIndex",i,t))}},segmentFraction:{get:function(){return this.Ua!==null?this.Ua.o:0},set:function(t){isNaN(t)||0>t?t=0:1<t&&(t=1);var i=this.segmentFraction;i!==t&&(this.Ua===null&&(this.Ua=new hr),this.Ua.o=t,this.v(),this.g("segmentFraction",i,t))}},segmentOffset:{get:function(){return this.Ua!==null?this.Ua.F:lo},set:function(t){var i=this.segmentOffset;i.D(t)||(t=t.J(),this.Ua===null&&(this.Ua=new hr),this.Ua.F=t,this.v(),this.g("segmentOffset",i,t))}},stretch:{get:function(){return this.A!==null?this.A.hg:sn},set:function(t){var i=this.stretch;i!==t&&(ei(this),this.A.hg=t,this.v(),this.g("stretch",i,t))}},name:{get:function(){return this.A!==null?this.A.xa:""},set:function(t){var i=this.name;i!==t&&(ei(this),this.A.xa=t,this.part!==null&&(this.part.Rh=null),this.g("name",i,t))}},opacity:{get:function(){return this.pb},set:function(t){var i=this.pb;i!==t&&((0>t||1<t)&&jt(t,"0 <= value <= 1",X,"opacity"),this.pb=t,this.g("opacity",i,t),t=this.diagram,i=this.part,t!==null&&i!==null&&t.N(Hr(i,i.actualBounds)))}},filter:{get:function(){return this.an},set:function(t){var i=this.an;i!==t&&(this.an=t,this.Uc=!0,this.g("filter",i,t),t=this.diagram,i=this.part,t!==null&&i!==null&&t.N(Hr(i,i.actualBounds)))}},visible:{get:function(){return(this.l&1)!==0},set:function(t){var i=(this.l&1)!==0;i!==t&&(this.l^=1,this.g("visible",i,t),i=this.panel,i!==null?i.v():this.Dd()&&this.$b(t),this.N(),b0(this))}},pickable:{get:function(){return(this.l&2)!==0},set:function(t){var i=(this.l&2)!==0;i!==t&&(this.l^=2,this.g("pickable",i,t))}},fromLinkableDuplicates:{get:function(){return(this.l&4)!==0},set:function(t){var i=(this.l&4)!==0;i!==t&&(this.l^=4,this.g("fromLinkableDuplicates",i,t))}},fromLinkableSelfNode:{get:function(){return(this.l&8)!==0},set:function(t){var i=(this.l&8)!==0;i!==t&&(this.l^=8,this.g("fromLinkableSelfNode",i,t))}},toLinkableDuplicates:{get:function(){return(this.l&16)!==0},set:function(t){var i=(this.l&16)!==0;i!==t&&(this.l^=16,this.g("toLinkableDuplicates",i,t))}},toLinkableSelfNode:{get:function(){return(this.l&32)!==0},set:function(t){var i=(this.l&32)!==0;i!==t&&(this.l^=32,this.g("toLinkableSelfNode",i,t))}},isPanelMain:{get:function(){return(this.l&64)!==0},set:function(t){var i=(this.l&64)!==0;i!==t&&(this.l^=64,this.v(),this.g("isPanelMain",i,t))}},isActionable:{get:function(){return(this.l&128)!==0},set:function(t){var i=(this.l&128)!==0;i!==t&&(this.l^=128,this.g("isActionable",i,t))}},areaBackground:{get:function(){return this.A!==null?this.A.gd:null},set:function(t){var i=this.areaBackground;i!==t&&(t!==null&&Ms(t,"GraphObject.areaBackground"),t instanceof ct&&t.freeze(),ei(this),this.A.gd=t,this.N(),this.g("areaBackground",i,t))}},background:{get:function(){return this.Ma},set:function(t){var i=this.Ma;i!==t&&(t!==null&&Ms(t,"GraphObject.background"),t instanceof ct&&t.freeze(),this.Ma=t,this.N(),this.g("background",i,t))}},part:{get:function(){if(this.Dd())return this;if(this.Ng!==null)return this.Ng;var t;for(t=this.panel;t;){if(t instanceof U)return this.Ng=t;t=t.panel}return null}},svg:{get:function(){return this.V},set:function(t){this.V=t}},panel:{get:function(){return this.Me}},layer:{get:function(){var t=this.part;return t!==null?t.layer:null}},diagram:{get:function(){var t=this.part;return t!==null?t.diagram:null}},position:{get:function(){return this.pa},set:function(t){var i=t.x,e=t.y,n=this.pa,o=n.x;n=n.y,(o===i||isNaN(o)&&isNaN(i))&&(n===e||isNaN(n)&&isNaN(e))?this.Av():(t=t.copy(),this.zv(t,o,n)&&this.g("position",new x(o,n),t))}},actualBounds:{get:function(){return this.Jb}},scale:{get:function(){return this.Ca},set:function(t){var i=this.Ca;i!==t&&(0>=t&&O("GraphObject.scale for "+this+" must be greater than zero, not: "+t),this.Ca=t,this.v(),this.g("scale",i,t))}},angle:{get:function(){return this.Lb},set:function(t){var i=this.Lb;i!==t&&(t%=360,0>t&&(t+=360),i!==t&&(this.Lb=t,b0(this),this.v(),this.g("angle",i,t)))}},desiredSize:{get:function(){return this.jd},set:function(t){var i=t.width,e=t.height,n=this.jd,o=n.width,r=n.height;(o===i||isNaN(o)&&isNaN(i))&&(r===e||isNaN(r)&&isNaN(e))||(this.jd=t=t.J(),this.v(),this instanceof q&&this.rc(),this.g("desiredSize",n,t),vs(this)&&(t=this.part,t!==null&&(Rr(this,t,"width"),Rr(this,t,"height"))))}},width:{get:function(){return this.jd.width},set:function(t){var i=this.jd.width;i===t||isNaN(i)&&isNaN(t)||(i=this.jd,this.jd=t=new Z(t,this.jd.height).freeze(),this.v(),this instanceof q&&this.rc(),this.g("desiredSize",i,t),vs(this)&&(t=this.part,t!==null&&Rr(this,t,"width")))}},height:{get:function(){return this.jd.height},set:function(t){var i=this.jd.height;i===t||isNaN(i)&&isNaN(t)||(i=this.jd,this.jd=t=new Z(this.jd.width,t).freeze(),this.v(),this instanceof q&&this.rc(),this.g("desiredSize",i,t),vs(this)&&(t=this.part,t!==null&&Rr(this,t,"height")))}},minSize:{get:function(){return this.A!==null?this.A.u:hs},set:function(t){var i=this.minSize;i.D(t)||(t=t.copy(),isNaN(t.width)&&(t.width=0),isNaN(t.height)&&(t.height=0),t.freeze(),ei(this),this.A.u=t,this.v(),this.g("minSize",i,t))}},maxSize:{get:function(){return this.A!==null?this.A.o:ep},set:function(t){var i=this.maxSize;i.D(t)||(t=t.copy(),isNaN(t.width)&&(t.width=1/0),isNaN(t.height)&&(t.height=1/0),t.freeze(),ei(this),this.A.o=t,this.v(),this.g("maxSize",i,t))}},measuredBounds:{get:function(){return this.uc}},naturalBounds:{get:function(){return this.ec}},margin:{get:function(){return this.Kg},set:function(t){typeof t=="number"&&(t=new gt(t));var i=this.Kg;i.D(t)||(this.Kg=t=t.J(),this.v(),this.g("margin",i,t))}},transform:{get:function(){return this.l&2048&&ea(this),this.Bb}},oe:{get:function(){return this.l&4096&&ea(this),this.wh}},animationTriggers:{get:function(){return this.A!==null?this.A.hb:null},set:function(t){this.animationTriggers!==t&&(ei(this),this.A.hb=t)}},reshapingBehavior:{get:function(){return this.A!==null?this.A.Pf:Xt},set:function(t){this.reshapingBehavior!==t&&(ei(this),this.A.Pf=t)}},alignment:{get:function(){return this.Kb},set:function(t){var i=this.Kb;i.D(t)||(t.Mc()&&!t.Yb()&&O("GraphObject.alignment for "+this+" must be a real Spot or Spot.Default, not: "+t),this.Kb=t=t.J(),ch(this),this.g("alignment",i,t))}},column:{get:function(){return this.Ag},set:function(t){t=Math.round(t);var i=this.Ag;i!==t&&(0>t&&jt(t,">= 0",X,"column"),this.Ag=t,this.v(),this.g("column",i,t),this.svg!==null&&this.svg.remove())}},columnSpan:{get:function(){return this.A!==null?this.A.ob:1},set:function(t){t=Math.round(t);var i=this.columnSpan;i!==t&&(1>t&&jt(t,">= 1",X,"columnSpan"),ei(this),this.A.ob=t,this.v(),this.g("columnSpan",i,t))}},row:{get:function(){return this.ho},set:function(t){t=Math.round(t);var i=this.ho;i!==t&&(0>t&&jt(t,">= 0",X,"row"),this.ho=t,this.v(),this.g("row",i,t),this.svg!==null&&this.svg.remove())}},rowSpan:{get:function(){return this.A!==null?this.A.Bi:1},set:function(t){t=Math.round(t);var i=this.rowSpan;i!==t&&(1>t&&jt(t,">= 1",X,"rowSpan"),ei(this),this.A.Bi=t,this.v(),this.g("rowSpan",i,t))}},spanAllocation:{get:function(){return this.A!==null?this.A.Di:null},set:function(t){var i=this.spanAllocation;i!==t&&(ei(this),this.A.Di=t,this.v(),this.g("spanAllocation",i,t))}},alignmentFocus:{get:function(){return this.rk},set:function(t){var i=this.rk;i.D(t)||(this.rk=t=t.J(),this.v(),this.g("alignmentFocus",i,t))}},portId:{get:function(){return this.Xn},set:function(t){var i=this.Xn;if(i!==t){var e=this.part;e===null||e instanceof B||O("Cannot set portID on a Link: "+t),i!==null&&e!==null&&od(e,this),this.Xn=t,t!==null&&e!==null&&(e.Te=!0,qy(e,this)),this.g("portId",i,t)}}},toSpot:{get:function(){return this.ba!==null?this.ba.yj:Mi},set:function(t){var i=this.toSpot;i.D(t)||(t=t.J(),this.Xc(),this.ba.yj=t,this.g("toSpot",i,t),Yr(this))}},toEndSegmentLength:{get:function(){return this.ba!==null?this.ba.wj:10},set:function(t){var i=this.toEndSegmentLength;i!==t&&(0>t&&jt(t,">= 0",X,"toEndSegmentLength"),this.Xc(),this.ba.wj=t,this.g("toEndSegmentLength",i,t),Yr(this))}},toShortLength:{get:function(){return this.ba!==null?this.ba.xj:0},set:function(t){var i=this.toShortLength;i!==t&&(this.Xc(),this.ba.xj=t,this.g("toShortLength",i,t),Yr(this))}},toLinkable:{get:function(){return this.ba!==null?this.ba.Sr:null},set:function(t){var i=this.toLinkable;i!==t&&(this.Xc(),this.ba.Sr=t,this.g("toLinkable",i,t))}},toMaxLinks:{get:function(){return this.ba!==null?this.ba.Tr:1/0},set:function(t){var i=this.toMaxLinks;i!==t&&(0>t&&jt(t,">= 0",X,"toMaxLinks"),this.Xc(),this.ba.Tr=t,this.g("toMaxLinks",i,t))}},fromSpot:{get:function(){return this.ba!==null?this.ba.Xi:Mi},set:function(t){var i=this.fromSpot;i.D(t)||(t=t.J(),this.Xc(),this.ba.Xi=t,this.g("fromSpot",i,t),Yr(this))}},fromEndSegmentLength:{get:function(){return this.ba!==null?this.ba.Vi:10},set:function(t){var i=this.fromEndSegmentLength;i!==t&&(0>t&&jt(t,">= 0",X,"fromEndSegmentLength"),this.Xc(),this.ba.Vi=t,this.g("fromEndSegmentLength",i,t),Yr(this))}},fromShortLength:{get:function(){return this.ba!==null?this.ba.Wi:0},set:function(t){var i=this.fromShortLength;i!==t&&(this.Xc(),this.ba.Wi=t,this.g("fromShortLength",i,t),Yr(this))}},fromLinkable:{get:function(){return this.ba!==null?this.ba.gq:null},set:function(t){var i=this.fromLinkable;i!==t&&(this.Xc(),this.ba.gq=t,this.g("fromLinkable",i,t))}},fromMaxLinks:{get:function(){return this.ba!==null?this.ba.hq:1/0},set:function(t){var i=this.fromMaxLinks;i!==t&&(0>t&&jt(t,">= 0",X,"fromMaxLinks"),this.Xc(),this.ba.hq=t,this.g("fromMaxLinks",i,t))}},cursor:{get:function(){return this.A!==null?this.A.j:""},set:function(t){var i=this.cursor;i!==t&&(ei(this),this.A.j=t,this.g("cursor",i,t))}},click:{get:function(){return this.A!==null?this.A.zh:null},set:function(t){var i=this.click;i!==t&&(ei(this),this.A.zh=t,this.g("click",i,t))}},doubleClick:{get:function(){return this.A!==null?this.A.Fh:null},set:function(t){var i=this.doubleClick;i!==t&&(ei(this),this.A.Fh=t,this.g("doubleClick",i,t))}},contextClick:{get:function(){return this.A!==null?this.A.Bh:null},set:function(t){var i=this.contextClick;i!==t&&(ei(this),this.A.Bh=t,this.g("contextClick",i,t))}},mouseEnter:{get:function(){return this.A!==null?this.A.Mh:null},set:function(t){var i=this.mouseEnter;i!==t&&(ei(this),this.A.Mh=t,this.g("mouseEnter",i,t))}},mouseLeave:{get:function(){return this.A!==null?this.A.Ph:null},set:function(t){var i=this.mouseLeave;i!==t&&(ei(this),this.A.Ph=t,this.g("mouseLeave",i,t))}},mouseOver:{get:function(){return this.A!==null?this.A.Qh:null},set:function(t){var i=this.mouseOver;i!==t&&(ei(this),this.A.Qh=t,this.g("mouseOver",i,t))}},mouseHover:{get:function(){return this.A!==null?this.A.Oh:null},set:function(t){var i=this.mouseHover;i!==t&&(ei(this),this.A.Oh=t,this.g("mouseHover",i,t))}},mouseHold:{get:function(){return this.A!==null?this.A.Nh:null},set:function(t){var i=this.mouseHold;i!==t&&(ei(this),this.A.Nh=t,this.g("mouseHold",i,t))}},mouseDragEnter:{get:function(){return this.A!==null?this.A.Of:null},set:function(t){var i=this.mouseDragEnter;i!==t&&(ei(this),this.A.Of=t,this.g("mouseDragEnter",i,t))}},mouseDragLeave:{get:function(){return this.A!==null?this.A.Xd:null},set:function(t){var i=this.mouseDragLeave;i!==t&&(ei(this),this.A.Xd=t,this.g("mouseDragLeave",i,t))}},mouseDrop:{get:function(){return this.A!==null?this.A.Lh:null},set:function(t){var i=this.mouseDrop;i!==t&&(ei(this),this.A.Lh=t,this.g("mouseDrop",i,t))}},actionDown:{get:function(){return this.A!==null?this.A.V:null},set:function(t){var i=this.actionDown;i!==t&&(ei(this),this.A.V=t,this.g("actionDown",i,t))}},actionMove:{get:function(){return this.A!==null?this.A.ia:null},set:function(t){var i=this.actionMove;i!==t&&(ei(this),this.A.ia=t,this.g("actionMove",i,t))}},actionUp:{get:function(){return this.A!==null?this.A.Ha:null},set:function(t){var i=this.actionUp;i!==t&&(ei(this),this.A.Ha=t,this.g("actionUp",i,t))}},actionCancel:{get:function(){return this.A!==null?this.A.F:null},set:function(t){var i=this.actionCancel;i!==t&&(ei(this),this.A.F=t,this.g("actionCancel",i,t))}},toolTip:{get:function(){return this.A!==null?this.A.$h:null},set:function(t){var i=this.toolTip;i!==t&&(ei(this),this.A.$h=t,this.g("toolTip",i,t))}},contextMenu:{get:function(){return this.A!==null?this.A.Ch:null},set:function(t){var i=this.contextMenu;i!==t&&(ei(this),this.A.Ch=t,this.g("contextMenu",i,t))}}}),X.prototype.trigger=X.prototype.Jv,X.prototype.findBindingPanel=X.prototype.ih,X.prototype.findTemplateBinder=X.prototype.pz,X.prototype.setProperties=X.prototype.mm,X.prototype.apply=X.prototype.apply,X.prototype.attach=X.prototype.Du,X.prototype.set=X.prototype.set,X.prototype.isEnabledObject=X.prototype.If,X.prototype.isVisibleObject=X.prototype.Ed,X.prototype.isContainedBy=X.prototype.rg,X.prototype.getNearestIntersectionPoint=X.prototype.qs,X.prototype.getLocalPoint=X.prototype.ps,X.prototype.getDocumentScale=X.prototype.Df,X.prototype.getDocumentAngle=X.prototype.li,X.prototype.getDocumentBounds=X.prototype.mi,X.prototype.getDocumentPoint=X.prototype.ga,X.prototype.intersectsRect=X.prototype.Yc,X.prototype.containedInRect=X.prototype.fh,X.prototype.containsRect=X.prototype.Re,X.prototype.containsPoint=X.prototype.ca,X.prototype.raiseChanged=X.prototype.g,X.prototype.raiseChangedEvent=X.prototype.cb,X.prototype.addCopyProperty=X.prototype.Vw;var gh=null;X.className="GraphObject",gh=new _,Bo("Button",function(){function t(e,n){return e.diagram.jc(e.documentPoint,function(o){for(;o.panel!==null&&!o.isActionable;)o=o.panel;return o},function(o){return o===n})!==null}var i=De(j,j.Auto,{isActionable:!0,enabledChanged:function(e,n){if(e instanceof j){var o=e.fb("ButtonBorder");o!==null&&(o.fill=n?e._buttonFillNormal:e._buttonFillDisabled)}},cursor:"pointer",_buttonFillNormal:"#F5F5F5",_buttonStrokeNormal:"#BDBDBD",_buttonFillOver:"#E0E0E0",_buttonStrokeOver:"#9E9E9E",_buttonFillPressed:"#BDBDBD",_buttonStrokePressed:"#9E9E9E",_buttonFillDisabled:"#E5E5E5"},De(q,{name:"ButtonBorder",figure:"RoundedRectangle",spot1:new H(0,0,2.76142374915397,2.761423749153969),spot2:new H(1,1,-2.76142374915397,-2.761423749153969),parameter1:2,parameter2:2,fill:"#F5F5F5",stroke:"#BDBDBD"}));return i.mouseEnter=function(e,n){if(n.If()&&n instanceof j&&(e=n.fb("ButtonBorder"),e instanceof q)){var o=n._buttonFillOver;n._buttonFillNormal=e.fill,e.fill=o,o=n._buttonStrokeOver,n._buttonStrokeNormal=e.stroke,e.stroke=o}},i.mouseLeave=function(e,n){n.If()&&n instanceof j&&(e=n.fb("ButtonBorder"),e instanceof q&&(e.fill=n._buttonFillNormal,e.stroke=n._buttonStrokeNormal))},i.actionDown=function(e,n){if(n.If()&&n instanceof j&&n._buttonFillPressed!==null&&e.button===0){var o=n.fb("ButtonBorder");if(o instanceof q){e=e.diagram;var r=e.skipsUndoManager;e.skipsUndoManager=!0;var s=n._buttonFillPressed;n._buttonFillOver=o.fill,o.fill=s,s=n._buttonStrokePressed,n._buttonStrokeOver=o.stroke,o.stroke=s,e.skipsUndoManager=r}}},i.actionUp=function(e,n){if(n.If()&&n instanceof j&&n._buttonFillPressed!==null&&e.button===0){var o=n.fb("ButtonBorder");if(o instanceof q){var r=e.diagram,s=r.skipsUndoManager;r.skipsUndoManager=!0,t(e,n)?(o.fill=n._buttonFillOver,o.stroke=n._buttonStrokeOver):(o.fill=n._buttonFillNormal,o.stroke=n._buttonStrokeNormal),r.skipsUndoManager=s}}},i.actionCancel=function(e,n){if(n.If()&&n instanceof j&&n._buttonFillPressed!==null){var o=n.fb("ButtonBorder");if(o instanceof q){var r=e.diagram,s=r.skipsUndoManager;r.skipsUndoManager=!0,t(e,n)?(o.fill=n._buttonFillOver,o.stroke=n._buttonStrokeOver):(o.fill=n._buttonFillNormal,o.stroke=n._buttonStrokeNormal),r.skipsUndoManager=s}}},i.actionMove=function(e,n){if(n.If()&&n instanceof j&&n._buttonFillPressed!==null){var o=e.diagram;if(o.firstInput.button===0&&(o.currentTool.standardMouseOver(),t(e,n)&&(e=n.fb("ButtonBorder"),e instanceof q))){var r=o.skipsUndoManager;o.skipsUndoManager=!0;var s=n._buttonFillPressed;e.fill!==s&&(e.fill=s),s=n._buttonStrokePressed,e.stroke!==s&&(e.stroke=s),o.skipsUndoManager=r}}},i}),Bo("TreeExpanderButton",function(){var t=De("Button",{_treeExpandedFigure:"MinusLine",_treeCollapsedFigure:"PlusLine"},De(q,{name:"ButtonIcon",figure:"MinusLine",stroke:"#424242",strokeWidth:2,desiredSize:ls},new Ht("figure","isTreeExpanded",function(i,e){return e=e.panel,i?e._treeExpandedFigure:e._treeCollapsedFigure}).bp()),{visible:!1},new Ht("visible","isTreeLeaf",function(i){return!i}).bp());return t.click=function(i,e){if(e=e.part,e instanceof lt&&(e=e.adornedPart),e instanceof B){var n=e.diagram;if(n!==null){if(n=n.commandHandler,e.isTreeExpanded){if(!n.canCollapseTree(e))return}else if(!n.canExpandTree(e))return;i.handled=!0,e.isTreeExpanded?n.collapseTree(e):n.expandTree(e)}}},t}),Bo("SubGraphExpanderButton",function(){var t=De("Button",{_subGraphExpandedFigure:"MinusLine",_subGraphCollapsedFigure:"PlusLine"},De(q,{name:"ButtonIcon",figure:"MinusLine",stroke:"#424242",strokeWidth:2,desiredSize:ls},new Ht("figure","isSubGraphExpanded",function(i,e){return e=e.panel,i?e._subGraphExpandedFigure:e._subGraphCollapsedFigure}).bp()));return t.click=function(i,e){if(e=e.part,e instanceof lt&&(e=e.adornedPart),e instanceof Q){var n=e.diagram;if(n!==null){if(n=n.commandHandler,e.isSubGraphExpanded){if(!n.canCollapseSubGraph(e))return}else if(!n.canExpandSubGraph(e))return;i.handled=!0,e.isSubGraphExpanded?n.collapseSubGraph(e):n.expandSubGraph(e)}}},t}),Bo("ToolTip",function(){return De(lt,j.Auto,{isShadowed:!0,shadowColor:"rgba(0, 0, 0, .4)",shadowOffset:new x(0,3),shadowBlur:5},De(q,{name:"Border",figure:"RoundedRectangle",parameter1:1,parameter2:1,fill:"#F5F5F5",stroke:"#F0F0F0",spot1:new H(0,0,4,6),spot2:new H(1,1,-4,-4)}))}),Bo("ContextMenu",function(){return De(lt,j.Vertical,{background:"#F5F5F5",isShadowed:!0,shadowColor:"rgba(0, 0, 0, .4)",shadowOffset:new x(0,3),shadowBlur:5},new Ht("background","",function(t){return t.adornedPart!==null&&t.placeholder!==null?null:"#F5F5F5"}))}),Bo("ContextMenuButton",function(){var t=De("Button");t.stretch=wi;var i=t.fb("ButtonBorder");return i instanceof q&&(i.figure="Rectangle",i.strokeWidth=0,i.spot1=new H(0,0,2,3),i.spot2=new H(1,1,-2,-2)),t}),Bo("PanelExpanderButton",function(t){var i=oa(t,"COLLAPSIBLE"),e=De("Button",{_buttonExpandedFigure:"M0 0 M0 6 L4 2 8 6 M8 8",_buttonCollapsedFigure:"M0 0 M0 2 L4 6 8 2 M8 8",_buttonFillNormal:"rgba(0, 0, 0, 0)",_buttonStrokeNormal:null,_buttonFillOver:"rgba(0, 0, 0, .2)",_buttonStrokeOver:null,_buttonFillPressed:"rgba(0, 0, 0, .4)",_buttonStrokePressed:null},De(q,{name:"ButtonIcon",strokeWidth:2},new Ht("geometryString","visible",function(n){return n?e._buttonExpandedFigure:e._buttonCollapsedFigure}).bp(i)));return t=e.fb("ButtonBorder"),t instanceof q&&(t.stroke=null,t.fill="rgba(0, 0, 0, 0)"),e.click=function(n,o){var r=o.diagram;if(r!==null&&!r.isReadOnly){var s=o.ih();s===null&&(s=o.part),s!==null&&(o=s.fb(i),o!==null&&(n.handled=!0,r.Ea("Collapse/Expand Panel"),o.visible=!o.visible,r.eb("Collapse/Expand Panel")))}},e}),Bo("CheckBoxButton",function(t){var i=oa(t);return t=De("Button",{desiredSize:new Z(14,14)},De(q,{name:"ButtonIcon",geometryString:"M0 0 M0 8.85 L4.9 13.75 16.2 2.45 M16.2 16.2",strokeWidth:2,stretch:Ut,geometryStretch:Dn,visible:!1},i!==""?new Ht("visible",i).Kx():[])),t.click=function(e,n){if(n instanceof j){var o=e.diagram;if(!(o===null||o.isReadOnly||i!==""&&o.model.isReadOnly)){e.handled=!0;var r=n.fb("ButtonIcon");o.Ea("checkbox"),r.visible=!r.visible,typeof n._doClick=="function"&&n._doClick(e,n),o.eb("checkbox")}}},t}),Bo("CheckBox",function(t){t=oa(t),t=De("CheckBoxButton",t,{name:"Button",isActionable:!1,margin:new gt(0,1,0,0)});var i=De(j,"Horizontal",t,{isActionable:!0,cursor:t.cursor,margin:new gt(1),_buttonFillNormal:t._buttonFillNormal,_buttonStrokeNormal:t._buttonStrokeNormal,_buttonFillOver:t._buttonFillOver,_buttonStrokeOver:t._buttonStrokeOver,_buttonFillPressed:t._buttonFillPressed,_buttonStrokePressed:t._buttonStrokePressed,_buttonFillDisabled:t._buttonFillDisabled,mouseEnter:t.mouseEnter,mouseLeave:t.mouseLeave,actionDown:t.actionDown,actionUp:t.actionUp,actionCancel:t.actionCancel,actionMove:t.actionMove,click:t.click,_buttonClick:t.click});return t.mouseEnter=null,t.mouseLeave=null,t.actionDown=null,t.actionUp=null,t.actionCancel=null,t.actionMove=null,t.click=null,i}),X.None=Xt=new R(X,"None",0),X.Default=sn=new R(X,"Default",0),X.Vertical=Pi=new R(X,"Vertical",4),X.Horizontal=wi=new R(X,"Horizontal",5),X.Fill=Ut=new R(X,"Fill",3),X.Uniform=Dn=new R(X,"Uniform",1),X.UniformToFill=wl=new R(X,"UniformToFill",2),X.FlipVertical=Ml=new R(X,"FlipVertical",1),X.FlipHorizontal=Sl=new R(X,"FlipHorizontal",2),X.FlipBoth=Nl=new R(X,"FlipBoth",3),X.make=De,X.getBuilders=function(){var t=new _,i;for(i in gh)if(i!==i.toLowerCase()){var e=gh.I(i);typeof e=="function"&&t.add(i,e)}return t.freeze(),t},X.defineBuilder=Bo,X.build=function(t,i,e){for(var n=[],o=2;o<arguments.length;++o)n[o-2]=arguments[o];if(o=gh.I(t),typeof o=="function"&&(n=o([t].concat(n)),n instanceof X))return i&&n.set(i),n;O('GraphObject.build invoked object builder "'+t+'", but it did not return an Object')},X.takeBuilderArgument=oa;function xs(){this.oc=!1,this.xa="",this.yp=-1,this.nb=this.vm=this.te=null,this.j="",this.hb=this.Di=this.Ib=this.Ch=this.$h=this.F=this.Ha=this.ia=this.V=this.Lh=this.Xd=this.Of=this.Nh=this.Oh=this.Qh=this.Ph=this.Mh=this.Bh=this.Fh=this.zh=null,this.u=hs,this.o=ep,this.hg=sn,this.ob=this.Bi=1,this.Pf=Xt,this.Pc=this.Ci=this.gd=null,this.Oc="category"}xs.prototype.copy=function(){var t=new xs;return t.xa=this.xa,t.yp=this.yp,t.te=this.te,t.nb=this.nb,t.j=this.j,t.zh=this.zh,t.Fh=this.Fh,t.Bh=this.Bh,t.Mh=this.Mh,t.Ph=this.Ph,t.Qh=this.Qh,t.Oh=this.Oh,t.Nh=this.Nh,t.Of=this.Of,t.Xd=this.Xd,t.Lh=this.Lh,t.V=this.V,t.ia=this.ia,t.Ha=this.Ha,t.F=this.F,t.$h=this.$h,t.Ch=this.Ch,t.Ib=this.Ib,t.Di=this.Di,t.hb=this.hb,t.u=this.u.J(),t.o=this.o.J(),t.hg=this.hg,t.Bi=this.Bi,t.ob=this.ob,t.Pf=this.Pf,t.gd=this.gd,t.Ci=this.Ci,t.Pc=this.Pc,t.Oc=this.Oc,t};function hr(){this.u=-1/0,this.o=0,this.F=lo,this.qr=Ui,this.j=this.V="None"}hr.prototype.copy=function(){var t=new hr;return t.u=this.u,t.o=this.o,t.F=this.F.J(),t.qr=this.qr,t.V=this.V,t.j=this.j,t},hr.className="LinkElementSettings";function kl(){this.yj=this.Xi=Si,this.xj=this.Wi=this.wj=this.Vi=NaN,this.Sr=this.gq=null,this.Tr=this.hq=1/0}kl.prototype.copy=function(){var t=new kl;return t.Xi=this.Xi.J(),t.yj=this.yj.J(),t.Vi=this.Vi,t.wj=this.wj,t.Wi=this.Wi,t.xj=this.xj,t.gq=this.gq,t.Sr=this.Sr,t.hq=this.hq,t.Tr=this.Tr,t},kl.className="LinkSettings";function zr(){this.ha=[1,0,0,1,0,0]}zr.prototype.copy=function(){var t=new zr;return t.ha[0]=this.ha[0],t.ha[1]=this.ha[1],t.ha[2]=this.ha[2],t.ha[3]=this.ha[3],t.ha[4]=this.ha[4],t.ha[5]=this.ha[5],t},zr.prototype.translate=function(t,i){this.ha[4]+=this.ha[0]*t+this.ha[2]*i,this.ha[5]+=this.ha[1]*t+this.ha[3]*i},zr.prototype.scale=function(t,i){this.ha[0]*=t,this.ha[1]*=t,this.ha[2]*=i,this.ha[3]*=i},zr.prototype.rotate=function(t,i,e){if(360<=t?t-=360:0>t&&(t+=360),t!==0){if(this.translate(i,e),t===90){t=0;var n=1}else t===180?(t=-1,n=0):t===270?(t=0,n=-1):(n=t*Math.PI/180,t=Math.cos(n),n=Math.sin(n));var o=this.ha[1]*t+this.ha[3]*n,r=this.ha[0]*-n+this.ha[2]*t,s=this.ha[1]*-n+this.ha[3]*t;this.ha[0]=this.ha[0]*t+this.ha[2]*n,this.ha[1]=o,this.ha[2]=r,this.ha[3]=s,this.translate(-i,-e)}},zr.className="STransform";function ws(t){this.type=t,this.r2=this.y2=this.x2=this.r1=this.y1=this.x1=0,this.gx=[],this.pattern=null}ws.prototype.addColorStop=function(t,i){this.gx.push({offset:t,color:i})},ws.className="SGradient";function En(t,i,e){this.ownerDocument=t=i===void 0?J.document:i,this.cA="http://www.w3.org/2000/svg",t!==void 0&&(this.Oa=this.Ud("svg",{width:"1px",height:"1px",viewBox:"0 0 1 1"}),this.style.display="block",this.style.letterSpacing="normal",this.style.wordSpacing="normal",this.Oa.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns","http://www.w3.org/2000/svg"),this.Oa.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink","http://www.w3.org/1999/xlink")),this.gs=null,this.context=new pe(this,e)}En.prototype.resize=function(t,i,e,n){return this.width!==t||this.height!==i?(this.width=t,this.height=i,this.style.width=e+"px",this.style.height=n+"px",this.Oa.setAttributeNS(null,"width",e+"px"),this.Oa.setAttributeNS(null,"height",n+"px"),this.Oa.setAttributeNS(null,"viewBox","0 0 "+e+" "+n),this.context.ww.firstElementChild.setAttributeNS(null,"width",e+"px"),this.context.ww.firstElementChild.setAttributeNS(null,"height",n+"px"),!0):!1},En.prototype.Ud=function(t,i,e){if(t=this.ownerDocument.createElementNS(this.cA,t),At(i))for(var n in i)t.setAttributeNS(n==="href"?"http://www.w3.org/1999/xlink":"",n,i[n]);return e!==void 0&&(t.textContent=e),t},En.prototype.getBoundingClientRect=function(){return this.Oa.getBoundingClientRect()},En.prototype.focus=function(){this.Oa.focus()},En.prototype.mx=function(){this.ownerDocument=null},tt.Object.defineProperties(En.prototype,{width:{get:function(){return this.Oa.width.baseVal.value},set:function(t){this.Oa.setAttribute("width",t+"px")}},height:{get:function(){return this.Oa.height.baseVal.value},set:function(t){this.Oa.setAttribute("height",t+"px")}},style:{get:function(){return this.Oa.style}}}),En.className="SVGSurface";function pe(t,i){this.Gv=t,this.svg=t.Oa,this.stack=[],this.nh=[],this.fillStyle="#000000",this.font="10px sans-serif",this.globalAlpha=1,this.lineCap="butt",this.lineDashOffset=0,this.lineJoin="miter",this.lineWidth=1,this.miterLimit=10,this.shadowBlur=0,this.shadowColor="rgba(0, 0, 0, 0)",this.shadowOffsetY=this.shadowOffsetX=0,this.Hl=!1,this.strokeStyle="#000000",this.textAlign="start",this.clipInsteadOfFill=!1,this.Vg=this.Ar=this.zr=0,this.yd=this.ad=null,this.path=[],this.Xl={},this.Bt=!1,this.Yg=null,this.uj=0,this.rb=new zr,this.j=ra(this),this.Mj=ra(this,"gojs-diagram"),this.Gl=this.ti=null;var e=ss++,n=this.Ud("clipPath",{id:"mainClip"+e});n.appendChild(this.Ud("rect",{x:0,y:0,width:t.width,height:t.height})),this.ww=n,this.svg.appendChild(this.j),this.j.appendChild(this.Mj),this.svg.appendChild(n),this.j.setAttributeNS(null,"clip-path","url(#mainClip"+e+")"),this.eA={},this.isTemporary=!!i,this.filter="",this.ak=null}function ty(t,i,e,n,o,r,s){t.Mj===void 0?Cl(t,i,e,n,o,r,s):t.Mj.setAttribute("transform","matrix("+i+", "+e+", "+n+", "+o+", "+r+", "+s+")")}d=pe.prototype,d.arc=function(t,i,e,n,o,r,s,h){var l=2*Math.PI,u=l-1e-6,a=e*Math.cos(n),f=e*Math.sin(n),p=t+a,c=i+f,g=r?0:1;n=r?n-o:o-n,(1e-6<Math.abs(s-p)||1e-6<Math.abs(h-c))&&this.path.push(["L",p,+c]),0>n&&(n=n%l+l),n>u?(this.path.push(["A",e,e,0,1,g,t-a,i-f]),this.path.push(["A",e,e,0,1,g,p,c])):1e-6<n&&this.path.push(["A",e,e,0,+(n>=Math.PI),g,t+e*Math.cos(o),i+e*Math.sin(o)])},d.beginPath=function(){this.path=[],this.Xl={stroke:"none",fill:"none"}},d.Se=function(t){this.addPath(this.path,this.rb,t||0)},d.bezierCurveTo=function(t,i,e,n,o,r){this.path.push(["C",t,i,e,n,o,r])},d.clearRect=function(){},d.clip=function(){this.Xl.clipPath=!0},d.closePath=function(){this.path.push(["z"])},d.createLinearGradient=function(t,i,e,n){var o=new ws("linear");return o.x1=t,o.y1=i,o.x2=e,o.y2=n,o},d.createPattern=function(t){var i="";t instanceof HTMLCanvasElement&&(i=t.toDataURL()),t instanceof HTMLImageElement&&(i=t.getAttribute("src"));var e=this.eA;if(e[i])return"url(#"+e[i]+")";var n="PATTERN"+ss++,o={x:0,y:0,width:t.width,height:t.height,href:i};return t=this.Ud("pattern",{width:t.width,height:t.height,id:n,patternUnits:"userSpaceOnUse"}),t.appendChild(this.Ud(ah,o)),this.svg.appendChild(t),e[i]=n,"url(#"+n+")"},d.createRadialGradient=function(t,i,e,n,o,r){var s=new ws("radial");return s.x1=t,s.y1=i,s.r1=e,s.x2=n,s.y2=o,s.r2=r,s};function iy(t,i,e,n,o,r,s,h,l){n=h/n,o=l/o,r===0&&s===0||t.rb.translate(r,s),n===1&&o===1||t.rb.scale(n,o),i===0&&e===0||t.rb.translate(-i,-e)}d.drawImage=function(t,i,e,n,o,r,s,h,l){var u="";t instanceof HTMLCanvasElement&&(u=t.toDataURL()),t instanceof HTMLImageElement&&(u=t.getAttribute("src"));var a=t instanceof HTMLImageElement?t.naturalWidth:t.width;t=t instanceof HTMLImageElement?t.naturalHeight:t.height,n===void 0&&(r=i,s=e,h=n=a,l=o=t),n=n||0,o=o||0,h=h||0,l=l||0,iy(this,i,e,n,o,r||0,s||0,h,l),r={x:0,y:0,width:a||n,height:t||o,href:u},P.$(n,h)&&P.$(o,l)?u.toLowerCase().indexOf(".svg")===-1&&u.toLowerCase().indexOf("data:image/svg")===-1&&(r.preserveAspectRatio="xMidYMid slice"):r.preserveAspectRatio="none",(i!==0||e!==0||n!==a||o!==t)&&(n+=i,o+=e,r["clip-path"]="path('M "+i+","+e+" L "+n+" "+e+" L "+n+" "+o+" L "+i+" "+o+" z')"),yh(this,ah,r,this.rb),this.addElement(ah,r)},d.fill=function(t){t&&(this.Xl["fill-rule"]="evenodd"),xc(this,this.Xl)},d.ng=function(t,i){this.clipInsteadOfFill?this.clip():this.fill(i)},d.fillRect=function(t,i,e,n){t=[t,i,e,n],t={x:t[0],y:t[1],width:t[2],height:t[3]},yh(this,"fill",t,this.rb),this.addElement("rect",t)},d.ox=function(t,i,e,n){t={x:t,y:i,width:e,height:n},yh(this,"fill",t,this.rb),xc(this,t),this.svg.prepend(this.Ud("rect",t))},d.fillText=function(t,i,e){t=[t,i,e],i=this.textAlign,i==="left"?i="start":i==="right"?i="end":i==="center"&&(i="middle"),i={x:t[1],y:t[2],style:"font: "+this.font,"text-anchor":i},yh(this,"fill",i,this.rb),this.addElement("text",i,t[0])},d.lineTo=function(t,i){this.path.push(["L",t,i])},d.moveTo=function(t,i){this.path.push(["M",t,i])},d.quadraticCurveTo=function(t,i,e,n){this.path.push(["Q",t,i,e,n])},d.rect=function(t,i,e,n){this.path.push(["M",t,i],["L",t+e,i],["L",t+e,i+n],["L",t,i+n],["z"])},d.restore=function(){this.rb=this.stack.pop(),this.path=this.stack.pop();var t=this.stack.pop();this.fillStyle=t.fillStyle,this.font=t.font,this.globalAlpha=t.globalAlpha,this.lineCap=t.lineCap,this.lineDashOffset=t.lineDashOffset,this.lineJoin=t.lineJoin,this.lineWidth=t.lineWidth,this.miterLimit=t.miterLimit,this.shadowBlur=t.shadowBlur,this.shadowColor=t.shadowColor,this.shadowOffsetX=t.shadowOffsetX,this.shadowOffsetY=t.shadowOffsetY,this.strokeStyle=t.strokeStyle,this.textAlign=t.textAlign,this.ak=t.ak},d.save=function(){this.stack.push({fillStyle:this.fillStyle,font:this.font,globalAlpha:this.globalAlpha,lineCap:this.lineCap,lineDashOffset:this.lineDashOffset,lineJoin:this.lineJoin,lineWidth:this.lineWidth,miterLimit:this.miterLimit,shadowBlur:this.shadowBlur,shadowColor:this.shadowColor,shadowOffsetX:this.shadowOffsetX,shadowOffsetY:this.shadowOffsetY,strokeStyle:this.strokeStyle,textAlign:this.textAlign,ak:this.ak});for(var t=[],i=0;i<this.path.length;i++)t.push(this.path[i]);this.stack.push(t),this.stack.push(this.rb.copy())},d.setTransform=function(t,i,e,n,o,r){t===1&&i===0&&e===0&&n===1&&o===0&&r===0||Cl(this,t,i,e,n,o,r)};function ey(t){return t=t.rb.ha,"matrix("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+")"}d.scale=function(t,i){this.rb.scale(t,i)},d.translate=function(t,i){this.rb.translate(t,i)},d.transform=function(){},d.yc=function(){},d.stroke=function(){oy(this,this.Xl)},d.ik=function(){this.clipInsteadOfFill||this.stroke()},d.Ud=function(t,i,e){return this.Gv.Ud(t,i,e)},d.addElement=function(t,i,e){return t=this.Ud(t,i,e),this.yd!==null?this.yd.appendChild(t):this.yd=t,this.ad=t};function yh(t,i,e,n){i==="fill"?xc(t,e):i==="stroke"&&oy(t,e),n!==null&&(t=n.ha,e.transform="matrix("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+")")}function xc(t,i){t.fillStyle instanceof ws?i.fill=wc(t,t.fillStyle,!0):/^rgba\(/.test(t.fillStyle)?(t=/^\s*rgba\s*\(([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\)\s*$/i.exec(t.fillStyle),i.fill="rgb("+t[1]+","+t[2]+","+t[3]+")",i["fill-opacity"]=t[4]):i.fill=t.fillStyle}function ny(t,i,e){e=e?"fill":"stroke",t.fillStyle instanceof ws?i.setAttributeNS(null,"fill",wc(t,t.fillStyle,!0)):/^rgba\(/.test(t.fillStyle)?(t=/^\s*rgba\s*\(([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\)\s*$/i.exec(t.fillStyle),i.setAttributeNS(null,e,"rgb("+t[1]+","+t[2]+","+t[3]+")"),i.setAttributeNS(null,e+"-opacity",t[4])):i.setAttributeNS(null,e,t.fillStyle)}function oy(t,i){if(t.strokeStyle instanceof ws)i.stroke=wc(t,t.strokeStyle,!1);else if(/^rgba\(/.test(t.strokeStyle)){var e=/^\s*rgba\s*\(([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\)\s*$/i.exec(t.strokeStyle);i.stroke="rgb("+e[1]+","+e[2]+","+e[3]+")",i["stroke-opacity"]=e[4]}else i.stroke=t.strokeStyle;i["stroke-width"]=t.lineWidth,i["stroke-linecap"]=t.lineCap,i["stroke-linejoin"]=t.lineJoin,i["stroke-miterlimit"]=t.miterLimit,t.Bt&&(i["stroke-dasharray"]=t.Yg.toString(),i["stroke-dashoffset"]=t.uj)}function wc(t,i,e){var n="";if(n=t.Gl!==null?t.Gl.getAttribute(e?"fill":"stroke"):null,n!==null&&n.indexOf("GRAD")!==-1?(n=n.split("#")[1].slice(0,-1),e=t.svg.getElementById(n),e!==null&&e.remove()):n="GRAD"+ss++,i.type==="linear")e=t.Ud("linearGradient",{x1:i.x1,x2:i.x2,y1:i.y1,y2:i.y2,id:n,gradientUnits:"userSpaceOnUse"});else if(i.type==="radial")e=t.Ud("radialGradient",{x1:i.x1,x2:i.x2,y1:i.y1,y2:i.y2,r1:i.r1,r2:i.r2,id:n});else throw Error("invalid gradient");var o=i.gx;i=o.length;for(var r=[],s=0;s<i;s++){var h=o[s],l=h.color;h={offset:h.offset,"stop-color":l},/^rgba\(/.test(l)&&(l=/^\s*rgba\s*\(([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)\)\s*$/i.exec(l),h["stop-color"]="rgb("+l[1]+","+l[2]+","+l[3]+")",h["stop-opacity"]=l[4]),r.push(h)}for(r.sort(function(u,a){return u.offset>a.offset?1:-1}),o=0;o<i;o++)e.appendChild(t.Ud("stop",r[o]));return t.svg.appendChild(e),"url(#"+n+")"}d.addPath=function(t,i,e){for(var n=[],o=0;o<t.length;o++){var r=Gs(t[o]),s=[r.shift()];if(s[0]==="A")s.push(r.shift()+","+r.shift(),r.shift(),r.shift()+","+r.shift(),r.shift()+","+r.shift());else for(;r.length;)s.push(r.shift()+","+r.shift());n.push(s.join(" "))}if(n=n.join(" "),t=this.Xl,t.clipPath)0<this.nh.length&&this.nh[this.nh.length-1].setAttributeNS(null,"clip-path",'path("'+n+'")');else if(t.d=n,yh(this,"",t,i),this.Gl!==null)if(i=this.Gl,i.nodeName!=="g")for(var h in t)h!=="transform"&&i.setAttributeNS(null,h,t[h]);else{h=i.getElementsByTagName("path");for(var l in t)l!=="transform"&&h[e].setAttributeNS(null,l,t[l])}else this.addElement("path",t)};function Cl(t,i,e,n,o,r,s){var h=new zr;h.ha=[i,e,n,o,r,s],i={},yh(t,"g",i,h),h=t.addElement("g",i),t.nh.push(h)}function ra(t,i){var e={};return i&&(e.class=i),i=t.addElement("g",e),t.nh.push(i),i}d.Ev=function(t,i,e){this.zr=t,this.Ar=i,this.Vg=e};function Jn(t){t.Hl=!1,t.shadowOffsetX=0,t.shadowOffsetY=0,t.shadowBlur=0}function go(t){t.Hl=!0,t.shadowOffsetX=t.zr,t.shadowOffsetY=t.Ar,t.shadowBlur=t.Vg}d.hs=function(t,i){this.Bt=!0,this.Yg=t,this.uj=i},d.es=function(){this.Bt=!1},d.Vc=function(){},d.Wx=function(){},pe.prototype.rotate=function(t){this.rb.rotate(57.2958*t,0,0)},pe.prototype.getImageData=function(){return null},pe.prototype.measureText=function(){return null};function sa(t,i){i=i.getAttribute("fill"),i!==null&&(i=i.split("#"),i.length!==1&&(i=t.svg.getElementById(i[1].slice(0,-1)),i!==null&&t.svg.innerHTML.match(new RegExp(i.id,"g")).length===1&&i.remove()))}pe.prototype.Gs=function(t){t.svg!==null&&t.svg.parentNode===this.Mj&&t.svg.remove()},pe.className="SVGContext",C.prototype.Bs=function(t){this.pj.contains("SVG")||this.$r("SVG",new En(this,J.document));var i=new En(this,J.document,!0);t===void 0&&(t=new Xe);var e=this;return D0(this,function(n,o){return n=E0(e,n,"SVG",i),n=n!==null?n.svg:null,typeof o=="function"?(o(n),null):n},t)},C.prototype.makeSvg=C.prototype.Bs,C.prototype.av=function(t){return this.Bs(t)},C.prototype.makeSVG=C.prototype.av;function Je(t,i,e,n){this.ownerDocument=i=i===void 0?J.document:i,this.gs=null,i=i.createElement("canvas"),i.tabIndex=0,this.Oa=i,this.context=new Gr(i,e,n),i.H=t}Je.prototype.resize=function(t,i,e,n){return this.width!==t||this.height!==i?(this.width=t,this.height=i,this.style.width=e+"px",this.style.height=n+"px",!0):!1},Je.prototype.toDataURL=function(t,i){return this.Oa.toDataURL(t,i)},Je.prototype.getBoundingClientRect=function(){return this.Oa.getBoundingClientRect()},Je.prototype.focus=function(){this.Oa.focus()},Je.prototype.mx=function(){this.ownerDocument=this.Oa.H=null},tt.Object.defineProperties(Je.prototype,{width:{get:function(){return this.Oa.width},set:function(t){this.Oa.width=t}},height:{get:function(){return this.Oa.height},set:function(t){this.Oa.height=t}},style:{get:function(){return this.Oa.style}}}),Je.className="CanvasSurface";function Gr(t,i,e){this.Z=t.getContext?t.getContext("2d",i):null,this.Z===null&&O("Browser does not support HTML Canvas Element"),this.bt=this.dt=this.ct="",this.Gm=!1,this.Vg=this.Ar=this.zr=0,this.Hl=!1,this.Dl=new it,this.isTemporary=!!e}d=Gr.prototype,d.Wx=function(t){this.Z.imageSmoothingEnabled=t},d.arc=function(t,i,e,n,o,r){this.Z.arc(t,i,e,n,o,r)},d.beginPath=function(){this.Z.beginPath()},d.Se=function(){},d.bezierCurveTo=function(t,i,e,n,o,r){this.Z.bezierCurveTo(t,i,e,n,o,r)},d.clearRect=function(t,i,e,n){this.yc(),this.Z.clearRect(t,i,e,n)},d.clip=function(){this.Z.clip()},d.closePath=function(){this.Z.closePath()},d.createLinearGradient=function(t,i,e,n){return this.Z.createLinearGradient(t,i,e,n)},d.createPattern=function(t,i){return this.Z.createPattern(t,i)},d.createRadialGradient=function(t,i,e,n,o,r){return this.Z.createRadialGradient(t,i,e,n,o,r)},d.drawImage=function(t,i,e,n,o,r,s,h,l){n===void 0?this.Z.drawImage(t,i,e):this.Z.drawImage(t,i,e,n,o,r,s,h,l)},d.fill=function(t){this.Z.fill(t?"evenodd":"nonzero")},d.fillRect=function(t,i,e,n){this.Z.fillRect(t,i,e,n)},d.ox=function(t,i,e,n){this.Z.fillRect(t,i,e,n)},d.fillText=function(t,i,e){this.Z.fillText(t,i,e)},d.getImageData=function(t,i,e,n){return this.Z.getImageData(t,i,e,n)},d.lineTo=function(t,i){this.Z.lineTo(t,i)},d.measureText=function(t){return this.Z.measureText(t)},d.moveTo=function(t,i){this.Z.moveTo(t,i)},d.quadraticCurveTo=function(t,i,e,n){this.Z.quadraticCurveTo(t,i,e,n)},d.rect=function(t,i,e,n){this.Z.rect(t,i,e,n)},d.restore=function(){this.Z.restore()},d.save=function(){this.yc(),this.Z.save()},Gr.prototype.rotate=function(t){this.Dl.rotate(57.2958*t,0,0)},d=Gr.prototype,d.setTransform=function(t,i,e,n,o,r){this.Dl.setTransform(t,i,e,n,o,r)},d.scale=function(t,i){this.Dl.scale(t,i)},d.translate=function(t,i){this.Dl.translate(t,i)},d.stroke=function(){this.Z.stroke()},d.transform=function(t,i,e,n,o,r){if(t!==1||i!==0||e!==0||n!==1||o!==0||r!==0){var s=this.Dl,h=s.m11*t+s.m21*i;t=s.m12*t+s.m22*i,i=s.m11*e+s.m21*n,e=s.m12*e+s.m22*n,s.dx=s.m11*o+s.m21*r+s.dx,s.dy=s.m12*o+s.m22*r+s.dy,s.m11=h,s.m12=t,s.m21=i,s.m22=e}},d.yc=function(){var t=this.Dl;this.Z.setTransform(t.m11,t.m12,t.m21,t.m22,t.dx,t.dy)},d.ng=function(t,i){if(t instanceof ct&&t.type===Ee){var e=t.xk;t=t.et,t>e?(this.scale(e/t,1),this.translate((t-e)/2,0)):e>t&&(this.scale(1,t/e),this.translate(0,(e-t)/2)),this.Gm?this.clip():this.fill(i),t>e?(this.translate(-(t-e)/2,0),this.scale(1/(e/t),1)):e>t&&(this.translate(0,-(e-t)/2),this.scale(1,1/(t/e)))}else this.Gm?this.clip():this.fill(i)},d.ik=function(){this.Gm||this.stroke()},d.Ev=function(t,i,e){this.zr=t,this.Ar=i,this.Vg=e},d.hs=function(t,i){var e=this.Z;e.setLineDash!==void 0&&(e.setLineDash(t),e.lineDashOffset=i)},d.es=function(){var t=this.Z;t.setLineDash!==void 0&&(t.setLineDash(Qv),t.lineDashOffset=0)},d.Vc=function(t){t&&(this.ct=""),this.bt=this.dt=""},d.Gs=function(){},tt.Object.defineProperties(Gr.prototype,{fillStyle:{get:function(){return this.Z.fillStyle},set:function(t){this.bt!==t&&(this.bt=this.Z.fillStyle=t)}},font:{get:function(){return this.Z.font},set:function(t){this.ct!==t&&(this.ct=this.Z.font=t)}},globalAlpha:{get:function(){return this.Z.globalAlpha},set:function(t){this.Z.globalAlpha=t}},lineCap:{get:function(){return this.Z.lineCap},set:function(t){this.Z.lineCap=t}},lineDashOffset:{get:function(){return this.Z.lineDashOffset},set:function(t){this.Z.lineDashOffset=t}},lineJoin:{get:function(){return this.Z.lineJoin},set:function(t){this.Z.lineJoin=t}},lineWidth:{get:function(){return this.Z.lineWidth},set:function(t){this.Z.lineWidth=t}},miterLimit:{get:function(){return this.Z.miterLimit},set:function(t){this.Z.miterLimit=t}},shadowBlur:{get:function(){return this.Z.shadowBlur},set:function(t){this.Z.shadowBlur=t}},shadowColor:{get:function(){return this.Z.shadowColor},set:function(t){this.Z.shadowColor=t}},shadowOffsetX:{get:function(){return this.Z.shadowOffsetX},set:function(t){this.Z.shadowOffsetX=t}},shadowOffsetY:{get:function(){return this.Z.shadowOffsetY},set:function(t){this.Z.shadowOffsetY=t}},strokeStyle:{get:function(){return this.Z.strokeStyle},set:function(t){this.dt!==t&&(this.dt=this.Z.strokeStyle=t)}},textAlign:{get:function(){return this.Z.textAlign},set:function(t){this.Z.textAlign=t}},imageSmoothingEnabled:{get:function(){return this.Z.imageSmoothingEnabled},set:function(t){this.Z.imageSmoothingEnabled=t}},filter:{get:function(){return this.Z.filter},set:function(t){this.Z.filter=t===""?"none":t}},clipInsteadOfFill:{get:function(){return this.Gm},set:function(t){this.Gm=t}}});var Qv=Object.freeze([]);Gr.className="CanvasSurfaceContext";function Tl(){this.F=this.o=this.u=this.j=0}Tl.className="ColorNumbers";function ct(t,i){wh||(Cc(),wh=!0),ui(this),this._isFrozen=!1,t===void 0?(this.na=Ro,this.wk="black"):typeof t=="string"?(this.na=Ro,this.wk=t):(this.na=t,this.wk="black"),t=this.na,t===mo?(this.Qd=fo,this.Kk=us):this.Kk=t===Ee?this.Qd=vt:this.Qd=Mi,this.Fr=0,this.Wp=NaN,this.xe=this.br=this.we=null,this.et=this.xk=0,i&&Object.assign(this,i)}ct.prototype.copy=function(){var t=new ct;return t.na=this.na,t.wk=this.wk,t.Qd=this.Qd.J(),t.Kk=this.Kk.J(),t.Fr=this.Fr,t.Wp=this.Wp,this.we!==null&&(t.we=this.we.copy()),t.br=this.br,t},d=ct.prototype,d.freeze=function(){return this._isFrozen=!0,this.we!==null&&this.we.freeze(),this},d.ka=function(){return Object.isFrozen(this)&&O("cannot thaw constant: "+this),this._isFrozen=!1,this.we!==null&&this.we.ka(),this},d.qb=function(t){t.classType===ct&&(this.type=t)},d.toString=function(){var t="Brush(";if(this.type===Ro)t+=this.color;else if(t=this.type===mo?t+"Linear ":this.type===Ee?t+"Radial ":this.type===Mh?t+"Pattern ":t+"(unknown) ",t+=this.start+" "+this.end,this.colorStops!==null)for(var i=this.colorStops.iterator;i.next();)t+=" "+i.key+":"+i.value;return t+")"},d.addColorStop=function(t,i){return this._isFrozen&&rt(this),(typeof t!="number"||!isFinite(t)||1<t||0>t)&&jt(t,"0 <= loc <= 1",ct,"addColorStop:loc"),this.we===null&&(this.we=new _),this.we.add(t,i),this.na===Ro&&(this.type=mo),this.xe=null,this},d.Vz=function(t,i){if(this._isFrozen&&rt(this),t=t===void 0||typeof t!="number"?.2:t,i=i===void 0?Sh:i,this.type===Ro)yo(this.color),this.color=vh(t,i);else if((this.type===mo||this.type===Ee)&&this.colorStops!==null)for(var e=this.colorStops.iterator;e.next();)yo(e.value),this.addColorStop(e.key,vh(t,i));return this};function ry(t,i,e){return i=i===void 0||typeof i!="number"?.2:i,e=e===void 0?Sh:e,yo(t),vh(i,e)}d.Wy=function(t,i){if(this._isFrozen&&rt(this),t=t===void 0||typeof t!="number"?.2:t,i=i===void 0?Sh:i,this.type===Ro)yo(this.color),this.color=vh(-t,i);else if((this.type===mo||this.type===Ee)&&this.colorStops!==null)for(var e=this.colorStops.iterator;e.next();)yo(e.value),this.addColorStop(e.key,vh(-t,i));return this};function sy(t,i,e){return i=i===void 0||typeof i!="number"?.2:i,e=e===void 0?Sh:e,yo(t),vh(-i,e)}function Mc(t,i,e){yo(t),t=Pt.j;var n=Pt.u,o=Pt.o,r=Pt.F;return yo(i),e===void 0&&(e=.5),"rgba("+Math.round((Pt.j-t)*e+t)+", "+Math.round((Pt.u-n)*e+n)+", "+Math.round((Pt.o-o)*e+o)+", "+Math.round((Pt.F-r)*e+r)+")"}d.Gx=function(){if(this.type===Ro)return mh(this.color);if((this.type===mo||this.type===Ee)&&this.colorStops!==null){var t=this.colorStops;if(this.type===Ee)return mh(t.first().value);if(t.get(.5)!==null)return mh(t.get(.5));if(t.count===2)return t=t.Fa(),mh(Mc(t[0].value,t[1].value));for(var i=t.iterator,e=-1,n=-1,o=1,r=1;i.next();){var s=i.key,h=Math.abs(.5-i.key);o>r&&h<o?(e=s,o=h):r>=o&&h<r&&(n=s,r=h)}return e>n&&(r=e,e=n,n=r,r=o),o=n-e,mh(Mc(t.get(e),t.get(n),1-r/o))}return!1};function mh(t){return t?t instanceof ct?t.Gx():(yo(t),128>(299*Pt.j+587*Pt.u+114*Pt.o)/1e3):!1}function vh(t,i){switch(i){case Sh:i=100*Nc(Pt.j);var e=100*Nc(Pt.u),n=100*Nc(Pt.o);return Xi.j=.4124564*i+.3575761*e+.1804375*n,Xi.u=.2126729*i+.7151522*e+.072175*n,Xi.o=.0193339*i+.119192*e+.9503041*n,Xi.F=Pt.F,i=kc(Xi.j/xh[0]),e=kc(Xi.u/xh[1]),n=kc(Xi.o/xh[2]),Zn.j=116*e-16,Zn.u=500*(i-e),Zn.o=200*(e-n),Zn.F=Xi.F,Zn.j=Math.min(100,Math.max(0,Zn.j+100*t)),t=(Zn.j+16)/116,i=t-Zn.o/200,Xi.j=xh[0]*hy(Zn.u/500+t),Xi.u=xh[1]*(Zn.j>ha*Tc?Math.pow(t,3):Zn.j/ha),Xi.o=xh[2]*hy(i),Xi.F=Zn.F,t=-.969266*Xi.j+1.8760108*Xi.u+.041556*Xi.o,i=.0556434*Xi.j+-.2040259*Xi.u+1.0572252*Xi.o,Pt.j=255*Pc((3.2404542*Xi.j+-1.5371385*Xi.u+-.4985314*Xi.o)/100),Pt.u=255*Pc(t/100),Pt.o=255*Pc(i/100),Pt.F=Xi.F,Pt.j=Math.round(Pt.j),255<Pt.j?Pt.j=255:0>Pt.j&&(Pt.j=0),Pt.u=Math.round(Pt.u),255<Pt.u?Pt.u=255:0>Pt.u&&(Pt.u=0),Pt.o=Math.round(Pt.o),255<Pt.o?Pt.o=255:0>Pt.o&&(Pt.o=0),"rgba("+Pt.j+", "+Pt.u+", "+Pt.o+", "+Pt.F+")";case ly:return Sc(),Se.o=Math.min(100,Math.max(0,Se.o+100*t)),"hsla("+Se.j+", "+Se.u+"%, "+Se.o+"%, "+Se.F+")";default:O("Unknown color space: "+i)}}function yo(t){wh||(Cc(),wh=!0);var i=Lc;if(i!==null){i.clearRect(0,0,1,1),i.fillStyle="#000000";var e=i.fillStyle;i.fillStyle=t,i.fillStyle!==e?(i.fillRect(0,0,1,1),t=i.getImageData(0,0,1,1).data,Pt.j=t[0],Pt.u=t[1],Pt.o=t[2],Pt.F=t[3]/255):(i.fillStyle="#FFFFFF",i.fillStyle=t,Pt.j=0,Pt.u=0,Pt.o=0,Pt.F=1)}}function Sc(){var t=Pt.j/255,i=Pt.u/255,e=Pt.o/255,n=Math.max(t,i,e),o=Math.min(t,i,e),r=n-o;if(o=(n+o)/2,r===0)var s=t=0;else{switch(n){case t:s=(i-e)/r%6;break;case i:s=(e-t)/r+2;break;case e:s=(t-i)/r+4}s*=60,0>s&&(s+=360),t=r/(1-Math.abs(2*o-1))}Se.j=Math.round(s),Se.u=Math.round(100*t),Se.o=Math.round(100*o),Se.F=Pt.F}function Nc(t){return t/=255,.04045>=t?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Pc(t){return .0031308>=t?12.92*t:1.055*Math.pow(t,1/2.4)-.055}function kc(t){return t>Tc?Math.pow(t,1/3):(ha*t+16)/116}function hy(t){var i=t*t*t;return i>Tc?i:(116*t-16)/ha}function Ms(t,i){typeof t!="string"&&(t instanceof ct||O("Value for "+i+" must be a color string or a Brush, not "+t))}function Cc(){Lc=rn?new Je(null,void 0,{willReadFrequently:!0}).context:null}tt.Object.defineProperties(ct.prototype,{type:{get:function(){return this.na},set:function(t){this._isFrozen&&rt(this,t),this.na=t,this.start.Mc()&&(t===mo?this.start=fo:t===Ee&&(this.start=vt)),this.end.Mc()&&(t===mo?this.end=us:t===Ee&&(this.end=vt)),this.xe=null}},color:{get:function(){return this.wk},set:function(t){this._isFrozen&&rt(this,t),this.wk=t,this.xe=null}},start:{get:function(){return this.Qd},set:function(t){this._isFrozen&&rt(this,t),this.Qd=t.J(),this.xe=null}},end:{get:function(){return this.Kk},set:function(t){this._isFrozen&&rt(this,t),this.Kk=t.J(),this.xe=null}},startRadius:{get:function(){return this.Fr},set:function(t){this._isFrozen&&rt(this,t),0>t&&jt(t,">= zero",ct,"startRadius"),this.Fr=t,this.xe=null}},endRadius:{get:function(){return this.Wp},set:function(t){this._isFrozen&&rt(this,t),0>t&&jt(t,">= zero",ct,"endRadius"),this.Wp=t,this.xe=null}},colorStops:{get:function(){return this.we},set:function(t){this._isFrozen&&rt(this,t),this.we=t,this.xe=null}},pattern:{get:function(){return this.br},set:function(t){this._isFrozen&&rt(this,t),this.br=t,this.xe=null}}}),ct.prototype.isDark=ct.prototype.Gx,ct.prototype.darkenBy=ct.prototype.Wy,ct.prototype.lightenBy=ct.prototype.Vz,ct.prototype.addColorStop=ct.prototype.addColorStop;var Tc=216/24389,ha=24389/27,xh=[95.047,100,108.883],Lc=null,Pt=new Tl,Se=new Tl,Xi=new Tl,Zn=new Tl,wh=!1;ct.className="Brush";var Ro;ct.Solid=Ro=new R(ct,"Solid",0);var mo;ct.Linear=mo=new R(ct,"Linear",1);var Ee;ct.Radial=Ee=new R(ct,"Radial",2);var Mh;ct.Pattern=Mh=new R(ct,"Pattern",4);var Sh;ct.Lab=Sh=new R(ct,"Lab",5);var ly;ct.HSL=ly=new R(ct,"HSL",6),ct.randomColor=function(t,i){t===void 0&&(t=128),i===void 0&&(i=Math.max(t,255));var e=Math.abs(i-t);i=Math.floor(t+Math.random()*e).toString(16);var n=Math.floor(t+Math.random()*e).toString(16);return t=Math.floor(t+Math.random()*e).toString(16),2>i.length&&(i="0"+i),2>n.length&&(n="0"+n),2>t.length&&(t="0"+t),"#"+i+n+t},ct.isValidColor=function(t){if(t==="black")return!0;if(t==="")return!1;wh||(Cc(),wh=!0);var i=Lc;if(i===null)return!0;i.fillStyle="#000000";var e=i.fillStyle;return i.fillStyle=t,i.fillStyle!==e?!0:(i.fillStyle="#FFFFFF",e=i.fillStyle,i.fillStyle=t,i.fillStyle!==e)},ct.lighten=function(t){return ry(t)},ct.lightenBy=ry,ct.darken=function(t){return sy(t)},ct.darkenBy=sy,ct.mix=Mc,ct.isDark=mh;function bt(){this.xa="Base"}bt.prototype.measure=function(){},bt.prototype.Yz=function(t,i,e,n,o){t.measure(i,e,n,o)},bt.prototype.arrange=function(){},bt.prototype.Ly=function(t,i,e,n,o,r){t.arrange(i,e,n,o,r)},bt.prototype.iA=function(t){t.Tj()},bt.prototype.hc=function(){},tt.Object.defineProperties(bt.prototype,{name:{get:function(){return this.xa},set:function(t){this.xa=t}},classType:{get:function(){return j}}}),bt.prototype.remeasureObject=bt.prototype.iA,bt.prototype.arrangeElement=bt.prototype.Ly,bt.prototype.measureElement=bt.prototype.Yz,bt.className="PanelLayout";function la(){this.xa="Base"}pt(la,bt),la.prototype.measure=function(t,i,e,n,o,r,s){var h=n.length;t=vo(t);for(var l=0;l<h;l++){var u=n[l];if(u.visible||u===t){var a=u.margin,f=a.right+a.left;a=a.top+a.bottom,u.measure(i,e,r,s);var p=u.measuredBounds;f=Math.max(p.width+f,0),a=Math.max(p.height+a,0),p=u.position.x;var c=u.position.y;isFinite(p)||(p=0),isFinite(c)||(c=0),u instanceof q&&u.isGeometryPositioned&&(u=u.strokeWidth/2,p-=u,c-=u),yi(o,p,c,f,a)}}},la.prototype.arrange=function(t,i,e){var n=i.length,o=t.padding;for(t=e.x-o.left,e=e.y-o.top,o=0;o<n;o++){var r=i[o],s=r.measuredBounds,h=r.margin,l=r.position.x,u=r.position.y;if(l=isNaN(l)?-t:l-t,u=isNaN(u)?-e:u-e,r instanceof q&&r.isGeometryPositioned){var a=r.strokeWidth/2;l-=a,u-=a}r.visible&&r.arrange(l+h.left,u+h.top,s.width,s.height)}};function ua(){this.xa="Base"}pt(ua,bt),ua.prototype.measure=function(t,i,e,n,o,r,s){var h=n.length;i=kt(),r=vo(t);for(var l=0;l<h;l++){var u=n[l];if(u.visible||u===r){var a=Mn(u,!1);if(a!==Xt&&a!==wi)i.push(u);else{u.measure(1/0,e,0,s),a=u.margin,u=u.measuredBounds;var f=Math.max(u.height+a.top+a.bottom,0);o.width+=Math.max(u.width+a.right+a.left,0),o.height=Math.max(o.height,f)}}}for(n=i.length,t.desiredSize.height?e=Math.min(t.desiredSize.height,t.maxSize.height):o.height!==0&&(e=Math.min(o.height,t.maxSize.height)),t=0;t<n;t++)l=i[t],(l.visible||l===r)&&(a=l.margin,h=a.right+a.left,a=a.top+a.bottom,l.measure(1/0,e,0,s),l=l.measuredBounds,a=Math.max(l.height+a,0),o.width+=Math.max(l.width+h,0),o.height=Math.max(o.height,a));Mt(i)},ua.prototype.arrange=function(t,i,e){for(var n=i.length,o=t.padding,r=o.top,s=t.isOpposite,h=s?e.width:o.left,l=0;l<n;l++){var u=r,a=i[l];if(a.visible){var f=a.measuredBounds,p=a.margin,c=p.top+p.bottom,g=r+o.bottom,y=f.height,v=Mn(a,!1);(isNaN(a.desiredSize.height)&&v===Ut||v===Pi)&&(y=Math.max(e.height-c-g,0)),c=y+c+g,g=a.alignment,g.Yb()&&(g=t.defaultAlignment),g.sb()||(g=vt),s&&(h-=f.width+p.left+p.right),a.arrange(h+g.offsetX+p.left,u+g.offsetY+p.top+(e.height*g.y-c*g.y),f.width,y),s||(h+=f.width+p.left+p.right)}}};function aa(){this.xa="Base"}pt(aa,bt),aa.prototype.measure=function(t,i,e,n,o,r){var s=n.length;e=kt();for(var h=vo(t),l=0;l<s;l++){var u=n[l];if(u.visible||u===h){var a=Mn(u,!1);if(a!==Xt&&a!==Pi)e.push(u);else{var f=u.margin;a=f.right+f.left,f=f.top+f.bottom,u.measure(i,1/0,r,0),u=u.measuredBounds,ao(o,Math.max(o.width,Math.max(u.width+a,0)),o.height+Math.max(u.height+f,0))}}}if(n=e.length,n!==0){for(t.desiredSize.width?i=Math.min(t.desiredSize.width,t.maxSize.width):o.width!==0&&(i=Math.min(o.width,t.maxSize.width)),t=0;t<n;t++)l=e[t],(l.visible||l===h)&&(u=l.margin,s=u.right+u.left,u=u.top+u.bottom,l.measure(i,1/0,r,0),l=l.measuredBounds,u=Math.max(l.height+u,0),o.width=Math.max(o.width,Math.max(l.width+s,0)),o.height+=u);Mt(e)}},aa.prototype.arrange=function(t,i,e){for(var n=i.length,o=t.padding,r=o.left,s=t.isOpposite,h=s?e.height:o.top,l=0;l<n;l++){var u=r,a=i[l];if(a.visible){var f=a.measuredBounds,p=a.margin,c=p.left+p.right,g=r+o.right,y=f.width,v=Mn(a,!1);(isNaN(a.desiredSize.width)&&v===Ut||v===wi)&&(y=Math.max(e.width-c-g,0)),c=y+c+g,g=a.alignment,g.Yb()&&(g=t.defaultAlignment),g.sb()||(g=vt),s&&(h-=f.height+p.bottom+p.top),a.arrange(u+g.offsetX+p.left+(e.width*g.x-c*g.x),h+g.offsetY+p.top,y,f.height),s||(h+=f.height+p.bottom+p.top)}}};function fa(){this.xa="Base"}pt(fa,bt),fa.prototype.measure=function(t,i,e,n,o,r,s){var h=n.length,l=t.Qb(),u=l.margin,a=u.right+u.left,f=u.top+u.bottom;l.measure(i,e,r,s);var p=l.measuredBounds;r=p.width,s=p.height;var c=Math.max(r+a,0),g=Math.max(s+f,0),y=t.isClipping,v=T.allocAt(-u.left,-u.top,c,g),m=T.allocAt(0,0,r,s);jc(l,m,!0),r=m.width,s=m.height;for(var w=!0,M=vo(t),S=0;S<h;S++){var N=n[S];p=i;var k=e;if(N!==l&&(N.visible||N===M)){u=N.margin;var D=u.left,z=u.top;switch(c=u.right+u.left,g=u.top+u.bottom,u=Mn(N,!1),u){case Ut:p=r,k=s,z=D=g=c=0;break;case wi:p=r,D=c=0;break;case Pi:k=s,z=g=0}N.measure(p,k,0,0),p=N.measuredBounds,c=Math.max(p.width+c,0),g=Math.max(p.height+g,0),u=N.alignment,u.Yb()&&(u=t.defaultAlignment),u.sb()||(u=vt);var Y=N.alignmentFocus;if(Y.Yb()&&(Y=vt),k=null,N instanceof j&&N.$e!==""&&(k=N.fb(N.$e),k===N&&(k=null)),D=m.x-D,z=m.y-z,k!==null){for(N.arrange(0,0,p.width,p.height),p=k.actualBounds,p=x.allocAt(p.x+(Y.x*p.width-Y.offsetX),p.y+(Y.y*p.height-Y.offsetY)),k=k.panel;k!==N;)k.transform.Ga(p),k=k.panel;D+=u.x*r+u.offsetX-p.x,z+=u.y*s+u.offsetY-p.y,x.free(p)}else D+=u.x*r+u.offsetX-(Y.x*p.width+Y.offsetX),z+=u.y*s+u.offsetY-(Y.y*p.height+Y.offsetY);w?(w=!1,o.h(D,z,c,g)):yi(o,D,z,c,g)}}switch(w?o.assign(v):y?o.Uu(m.x,m.y,m.width,m.height):yi(o,v.x,v.y,v.width,v.height),T.free(v),T.free(m),u=l.stretch,u===sn&&(u=Mn(l,!1)),u){case Xt:return;case Ut:if(!isFinite(i)&&!isFinite(e))return;break;case wi:if(!isFinite(i))return;break;case Pi:if(!isFinite(e))return}for(p=l.measuredBounds,r=p.width,s=p.height,c=Math.max(r+a,0),g=Math.max(s+f,0),u=l.margin,m=T.allocAt(-u.left,-u.top,c,g),jc(l,m,!0),r=m.width,s=m.height,i=0;i<h;i++)e=n[i],e===l||!e.visible&&e!==M||(u=e.margin,c=u.right+u.left,g=u.top+u.bottom,p=e.measuredBounds,c=Math.max(p.width+c,0),g=Math.max(p.height+g,0),a=e.alignment,a.Yb()&&(a=t.defaultAlignment),a.sb()||(a=vt),e=e.alignmentFocus,e.Yb()&&(e=vt),w?(w=!1,o.h(a.x*r+a.offsetX-(e.x*p.width+e.offsetX)-u.left,a.y*s+a.offsetY-(e.y*p.height+e.offsetY)-u.top,c,g)):yi(o,a.x*r+a.offsetX-(e.x*p.width+e.offsetX)-u.left,a.y*s+a.offsetY-(e.y*p.height+e.offsetY)-u.top,c,g));w?o.assign(v):y?o.Uu(m.x,m.y,m.width,m.height):yi(o,v.x,v.y,v.width,v.height),T.free(m)},fa.prototype.arrange=function(t,i,e){var n=i.length,o=t.Qb(),r=o.measuredBounds,s=r.width,h=r.height,l=t.padding;r=l.left,l=l.top;var u=r-e.x,a=l-e.y;for(o.arrange(u,a,s,h),s=T.allocAt(0,0,s,h),jc(o,s,!1),h=0;h<n;h++){var f=i[h];if(f!==o){u=f.measuredBounds;var p=u.width,c=u.height;a=f.alignment,a.Yb()&&(a=t.defaultAlignment),a.sb()||(a=vt);var g=f.alignmentFocus;if(g.Yb()&&(g=vt),u=null,f instanceof j&&f.$e!==""&&(u=f.fb(f.$e),u===f&&(u=null)),u!==null){var y=u.actualBounds;for(g=x.allocAt(y.x+(g.x*y.width-g.offsetX),y.y+(g.y*y.height-g.offsetY)),u=u.panel;u!==f;)u.transform.Ga(g),u=u.panel;u=a.x*s.width+a.offsetX-g.x,a=a.y*s.height+a.offsetY-g.y,x.free(g)}else u=a.x*s.width+a.offsetX-(g.x*p+g.offsetX),a=a.y*s.height+a.offsetY-(g.y*c+g.offsetY);u+=s.x-e.x,a+=s.y-e.y,f.visible&&f.arrange(r+u,l+a,p,c)}}T.free(s)};function jc(t,i,e){var n=null;if(t instanceof j&&t.$e!==""&&(n=t.fb(t.$e),n===t&&(n=null)),n!==null)for(e&&t.arrange(0,0,i.width,i.height),i.assign(n.actualBounds),n=n.panel;n!==t;)n.transform.op(i),n=n.panel}function pa(){this.xa="Base"}pt(pa,bt),pa.prototype.measure=function(t,i,e,n,o,r,s){var h=n.length,l=t.Qb(),u=l.margin,a=i,f=e,p=u.right+u.left,c=u.top+u.bottom;l.measure(i,e,r,s),u=l.measuredBounds;var g=0,y=null;l instanceof q&&(y=l,g=y.strokeWidth*y.scale);var v=Math.max(u.width+p,0);u=Math.max(u.height+c,0);var m=Ic(l),w=m.x*v+m.offsetX;m=m.y*u+m.offsetY;var M=Dc(l),S=M.x*v+M.offsetX;for(M=M.y*u+M.offsetY,isFinite(i)&&(a=Math.max(Math.abs(w-S)-g,0)),isFinite(e)&&(f=Math.max(Math.abs(m-M)-g,0)),g=Z.alloc(),g.h(0,0),t=vo(t),M=0;M<h;M++)m=n[M],m===l||!m.visible&&m!==t||(u=m.margin,v=u.right+u.left,w=u.top+u.bottom,m.measure(a,f,0,0),u=m.measuredBounds,v=Math.max(u.width+v,0),u=Math.max(u.height+w,0),g.h(Math.max(v,g.width),Math.max(u,g.height)));if(h===1)o.width=v,o.height=u,Z.free(g);else{switch(m=Ic(l),M=Dc(l),h=n=0,M.x!==m.x&&M.y!==m.y&&(n=g.width/Math.abs(M.x-m.x),h=g.height/Math.abs(M.y-m.y)),Z.free(g),g=0,y!==null&&(g=y.strokeWidth*y.scale,zc(y)===Dn&&(n=h=Math.max(n,h))),n+=Math.abs(m.offsetX)+Math.abs(M.offsetX)+g,h+=Math.abs(m.offsetY)+Math.abs(M.offsetY)+g,y=l.stretch,y===sn&&(y=Mn(l,!1)),y){case Xt:s=r=0;break;case Ut:isFinite(i)&&(n=i),isFinite(e)&&(h=e);break;case wi:isFinite(i)&&(n=i),s=0;break;case Pi:r=0,isFinite(e)&&(h=e)}l.Tj(),l.measure(n,h,r,s),o.width=l.measuredBounds.width+p,o.height=l.measuredBounds.height+c}},pa.prototype.arrange=function(t,i){var e=i.length,n=t.Qb(),o=n.measuredBounds,r=T.alloc();r.h(0,0,1,1);var s=n.margin,h=s.left;s=s.top;var l=t.padding,u=l.left;l=l.top,n.arrange(u+h,l+s,o.width,o.height);var a=Ic(n),f=Dc(n),p=a.y*o.height+a.offsetY,c=f.x*o.width+f.offsetX;for(f=f.y*o.height+f.offsetY,r.x=a.x*o.width+a.offsetX,r.y=p,yi(r,c,f,0,0),r.x+=h+u,r.y+=s+l,o=0;o<e;o++)h=i[o],h!==n&&(u=h.measuredBounds,s=h.margin,l=Math.max(u.width+s.right+s.left,0),a=Math.max(u.height+s.top+s.bottom,0),p=h.alignment,p.Yb()&&(p=t.defaultAlignment),p.sb()||(p=vt),l=r.width*p.x+p.offsetX-l*p.x+s.left+r.x,s=r.height*p.y+p.offsetY-a*p.y+s.top+r.y,h.visible&&(yn(r.x,r.y,r.width,r.height,l,s,u.width,u.height)?h.arrange(l,s,u.width,u.height):h.arrange(l,s,u.width,u.height,new T(r.x,r.y,r.width,r.height))));T.free(r)};function ca(){this.xa="Base",this.name="Table"}pt(ca,bt),ca.prototype.measure=function(t,i,e,n,o){for(var r=n.length,s=kt(),h=kt(),l=0;l<r;l++){var u=n[l],a=u instanceof j?u:null;if(a!==null&&Vo(a)&&u.visible){h.push(a);for(var f=a.O.s,p=f.length,c=0;c<p;c++){var g=f[c];a.type===j.TableRow?g.row=u.row:a.type===j.TableColumn&&(g.column=u.column),s.push(g)}}else s.push(u)}r=s.length,r===0&&(t.Gb(0),t.Fb(0));for(var y=[],v=0;v<r;v++){var m=s[v];m.visible&&(Ie(m,!0),Vr(m,!0),y[m.row]||(y[m.row]=[]),y[m.row][m.column]||(y[m.row][m.column]=[]),y[m.row][m.column].push(m))}Mt(s);var w=kt(),M=kt(),S=kt(),N={count:0},k={count:0},D=i,z=e,Y=t.rowDefs,A=t.colDefs,L=null;r=Y.length;for(var $=0;$<r;$++)L=Y[$],L!==void 0&&(L.actual=0);r=A.length;for(var W=0;W<r;W++)L=A[W],L!==void 0&&(L.actual=0);for(var ut=y.length,wt=0,oi=0;oi<ut;oi++)y[oi]&&(wt=Math.max(wt,y[oi].length));var li=Math.min(t.topIndex,ut-1),Fi=Math.min(t.leftIndex,wt-1),ri=0;ut=y.length;for(var Zo=vo(t),Wt=0;Wt<ut;Wt++)if(y[Wt]){wt=y[Wt].length;var Cn=t.Gb(Wt);Cn.actual=0;for(var Ai=Cn.pc=0;Ai<wt;Ai++)if(y[Wt][Ai]){var _o=t.Fb(Ai);w[Ai]===void 0&&(_o.actual=0,_o.pc=0,w[Ai]=!0);for(var ke=y[Wt][Ai],Qe=ke.length,ge=0;ge<Qe;ge++){var re=ke[ge];if(re.visible||re===Zo){var Mr=1<re.rowSpan||1<re.columnSpan;Mr&&(Wt<li||Ai<Fi||M.push(re));var Tn=re.margin,Hh=Tn.right+Tn.left,ye=Tn.top+Tn.bottom,Oi=Pl(re,Cn,_o,!1),du=re.desiredSize,Is=!isNaN(du.height),Vn=!isNaN(du.width)&&Is;if(Mr||Oi===Xt||Vn||Wt<li||Ai<Fi||(N[Ai]!==void 0||Oi!==Ut&&Oi!==wi||(N[Ai]=-1,N.count++),k[Wt]!==void 0||Oi!==Ut&&Oi!==Pi||(k[Wt]=-1,k.count++),S.push(re)),re.measure(1/0,1/0,0,0),!(Wt<li||Ai<Fi)){var se=re.measuredBounds,$r=Math.max(se.width+Hh,0),me=Math.max(se.height+ye,0);if(re.rowSpan===1&&(Oi===Xt||Oi===wi)){L=t.Gb(Wt);var Sr=L.Wc();ri=Math.max(me-L.actual,0),ri+Sr>z&&(ri=Math.max(z-Sr,0));var Rf=L.oa===0;L.pc=L.pc+ri,L.actual=L.oa+ri,z=Math.max(z-(ri+(Rf?Sr:0)),0)}if(re.columnSpan===1&&(Oi===Xt||Oi===Pi)){L=t.Fb(Ai);var gu=L.Wc();ri=Math.max($r-L.actual,0),ri+gu>D&&(ri=Math.max(D-gu,0));var ig=L.oa===0;L.pc=L.pc+ri,L.actual=L.oa+ri,D=Math.max(D-(ri+(ig?gu:0)),0)}Mr&&re.Tj()}}}}}Mt(w);var no=0,Mo=0;r=t.columnCount;for(var Ds=0;Ds<r;Ds++){var Nr=A[Ds];Nr!==void 0&&(no+=isNaN(Nr.Hc)?Nr.pc:Nr.Hc,Nr.pc!==0&&(no+=Nr.Wc()))}r=t.rowCount;for(var Wh=0;Wh<r;Wh++){var Pr=Y[Wh];Pr!==void 0&&(Mo+=isNaN(Pr.Hc)?Pr.pc:Pr.Hc,Pr.pc!==0&&(Mo+=Pr.Wc()))}D=Math.max(i-no,0);var oo=z=Math.max(e-Mo,0),$o=D;r=S.length;for(var he=0;he<r;he++){var Yn=S[he],Vf=t.Gb(Yn.row),So=t.Fb(Yn.column),Jh=Yn.measuredBounds,Ln=Yn.margin,Qr=Ln.right+Ln.left,zn=Ln.top+Ln.bottom;N[Yn.column]=So.pc===0&&N[Yn.column]!==void 0?Math.max(Jh.width+Qr,N[Yn.column]):null,k[Yn.row]=Vf.pc===0&&k[Yn.row]!==void 0?Math.max(Jh.height+zn,k[Yn.row]):null}var Es=0,Zh=0,dn;for(dn in k)dn!=="count"&&(Es+=k[dn]);for(dn in N)dn!=="count"&&(Zh+=N[dn]);for(var di=Z.alloc(),yu=0;yu<r;yu++){var _i=S[yu];if(_i.visible||_i===Zo){var Jt=t.Gb(_i.row),$i=t.Fb(_i.column),No=0;isFinite($i.width)?No=$i.width:(isFinite(D)&&N[_i.column]!==null?Zh===0?No=$i.actual+D:No=N[_i.column]/Zh*$o:N[_i.column]!==null?No=D:No=$i.actual||D,No=Math.max(0,No-$i.Wc()));var Qo=0;switch(isFinite(Jt.height)?Qo=Jt.height:(isFinite(z)&&k[_i.row]!==null?Es===0?Qo=Jt.actual+z:Qo=k[_i.row]/Es*oo:k[_i.row]!==null?Qo=z:Qo=Jt.actual||z,Qo=Math.max(0,Qo-Jt.Wc())),di.h(Math.max($i.minimum,Math.min(No,$i.maximum)),Math.max(Jt.minimum,Math.min(Qo,Jt.maximum))),Oi=Pl(_i,Jt,$i,!1),Oi){case wi:di.height=Math.max(di.height,Jt.actual+z);break;case Pi:di.width=Math.max(di.width,$i.actual+D)}var qr=_i.margin,eg=qr.right+qr.left,Yf=qr.top+qr.bottom;_i.Tj(),_i.measure(di.width,di.height,$i.minimum,Jt.minimum);var _h=_i.measuredBounds,br=Math.max(_h.width+eg,0),Bs=Math.max(_h.height+Yf,0);isFinite(D)&&(br=Math.min(br,di.width)),isFinite(z)&&(Bs=Math.min(Bs,di.height));var le=0;le=Jt.actual,Jt.actual=Math.max(Jt.actual,Bs),Jt.pc=Math.max(Jt.pc,Bs),ri=Jt.actual-le,z=Math.max(z-ri,0),k[_i.row]===null&&(oo=Math.max(oo-ri,0)),le=$i.actual,$i.actual=Math.max($i.actual,br),$i.pc=Math.max($i.pc,br),ri=$i.actual-le,D=Math.max(D-ri,0),N[_i.column]===null&&($o=Math.max($o-ri,0))}}Mt(S);var Po=Z.alloc(),jn=kt(),ze=kt();if(r=M.length,r!==0){for(var kr=0;kr<ut;kr++)if(y[kr]){wt=y[kr].length;var $h=t.Gb(kr);jn[kr]=$h.actual;for(var Cr=0;Cr<wt;Cr++)if(y[kr][Cr]){var zf=t.Fb(Cr);ze[Cr]=zf.actual}}}for(var Qh=0;Qh<r;Qh++){var Gt=M[Qh];if(Gt.visible||Gt===Zo){var gn=t.Gb(Gt.row),qe=t.Fb(Gt.column);switch(di.h(Math.max(qe.minimum,Math.min(i,qe.maximum)),Math.max(gn.minimum,Math.min(e,gn.maximum))),Oi=Pl(Gt,gn,qe,!1),Oi){case Ut:ze[qe.index]!==0&&(di.width=Math.min(di.width,ze[qe.index])),jn[gn.index]!==0&&(di.height=Math.min(di.height,jn[gn.index]));break;case wi:ze[qe.index]!==0&&(di.width=Math.min(di.width,ze[qe.index]));break;case Pi:jn[gn.index]!==0&&(di.height=Math.min(di.height,jn[gn.index]))}isFinite(qe.width)&&(di.width=qe.width),isFinite(gn.height)&&(di.height=gn.height),Po.h(0,0);for(var Gf=qe.minimum,ve=gn.minimum,qo=1;qo<Gt.rowSpan&&!(Gt.row+qo>=t.rowCount);qo++)L=t.Gb(Gt.row+qo),ri=0,ri=Oi===Ut||Oi===Pi?Math.max(L.minimum,jn[Gt.row+qo]===0?L.maximum:Math.min(jn[Gt.row+qo],L.maximum)):Math.max(L.minimum,isNaN(L.Hc)?L.maximum:Math.min(L.Hc,L.maximum)),Po.height+=ri,ve+=L.minimum;for(var be=1;be<Gt.columnSpan&&!(Gt.column+be>=t.columnCount);be++)L=t.Fb(Gt.column+be),ri=0,ri=Oi===Ut||Oi===wi?Math.max(L.minimum,ze[Gt.column+be]===0?L.maximum:Math.min(ze[Gt.column+be],L.maximum)):Math.max(L.minimum,isNaN(L.Hc)?L.maximum:Math.min(L.Hc,L.maximum)),Po.width+=ri,Gf+=L.minimum;di.width+=Po.width,di.height+=Po.height;var qh=Gt.margin,Tr=qh.right+qh.left,mu=qh.top+qh.bottom;Gt.measure(di.width,di.height,Gf,ve);for(var bh=Gt.measuredBounds,Gn=Math.max(bh.width+Tr,0),ts=Math.max(bh.height+mu,0),Lr=0,tl=0;tl<Gt.rowSpan&&!(Gt.row+tl>=t.rowCount);tl++)L=t.Gb(Gt.row+tl),Lr+=L.total||0;if(Lr<ts){var bo=ts-Lr,ro=ts-Lr;if(Gt.spanAllocation!==null)for(var tr=Gt.spanAllocation,ko=0;ko<Gt.rowSpan&&!(0>=bo)&&!(Gt.row+ko>=t.rowCount);ko++){L=t.Gb(Gt.row+ko);var ir=L.oa||0,is=tr(Gt,L,ro);L.actual=Math.min(L.maximum,ir+is),L.oa!==ir&&(bo-=L.oa-ir)}for(;0<bo;){var Fn=L.oa||0;if(isNaN(L.height)&&L.maximum>Fn&&(L.actual=Math.min(L.maximum,Fn+bo),L.oa!==Fn&&(bo-=L.oa-Fn)),L.index===0)break;L=t.Gb(L.index-1)}}for(var Rs=0,er=0;er<Gt.columnSpan&&!(Gt.column+er>=t.columnCount);er++)L=t.Fb(Gt.column+er),Rs+=L.total||0;if(Rs<Gn){var Vs=Gn-Rs,ng=Gn-Rs;if(Gt.spanAllocation!==null)for(var Co=Gt.spanAllocation,es=0;es<Gt.columnSpan&&!(0>=Vs)&&!(Gt.column+es>=t.columnCount);es++){L=t.Fb(Gt.column+es);var vu=L.oa||0,og=Co(Gt,L,ng);L.actual=Math.min(L.maximum,vu+og),L.oa!==vu&&(Vs-=L.oa-vu)}for(;0<Vs;){var Xf=L.oa||0;if(isNaN(L.width)&&L.maximum>Xf&&(L.actual=Math.min(L.maximum,Xf+Vs),L.oa!==Xf&&(Vs-=L.oa-Xf)),L.index===0)break;L=t.Fb(L.index-1)}}}}Mt(M),Z.free(Po),Z.free(di),jn!==void 0&&Mt(jn),ze!==void 0&&Mt(ze);var Ys=0,zs=0,Kf=t.desiredSize,Sv=t.maxSize;Oi=Mn(t,!0);var xu=Mo=no=0,wu=0;r=t.columnCount;for(var Uf=0;Uf<r;Uf++)A[Uf]!==void 0&&(L=t.Fb(Uf),isFinite(L.width)?(xu+=L.width,xu+=L.Wc()):Na(L)===Al?(xu+=L.oa,xu+=L.Wc()):L.oa!==0&&(no+=L.oa,no+=L.Wc()));isFinite(Kf.width)?Ys=Math.min(Kf.width,Sv.width):Ys=Oi!==Xt&&isFinite(i)?i:no,Ys=Math.max(Ys,t.minSize.width),Ys=Math.max(Ys-xu,0);for(var I1=no===0?1:Math.max(Ys/no,1),Hf=0;Hf<r;Hf++)A[Hf]!==void 0&&(L=t.Fb(Hf),isFinite(L.width)||Na(L)===Al||(L.actual=L.oa*I1),L.position=o.width,L.oa!==0&&(o.width+=L.oa,o.width+=L.Wc()));r=t.rowCount;for(var Wf=0;Wf<r;Wf++)Y[Wf]!==void 0&&(L=t.Gb(Wf),isFinite(L.height)?(wu+=L.height,wu+=L.Wc()):Na(L)===Al?(wu+=L.oa,wu+=L.Wc()):L.oa!==0&&(Mo+=L.oa,Mo+=L.Wc()));isFinite(Kf.height)?zs=Math.min(Kf.height,Sv.height):zs=Oi!==Xt&&isFinite(e)?e:Mo,zs=Math.max(zs,t.minSize.height),zs=Math.max(zs-wu,0);for(var D1=Mo===0?1:Math.max(zs/Mo,1),Jf=0;Jf<r;Jf++)Y[Jf]!==void 0&&(L=t.Gb(Jf),isFinite(L.height)||Na(L)===Al||(L.actual=L.oa*D1),L.position=o.height,L.oa!==0&&(o.height+=L.oa,o.height+=L.Wc()));r=h.length;for(var rg=0;rg<r;rg++){var Mu=h[rg],sg=0,hg=0;Mu.type===j.TableRow?(sg=o.width,L=t.Gb(Mu.row),hg=L.actual):(L=t.Fb(Mu.column),sg=L.actual,hg=o.height),Mu.measuredBounds.h(0,0,sg,hg),Ie(Mu,!1)}Mt(h),t.inRowsCols=y},ca.prototype.arrange=function(t,i,e){var n=i.length,o=t.padding,r=o.left;o=o.top;var s=t.inRowsCols;if(s!==null){for(var h,l,u=s.length,a=0,f=0;f<u;f++)s[f]&&(a=Math.max(a,s[f].length));l=t.rowDefs,h=t.colDefs;var p=f=0,c=Math.min(t.topIndex,u-1);if(0<l.length){for(;c!==u&&(l[c]===void 0||l[c].oa===0);)c++;c=Math.max(Math.min(c,u-1),0),f=-l[c].position}var g=Math.min(t.leftIndex,a-1);if(0<h.length){for(;g!==a&&(h[g]===void 0||h[g].oa===0);)g++;g=Math.max(Math.min(g,a-1),0),p=-h[g].position}for(var y=0,v=0;y!==u&&l[y]===void 0;)y++;for(;v!==u&&h[v]===void 0;)v++;a=t.part,t.Gb(y),t.Fb(v);for(var m=0;m<i.length;m++){var w=i[m];if(w instanceof j&&w.visible&&Vo(w)){if(w.type===j.TableRow){h=t.Gb(w.row);var M=t.Fb(v)}else h=t.Gb(y),M=t.Fb(w.column);l=h.position+f+o,h.oa!==0&&(l+=h.Ho(Math.max(y,c))),h=M.position+p+r,M.oa!==0&&(h+=M.Ho(Math.max(v,g))),M=w.measuredBounds,w.Tk(),w.actualBounds.ka();var S=w.actualBounds,N=T.allocAt(S.x,S.y,S.width,S.height);S.x=w.type===j.TableRow?r:h,S.y=w.type===j.TableColumn?o:l,S.width=M.width,S.height=M.height,w.actualBounds.freeze(),Vr(w,!1),np(N,S)||a===null||(a.oh(),w.On(a)),T.free(N)}}for(m=Z.alloc(),w=0;w<u;w++)if(s[w]){for(a=s[w].length,M=t.Gb(w),l=M.position+f+o,M.oa!==0&&(l+=M.Ho(Math.max(y,c))),S=0;S<a;S++)if(s[w][S]){N=t.Fb(S),h=N.position+p+r,N.oa!==0&&(h+=N.Ho(Math.max(v,g)));for(var k=s[w][S],D=k.length,z=0;z<D;z++){var Y=k[z],A=Y.measuredBounds;m.h(0,0);for(var L=1;L<Y.rowSpan&&!(w+L>=t.rowCount);L++){var $=t.Gb(w+L);$.oa!==0&&(m.height+=$.total)}for(L=1;L<Y.columnSpan&&!(S+L>=t.columnCount);L++)$=t.Fb(S+L),$.oa!==0&&(m.width+=$.total);var W=N.oa+m.width,ut=M.oa+m.height;L=h,$=l;var wt=W,oi=ut,li=h,Fi=l,ri=W,Zo=ut;h+W>e.width&&(ri=Math.max(e.width-h,0)),l+ut>e.height&&(Zo=Math.max(e.height-l,0));var Wt=Y.alignment;if(Wt.Yb()){Wt=t.defaultAlignment,Wt.sb()||(Wt=vt);var Cn=Wt.x,Ai=Wt.y,_o=Wt.offsetX;Wt=Wt.offsetY;var ke=N.alignment,Qe=M.alignment;ke.sb()&&(Cn=ke.x,_o=ke.offsetX),Qe.sb()&&(Ai=Qe.y,Wt=Qe.offsetY)}else Cn=Wt.x,Ai=Wt.y,_o=Wt.offsetX,Wt=Wt.offsetY;(isNaN(Cn)||isNaN(Ai))&&(Ai=Cn=.5,Wt=_o=0),ke=A.width,Qe=A.height;var ge=Y.margin,re=ge.left+ge.right,Mr=ge.top+ge.bottom,Tn=Pl(Y,M,N,!1);!isNaN(Y.desiredSize.width)||Tn!==Ut&&Tn!==wi||(ke=Math.max(W-re,0)),!isNaN(Y.desiredSize.height)||Tn!==Ut&&Tn!==Pi||(Qe=Math.max(ut-Mr,0)),W=Y.maxSize,ut=Y.minSize,ke=Math.min(W.width,ke),Qe=Math.min(W.height,Qe),ke=Math.max(ut.width,ke),Qe=Math.max(ut.height,Qe),W=Qe+Mr,L+=wt*Cn-(ke+re)*Cn+_o+ge.left,$+=oi*Ai-W*Ai+Wt+ge.top,Y.visible&&(yn(li,Fi,ri,Zo,L,$,A.width,A.height)?Y.arrange(L,$,ke,Qe):Y.arrange(L,$,ke,Qe,new T(li,Fi,ri,Zo)))}}}for(Z.free(m),t=0;t<n;t++)e=i[t],r=e instanceof j?e:null,r!==null&&Vo(r)&&(r=e.actualBounds,e.naturalBounds.ka(),e.naturalBounds.h(0,0,r.width,r.height),e.naturalBounds.freeze())}};function da(){this.xa="Base"}pt(da,bt),da.prototype.measure=function(){},da.prototype.arrange=function(){};function ga(){this.xa="Base"}pt(ga,bt),ga.prototype.measure=function(){},ga.prototype.arrange=function(){};function ya(){this.xa="Base"}pt(ya,bt),ya.prototype.measure=function(t,i,e,n,o,r,s){1<n.length&&O("Viewbox Panel cannot contain more than one GraphObject."),n=n[0],n.Ca=1,n.Tj(),n.measure(1/0,1/0,r,s);var h=n.measuredBounds,l=n.margin,u=l.right+l.left;if(l=l.top+l.bottom,isFinite(i)||isFinite(e)){var a=n.scale,f=h.width;h=h.height;var p=Math.max(i-u,0),c=Math.max(e-l,0),g=1;t.viewboxStretch===Dn?f!==0&&h!==0&&(g=Math.min(p/f,c/h)):f!==0&&h!==0&&(g=Math.max(p/f,c/h)),g===0&&(g=1e-4),n.Ca*=g,a!==n.scale&&(Ie(n,!0),n.measure(1/0,1/0,r,s))}h=n.measuredBounds,o.width=isFinite(i)?i:Math.max(h.width+u,0),o.height=isFinite(e)?e:Math.max(h.height+l,0)},ya.prototype.arrange=function(t,i,e){i=i[0];var n=i.measuredBounds,o=i.margin,r=Math.max(n.width+(o.right+o.left),0);o=Math.max(n.height+(o.top+o.bottom),0);var s=i.alignment;s.Yb()&&(s=t.defaultAlignment),s.sb()||(s=vt),i.arrange(e.width*s.x-r*s.x+s.offsetX,e.height*s.y-o*s.y+s.offsetY,n.width,n.height)};function Ll(){this.xa="Base"}pt(Ll,bt),Ll.prototype.measure=function(){},Ll.prototype.arrange=function(){},Ll.prototype.hc=function(t,i,e){e=t.Df()*e.scale,0>=e&&(e=1);var n=t.gridCellSize,o=n.width;n=n.height;var r=t.naturalBounds,s=t.actualBounds,h=r.width,l=r.height,u=Math.ceil(h/o),a=Math.ceil(l/n),f=t.gridOrigin,p=f.x;f=f.y,i.save(),i.beginPath(),i.rect(0,0,h,l),i.clip(),i.Se();for(var c=[],g=t.O.s,y=g.length,v=0;v<y;v++){var m=g[v],w=[];if(c.push(w),m.visible){var M=m.interval;if(!(0>M)){m=Ac(m.figure);for(var S=0;S<y;S++)if(S!==v){var N=g[S];N.visible&&Ac(N.figure)===m&&(N=N.interval,N>M&&w.push(N))}}}}for(g=t.O.s,y=g.length,v=0;v<y;v++){var k=g[v];if(k.visible&&(w=k.interval||1,m=Math.abs(w),!(2>o*m*e))){if(M=k.segmentIndex,(!isFinite(M)||isNaN(M))&&(M=0),0>M&&(M=m-Math.min(-M,m)),M=Math.round(M%m),m=k.opacity,S=1,m!==1){if(m===0)continue;S=i.globalAlpha,i.globalAlpha=S*m}N=c[v];var D=!1,z=k.strokeDashArray;if(z!==null&&(D=!0,i.hs(z,k.strokeDashOffset)),k.figure==="LineV"&&k.stroke!==null&&0<k.strokeWidth){for(i.lineWidth=k.strokeWidth,Me(t,i,k.stroke,!1,!1,r,s),i.beginPath(),z=k=Math.floor((p-o)/o);z<=k+u;z++){var Y=z*o+p;0<=Y&&Y<=h&&ma(z,w,M,N)&&(i.moveTo(Y,0),i.lineTo(Y,l))}i.stroke(),i.Se()}else if(k.figure==="LineH"&&k.stroke!==null&&0<k.strokeWidth){for(i.lineWidth=k.strokeWidth,Me(t,i,k.stroke,!1,!1,r,s),i.beginPath(),z=k=Math.floor((f-n)/n);z<=k+a;z++)Y=z*n+f,0<=Y&&Y<=l&&ma(z,w,M,N)&&(i.moveTo(0,Y),i.lineTo(h,Y));i.stroke(),i.Se()}else if(k.figure==="BarV"&&k.fill!==null)for(Me(t,i,k.fill,!0,!1,r,s),k=k.width,isNaN(k)&&(k=o),Y=z=Math.floor((p-o)/o);Y<=z+u;Y++){var A=Y*o+p;0<=A+k&&A<=h&&ma(Y,w,M,N)&&i.fillRect(A,0,k,l)}else if(k.figure==="BarH"&&k.fill!==null)for(Me(t,i,k.fill,!0,!1,r,s),k=k.height,isNaN(k)&&(k=n),Y=z=Math.floor((f-n)/n);Y<=z+a;Y++)A=Y*n+f,0<=A+k&&A<=l&&ma(Y,w,M,N)&&i.fillRect(0,A,h,k);D&&i.es(),m!==1&&(i.globalAlpha=S)}}i.restore(),i.Vc(!1)};function ma(t,i,e,n){if(0>i)return t%i===e;if(t%i!==e)return!1;i=n.length;for(var o=0;o<i;o++)if(t%n[o]===e)return!1;return!0}function va(){this.xa="Base"}pt(va,bt),va.prototype.measure=function(t,i,e,n,o){var r=n.length;if(t instanceof lt||t instanceof F){var s=null,h=null;if(t instanceof F&&(s=t),t instanceof lt&&(h=t,s=h.adornedPart,t.j===null&&(t.j=[])),s instanceof F){var l=s;if(r===0)ao(t.naturalBounds,0,0),t.measuredBounds.h(0,0,0,0);else{var u=t instanceof lt?null:s.path;i=s.routeBounds,e=t.jg,e.h(0,0,i.width,i.height);var a=l.points,f=s.pointsCount;h!==null?h.Tl(!1):s!==null&&s.Tl(!1),h=i.width;var p=i.height,c=t.j;if(c.length=0,u!==null){uy(t,h,p,u);var g=u.measuredBounds;e.ed(g),c.push(g)}g=it.alloc();for(var y=x.alloc(),v=x.alloc(),m=0;m<r;m++){var w=n[m];if(w!==u)if(w.isPanelMain&&w instanceof q){uy(t,h,p,w);var M=w.measuredBounds;e.ed(M),c.push(M)}else if(2>f)w.measure(1/0,1/0,0,0),M=w.measuredBounds,e.ed(M),c.push(M);else{var S=w.segmentIndex,N=w.segmentFraction,k=w.alignmentFocus;k.Mc()&&(k=vt);var D=w.segmentOrientation,z=w.segmentOffset;if(isNaN(S)){var Y=l.ua;M=kt(),Y.Qu(N,M);var A=x.allocAt(M[0],M[1]);if(A.add(l.i(0)),Y.type===I.j?A.offset(-Y.startX,-Y.startY):(Y=Y.figures.first(),Y!==null&&A.offset(-Y.startX,-Y.startY)),Y=M[2],D!==Ui){var L=l.computeAngle(w,D,Y);w.Lb=L}L=A.x-i.x;var $=A.y-i.y;x.free(A),Mt(M)}else if(S<-f||S>=f)M=x.alloc(),l.vg(),l.computeMidPoint(M),Y=l.midAngle,D!==Ui&&(L=l.computeAngle(w,D,Y),w.Lb=L),L=M.x-i.x,$=M.y-i.y,x.free(M);else{if(L=0,0<=S?($=a.M(S),M=S<f-1?a.M(S+1):$):(L=f+S,$=a.M(L),M=0<L?a.M(L-1):$),$.Xa(M)){0<=S?(Y=0<S?a.M(S-1):$,L=S<f-2?a.M(S+2):M):(Y=L<f-1?a.M(L+1):$,L=1<L?a.M(L-2):M),A=Y.Bf($);var W=M.Bf(L);Y=A>W+10?0<=S?Y.ab($):$.ab(Y):W>A+10?0<=S?M.ab(L):L.ab(M):0<=S?Y.ab(L):L.ab(Y)}else Y=0<=S?$.ab(M):M.ab($);D!==Ui&&(L=l.computeAngle(w,D,Y),w.Lb=L),L=$.x+(M.x-$.x)*N-i.x,$=$.y+(M.y-$.y)*N-i.y}w.measure(1/0,1/0,0,0),M=w.measuredBounds,A=w.naturalBounds;var ut=0;w instanceof q&&(ut=w.strokeWidth),W=A.width+ut;var wt=A.height+ut;g.reset(),g.translate(-M.x,-M.y),g.scale(w.scale,w.scale),g.rotate(D===Ui?w.angle:Y,W/2,wt/2),D!==Gl&&D!==Kl||g.rotate(90,W/2,wt/2),D!==Xl&&D!==Ul||g.rotate(-90,W/2,wt/2),D===Za&&(45<Y&&135>Y||225<Y&&315>Y)&&g.rotate(-Y,W/2,wt/2),A=new T(0,0,W,wt),y.xi(A,k),g.Ga(y),k=-y.x+ut/2*w.scale,w=-y.y+ut/2*w.scale,v.assign(z),ut=isNaN(z.x);var oi=isNaN(z.y);if(ut||oi){W=W/2+3,wt=wt/2+3;var li=45<=Y&&135>=Y,Fi=225<=Y&&315>=Y;D===Ui&&(li||Fi)?(v.x=oi?W:z.y,v.y=ut?wt:z.x,li?0<=S||isNaN(S)&&.5>N||!ut||(v.y=-wt):Fi&&((0<=S||isNaN(S)&&.5>N)&&ut&&(v.y=-wt),oi&&(v.x=-W))):(ut&&(v.x=0<=S||isNaN(S)&&.5>N?W:-W),oi&&(v.y=-wt),v.rotate(Y))}else v.rotate(Y);L+=v.x,$+=v.y,A.set(M),A.h(L+k,$+w,M.width,M.height),c.push(A),e.ed(A)}}if(s!==null)for(n=s.labelNodes;n.next();)n.value.measure(1/0,1/0);t.jg=e,t.position.h(i.x+e.x,i.y+e.y),ao(o,e.width||0,e.height||0),it.free(g),x.free(y),x.free(v)}}}},va.prototype.arrange=function(t,i){var e=i.length;if(t instanceof lt||t instanceof F){var n=t,o=null;t instanceof lt&&(o=t,n=o.adornedPart);var r=t instanceof lt?null:n.path,s=t.j;if(s.length!==0){var h=0;if(r!==null&&h<s.length){var l=s[h];h++,r.arrange(l.x-t.jg.x,l.y-t.jg.y,l.width,l.height)}for(l=0;l<e;l++){var u=i[l];if(u!==r&&h<s.length){var a=s[h];h++,u.arrange(a.x-t.jg.x,a.y-t.jg.y,a.width,a.height)}}}if(i=n.points,e=i.count,2<=e&&t instanceof F)for(r=t.labelNodes;r.next();){var f=t;s=r.value,h=s.segmentIndex,l=s.segmentFraction;var p=s.alignmentFocus;if(u=s.segmentOrientation,a=s.segmentOffset,isNaN(h)){var c=f.ua,g=kt();c.Qu(l,g);var y=x.allocAt(g[0],g[1]);y.add(f.i(0)),c.type===I.j||(c=c.figures.first()),y.offset(-c.startX,-c.startY),c=g[2],u!==Ui&&(f=f.computeAngle(s,u,c),s.angle=f),f=y.x;var v=y.y;x.free(y),Mt(g)}else if(h<-e||h>=e)g=x.alloc(),c=f,v=g,c.vg(),c.computeMidPoint(v),c=f.midAngle,u!==Ui&&(f=f.computeAngle(s,u,c),s.angle=f),f=g.x,v=g.y,x.free(g);else{if(y=0,0<=h?(g=i.s[h],v=h<e-1?i.s[h+1]:g):(y=e+h,g=i.s[y],v=0<y?i.s[y-1]:g),g.Xa(v)){0<=h?(c=0<h?i.s[h-1]:g,y=h<e-2?i.s[h+2]:v):(c=y<e-1?i.s[y+1]:g,y=1<y?i.s[y-2]:v);var m=c.Bf(g),w=v.Bf(y);c=m>w+10?0<=h?c.ab(g):g.ab(c):w>m+10?0<=h?v.ab(y):y.ab(v):0<=h?c.ab(y):y.ab(c)}else c=0<=h?g.ab(v):v.ab(g);u!==Ui&&(f=f.computeAngle(s,u,c),s.angle=f),f=g.x+(v.x-g.x)*l,v=g.y+(v.y-g.y)*l}if(p.xs())s.location=new x(f,v);else{p.Mc()&&(p=vt),g=it.alloc(),g.reset(),g.scale(s.scale,s.scale),g.rotate(s.angle,0,0);var M=s.naturalBounds;y=T.allocAt(0,0,M.width,M.height),m=x.alloc(),m.xi(y,p),g.Ga(m),p=-m.x,w=-m.y;var S=M.width,N=M.height;M=x.alloc(),M.assign(a);var k=isNaN(a.x),D=isNaN(a.y);if(k||D){S=S/2+3,N=N/2+3;var z=45<=c&&135>=c,Y=225<=c&&315>=c;u===Ui&&(z||Y)?(M.x=D?S:a.y,M.y=k?N:a.x,z?0<=h||isNaN(h)&&.5>l||!k||(M.y=-N):Y&&((0<=h||isNaN(h)&&.5>l)&&k&&(M.y=-N),D&&(M.x=-S))):(k&&(M.x=0<=h||isNaN(h)&&.5>l?S:-S),D&&(M.y=-N),M.rotate(c))}else M.rotate(c);f+=M.x,v+=M.y,g.op(y),p+=y.x,w+=y.y,h=x.allocAt(f+p,v+w),s.move(h),x.free(h),x.free(M),x.free(m),T.free(y),it.free(g)}}o!==null?o.Tl(!1):n.Tl(!1),n=Vy(t),t.location.h(t.position.x+n.x,t.position.y+n.y),x.free(n)}};function uy(t,i,e,n){if(Eo(n)!==!1){var o=n.strokeWidth;o===0&&t instanceof lt&&t.type===j.Link&&t.adornedObject instanceof q&&(o=t.adornedObject.strokeWidth),o*=n.Ca,t instanceof F&&t.ua!==null?(t=t.geometry.bounds,n.Ge(t.x-o/2,t.y-o/2,t.width+o,t.height+o)):t instanceof lt&&t.adornedPart.ua!==null?(t=t.adornedPart.ua.bounds,n.Ge(t.x-o/2,t.y-o/2,t.width+o,t.height+o)):n.Ge(-(o/2),-(o/2),i+o,e+o),o=n.desiredSize,o.w()||n.ua===null?n.ec.h(0,0,o.width,o.height):n.ec.assign(n.ua.bounds),Ie(n,!1)}}function jl(){this.xa="Base"}pt(jl,bt),jl.prototype.measure=function(t,i,e,n,o,r,s){var h=t.Qb();t.graduatedBounds=[];var l=h.margin,u=l.right+l.left,a=l.top+l.bottom;h.measure(i,e,r,s);var f=h.measuredBounds,p=new T(-l.left,-l.top,Math.max(f.width+u,0),Math.max(f.height+a,0));t.graduatedBounds.push(p),o.assign(p);for(var c=h.geometry,g=h.strokeWidth,y=c.flattenedSegments,v=c.flattenedLengths,m=c.flattenedTotalLength,w=y.length,M=0,S=0,N=kt(),k=0;k<w;k++){var D=y[k],z=[];S=M=0;for(var Y=D.length,A=0;A<Y;A+=2){var L=D[A],$=D[A+1];if(A!==0){var W=180*Math.atan2($-S,L-M)/Math.PI;0>W&&(W+=360),z.push(W)}M=L,S=$}N.push(z)}if(t.graduatedIntervals===null){for(var ut=[],wt=t.O.s,oi=wt.length,li=0;li<oi;li++){var Fi=wt[li],ri=[];if(ut.push(ri),Fi.visible){var Zo=Fi.interval;if(!(0>Zo)){for(var Wt=0;Wt<oi;Wt++)if(Wt!==li){var Cn=wt[Wt];if(Cn.visible&&Fi.constructor===Cn.constructor){var Ai=Cn.interval;Ai>Zo&&ri.push(Ai)}}}}}t.graduatedIntervals=ut}var _o=t.graduatedIntervals,ke=t.O.s,Qe=ke.length,ge=0,re=0,Mr=m;t.graduatedMarks=[];for(var Tn,Hh=0;Hh<Qe;Hh++){var ye=ke[Hh];if(Tn=[],ye.visible&&ye!==h){var Oi=Math.abs(ye.interval),du=t.graduatedTickUnit;if(!(2>du*Oi*m/t.graduatedRange&&ye.graduatedSkip===null)){var Is=v[0][0],Vn=0,se=0;re=m*ye.graduatedStart-1e-4,Mr=m*ye.graduatedEnd+1e-4;var $r=du*Oi,me=t.graduatedTickBase;if(me<t.graduatedMin){var Sr=(t.graduatedMin-me)/$r;Sr=Sr%1===0?Sr:Math.floor(Sr+1),me+=Sr*$r}else me>t.graduatedMin+$r&&(me-=Math.floor((me-t.graduatedMin)/$r)*$r);for(var Rf=_o[Hh],gu=me,ig=1e-6*t.graduatedMax,no=1;me<=t.graduatedMax+ig;no++){t:{for(var Mo=Rf.length,Ds=0;Ds<Mo;Ds++){var Nr=(me-t.graduatedTickBase)%(Rf[Ds]*t.graduatedTickUnit),Wh=1e-6*t.graduatedTickUnit;if(Nr<Wh&&Nr>-Wh){var Pr=!1;break t}}Pr=!0}if(Pr&&(me>t.graduatedMax&&(me=t.graduatedMax),ye.graduatedSkip===null||ye instanceof St&&!ye.graduatedSkip(me,ye)||ye instanceof q&&!ye.graduatedSkip(me,ye))&&(ge=(me-t.graduatedMin)*m/t.graduatedRange,ge>m&&(ge=m),re<=ge&&ge<=Mr)){for(var oo=N[Vn][se],$o=v[Vn][se];Vn<v.length;){for(;ge>Is&&se<v[Vn].length-1;)se++,oo=N[Vn][se],$o=v[Vn][se],Is+=$o;if(ge<=Is)break;Vn++,se=0,oo=N[Vn][se],$o=v[Vn][se],Is+=$o}var he=y[Vn],Yn=he[2*se],Vf=he[2*se+1],So=(ge-(Is-$o))/$o,Jh=new x(Yn+(he[2*se+2]-Yn)*So+g/2-c.bounds.x,Vf+(he[2*se+3]-Vf)*So+g/2-c.bounds.y);Jh.scale(h.scale,h.scale);t:{var Ln=oo,Qr=N[Vn];if(!(.5005>So&&.4995<So)){var zn=Ln;if(.5>So?0<se?zn=Qr[se-1]:P.$(he[0],he[he.length-2])&&P.$(he[1],he[he.length-1])&&(zn=Qr[Qr.length-1]):.5<So&&(se+1<Qr.length?zn=Qr[se+1]:P.$(he[0],he[he.length-2])&&P.$(he[1],he[he.length-1])&&(zn=Qr[0])),Ln!==zn){var Es=Math.abs(Ln-zn);if(180<Es&&(Ln<zn?Ln+=360:zn+=360,Es=Math.abs(Ln-zn)),5e-4>So||.9995<So){oo=(Ln+zn)/2%360;break t}if(10>Es){var Zh=1-Math.abs(.5-So);oo=(Ln*Zh+zn*(1-Zh))%360;break t}}}oo=Ln}if(ye instanceof St){var dn="";ye.graduatedFunction!==null?(dn=ye.graduatedFunction(me,ye),dn=dn!=null?dn.toString():""):dn=(+me.toFixed(2)).toString(),dn!==""&&Tn.push({Zl:Jh,angle:oo,text:dn})}else Tn.push({Zl:Jh,angle:oo})}me=gu+no*$r}}}t.graduatedMarks.push(Tn)}Mt(N);var di=t.graduatedMarks;if(di!==null)for(var yu=n.length,_i=0;_i<yu;_i++){var Jt=n[_i],$i=di[_i];if(Jt.visible&&Jt!==h&&$i.length!==0){if(Jt instanceof q){var No=t,Qo=o,qr=Jt.alignmentFocus;qr.Mc()&&(qr=fo);var eg=Jt.angle;Jt.Lb=0,Jt.measure(1/0,1/0,0,0),Jt.Lb=eg;var Yf=Jt.measuredBounds,_h=Yf.width,br=Yf.height,Bs=T.allocAt(0,0,_h,br),le=x.alloc();le.xi(Bs,qr),T.free(Bs);for(var Po=-le.x,jn=-le.y,ze=new T,kr=$i.length,$h=0;$h<kr;$h++)for(var Cr=$i[$h],zf=Cr.Zl.x,Qh=Cr.Zl.y,Gt=Cr.angle,gn=0;4>gn;gn++){switch(gn){case 0:le.h(Po,jn);break;case 1:le.h(Po+_h,jn);break;case 2:le.h(Po,jn+br);break;case 3:le.h(Po+_h,jn+br)}le.rotate(Gt+Jt.angle),le.offset(zf,Qh),$h===0&&gn===0?ze.h(le.x,le.y,0,0):ze.Ye(le),le.offset(-zf,-Qh),le.rotate(-Gt-Jt.angle)}x.free(le),No.graduatedBounds!==null&&No.graduatedBounds.push(ze),yi(Qo,ze.x,ze.y,ze.width,ze.height)}else if(Jt instanceof St){var qe=t,Gf=o;qe.temporaryTextBlock===null&&(qe.temporaryTextBlock=new St);var ve=qe.temporaryTextBlock;Py(ve,Jt);var qo=Jt.alignmentFocus;qo.Mc()&&(qo=fo);for(var be=Jt.segmentOrientation,qh=Jt.segmentOffset,Tr=new T,mu=0,bh=0,Gn=0,ts=0,Lr=0,tl=$i.length,bo=0;bo<tl;bo++){var ro=$i[bo];mu=ro.Zl.x,bh=ro.Zl.y,Gn=ro.angle,Lr=ts=Jt.angle,be!==Ui&&(Lr=be===zl||be===Ja?Gn+Jt.angle:Gn,ts=F.computeAngle(be,Lr)),ve.Lb=ts,ve.text=ro.text||"",ve.measure(1/0,1/0,0,0);var tr=ve.measuredBounds,ko=ve.naturalBounds,ir=ko.width,is=ko.height,Fn=it.alloc();Fn.reset(),Fn.translate(-tr.x,-tr.y),Fn.scale(ve.scale,ve.scale),Fn.rotate(Lr,ir/2,is/2),be!==Gl&&be!==Kl||Fn.rotate(90,ir/2,is/2),be!==Xl&&be!==Ul||Fn.rotate(-90,ir/2,is/2),be===Za&&(45<Gn&&135>Gn||225<Gn&&315>Gn)&&Fn.rotate(-Gn,ir/2,is/2);var Rs=T.allocAt(0,0,ir,is),er=x.alloc();er.xi(Rs,qo),Fn.Ga(er);var Vs=-er.x,ng=-er.y,Co=x.alloc();Co.assign(qh),isNaN(Co.x)&&(Co.x=ir/2+3),isNaN(Co.y)&&(Co.y=-(is/2+3)),Co.rotate(Gn),mu+=Co.x+Vs,bh+=Co.y+ng;var es=new T(mu,bh,tr.width,tr.height),vu=new T(tr.x,tr.y,tr.width,tr.height),og=new T(ko.x,ko.y,ko.width,ko.height);ro.Sz=ts,ro.lineCount=ve.lineCount,ro.lines=[ve.Db,ve.Ih,ve.df,ve.Le,ve.Qc,ve.Rb,ve.ze],ro.actualBounds=es,ro.measuredBounds=vu,ro.naturalBounds=og,bo===0?Tr.assign(es):Tr.ed(es),x.free(Co),x.free(er),T.free(Rs),it.free(Fn)}qe.graduatedBounds!==null&&qe.graduatedBounds.push(Tr),yi(Gf,Tr.x,Tr.y,Tr.width,Tr.height)}Ie(Jt,!1)}}},jl.prototype.arrange=function(t,i,e){if(t.graduatedBounds!==null){var n=t.Qb(),o=t.graduatedMarks;if(o!==null){var r=t.graduatedBounds,s=0,h=r[s];s++,n!==null&&n.arrange(h.x-e.x,h.y-e.y,h.width,h.height);for(var l=i.length,u=0;u<l;u++){var a=i[u];h=o[u],a.visible&&a!==n&&h.length!==0&&(h=r[s],s++,a.arrange(h.x-e.x,h.y-e.y,h.width,h.height))}t.graduatedBounds=null}}},jl.prototype.hc=function(t,i,e){var n=e.$i;e.$i=!0;var o=t.naturalBounds,r=o.width,s=o.height;o=i instanceof pe,i.save(),i.beginPath(),i.rect(-1,-1,r+1,s+1),i.clip(),i.Se(),r=t.Qb(),r.hc(i,e),s=t.Df()*e.scale,0>=s&&(s=1);for(var h=r.actualBounds,l=t.O.s,u=t.graduatedMarks,a=l.length,f=0;f<a;f++){var p=l[f],c=u[f],g=c.length;if(p.visible&&p!==r&&c.length!==0){if(p instanceof q){if(!(2>t.graduatedTickUnit*p.interval*r.geometry.flattenedTotalLength/t.graduatedRange*s&&p.graduatedSkip===null)){var y=p.measuredBounds,v=p.strokeWidth*p.scale,m=p.alignmentFocus;m.Mc()&&(m=fo);for(var w=0;w<g;w++){var M=c[w].Zl,S=c[w].angle,N=m,k=p.Bb;k.reset(),k.translate(M.x+h.x,M.y+h.y),k.rotate(S+p.angle,0,0),k.translate(-y.width*N.x+N.offsetX+v/2,-y.height*N.y+N.offsetY+v/2),k.scale(p.scale,p.scale),dh(p,!1),p.wh.set(p.Bb),p.Jk=p.scale,sr(p,!1),p.hc(i,e),o&&(t.svg.appendChild(p.svg),p.svg=null),p.Bb.reset()}}}else if(p instanceof St)for(t.temporaryTextBlock===null&&(t.temporaryTextBlock=new St),y=t.temporaryTextBlock,Py(y,p),v=0;v<g;v++)m=c[v],m.actualBounds&&m.measuredBounds&&m.naturalBounds&&(y.fc=m.text||"",y.Lb=m.Sz||0,y.Gc=m.lineCount||0,w=m.lines,w!==void 0&&(y.Db=w[0],y.Ih=w[1],y.df=w[2],y.Le=w[3],y.Qc=w[4],y.Rb=w[5],y.ze=w[6]),m.naturalBounds&&(y.ec=m.naturalBounds),m.actualBounds&&(w=m.actualBounds,y.arrange(w.x,w.y,w.width,w.height)),w=m.actualBounds,y.arrange(w.x,w.y,w.width,w.height),M=m.measuredBounds,m=m.naturalBounds,S=y.Bb,S.reset(),S.translate(w.x+h.x,w.y+h.y),S.translate(-M.x,-M.y),y.mo(S,m.x,m.y,m.width,m.height),dh(y,!1),y.wh.set(y.Bb),y.Jk=y.scale,sr(y,!1),y.Ng=p.part,y.Me=p.panel,y.hc(i,e),y.Me=null,y.Ng=null,o&&(t.svg.appendChild(y.svg),y.svg=null))}}e.$i=n,i.restore(),i.Vc(!0)};function j(t,i){if(X.call(this),this.na=null,t===void 0)this.na=j.Position;else if(typeof t=="string"){var e=ln.I(t);e!==null&&(this.na=e)}else t instanceof bt?this.na=t:t&&(this.na=j.Position,i=t);this.na===null&&O("Panel type not specified or PanelLayout not loaded: "+t),this.l=this.l|4194304|(this.na===j.Grid?1048576:0),this.O=new V,this.zb=Ks,this.Sm=Si,this.Uf=sn,this.$g=null,this.$e="",this.jg=new T(NaN,NaN,NaN,NaN),this.T=this.F=null,this.wo=Dn,this.hn=pg,this.jn=lo,this.ub=this.ra=null,this.yn=NaN,this.ge=this.Hh=null,i&&Object.assign(this,i)}pt(j,X),j.prototype.cloneProtected=function(t){X.prototype.cloneProtected.call(this,t),t.na=this.na,t.zb=this.zb.J(),t.Sm=this.Sm.J(),t.Uf=this.Uf,t.$e=this.$e,t.jg.assign(this.jg),this.T!==null&&(t.T=this.T.copy(t)),t.wo=this.wo,t.hn=this.hn.J(),t.jn=this.jn.J(),this.ra!==null&&(t.ra=this.ra.copy()),t.ub=this.ub,t.yn=this.yn,t.Hh=this.Hh},j.prototype.Af=function(t){X.prototype.Af.call(this,t),t.O=this.O;for(var i=t.O.s,e=i.length,n=0;n<e;n++)i[n].Me=t;t.$g=null},j.prototype.copy=function(){var t=X.prototype.copy.call(this);if(t!==null){for(var i=this.O.s,e=i.length,n=0;n<e;n++){var o=i[n].copy();o.wi(t),o.Ng=null;var r=t.O,s=r.count;if(r.Hb(s,o),r=t.part,r!==null){r.Rh=null,o.portId!==null&&r instanceof B&&(r.Te=!0);var h=t.diagram;h!==null&&h.undoManager.isUndoingRedoing||r.cb(ii,"elements",t,null,o,null,s)}}return t}return null},d=j.prototype,d.toString=function(){return"Panel("+this.type.name+")#"+qi(this)},d.On=function(t){X.prototype.On.call(this,t);for(var i=this.O.s,e=i.length,n=0;n<e;n++)i[n].On(t)},d.hh=function(t,i){if(this.na===j.Grid)t.yc(),this.na.hc(this,t,i);else if(this.na===j.Graduated)t.yc(),this.na.hc(this,t,i);else{if(this.na===j.Table)if(t.yc(),t instanceof pe){var e=t.yd;t.yd=ra(t,"gojs-ts"),Fc(this,t),t.nh.pop(),t.yd=e}else Fc(this,t);(e=this.isClipping&&this.na===j.Spot)&&t.save();for(var n=this.Qb(),o=this.O.s,r=o.length,s=0;s<r;s++){var h=o[s];e&&h===n&&(t.clipInsteadOfFill=!0),h.hc(t,i),e&&h===n&&(t.clipInsteadOfFill=!1)}e&&(t.restore(),t.Vc(!0))}};function Fc(t,i){i.lineCap="butt";var e=0<t.rowCount?t.rowDefs:null,n=0<t.columnCount?t.colDefs:null;e!==null&&xa(t,i,!0,e,!0),n!==null&&xa(t,i,!1,n,!0),e!==null&&ay(t,i,!0,e),n!==null&&ay(t,i,!1,n),e!==null&&xa(t,i,!0,e,!1),n!==null&&xa(t,i,!1,n,!1)}function ay(t,i,e,n){for(var o=n.length,r=t.actualBounds,s=t.naturalBounds,h=!0,l=0;l<o;l++){var u=n[l];if(u!==void 0&&u.actual!==0)if(h)h=!1;else{if(e){if(u.position>s.height)continue}else if(u.position>s.width)continue;var a=u.separatorStrokeWidth;isNaN(a)&&(a=e?t.defaultRowSeparatorStrokeWidth:t.defaultColumnSeparatorStrokeWidth);var f=u.separatorStroke;if(f===null&&(f=e?t.defaultRowSeparatorStroke:t.defaultColumnSeparatorStroke),a!==0&&f!==null){Me(t,i,f,!1,!1,s,r),f=!1;var p=u.separatorDashArray;p===null&&(p=e?t.defaultRowSeparatorDashArray:t.defaultColumnSeparatorDashArray),p!==null&&(f=!0,i.hs(p,0)),i.beginPath(),p=u.position+a,e?p>s.height&&(a-=p-s.height):p>s.width&&(a-=p-s.width),u=u.position+a/2,i.lineWidth=a,a=t.zb,e?(u+=a.top,p=s.width-a.right,i.moveTo(a.left,u),i.lineTo(p,u)):(u+=a.left,p=s.height-a.bottom,i.moveTo(u,a.top),i.lineTo(u,p)),i.stroke(),i.Se(),f&&i.es()}}}}function xa(t,i,e,n,o){for(var r=n.length,s=t.actualBounds,h=t.naturalBounds,l=fy(t,!0),u=fy(t,!1),a=0;a<r;a++){var f=n[a];if(f!==void 0&&f.background!==null&&f.coversSeparators!==o&&f.actual!==0){var p=e?s.height:s.width;if(!(f.position>p)){var c=f.Wc(),g=f.separatorStrokeWidth;isNaN(g)&&(g=e?t.defaultRowSeparatorStrokeWidth:t.defaultColumnSeparatorStrokeWidth);var y=f.separatorStroke;y===null&&(y=e?t.defaultRowSeparatorStroke:t.defaultColumnSeparatorStroke),(y===null||f.index===(e?l:u))&&(g=0),c-=g,g=f.position+g,c+=f.actual,g+c>p&&(c=p-g),0>=c||(p=t.zb,Me(t,i,f.background,!0,!1,h,s),e?i.fillRect(p.left,g+p.top,s.width-(p.left+p.right),c):i.fillRect(g+p.left,p.top,c,s.height-(p.top+p.bottom)))}}}}function fy(t,i){for(var e=i?t.rowCount:t.columnCount,n=0;n<e;n++){var o=i?t.rowDefs[n]:t.colDefs[n];if(o!==void 0)return o.index}return 0}function Ac(t){return t==="LineV"||t==="BarV"}d.lv=function(){for(var t=this.O.s,i=t.length,e=0;e<i;e++)t[e].lv();this.Uc=!0},d.jk=function(t,i,e){if(!X.prototype.jk.call(this,t,i,e))return!1;if(this.type===j.Table)e=this.svg.getElementsByClassName("gojs-ts"),e=e.length!==0?e[0]:null,e!==null&&(e.innerHTML=""),t.yd=e,Fc(this,t),t.yd=null;else if(this.na===j.Grid||this.na===j.Graduated)return this.svg.innerHTML="",this.svg.remove(),!1;e=this.O.s;for(var n=e.length,o=0;o<n;o++)e[o].hc(t,i);return!0},d.mk=function(){return!0},d.Zo=function(t,i,e,n){if(!this.isClipping)if(this.Dd()&&t.ak!==null){t=t.ak,i=this.O.s;for(var o=0,r=0,s=0;s<i.length;s++)if(i[s].Ed()){var h=i[s].actualBounds;o=s===0?h.x:Math.min(h.x,o),r=s===0?h.y:Math.min(h.y,r)}n.setAttributeNS(null,"clip-path","path('M "+(t.x-e.x-o)+","+(t.y-e.y-r)+" l "+t.width+" 0 l 0 "+t.height+" l -"+t.width+" 0 z')")}else X.prototype.Zo.call(this,t,i,e,n)},d.Rj=function(t,i,e,n,o){var r=this.se(),s=this.transform,h=1/(s.m11*s.m22-s.m12*s.m21),l=s.m22*h,u=-s.m12*h,a=-s.m21*h,f=s.m11*h,p=h*(s.m21*s.dy-s.m22*s.dx),c=h*(s.m12*s.dx-s.m11*s.dy);if(this.areaBackground!==null)return s=this.actualBounds,P.Ff(s.left,s.top,s.right,s.bottom,t,i,e,n,o);if(this.background!==null)return r=t*l+i*a+p,h=t*u+i*f+c,t=e*l+n*a+p,l=e*u+n*f+c,o.h(0,0),e=this.naturalBounds,r=P.Ff(0,0,e.width,e.height,r,h,t,l,o),o.transform(s),r;r||(l=1,a=u=0,f=1,c=p=0),h=t*l+i*a+p,t=t*u+i*f+c,l=e*l+n*a+p,e=e*u+n*f+c,o.h(l,e),n=(l-h)*(l-h)+(e-t)*(e-t),u=!1,f=this.O.s,c=f.length,a=x.alloc(),p=null,i=1/0;var g=null,y=this.isClipping&&this.na===j.Spot;y&&(g=x.alloc(),p=this.Qb(),(u=p.Rj(h,t,l,e,g))&&(i=(h-g.x)*(h-g.x)+(t-g.y)*(t-g.y)));for(var v=0;v<c;v++){var m=f[v];m.visible&&m!==p&&m.Rj(h,t,l,e,a)&&(u=!0,m=(h-a.x)*(h-a.x)+(t-a.y)*(t-a.y),m<n&&(n=m,o.set(a)))}return y&&(i>n&&o.set(g),x.free(g)),x.free(a),r&&o.transform(s),u},d.Fj=function(){for(var t=this.O.s,i=t.length,e=0;e<i;e++)t[e].Fj();X.prototype.Fj.call(this)},d.v=function(t){if(!Eo(this)){X.prototype.v.call(this,t),t=null,(this.na===j.Auto||this.na===j.Link)&&(t=this.Qb());for(var i=this.O.s,e=i.length,n=0;n<e;n++){var o=i[n];if((o===t||o.isPanelMain)&&o.v(!0),!o.desiredSize.w()){var r=Mn(o,!1);(o instanceof Ki||o instanceof j||o instanceof St||r!==Xt)&&o.v(!0)}}}},d.Tj=function(){if(!Eo(this)){Ie(this,!0),Vr(this,!0);for(var t=this.O.s,i=t.length,e=0;e<i;e++)t[e].Tj()}},d.Tk=function(){if(!(this.l&2048)){dh(this,!0),sr(this,!0);for(var t=this.O.s,i=t.length,e=0;e<i;e++)t[e].Wu()}},d.Wu=function(){sr(this,!0);for(var t=this.O.s,i=t.length,e=0;e<i;e++)t[e].Wu()},d.Vl=function(t,i,e,n){var o=this.jg;o.h(0,0,0,0);var r=this.desiredSize,s=this.minSize;e===void 0&&(e=s.width,n=s.height),e=Math.max(e,s.width),n=Math.max(n,s.height);var h=this.maxSize;isNaN(r.width)||(t=Math.min(r.width,h.width)),isNaN(r.height)||(i=Math.min(r.height,h.height)),t=Math.max(e,t),i=Math.max(n,i);var l=this.zb;t=Math.max(t-l.left-l.right,0),i=Math.max(i-l.top-l.bottom,0);var u=this.O.s;u.length!==0&&this.na.measure(this,t,i,u,o,e,n),t=o.width+l.left+l.right,l=o.height+l.top+l.bottom,isFinite(r.width)&&(t=r.width),isFinite(r.height)&&(l=r.height),t=Math.min(h.width,t),l=Math.min(h.height,l),t=Math.max(s.width,t),l=Math.max(s.height,l),t=Math.max(e,t),l=Math.max(n,l),ao(o,t,l),ao(this.naturalBounds,t,l),this.Ge(0,0,t,l)},d.Qb=function(){if(this.$g===null){var t=this.O.s,i=t.length;if(i===0)return null;for(var e=0;e<i;e++){var n=t[e];if(n.isPanelMain===!0)return this.$g=n}this.$g=t[0]}return this.$g};function vo(t){return t.part!==null?t.part.locationObject:null}d.eh=function(t,i,e,n){var o=this.O.s;if(this.actualBounds.h(t,i,e,n),o.length!==0){if(!this.desiredSize.w()){t=Mn(this,!0);var r=this.measuredBounds;i=r.width,r=r.height;var s=this.Kg,h=s.left+s.right;switch(s=s.top+s.bottom,i===e&&r===n&&(t=Xt),t){case Xt:(i>e||r>n)&&(this.v(),this.measure(i>e?e:i,r>n?n:r,0,0));break;case Ut:this.v(!0),this.measure(e+h,n+s,0,0);break;case wi:this.v(!0),this.measure(e+h,r+s,0,0);break;case Pi:this.v(!0),this.measure(i+h,n+s,0,0)}}this.na.arrange(this,o,this.jg)}},d.gh=function(t){var i=this.naturalBounds,e=vo(this);if(yn(0,0,i.width,i.height,t.x,t.y)){i=this.O.s;for(var n=i.length,o=x.allocAt(0,0);n--;){var r=i[n];if((r.visible||r===e)&&(Vi(o.set(t),r.transform),r.ca(o)))return x.free(o),!0}return x.free(o),!(this.Ma===null&&this.areaBackground===null)}return!1},d.js=function(t){if(this.bindingId===t)return this;for(var i=this.O.s,e=i.length,n=0;n<e;n++){var o=i[n].js(t);if(o!==null)return o}return null},d.pm=function(t,i){if(i(this,t),t instanceof j){t=t.O.s;for(var e=t.length,n=0;n<e;n++)this.pm(t[n],i)}};function Xr(t,i){py(t,t,i)}function py(t,i,e){e(i),i=i.O.s;for(var n=i.length,o=0;o<n;o++){var r=i[o];r instanceof j&&py(t,r,e)}}function qv(t,i){cy(t,t,i)}function cy(t,i,e){if(e(i),i instanceof j){i=i.O.s;for(var n=i.length,o=0;o<n;o++)cy(t,i[o],e)}}d.Ml=function(t){return dy(this,this,t)};function dy(t,i,e){if(e(i))return i;if(i instanceof j){i=i.O.s;for(var n=i.length,o=0;o<n;o++){var r=dy(t,i[o],e);if(r!==null)return r}}return null}d.fb=function(t){if(this.name===t)return this;var i=this.O.s,e=i.length;this.Hh===null&&this.itemTemplateMap===null||(e=Fl(this));for(var n=0;n<e;n++){var o=i[n];if(o instanceof j){var r=o.fb(t);if(r!==null)return r}if(o.name===t)return o}return null};function gy(t){t=t.O.s;for(var i=t.length,e=0,n=0;n<i;n++){var o=t[n];o instanceof j?e=Math.max(e,gy(o)):o instanceof q&&(e=Math.max(e,o.ig/2*o.strokeMiterLimit*o.Df()))}return e}d.se=function(){return!(this.type===j.TableRow||this.type===j.TableColumn)};function Vo(t){return t.type===j.TableRow||t.type===j.TableColumn}d.jc=function(t,i,e){if(this.pickable===!1||(i===void 0&&(i=null),e===void 0&&(e=null),hn(this)))return null;var n=this.naturalBounds,o=1/this.Df(),r=this.se(),s=r?t:Vi(x.allocAt(t.x,t.y),this.transform),h=this.diagram,l=10,u=5;if(h!==null&&(l=h.Pl("extraTouchArea"),u=l/2),yn(-(u*o),-(u*o),n.width+l*o,n.height+l*o,s.x,s.y)){if(!this.isAtomic){o=this.O.s;var a=o.length;if(h=x.alloc(),u=(l=this.isClipping&&this.na===j.Spot)?this.Qb():null,l&&(u.se()?Vi(h.set(t),u.transform):h.set(t),!u.ca(h)))return x.free(h),r||x.free(s),null;for(var f=vo(this);a--;){var p=o[a];if((p.visible||p===f)&&(p.se()?Vi(h.set(t),p.transform):h.set(t),!l||p!==u)){var c=null;if(p instanceof j?c=p.jc(h,i,e):p.pickable===!0&&p.ca(h)&&(c=p),c!==null&&(i!==null&&(c=i(c)),c!==null&&(e===null||e(c))))return x.free(h),r||x.free(s),c}}x.free(h)}return this.background===null&&this.areaBackground===null?(r||x.free(s),null):(t=yn(0,0,n.width,n.height,s.x,s.y)?this:null,r||x.free(s),t)}return r||x.free(s),null},d.ji=function(t,i,e,n){if(this.pickable===!1)return!1;i===void 0&&(i=null),e===void 0&&(e=null);var o=this.naturalBounds,r=this.se(),s=r?t:Vi(x.allocAt(t.x,t.y),this.transform);if(o=yn(0,0,o.width,o.height,s.x,s.y),Vo(this)||o){if(!this.isAtomic){for(var h=this.O.s,l=h.length,u=x.alloc(),a=vo(this);l--;){var f=h[l];if(f.visible||f===a){f.se()?Vi(u.set(t),f.transform):u.set(t);var p=f;f=f instanceof j?f:null,(f!==null?f.ji(u,i,e,n):p.ca(u))&&p.pickable!==!1&&(i!==null&&(p=i(p)),p===null||e!==null&&!e(p)||n.add(p))}}x.free(u)}return r||x.free(s),o&&(this.background!==null||this.areaBackground!==null)}return r||x.free(s),!1},d.Cf=function(t,i,e,n,o,r){if(this.pickable===!1)return!1;i===void 0&&(i=null),e===void 0&&(e=null);var s=r;if(r===void 0&&(s=it.alloc(),s.reset()),s.multiply(this.transform),this.fh(t,s))return Oc(this,i,e,o),r===void 0&&it.free(s),!0;if(this.Yc(t,s)){if(!this.isAtomic)for(var h=vo(this),l=this.O.s,u=l.length;u--;){var a=l[u];if(a.visible||a===h){var f=a.actualBounds,p=this.naturalBounds;f.x>p.width||f.y>p.height||0>f.x+f.width||0>f.y+f.height||(f=a,a=a instanceof j?a:null,p=it.alloc(),p.set(s),(a!==null?a.Cf(t,i,e,n,o,p):_0(f,t,n,p))&&(i!==null&&(f=i(f)),f===null||e!==null&&!e(f)||o.add(f)),it.free(p))}}return r===void 0&&it.free(s),n}return r===void 0&&it.free(s),!1};function Oc(t,i,e,n){for(var o=t.O.s,r=o.length;r--;){var s=o[r];if(s.visible){var h=s.actualBounds,l=t.naturalBounds;h.x>l.width||h.y>l.height||0>h.x+h.width||0>h.y+h.height||(s instanceof j&&Oc(s,i,e,n),i!==null&&(s=i(s)),s===null||e!==null&&!e(s)||n.add(s))}}}d.og=function(t,i,e,n,o,r){if(this.pickable===!1)return!1;e===void 0&&(e=null),n===void 0&&(n=null);var s=this.naturalBounds,h=this.se(),l=h?t:Vi(x.allocAt(t.x,t.y),this.transform),u=h?i:Vi(x.allocAt(i.x,i.y),this.transform),a=l.Bf(u),f=0<l.x&&l.x<s.width&&0<l.y&&l.y<s.height||Yi(l.x,l.y,0,0,0,s.height)<=a||Yi(l.x,l.y,0,s.height,s.width,s.height)<=a||Yi(l.x,l.y,s.width,s.height,s.width,0)<=a||Yi(l.x,l.y,s.width,0,0,0)<=a;if(s=l.zd(0,0)<=a&&l.zd(0,s.height)<=a&&l.zd(s.width,0)<=a&&l.zd(s.width,s.height)<=a,h||(x.free(l),x.free(u)),f){if(!this.isAtomic){l=x.alloc(),u=x.alloc(),a=vo(this);for(var p=this.O.s,c=p.length;c--;){var g=p[c];if(g.visible||g===a){var y=g.actualBounds,v=this.naturalBounds;(!h||!(y.x>v.width||y.y>v.height||0>y.x+y.width||0>y.y+y.height))&&(g.se()?(y=g.transform,Vi(l.set(t),y),Vi(u.set(i),y)):(l.set(t),u.set(i)),y=g,g=g instanceof j?g:null,(g!==null?g.og(l,u,e,n,o,r):y.tx(l,u,o))&&(e!==null&&(y=e(y)),y===null||n!==null&&!n(y)||r.add(y)))}}x.free(l),x.free(u)}return o?f:s}return!1};function Ic(t){var i=null;return t instanceof q&&(i=t.spot1,i===Si&&(i=null),t=t.geometry,t!==null&&i===null&&(i=t.spot1)),i===null&&(i=Ti),i}function Dc(t){var i=null;return t instanceof q&&(i=t.spot2,i===Si&&(i=null),t=t.geometry,t!==null&&i===null&&(i=t.spot2)),i===null&&(i=Xn),i}d.add=function(t){for(var i=[],e=0;e<arguments.length;++e)i[e]=arguments[e];for(e=0;e<i.length;e++)this.Hb(this.O.count,i[e]);return this},d.M=function(t){return this.O.M(t)},d.Hb=function(t,i){i instanceof U&&O("Cannot add a Part to a Panel: "+i+"; use a Panel instead"),(this===i||this.rg(i))&&(this===i&&O("Cannot make a Panel contain itself: "+this.toString()),O("Cannot make a Panel indirectly contain itself: "+this.toString()+" already contains "+i.toString()));var e=i.panel;if(e!==null&&e!==this&&O("Cannot add a GraphObject that already belongs to another Panel to this Panel: "+i.toString()+", already contained by "+e.toString()+", cannot be shared by this Panel: "+this.toString()),this.na!==j.Grid||i instanceof q||O("Can only add Shapes to a Grid Panel, not: "+i),this.na!==j.Graduated||i instanceof q||i instanceof St||O("Can only add Shapes or TextBlocks to a Graduated Panel, not: "+i),i.wi(this),i.Ng=null,this.itemArray!==null){var n=i.data;n!==null&&typeof n=="object"&&(this.ge===null&&(this.ge=new _),this.ge.add(n,i))}var o=this.O;if(n=-1,e===this){for(var r=-1,s=this.O.s,h=s.length,l=0;l<h;l++)if(s[l]===i){r=l;break}if(r!==-1){if(r===t||r+1>=o.count&&t>=o.count)return;o.mb(r),n=r}else O("element "+i.toString()+" has panel "+e.toString()+" but is not contained by it.")}(0>t||t>o.count)&&(t=o.count),o.Hb(t,i),(t===0||i.isPanelMain)&&(this.$g=null),Eo(this)||this.v(),i.v(!1),i.portId!==null?this.Te=!0:i instanceof j&&i.Te===!0&&(this.Te=!0),this.graduatedIntervals=null,this.If()||Ma(this,i,!1),e=this.part,e!==null&&(e.Rh=null,e.ag=NaN,this.Te&&e instanceof B&&(e.Te=!0),e.Te&&e instanceof B&&(e.wc=null),o=this.diagram,o!==null&&o.undoManager.isUndoingRedoing||(n!==-1&&e.cb(si,"elements",this,i,null,n,null),e.cb(ii,"elements",this,null,i,null,t)))};function Ec(t,i){t.l=i?t.l|16777216:t.l&-16777217}d.remove=function(t){for(var i=this.O.s,e=i.length,n=-1,o=0;o<e;o++)if(i[o]===t){n=o;break}n!==-1&&this.qc(n,!0)},d.mb=function(t){0<=t&&this.qc(t,!0)},d.qc=function(t,i){var e=this.O,n=e.M(t);if(n.Ng=null,n.wi(null),this.ge!==null){var o=n.data;typeof o=="object"&&this.ge.remove(o)}e.mb(t),Ie(this,!1),this.v(),this.$g===n&&(this.$g=null),this.graduatedIntervals=null;var r=this.part;r!==null&&(r.Rh=null,r.ag=NaN,r.Xb(),r instanceof B&&(n instanceof j?n.pm(n,function(s,h){od(r,h,i)}):od(r,n,i)),e=this.diagram,e!==null&&e.undoManager.isUndoingRedoing||r.cb(si,"elements",this,n,null,t,null))},d.Gb=function(t){0>t&&jt(t,">= 0",j,"getRowDefinition:idx"),t=Math.round(t);var i=this.rowDefs;if(i[t]===void 0){var e=new _t;e.wi(this),e.isRow=!0,e.index=t,i[t]=e,this.cb(ii,"rowdefs",this,null,e,null,t)}return i[t]},d.oA=function(t){if(0>t&&jt(t,">= 0",j,"removeRowDefinition:idx"),this.rowCount!==0){t=Math.round(t);var i=this.rowDefs,e=i[t];if(e){i[t]=void 0;for(var n=i.length-1;0<=n&&i[n--]===void 0;)i.length--;this.cb(si,"rowdefs",this,e,null,t,null),this.v()}}};function yy(t,i,e){var n=t.rowDefs;if(!(0>i)){if(n[i]=e instanceof _t?e:void 0,!e)for(i=n.length-1;0<=i&&n[i--]===void 0;)n.length--;t.v()}}d.Fb=function(t){0>t&&jt(t,">= 0",j,"getColumnDefinition:idx"),t=Math.round(t);var i=this.colDefs;if(i[t]===void 0){var e=new _t;e.wi(this),e.isRow=!1,e.index=t,i[t]=e,this.cb(ii,"coldefs",this,null,e,null,t)}return i[t]},d.jA=function(t){if(0>t&&jt(t,">= 0",j,"removeColumnDefinition:idx"),this.columnCount!==0){t=Math.round(t);var i=this.colDefs,e=i[t];if(e){i[t]=void 0;for(var n=i.length-1;0<=n&&i[n--]===void 0;)i.length--;this.cb(si,"coldefs",this,e,null,t,null),this.v()}}};function my(t,i,e){var n=t.colDefs;if(!(0>i)){if(n[i]=e instanceof _t?e:void 0,!e)for(i=n.length-1;0<=i&&n[i--]===void 0;)n.length--;t.v()}}d.Gy=function(t){var i=null;return t.isRow?i=this.Gb(t.index):t.isRow||(i=this.Fb(t.index)),i&&Sa(i,t),this},d.Hy=function(t,i){return(t=this.Gb(t))&&Sa(t,new _t(i)),this},d.By=function(t,i){return(t=this.Fb(t))&&Sa(t,new _t(i)),this},d.nz=function(t){if(0>t||this.type!==j.Table||this.rowCount===0)return-1;for(var i=0,e=this.rowDefs,n=e.length,o=this.topIndex;o<n;o++){var r=e[o];if(r!==void 0&&(i+=r.total,t<i))break}return o},d.fz=function(t){if(0>t||this.type!==j.Table||this.columnCount===0)return-1;for(var i=0,e=this.colDefs,n=e.length,o=this.leftIndex;o<n;o++){var r=e[o];if(r!==void 0&&(i+=r.total,t<i))break}return o},d.Fz=function(t,i){if(i===void 0&&(i=new x(NaN,NaN)),this.type!==j.Graduated)return i.h(NaN,NaN),i;t=Math.min(Math.max(t,this.graduatedMin),this.graduatedMax);var e=this.Qb();return e.geometry.Pu((t-this.graduatedMin)/this.graduatedRange,i),e.transform.Ga(i)},d.Gz=function(t){if(this.type!==j.Graduated)return NaN;var i=this.Qb();return i.transform.Cd(t),i.geometry.xx(t)*this.graduatedRange+this.graduatedMin};function vy(t){return t=t.allBindings,t!==null&&t._isFrozen}function Ze(t){var i=t.allBindings;if(i===null)t.data!==null&&O("Template cannot have .data be non-null: "+t),t.allBindings=i=new V;else if(i._isFrozen)return;var e=new V;Ec(t,!1),t.pm(t,function(u,a){a.th();var f=a.localBindings;if(f!==null)for(mc(a,!1),f=f.iterator;f.next();){var p=f.value;p.mode===ql&&mc(a,!0);var c=p.sourceName;c!==null&&(c==="/"&&Ec(u,!0),c=Im(p,u,a),c!==null&&(e.add(c),c.srcBindings===null&&(c.srcBindings=new V),c.srcBindings.add(p))),i.add(p)}if(a instanceof j&&a.type===j.Table){if(0<a.rowCount){for(u=a.rowDefs,f=u.length,p=0;p<f;p++)if(c=u[p],c!==void 0&&c.be!==null)for(var g=c.be.iterator;g.next();){var y=g.value;y.xd=c,y.so=2,y.vl=c.index,i.add(y)}}if(0<a.columnCount){for(a=a.colDefs,u=a.length,f=0;f<u;f++)if(p=a[f],p!==void 0&&p.be!==null)for(c=p.be.iterator;c.next();)g=c.value,g.xd=p,g.so=1,g.vl=p.index,i.add(g)}}});for(var n=e.iterator;n.next();){var o=n.value;if(o.srcBindings!==null){mc(o,!0);for(var r=o.srcBindings.iterator;r.next();){var s=r.value;o.localBindings===null&&(o.localBindings=new V),o.localBindings.add(s)}}o.srcBindings=null}for(n=i.iterator;n.next();)if(o=n.value,r=o.xd,r!==null){o.xd=null;var h=o.targetProperty,l=h.indexOf(".");0<l&&r instanceof j&&(s=h.substring(0,l),h=h.substr(l+1),l=r.fb(s),l!==null?(r=l,o.targetProperty=h):ue('Warning: unable to find GraphObject named "'+s+'" for Binding: '+o.toString())),r instanceof _t?(s=qi(r.panel),o.Ai=s===void 0?-1:s,r.panel.bindingId=o.Ai):r instanceof X?(s=qi(r),o.Ai=s===void 0?-1:s,r.bindingId=o.Ai):O("Unknown type of binding target: "+r)}i.freeze(),t instanceof U&&t.Zc()&&t.Va()}d.Uy=function(t){t===void 0&&(t=!1);var i=this.copy();return qv(i,function(e){e instanceof j&&(e.allBindings=null,e.ub=null);var n=e.localBindings;n!==null&&(e.localBindings=null,n.each(function(o){e.bind(o.copy())})),n=e.animationTriggers,n!==null&&(e.animationTriggers=null,n.each(function(o){e.Jv(o.value.copy())}))}),t&&Ze(i),i},d.La=function(t){var i=this.allBindings;if(i!==null)for(t===void 0&&(t=""),i=i.iterator;i.next();){var e=i.value,n=e.sourceProperty;if((t===""||n===""||n===t)&&(n=e.targetProperty,e.converter!==null||n!=="")){n=this.data;var o=e.sourceName;if(o!==null){if(o==="")n=this;else if(o==="/")n=this;else if(o===".")n=this;else if(o==="..")n=this;else if(n=this.fb(o),n===null)continue}else if(e.isToModel)if(n=this.diagram,n!==null)n=n.model.modelData;else continue;var r=this,s=e.Ai;if(s!==-1){if(r=this.js(s),r===null)continue}else e.xd!==null&&(r=e.xd);if(o==="/"?n=r.part:o==="."?n=r:o===".."&&(n=r.panel),o=e.so,o!==0){if(!(r instanceof j))continue;o===1?r=r.Fb(e.vl):o===2&&(r=r.Gb(e.vl))}r!==void 0&&e.Mv(r,n)}}},d.sx=function(t){return t==null||this.ge===null?null:this.ge.I(t)};function bv(t,i){t=t.O.s;for(var e=t.length,n=i.length,o=0,r=null;o<e&&(r=t[o],!(r instanceof j&&r.data!==null));)o++,r=t[o];if(e-o!==n)return!0;if(r===null)return 0<n;for(var s=0;o<e&&s<n;){if(r=t[o],!(r instanceof j)||r.data!==i[s])return!0;o++,s++}return!1}function Fl(t){if(t.type===j.Spot||t.type===j.Auto)return Math.min(t.O.length,1);if(t.type===j.Link){t=t.O;for(var i=t.length,e=0;e<i;e++){var n=t.M(e);if(!(n instanceof q&&n.isPanelMain))break}return e}return t.type===j.Table&&0<t.O.length&&(t=t.O.M(0),t.isPanelMain&&t instanceof j&&Vo(t))?1:0}d.mv=function(){for(var t=Fl(this);this.O.length>t;)this.qc(this.O.length-1,!1);xy(this,this.itemArray)};function xy(t,i){var e=Fl(t);if(i===null||i.length===0)for(;t.O.length>e;)t.qc(t.O.length-1,!1);else if(t.O.length<=e){e=i.length;for(var n=0;n<e;n++)wa(t,i[n],n,!0)}else{n=e;for(var o=0;o<i.length;o++,n++){var r=i[o],s=n<t.O.length?t.O.M(n):null;if(s instanceof j){if(s.data!==r){var h=Rc(t,s.data),l=Rc(t,r),u=l!==h;u||(h=Vc(t,h),u=Vc(t,l)!==h),u?(t.qc(n,!1),wa(t,r,o,!1)):s.data=r}}else wa(t,r,o,!1)}for(;n<t.O.length;)t.qc(n,!1);t.$g=null,Bc(t,e,0),Eo(t)||t.v(),t.graduatedIntervals=null,t.If()||Ma(t,t,!1),i=t.part,i!==null&&(i.Rh=null,i.ag=NaN,t.Te&&i instanceof B&&(i.Te=!0),i.Te&&i instanceof B&&(i.wc=null))}}function wa(t,i,e,n){if(!(i==null||0>e)){var o=Rc(t,i);if(o=Vc(t,o),o!==null){if(Ze(o),o=o.copy(),o.l&16777216){var r=t.ih();r!==null&&Ec(r,!0)}typeof i=="object"&&(t.ge===null&&(t.ge=new _),t.ge.add(i,o)),r=e+Fl(t),t.Hb(r,o),n&&(o.ub=i,Bc(t,r,e),o.ub=null),o.data=i}}}function Bc(t,i,e){for(t=t.O;i<t.length;){var n=t.M(i);if(n instanceof j){var o=i,r=e;n.type===j.TableRow?n.row=o:n.type===j.TableColumn&&(n.column=o),n.itemIndex=r}i++,e++}}function Rc(t,i){if(i===null)return"";if(t=t.itemCategoryProperty,typeof t=="function")t=t(i);else if(typeof t=="string"&&typeof i=="object"){if(t==="")return"";t=Kt(i,t)}else return"";if(t===void 0)return"";if(typeof t=="string")return t;O("Panel.getCategoryForItemData found a non-string category for "+i+": "+t)}function Vc(t,i){var e=t.itemTemplateMap,n=null;return e!==null&&(n=e.I(i)),n===null&&(e!==null&&(n=e.I("")),n===null&&(wy||(wy=!0,ue('No item template Panel found for category "'+i+'" on '+t),ue(" Using default item template."),t=new j,i=new St,i.bind(new Ht("text","",en)),t.add(i),My=t),n=My)),n}function Ma(t,i,e){var n=i.enabledChanged;if(n!==null&&n(i,e),i instanceof j){i=i.O.s,n=i.length;for(var o=0;o<n;o++){var r=i[o];e&&r instanceof j&&!r.isEnabled||Ma(t,r,e)}}}function Bn(t,i){i.name=t,ln.add(t,i)}tt.Object.defineProperties(j.prototype,{type:{get:function(){return this.na},set:function(t){var i=this.na;i!==t&&(this.na=t,this.isAtomic=this.na===j.Grid,this.v(),this.g("type",i,t))}},elements:{get:function(){return this.O.iterator}},naturalBounds:{get:function(){return this.ec}},padding:{get:function(){return this.zb},set:function(t){typeof t=="number"?(0>t&&jt(t,">= 0",j,"padding"),t=new gt(t)):(0>t.left&&jt(t.left,">= 0",j,"padding:value.left"),0>t.right&&jt(t.right,">= 0",j,"padding:value.right"),0>t.top&&jt(t.top,">= 0",j,"padding:value.top"),0>t.bottom&&jt(t.bottom,">= 0",j,"padding:value.bottom"));var i=this.zb;i.D(t)||(this.zb=t=t.J(),this.v(),this.g("padding",i,t))}},defaultAlignment:{get:function(){return this.Sm},set:function(t){var i=this.Sm;i.D(t)||(this.Sm=t=t.J(),this.v(),this.g("defaultAlignment",i,t))}},defaultStretch:{get:function(){return this.Uf},set:function(t){var i=this.Uf;i!==t&&(this.Uf=t,this.v(),this.g("defaultStretch",i,t))}},defaultSeparatorPadding:{get:function(){return this.T!==null?this.T.Pp:Ks},set:function(t){typeof t=="number"&&(t=new gt(t));var i=this.defaultSeparatorPadding;i.D(t)||(t=t.J(),this.T===null&&(this.T=new Be),this.T.Pp=t,this.v(),this.g("defaultSeparatorPadding",i,t))}},defaultRowSeparatorStroke:{get:function(){return this.T!==null?this.T.ia:null},set:function(t){var i=this.defaultRowSeparatorStroke;i!==t&&(t===null||typeof t=="string"||t instanceof ct)&&(t instanceof ct&&t.freeze(),this.T===null&&(this.T=new Be),this.T.ia=t,this.N(),this.g("defaultRowSeparatorStroke",i,t))}},defaultRowSeparatorStrokeWidth:{get:function(){return this.T!==null?this.T.Ha:1},set:function(t){var i=this.defaultRowSeparatorStrokeWidth;i!==t&&isFinite(t)&&0<=t&&(this.T===null&&(this.T=new Be),this.T.Ha=t,this.v(),this.g("defaultRowSeparatorStrokeWidth",i,t))}},defaultRowSeparatorDashArray:{get:function(){return this.T!==null?this.T.V:null},set:function(t){var i=this.defaultRowSeparatorDashArray;if(i!==t){if(t!==null){for(var e=t.length,n=0,o=0;o<e;o++){var r=t[o];typeof r=="number"&&0<=r&&isFinite(r)||O("defaultRowSeparatorDashArray value "+r+" at index "+o+" must be a positive number or zero."),n+=r}if(n===0){if(i===null)return;t=null}}this.T===null&&(this.T=new Be),this.T.V=t,this.N(),this.g("defaultRowSeparatorDashArray",i,t)}}},defaultColumnSeparatorStroke:{get:function(){return this.T!==null?this.T.u:null},set:function(t){var i=this.defaultColumnSeparatorStroke;i!==t&&(t===null||typeof t=="string"||t instanceof ct)&&(t instanceof ct&&t.freeze(),this.T===null&&(this.T=new Be),this.T.u=t,this.N(),this.g("defaultColumnSeparatorStroke",i,t))}},defaultColumnSeparatorStrokeWidth:{get:function(){return this.T!==null?this.T.F:1},set:function(t){var i=this.defaultColumnSeparatorStrokeWidth;i!==t&&isFinite(t)&&0<=t&&(this.T===null&&(this.T=new Be),this.T.F=t,this.v(),this.g("defaultColumnSeparatorStrokeWidth",i,t))}},defaultColumnSeparatorDashArray:{get:function(){return this.T!==null?this.T.o:null},set:function(t){var i=this.defaultColumnSeparatorDashArray;if(i!==t){if(t!==null){for(var e=t.length,n=0,o=0;o<e;o++){var r=t[o];typeof r=="number"&&0<=r&&isFinite(r)||O("defaultColumnSeparatorDashArray value "+r+" at index "+o+" must be a positive number or zero."),n+=r}if(n===0){if(i===null)return;t=null}}this.T===null&&(this.T=new Be),this.T.o=t,this.N(),this.g("defaultColumnSeparatorDashArray",i,t)}}},inRowsCols:{get:function(){return this.T!==null?this.T.nb:null},set:function(t){this.T===null&&(this.T=new Be),this.T.nb=t}},viewboxStretch:{get:function(){return this.wo},set:function(t){var i=this.wo;i!==t&&(this.wo=t,this.v(),this.g("viewboxStretch",i,t))}},gridCellSize:{get:function(){return this.hn},set:function(t){var i=this.hn;if(!i.D(t)){t.w()&&t.width!==0&&t.height!==0||O("Invalid Panel.gridCellSize: "+t),this.hn=t.J();var e=this.diagram;e!==null&&this===e.grid&&Io(e),this.N(),this.g("gridCellSize",i,t)}}},gridOrigin:{get:function(){return this.jn},set:function(t){var i=this.jn;if(!i.D(t)){t.w()||O("Invalid Panel.gridOrigin: "+t),this.jn=t.J();var e=this.diagram;e!==null&&this===e.grid&&Io(e),this.N(),this.g("gridOrigin",i,t)}}},graduatedMin:{get:function(){return this.ra!==null?this.ra.kq:0},set:function(t){var i=this.graduatedMin;i!==t&&(this.ra===null&&(this.ra=new xo),this.ra.kq=t,this.v(),this.g("graduatedMin",i,t),vs(this)&&(t=this.part,t!==null&&Rr(this,t,"graduatedRange")))}},graduatedMax:{get:function(){return this.ra!==null?this.ra.F:100},set:function(t){var i=this.graduatedMax;i!==t&&(this.ra===null&&(this.ra=new xo),this.ra.F=t,this.v(),this.g("graduatedMax",i,t),vs(this)&&(t=this.part,t!==null&&Rr(this,t,"graduatedRange")))}},graduatedRange:{get:function(){return this.graduatedMax-this.graduatedMin}},graduatedTickUnit:{get:function(){return this.ra!==null?this.ra.ia:10},set:function(t){var i=this.graduatedTickUnit;i!==t&&0<t&&(this.ra===null&&(this.ra=new xo),this.ra.ia=t,this.v(),this.g("graduatedTickUnit",i,t))}},graduatedTickBase:{get:function(){return this.ra!==null?this.ra.V:0},set:function(t){var i=this.graduatedTickBase;i!==t&&(this.ra===null&&(this.ra=new xo),this.ra.V=t,this.v(),this.g("graduatedTickBase",i,t))}},graduatedMarks:{get:function(){return this.ra!==null?this.ra.u:null},set:function(t){this.ra!==null?this.ra.u=t:t!==null&&(this.ra=new xo,this.ra.u=t)}},graduatedBounds:{get:function(){return this.ra!==null?this.ra.j:null},set:function(t){this.ra!==null?this.ra.j=t:t!==null&&(this.ra=new xo,this.ra.j=t)}},graduatedIntervals:{get:function(){return this.ra!==null?this.ra.o:null},set:function(t){this.ra!==null?this.ra.o=t:t!==null&&(this.ra=new xo,this.ra.o=t)}},temporaryTextBlock:{get:function(){return this.ra!==null?this.ra.Zh:null},set:function(t){this.ra!==null?this.ra.Zh=t:t!==null&&(this.ra=new xo,this.ra.Zh=t)}},panelLayoutState:{get:function(){return this.F},set:function(t){this.F=t}},Te:{get:function(){return(this.l&8388608)!==0},set:function(t){(this.l&8388608)!==0!==t&&(this.l^=8388608)}},rowDefs:{get:function(){return this.T===null&&(this.T=new Be),this.T.Pc}},rowCount:{get:function(){return this.T===null?0:this.rowDefs.length}},colDefs:{get:function(){return this.T===null&&(this.T=new Be),this.T.Oc}},columnCount:{get:function(){return this.T===null?0:this.colDefs.length}},rowSizing:{get:function(){return this.T!==null?this.T.ob:Pa},set:function(t){var i=this.rowSizing;i!==t&&(this.T===null&&(this.T=new Be),this.T.ob=t,this.v(),this.g("rowSizing",i,t))}},columnSizing:{get:function(){return this.T!==null?this.T.j:Pa},set:function(t){var i=this.columnSizing;i!==t&&(this.T===null&&(this.T=new Be),this.T.j=t,this.v(),this.g("columnSizing",i,t))}},topIndex:{get:function(){return this.T!==null?this.T.Ib:0},set:function(t){var i=this.topIndex;i!==t&&((!isFinite(t)||0>t)&&O("Panel.topIndex must be greater than zero and a real number, not: "+t),this.T===null&&(this.T=new Be),this.T.Ib=t,this.v(),this.g("topIndex",i,t))}},leftIndex:{get:function(){return this.T!==null?this.T.hb:0},set:function(t){var i=this.leftIndex;i!==t&&((!isFinite(t)||0>t)&&O("Panel.leftIndex must be greater than zero and a real number, not: "+t),this.T===null&&(this.T=new Be),this.T.hb=t,this.v(),this.g("leftIndex",i,t))}},data:{get:function(){return this.ub},set:function(t){var i=this.ub;if(i!==t){var e=this instanceof U&&!(this instanceof lt);Ze(this),this.ub=t;var n=this.diagram;n!==null&&(e?(e=n.partManager,this instanceof F?(i!==null&&e.bf.remove(i),t!==null&&e.bf.add(t,this)):this instanceof U&&(i!==null&&e.cf.remove(i),t!==null&&e.cf.add(t,this))):(e=this.panel,e!==null&&e.ge!==null&&(i!==null&&e.ge.remove(i),t!==null&&e.ge.add(t,this)))),this.g("data",i,t),n!==null&&n.undoManager.isUndoingRedoing||t!==null&&this.La()}}},itemIndex:{get:function(){return this.yn},set:function(t){var i=this.yn;i!==t&&(this.yn=t,this.g("itemIndex",i,t))}},allBindings:{get:function(){return this.A!==null?this.A.nb:null},set:function(t){this.localBindings!==t&&(this.A===null&&(this.A=new xs),this.A.nb=t)}},itemArray:{get:function(){return this.Hh},set:function(t){var i=this.Hh;if(i!==t||t!==null&&bv(this,t)){var e=this.diagram;i!==t&&(e!==null&&i!==null&&Nd(e.partManager,this,e),this.Hh=t,e!==null&&t!==null&&Sd(e.partManager,this)),this.g("itemArray",i,t),e!==null&&e.undoManager.isUndoingRedoing||xy(this,t)}}},itemTemplate:{get:function(){return this.itemTemplateMap===null?null:this.itemTemplateMap.I("")},set:function(t){if(this.itemTemplateMap===null){if(t===null)return;this.itemTemplateMap=new _}var i=this.itemTemplateMap.I("");i!==t&&((t instanceof U||t.isPanelMain)&&O("Panel.itemTemplate must not be a Part or be Panel.isPanelMain: "+t),this.itemTemplateMap.add("",t),this.g("itemTemplate",i,t),t=this.diagram,t!==null&&t.undoManager.isUndoingRedoing||this.mv())}},itemTemplateMap:{get:function(){return this.A!==null?this.A.Pc:null},set:function(t){var i=this.itemTemplateMap;if(i!==t){for(var e=t.iterator;e.next(););ei(this),this.A.Pc=t,this.g("itemTemplateMap",i,t),t=this.diagram,t!==null&&t.undoManager.isUndoingRedoing||this.mv()}}},itemCategoryProperty:{get:function(){return this.A!==null?this.A.Oc:"category"},set:function(t){var i=this.itemCategoryProperty;i!==t&&(ei(this),this.A.Oc=t,this.g("itemCategoryProperty",i,t))}},isAtomic:{get:function(){return(this.l&1048576)!==0},set:function(t){var i=(this.l&1048576)!==0;i!==t&&(this.l^=1048576,this.g("isAtomic",i,t))}},isClipping:{get:function(){return(this.l&2097152)!==0},set:function(t){var i=(this.l&2097152)!==0;i!==t&&(this.l^=2097152,this instanceof Q&&(this.tb=null),this.v(),this.g("isClipping",i,t))}},isOpposite:{get:function(){return(this.l&33554432)!==0},set:function(t){var i=(this.l&33554432)!==0;i!==t&&(this.l^=33554432,this.v(),this.g("isOpposite",i,t))}},isEnabled:{get:function(){return(this.l&4194304)!==0},set:function(t){var i=(this.l&4194304)!==0;if(i!==t){var e=this.panel===null||this.panel.If();this.l^=4194304,this.g("isEnabled",i,t),i=this.diagram,i!==null&&i.undoManager.isUndoingRedoing||e&&Ma(this,this,t)}}},alignmentFocusName:{get:function(){return this.$e},set:function(t){var i=this.$e;i!==t&&(this.$e=t,this.v(),this.g("alignmentFocusName",i,t))}}}),tt.Object.defineProperties(j,{Position:{get:function(){return ln.I("Position")}},Horizontal:{get:function(){return ln.I("Horizontal")}},Vertical:{get:function(){return ln.I("Vertical")}},Spot:{get:function(){return ln.I("Spot")}},Auto:{get:function(){return ln.I("Auto")}},Table:{get:function(){return ln.I("Table")}},Viewbox:{get:function(){return ln.I("Viewbox")}},TableRow:{get:function(){return ln.I("TableRow")}},TableColumn:{get:function(){return ln.I("TableColumn")}},Link:{get:function(){return ln.I("Link")}},Grid:{get:function(){return ln.I("Grid")}},Graduated:{get:function(){return ln.I("Graduated")}}}),j.prototype.rebuildItemElements=j.prototype.mv,j.prototype.findItemPanelForData=j.prototype.sx,j.prototype.updateTargetBindings=j.prototype.La,j.prototype.copyTemplate=j.prototype.Uy,j.prototype.graduatedValueForPoint=j.prototype.Gz,j.prototype.graduatedPointForValue=j.prototype.Fz,j.prototype.findColumnForLocalX=j.prototype.fz,j.prototype.findRowForLocalY=j.prototype.nz,j.prototype.addColumnDefinition=j.prototype.By,j.prototype.addRowDefinition=j.prototype.Hy,j.prototype.addRowColumnDefinition=j.prototype.Gy,j.prototype.removeColumnDefinition=j.prototype.jA,j.prototype.getColumnDefinition=j.prototype.Fb,j.prototype.removeRowDefinition=j.prototype.oA,j.prototype.getRowDefinition=j.prototype.Gb,j.prototype.removeAt=j.prototype.mb,j.prototype.remove=j.prototype.remove,j.prototype.insertAt=j.prototype.Hb,j.prototype.elt=j.prototype.M,j.prototype.add=j.prototype.add,j.prototype.findObject=j.prototype.fb,j.prototype.findInVisualTree=j.prototype.Ml,j.prototype.walkVisualTreeFrom=j.prototype.pm,j.prototype.findMainElement=j.prototype.Qb;var wy=!1,My=null,ln=new _;j.className="Panel",j.definePanelLayout=Bn,Bn("Position",new la),Bn("Vertical",new aa),Bn("Auto",new pa),Bn("Link",new va);function xo(){this.kq=0,this.F=100,this.ia=10,this.V=0,this.Zh=this.o=this.j=this.u=null}xo.prototype.copy=function(){var t=new xo;return t.kq=this.kq,t.F=this.F,t.ia=this.ia,t.V=this.V,t.u=this.u,t.j=this.j,t.o=this.o,t.Zh=this.Zh,t},xo.className="GradPanelSettings";function Be(){this.Pc=[],this.Oc=[],this.j=this.ob=Pa,this.hb=this.Ib=0,this.Pp=Ks,this.Ha=1,this.V=this.ia=null,this.F=1,this.nb=this.o=this.u=null}Be.prototype.copy=function(t){for(var i=new Be,e=this.Pc,n=e.length,o=i.Pc,r=0;r<n;r++)if(e[r]!==void 0){var s=e[r].copy();s.wi(t),o[r]=s}for(e=this.Oc,n=e.length,o=i.Oc,r=0;r<n;r++)e[r]!==void 0&&(s=e[r].copy(),s.wi(t),o[r]=s);return i.ob=this.ob,i.j=this.j,i.Ib=this.Ib,i.hb=this.hb,i.Pp=this.Pp.J(),i.Ha=this.Ha,i.ia=this.ia,i.V=this.V,i.F=this.F,i.u=this.u,i.o=this.o,i.nb=this.nb,i},Be.className="TablePanelSettings";function _t(t){ui(this),this.Me=null,this.tq=!0,this.Za=0,this.Hc=NaN,this.jj=0,this.hj=1/0,this.Kb=Si,this.pa=this.pc=this.oa=0,this.be=null,this.no=Yc,this.hg=sn,this.ko=this.dg=null,this.lo=NaN,this.Ma=this.tj=null,this.Om=!1,t&&(Object.assign(this,t),t.column!==void 0?(this.isRow=!1,this.index=t.column):t.row!==void 0&&(this.isRow=!0,this.index=t.row))}_t.prototype.copy=function(){var t=new _t;return t.tq=this.tq,t.Za=this.Za,t.Hc=this.Hc,t.jj=this.jj,t.hj=this.hj,t.Kb=this.Kb,t.oa=this.oa,t.pc=this.pc,t.pa=this.pa,t.hg=this.hg,t.no=this.no,this.dg===null?t.dg=null:t.dg=this.dg.J(),t.ko=this.ko,t.lo=this.lo,t.tj=null,this.tj!==null&&(t.separatorDashArray=Gs(this.separatorDashArray)),t.Ma=this.Ma,t.Om=this.Om,t.be=this.be,t};function Sa(t,i){i.isRow?t.height=i.height:t.width=i.width,t.minimum=i.minimum,t.maximum=i.maximum,t.alignment=i.alignment,t.stretch=i.stretch,t.sizing=i.sizing,t.dg=i.separatorPadding===null?null:i.separatorPadding.J(),t.separatorStroke=i.separatorStroke,t.separatorStrokeWidth=i.separatorStrokeWidth,t.tj=null,i.separatorDashArray&&(t.tj=Gs(i.separatorDashArray)),t.background=i.background,t.coversSeparators=i.coversSeparators,t.be=i.be}d=_t.prototype,d.qb=function(t){t.classType===_t&&(this.sizing=t)},d.toString=function(){return"RowColumnDefinition "+(this.isRow?"(Row ":"(Column ")+this.index+") #"+qi(this)},d.wi=function(t){this.Me=t},d.Ho=function(t){var i=0,e=this.Me;if(this.index!==t&&(t=this.separatorStroke,t===null&&e!==null&&(t=this.isRow?e.defaultRowSeparatorStroke:e.defaultColumnSeparatorStroke),t!==null&&(i=this.separatorStrokeWidth,isNaN(i)&&(e!==null?i=this.isRow?e.defaultRowSeparatorStrokeWidth:e.defaultColumnSeparatorStrokeWidth:i=0))),t=this.dg,t===null)if(e!==null)t=e.defaultSeparatorPadding;else return i;return i+(this.isRow?t.top:t.left)},d.Wc=function(){var t=0,i=this.Me,e=0,n=this.isRow;if(i!==null&&i.type===j.Table)for(var o=n?i.rowDefs.length:i.colDefs.length,r=0;r<o;r++){var s=n?i.rowDefs[r]:i.colDefs[r];if(s!==void 0&&s.oa!==0){e=s.index;break}}if(this.index!==e&&(e=this.separatorStroke,e===null&&i!==null&&(e=n?i.defaultRowSeparatorStroke:i.defaultColumnSeparatorStroke),e!==null&&(t=this.separatorStrokeWidth,isNaN(t)&&(i!==null?t=n?i.defaultRowSeparatorStrokeWidth:i.defaultColumnSeparatorStrokeWidth:t=0))),n=this.dg,n===null)if(i!==null)n=i.defaultSeparatorPadding;else return t;return t+(this.isRow?n.top+n.bottom:n.left+n.right)},d.Pb=function(t,i,e){var n=this.Me;if(n!==null&&(n.cb(Ot,t,this,i,e,void 0,void 0),this.be!==null&&(i=n.diagram,i!==null&&!i.skipsModelSourceBindings&&(n=n.ih(),n!==null&&(i=n.data,i!==null)))))for(e=this.be.iterator;e.next();)e.value.rp(this,i,t,n)};function Na(t){if(t.sizing===Yc){var i=t.Me;return t.isRow?i.rowSizing:i.columnSizing}return t.sizing}d.bind=function(t,i,e,n){var o=null;return typeof t=="string"?o=new Ht(t,i,e,n):o=t,o.xd=this,t=this.panel,t!==null&&(i=t.ih(),i!==null&&vy(i)&&O("Cannot add a Binding to a RowColumnDefinition that is already frozen: "+o+" on "+t)),this.be===null&&(this.be=new V),this.be.add(o),this},tt.Object.defineProperties(_t.prototype,{panel:{get:function(){return this.Me}},isRow:{get:function(){return this.tq},set:function(t){this.tq=t}},index:{get:function(){return this.Za},set:function(t){this.Za=t}},height:{get:function(){return this.Hc},set:function(t){var i=this.Hc;i!==t&&(0>t&&jt(t,">= 0",_t,"height"),this.Hc=t,this.actual=this.oa,this.panel!==null&&this.panel.v(),this.Pb("height",i,t))}},width:{get:function(){return this.Hc},set:function(t){var i=this.Hc;i!==t&&(0>t&&jt(t,">= 0",_t,"width"),this.Hc=t,this.actual=this.oa,this.panel!==null&&this.panel.v(),this.Pb("width",i,t))}},minimum:{get:function(){return this.jj},set:function(t){var i=this.jj;i!==t&&((0>t||!isFinite(t))&&jt(t,">= 0",_t,"minimum"),this.jj=t,this.actual=this.oa,this.panel!==null&&this.panel.v(),this.Pb("minimum",i,t))}},maximum:{get:function(){return this.hj},set:function(t){var i=this.hj;i!==t&&(0>t&&jt(t,">= 0",_t,"maximum"),this.hj=t,this.actual=this.oa,this.panel!==null&&this.panel.v(),this.Pb("maximum",i,t))}},alignment:{get:function(){return this.Kb},set:function(t){var i=this.Kb;i.D(t)||(this.Kb=t.J(),this.panel!==null&&this.panel.v(),this.Pb("alignment",i,t))}},stretch:{get:function(){return this.hg},set:function(t){var i=this.hg;i!==t&&(this.hg=t,this.panel!==null&&this.panel.v(),this.Pb("stretch",i,t))}},separatorPadding:{get:function(){return this.dg},set:function(t){typeof t=="number"&&(t=new gt(t));var i=this.dg;t!==null&&i!==null&&i.D(t)||(t!==null&&(t=t.J()),this.dg=t,this.panel!==null&&this.panel.v(),this.Pb("separatorPadding",i,t))}},separatorStroke:{get:function(){return this.ko},set:function(t){var i=this.ko;i!==t&&(t!==null&&Ms(t,"RowColumnDefinition.separatorStroke"),t instanceof ct&&t.freeze(),this.ko=t,this.panel!==null&&this.panel.v(),this.Pb("separatorStroke",i,t))}},separatorStrokeWidth:{get:function(){return this.lo},set:function(t){var i=this.lo;i!==t&&(this.lo=t,this.panel!==null&&this.panel.v(),this.Pb("separatorStrokeWidth",i,t))}},separatorDashArray:{get:function(){return this.tj},set:function(t){var i=this.tj;if(i!==t){if(t!==null){for(var e=t.length,n=0,o=0;o<e;o++){var r=t[o];typeof r=="number"&&0<=r&&isFinite(r)||O("separatorDashArray value "+r+" at index "+o+" must be a positive number or zero."),n+=r}if(n===0){if(i===null)return;t=null}}this.tj=t,this.panel!==null&&this.panel.N(),this.Pb("separatorDashArray",i,t)}}},background:{get:function(){return this.Ma},set:function(t){var i=this.Ma;i!==t&&(t!==null&&Ms(t,"RowColumnDefinition.background"),t instanceof ct&&t.freeze(),this.Ma=t,this.panel!==null&&this.panel.N(),this.Pb("background",i,t))}},coversSeparators:{get:function(){return this.Om},set:function(t){var i=this.Om;i!==t&&(this.Om=t,this.panel!==null&&this.panel.N(),this.Pb("coversSeparators",i,t))}},sizing:{get:function(){return this.no},set:function(t){var i=this.no;i!==t&&(this.no=t,this.panel!==null&&this.panel.v(),this.Pb("sizing",i,t))}},actual:{get:function(){return this.oa},set:function(t){this.oa=isNaN(this.Hc)?Math.max(Math.min(this.hj,t),this.jj):Math.max(Math.min(this.hj,this.Hc),this.jj)}},measured:{get:function(){return this.pc},set:function(t){this.pc=t}},total:{get:function(){return this.oa+this.Wc()}},position:{get:function(){return this.pa},set:function(t){this.pa=t}}}),_t.prototype.computeEffectiveSpacing=_t.prototype.Wc,_t.prototype.computeEffectiveSpacingTop=_t.prototype.Ho;var Yc=new R(_t,"Default",0),Al=new R(_t,"None",1),Pa=new R(_t,"ProportionalExtra",2);_t.className="RowColumnDefinition",_t.Default=Yc,_t.None=Al,_t.ProportionalExtra=Pa;function q(t,i){X.call(this),this.Rd=this.ua=null,this.$m="None",this.xc=this.Ui="black",this.ig=1,this.Na=this.Yg=null,this.Un=this.Tn=NaN,this.fa=null,typeof t=="string"?this.figure=t:t&&Object.assign(this,t),i&&Object.assign(this,i)}pt(q,X),q.prototype.cloneProtected=function(t){X.prototype.cloneProtected.call(this,t),t.ua=this.ua,t.Rd=this.Rd,t.$m=this.$m,t.Ui=this.Ui,t.xc=this.xc,t.ig=this.ig,this.Yg!==null&&(t.Yg=Gs(this.Yg)),this.Na!==null&&(t.Na=this.Na.oc?this.Na:this.Na.copy()),t.Tn=this.Tn,t.Un=this.Un,this.fa!==null&&(t.fa=this.fa.copy())};function Kr(t){t.Na===null?t.Na=new Xc:t.Na.oc&&(t.Na=t.Na.copy())}d=q.prototype,d.th=function(){X.prototype.th.call(this),this.Na!==null&&(this.Na.oc=!0)},d.qb=function(t){t===Xt||t===Dn||t===wl||t===sn?this.geometryStretch=t:X.prototype.qb.call(this,t)},d.toString=function(){return"Shape("+(this.figure!=="None"?this.figure:this.toArrow!=="None"?this.toArrow:this.fromArrow)+")#"+qi(this)};function Nh(t,i,e,n){var o=e.length;if(!(4>o)){var r=n.measuredBounds,s=Math.max(1,r.width);r=r.height;for(var h=e[0],l=e[1],u,a,f,p,c,g,y=0,v=kt(),m=2;m<o;m+=2)u=e[m],a=e[m+1],f=u-h,h=a-l,f===0&&(f=.001),p=h/f,c=Math.atan2(h,f),g=Math.sqrt(f*f+h*h),v.push([f,c,p,g]),y+=g,h=u,l=a;h=e[0],l=e[1],f=n.measuredBounds.width,n instanceof q&&(f-=n.strokeWidth),1>f&&(f=1),o=e=f,u=s/2,a=u!==0,m=0,g=v[m],f=g[0],c=g[1],p=g[2],g=g[3];for(var w=0;.1<=y;){if(w===0&&(a?(o=e,o-=u,y-=u,a=!1):o=e,o===0&&(o=1)),o>y){Mt(v);return}o>g?(w=o-g,o=g):w=0;var M=Math.sqrt(o*o/(1+p*p));if(0>f&&(M=-M),h+=M,l+=p*M,t.translate(h,l),t.rotate(c),t.translate(-(s/2),-(r/2)),w===0&&n.hh(t,i),t.translate(s/2,r/2),t.rotate(-c),t.translate(-h,-l),y-=o,g-=o,w!==0){if(m++,m===v.length){Mt(v);return}g=v[m],f=g[0],c=g[1],p=g[2],g=g[3],o=w}}Mt(v)}}d.hh=function(t,i){var e=this.xc,n=this.Ui;if(e!==null||n!==null){var o=this.ua;if(o!==null){t.yc();var r=this.actualBounds,s=this.naturalBounds;n!==null&&Me(this,t,n,!0,!1,s,r);var h=this.part,l=this.ig;if(e===null||l!==0||h===null||!this.isPanelMain&&h.Qb()!==this||(l=h.type===j.Link&&h instanceof lt&&h.category==="Selection"&&h.adornedObject instanceof q&&h.adornedPart.Qb()===h.adornedObject?h.adornedObject.strokeWidth:0),l===0&&(e=null),e!==null&&l!==0&&(Me(this,t,e,!1,!1,s,r),t.lineWidth=l,t.lineJoin=this.strokeJoin,t.lineCap=this.strokeCap,t.miterLimit=this.strokeMiterLimit),r=!1,h&&i.Gf("drawShadows")&&(r=h.isShadowed),t.Hl===!1&&(r=!1),h=!0,e===null||n!==null&&n!=="transparent"||(h=!1),s=!1,l=this.strokeDashArray,l!==null&&(s=!0,t.hs(l,this.strokeDashOffset)),o.type===I.j)t.beginPath(),t.moveTo(o.startX,o.startY),t.lineTo(o.endX,o.endY),e!==null&&t.ik(),t.Se();else if(o.type===I.u){var u=o.startX;l=o.startY;var a=o.endX,f=o.endY;o=Math.min(u,a);var p=Math.min(l,f);u=Math.abs(a-u),l=Math.abs(f-l),t.beginPath(),t.rect(o,p,u,l),n!==null&&t.ng(n),e!==null&&(h&&r&&Jn(t),t.ik(),h&&r&&go(t)),t.Se()}else if(o.type===I.F)u=o.startX,l=o.startY,a=o.endX,f=o.endY,o=Math.abs(a-u)/2,p=Math.abs(f-l)/2,u=Math.min(u,a)+o,l=Math.min(l,f)+p,t.beginPath(),t.moveTo(u,l-p),t.bezierCurveTo(u+P.wg*o,l-p,u+o,l-P.wg*p,u+o,l),t.bezierCurveTo(u+o,l+P.wg*p,u+P.wg*o,l+p,u,l+p),t.bezierCurveTo(u-P.wg*o,l+p,u-o,l+P.wg*p,u-o,l),t.bezierCurveTo(u-o,l-P.wg*p,u-P.wg*o,l-p,u,l-p),t.closePath(),n!==null&&t.ng(n),e!==null&&(h&&r&&Jn(t),t.ik(),h&&r&&go(t)),t.Se();else if(o.type===I.o)for(o=o.figures,l=o.length,p=0;p<l;p++){u=o.s[p],t.beginPath(),t.moveTo(u.startX,u.startY),a=u.segments.s,f=a.length;for(var c=null,g=0;g<f;g++){var y=a[g];switch(y.type){case on:t.moveTo(y.endX,y.endY);break;case Dt:t.lineTo(y.endX,y.endY);break;case je:t.bezierCurveTo(y.point1X,y.point1Y,y.point2X,y.point2Y,y.endX,y.endY);break;case In:t.quadraticCurveTo(y.point1X,y.point1Y,y.endX,y.endY);break;case Qt:if(y.radiusX===y.radiusY){var v=Math.PI/180;t.arc(y.point1X,y.point1Y,y.radiusX,y.startAngle*v,(y.startAngle+y.sweepAngle)*v,0>y.sweepAngle,c!==null?c.endX:u.startX,c!==null?c.endY:u.startY)}else if(c=po(y,u),v=c.length,v===0)t.lineTo(y.centerX,y.centerY);else for(var m=0;m<v;m++){var w=c[m];m===0&&t.lineTo(w[0],w[1]),t.bezierCurveTo(w[2],w[3],w[4],w[5],w[6],w[7])}break;case mn:if(m=v=0,c!==null&&c.type===Qt){if(c=po(c,u),w=c.length,w===0){t.lineTo(y.endX,y.endY);break}c=c[w-1]||null,c!==null&&(v=c[6],m=c[7])}else v=c!==null?c.endX:u.startX,m=c!==null?c.endY:u.startY;if(c=Or(y,u,v,m),v=c.length,v===0){t.lineTo(y.endX,y.endY);break}for(m=0;m<v;m++)w=c[m],t.bezierCurveTo(w[2],w[3],w[4],w[5],w[6],w[7]);break;default:O("Segment not of valid type: "+y.type)}y.isClosed&&t.closePath(),c=y}a=u.isFilled,r?u.isShadowed?(a===!0&&n!=="transparent"&&n!==null&&t.ng(n,u.isEvenOdd),e!==null&&(a&&h&&Jn(t),t.ik(),a&&h&&go(t))):(Jn(t),a&&n!=="transparent"&&n!==null&&t.ng(n,u.isEvenOdd),e!==null&&t.ik(),go(t)):(a&&n!==null&&t.ng(n,u.isEvenOdd),e!==null&&t.ik()),t.Se(p)}if(s&&t.es(),this.pathPattern!==null){if(e=this.pathPattern,e.measure(1/0,1/0),n=e.measuredBounds,e.arrange(0,0,n.width,n.height),r=this.geometry,t.save(),t.beginPath(),n=kt(),r.type===I.j)n.push(r.startX),n.push(r.startY),n.push(r.endX),n.push(r.endY),Nh(t,i,n,e);else if(r.type===I.o)for(r=r.figures.iterator;r.next();){for(h=r.value,n.length=0,n.push(h.startX),n.push(h.startY),s=h.startX,o=h.startY,l=s,p=o,u=h.segments.s,a=u.length,f=0;f<a;f++){switch(g=u[f],g.type){case on:Nh(t,i,n,e),n.length=0,n.push(g.endX),n.push(g.endY),s=g.endX,o=g.endY,l=s,p=o;break;case Dt:n.push(g.endX),n.push(g.endY),s=g.endX,o=g.endY;break;case je:P.Qe(s,o,g.point1X,g.point1Y,g.point2X,g.point2Y,g.endX,g.endY,.5,n),s=g.endX,o=g.endY;break;case In:P.cp(s,o,g.point1X,g.point1Y,g.endX,g.endY,.5,n),s=g.endX,o=g.endY;break;case Qt:if(y=po(g,h),c=y.length,c===0){n.push(g.centerX),n.push(g.centerY),s=g.centerX,o=g.centerY;break}for(v=0;v<c;v++)m=y[v],P.Qe(s,o,m[2],m[3],m[4],m[5],m[6],m[7],.5,n),s=m[6],o=m[7];break;case mn:if(y=Or(g,h,s,o),c=y.length,c===0){n.push(g.endX),n.push(g.endY),s=g.endX,o=g.endY;break}for(v=0;v<c;v++)m=y[v],P.Qe(s,o,m[2],m[3],m[4],m[5],m[6],m[7],.5,n),s=m[6],o=m[7];break;default:O("Segment not of valid type: "+g.type)}g.isClosed&&(n.push(l),n.push(p),Nh(t,i,n,e))}Nh(t,i,n,e)}else if(r.type===I.u)n.push(r.startX),n.push(r.startY),n.push(r.endX),n.push(r.startY),n.push(r.endX),n.push(r.endY),n.push(r.startX),n.push(r.endY),n.push(r.startX),n.push(r.startY),Nh(t,i,n,e);else if(r.type===I.F){if(o=new pi,o.startX=r.endX,o.startY=(r.startY+r.endY)/2,s=new ft(Qt),s.startAngle=0,s.sweepAngle=360,s.centerX=(r.startX+r.endX)/2,s.centerY=(r.startY+r.endY)/2,s.radiusX=Math.abs(r.startX-r.endX)/2,s.radiusY=Math.abs(r.startY-r.endY)/2,o.add(s),r=po(s,o),h=r.length,h===0)n.push(s.centerX),n.push(s.centerY);else for(s=o.startX,o=o.startY,l=0;l<h;l++)p=r[l],P.Qe(s,o,p[2],p[3],p[4],p[5],p[6],p[7],.5,n),s=p[6],o=p[7];Nh(t,i,n,e)}Mt(n),t.restore(),t.Vc(!1)}}}},d.jk=function(t,i,e){return!X.prototype.jk.call(this,t,i,e)||this.xc===null&&this.Ui===null||this.ua===null||this.pathPattern!==null||this.geometry.figures.length!==this.svg.getElementsByTagName("path").length?!1:(t.Gl=this.svg,this.hh(t,i),t.Gl=null,!0)},d.mk=function(t){return this.geometry!==null&&1<this.geometry.figures.length||this.pathPattern!==null?!0:X.prototype.mk.call(this,t)},d.Dv=function(t,i){if(t.nodeName!=="g")t.setAttributeNS(null,"filter",i);else{t=t.getElementsByTagName("path");for(var e=0;e<t.length;e++)t[e].setAttributeNS(null,"filter",i)}},d.ga=function(t,i){if(i===void 0&&(i=new x),t instanceof H){t.Mc()&&O("getDocumentPoint Spot must be a real, specific Spot, not: "+t.toString());var e=this.naturalBounds,n=this.strokeWidth;i.h(t.x*(e.width+n)-n/2+e.x+t.offsetX,t.y*(e.height+n)-n/2+e.y+t.offsetY)}else i.set(t);return this.oe.Ga(i),i},d.mi=function(t){t===void 0&&(t=new T);var i=this.naturalBounds,e=this.oe;i=T.allocAt(i.x,i.y,i.width,i.height);var n=this.strokeWidth;return i.Bc(n/2,n/2),n=x.allocAt(i.x,i.y).transform(e),t.h(n.x,n.y,0,0),n.h(i.right,i.y).transform(e),yi(t,n.x,n.y,0,0),n.h(i.right,i.bottom).transform(e),yi(t,n.x,n.y,0,0),n.h(i.x,i.bottom).transform(e),yi(t,n.x,n.y,0,0),T.free(i),x.free(n),t},d.gh=function(t,i){var e=this.geometry;if(e===null||this.fill===null&&this.stroke===null)return!1;var n=e.bounds,o=this.strokeWidth/2;e.type!==I.j||i||(o+=2);var r=T.alloc();if(r.assign(n),r.Bc(o+2,o+2),!r.ca(t))return T.free(r),!1;if(n=o+1e-4,e.type===I.j)return this.stroke===null||(n=(e.endX-e.startX)*(t.x-e.startX)+(e.endY-e.startY)*(t.y-e.startY),0>(e.startX-e.endX)*(t.x-e.endX)+(e.startY-e.endY)*(t.y-e.endY)||0>n)?!1:(T.free(r),P.Zb(e.startX,e.startY,e.endX,e.endY,o,t.x,t.y));if(e.type===I.u){i=e.startX;var s=e.startY,h=e.endX;if(e=e.endY,r.x=Math.min(i,h),r.y=Math.min(s,e),r.width=Math.abs(h-i),r.height=Math.abs(e-s),this.fill===null){if(r.Bc(-n,-n),r.ca(t))return T.free(r),!1;r.Bc(n,n)}return this.stroke!==null&&r.Bc(o,o),t=r.ca(t),T.free(r),t}if(e.type===I.F){s=e.startX,o=e.startY,h=e.endX;var l=e.endY;if(e=Math.min(s,h),i=Math.min(o,l),s=Math.abs(h-s)/2,o=Math.abs(l-o)/2,e=t.x-(e+s),i=t.y-(i+o),this.fill===null){if(s-=n,o-=n,0>=s||0>=o||1>=e*e/(s*s)+i*i/(o*o))return T.free(r),!1;s+=n,o+=n}return this.stroke!==null&&(s+=n,o+=n),T.free(r),0>=s||0>=o?!1:1>=e*e/(s*s)+i*i/(o*o)}if(e.type===I.o)return T.free(r),this.fill===null?Ig(e,t.x,t.y,o):wp(e,t,o,1<this.strokeWidth,i);O("Unknown Geometry type: "+e.type)},d.Vl=function(t,i,e,n){var o=this.desiredSize,r=this.ig;if(t=Math.max(t,0),i=Math.max(i,0),this.Rd!==null)var s=this.geometry.bounds;else{var h=this.figure,l=Gc[h];if(l===void 0){var u=P.Ze[h];typeof u=="string"&&(u=P.Ze[u]),typeof u=="function"?(l=u(null,100,100),Gc[h]=l):O("Unsupported Figure: "+h)}s=l.bounds}h=s.width,l=s.height,u=s.width;var a=s.height;switch(Mn(this,!0)){case Xt:n=e=0;break;case Ut:u=Math.max(t-r,0),a=Math.max(i-r,0);break;case wi:u=Math.max(t-r,0),n=0;break;case Pi:e=0,a=Math.max(i-r,0)}isFinite(o.width)&&(u=o.width),isFinite(o.height)&&(a=o.height);var f=this.maxSize,p=this.minSize;switch(e=Math.max(e-r,p.width),n=Math.max(n-r,p.height),u=Math.min(f.width,u),a=Math.min(f.height,a),u=isFinite(u)?Math.max(e,u):Math.max(h,e),a=isFinite(a)?Math.max(n,a):Math.max(l,n),e=zc(this),e){case Xt:break;case Ut:h=u,l=a;break;case Dn:e=Math.min(u/h,a/l),isFinite(e)||(e=1),h*=e,l*=e;break;default:O(e+" is not a valid geometryStretch.")}this.Rd!==null?(h===0&&(h=.001),l===0&&(l=.001),e=this.Rd!==null?this.Rd:this.ua,s=e.bounds,n=h/s.width,s=l/s.height,isFinite(n)||(n=1),isFinite(s)||(s=1),this.ua=n===1&&s===1?e:e.copy().scale(n,s)):this.ua!==null&&P.$(this.ua.Rk,t-r)&&P.$(this.ua.Qk,i-r)||(this.ua=q.makeGeometry(this,h,l)),s=this.ua.bounds,t===1/0||i===1/0?this.Ge(s.x-r/2,s.y-r/2,t===0&&h===0?0:s.width+r,i===0&&l===0?0:s.height+r):this.Ge(-(r/2),-(r/2),u+r,a+r),o.w()?(u=o.width,a=o.height,u=Math.min(f.width,u),a=Math.min(f.height,a),u=Math.max(p.width,u),a=Math.max(p.height,a),this.ec.h(0,0,u,a)):this.ec.assign(s)};function zc(t){var i=t.geometryStretch;return t.Rd!==null?i===sn?Ut:i:i===sn?Gc[t.figure].defaultStretch:i}d.eh=function(t,i,e,n){dc(this,t,i,e,n)},d.qs=function(t,i,e){return this.Rj(t.x,t.y,i.x,i.y,e)},d.Rj=function(t,i,e,n,o){var r=this.transform,s=1/(r.m11*r.m22-r.m12*r.m21),h=r.m22*s,l=-r.m12*s,u=-r.m21*s,a=r.m11*s,f=s*(r.m21*r.dy-r.m22*r.dx),p=s*(r.m12*r.dx-r.m11*r.dy);r=t*h+i*u+f,s=t*l+i*a+p,h=e*h+n*u+f,l=e*l+n*a+p,f=this.ig/2,u=this.ua,u===null&&(this.measure(1/0,1/0),u=this.ua);var c=u.bounds;if(a=!1,u.type===I.j)if(1.5>=this.strokeWidth)a=P.Ve(u.startX,u.startY,u.endX,u.endY,r,s,h,l,o);else{if(u.startX===u.endX?(n=f,a=0):(i=(u.endY-u.startY)/(u.endX-u.startX),a=f/Math.sqrt(1+i*i),n=a*i),i=kt(),t=new x,P.Ve(u.startX+n,u.startY+a,u.endX+n,u.endY+a,r,s,h,l,t)&&i.push(t),t=new x,P.Ve(u.startX-n,u.startY-a,u.endX-n,u.endY-a,r,s,h,l,t)&&i.push(t),t=new x,P.Ve(u.startX+n,u.startY+a,u.startX-n,u.startY-a,r,s,h,l,t)&&i.push(t),t=new x,P.Ve(u.endX+n,u.endY+a,u.endX-n,u.endY-a,r,s,h,l,t)&&i.push(t),h=i.length,h===0)return Mt(i),!1;for(a=!0,l=1/0,n=0;n<h;n++)t=i[n],e=(t.x-r)*(t.x-r)+(t.y-s)*(t.y-s),e<l&&(l=e,o.x=t.x,o.y=t.y);Mt(i)}else if(u.type===I.u)a=P.Ff(c.x-f,c.y-f,c.x+c.width+f,c.y+c.height+f,r,s,h,l,o);else if(u.type===I.F){i=T.allocAt(c.x,c.y,c.width,c.height).Bc(f,f);t:if(i.width===0)a=P.Ve(i.x,i.y,i.x,i.y+i.height,r,s,h,l,o);else if(i.height===0)a=P.Ve(i.x,i.y,i.x+i.width,i.y,r,s,h,l,o);else{if(t=i.width/2,u=i.height/2,n=i.x+t,a=i.y+u,e=9999,r!==h&&(e=(s-l)/(r-h)),9999>Math.abs(e)){if(l=s-a-e*(r-n),0>t*t*e*e+u*u-l*l){o.x=NaN,o.y=NaN,a=!1;break t}f=Math.sqrt(t*t*e*e+u*u-l*l),h=(-(t*t*e*l)+t*u*f)/(u*u+t*t*e*e)+n,t=(-(t*t*e*l)-t*u*f)/(u*u+t*t*e*e)+n,u=e*(h-n)+l+a,l=e*(t-n)+l+a,Math.abs((r-h)*(r-h))+Math.abs((s-u)*(s-u))<Math.abs((r-t)*(r-t))+Math.abs((s-l)*(s-l))?(o.x=h,o.y=u):(o.x=t,o.y=l)}else{if(h=u*u,l=r-n,h-=h/(t*t)*l*l,0>h){o.x=NaN,o.y=NaN,a=!1;break t}l=Math.sqrt(h),h=a+l,l=a-l,Math.abs(h-s)<Math.abs(l-s)?(o.x=r,o.y=h):(o.x=r,o.y=l)}a=!0}T.free(i)}else if(u.type===I.o){p=x.alloc();var g=h-r,y=l-s,v=g*g+y*y,m=r,w=s;if(0<v&&c.contains(m,w)&&(p.x=m,p.y=w,this.ca(p)))for(g!==0&&.5>Math.abs(g)?(y*=.5/g,g=.5):y!==0&&.5>Math.abs(y)&&(g*=.5/y,y=.5),m-=g,w-=y;c.contains(m,w);)m-=g,w-=y;for(o.x=h,o.y=l,y=0;y<u.figures.count;y++){var M=u.figures.s[y],S=M.isFilled?m:r,N=M.isFilled?w:s,k=M.segments;c=M.startX,g=M.startY;for(var D=c,z=g,Y=0;Y<k.count;Y++){var A=k.s[Y],L=A.type,$=A.endX,W=A.endY,ut=!1;switch(L){case on:D=$,z=W;break;case Dt:ut=Ca(c,g,$,W,S,N,h,l,p);break;case je:ut=P.Do(c,g,A.point1X,A.point1Y,A.point2X,A.point2Y,$,W,S,N,h,l,.6,p);break;case In:ut=P.Do(c,g,c+2/3*(A.point1X-c),g+2/3*(A.point1Y-g),$+2/3*(A.point1X-$),W+2/3*(A.point1Y-W),$,W,S,N,h,l,.6,p);break;case Qt:case mn:L=A.type===Qt?po(A,M):Or(A,M,c,g);var wt=L.length;if(wt===0){ut=Ca(c,g,A.type===Qt?A.centerX:A.endX,A.type===Qt?A.centerY:A.endY,S,N,h,l,p);break}for(W=null,$=0;$<wt;$++){if(W=L[$],$===0&&Ca(c,g,W[0],W[1],S,N,h,l,p)){var oi=ka(S,N,p,v,o);oi<v&&(v=oi,a=!0)}P.Do(W[0],W[1],W[2],W[3],W[4],W[5],W[6],W[7],S,N,h,l,.6,p)&&(oi=ka(S,N,p,v,o),oi<v&&(v=oi,a=!0))}$=W[6],W=W[7];break;default:O("Unknown Segment type: "+L)}c=$,g=W,ut&&(ut=ka(S,N,p,v,o),ut<v&&(v=ut,a=!0)),A.isClosed&&($=D,W=z,Ca(c,g,$,W,S,N,h,l,p)&&(A=ka(S,N,p,v,o),A<v&&(v=A,a=!0)))}}r=e-t,s=n-i,h=Math.sqrt(r*r+s*s),h!==0&&(r/=h,s/=h),o.x-=r*f,o.y-=s*f,x.free(p)}else O("Unknown Geometry type: "+u.type);return a?(this.transform.Ga(o),!0):!1};function ka(t,i,e,n,o){return t=e.x-t,i=e.y-i,i=t*t+i*i,i<n?(o.x=e.x,o.y=e.y,i):n}function Ca(t,i,e,n,o,r,s,h,l){if(P.$(t,e)&&P.$(i,n)||P.$(o,s)&&P.$(r,h))return!1;var u=!1,a=(o-s)*(i-n)-(r-h)*(t-e);return a===0?!1:(l.x=((o*h-r*s)*(t-e)-(o-s)*(t*n-i*e))/a,l.y=((o*h-r*s)*(i-n)-(r-h)*(t*n-i*e))/a,(t>e?t-e:e-t)<(i>n?i-n:n-i)?(t=i<n?i:n,i=i<n?n:i,(l.y>t||P.$(l.y,t))&&(l.y<i||P.$(l.y,i))&&(u=!0)):(i=t<e?t:e,t=t<e?e:t,(l.x>i||P.$(l.x,i))&&(l.x<t||P.$(l.x,t))&&(u=!0)),u)}d.fh=function(t,i){if(i===void 0)return t.Re(this.actualBounds);var e=this.ua;e===null&&(this.measure(1/0,1/0),e=this.ua),e=e.bounds;var n=this.strokeWidth/2,o=!1,r=x.alloc();return r.h(e.x-n,e.y-n),t.ca(i.Ga(r))&&(r.h(e.x-n,e.bottom+n),t.ca(i.Ga(r))&&(r.h(e.right+n,e.bottom+n),t.ca(i.Ga(r))&&(r.h(e.right+n,e.y-n),t.ca(i.Ga(r))&&(o=!0)))),x.free(r),o},d.Yc=function(t,i){if(this.fh(t,i)||i===void 0&&(i=this.transform,t.Re(this.actualBounds)))return!0;var e=it.alloc();e.set(i),e.Uj();var n=t.left,o=t.right,r=t.top;t=t.bottom;var s=x.alloc();if(s.h(n,r),e.Ga(s),this.gh(s,!0)||(s.h(o,r),e.Ga(s),this.gh(s,!0))||(s.h(n,t),e.Ga(s),this.gh(s,!0))||(s.h(o,t),e.Ga(s),this.gh(s,!0)))return x.free(s),!0;var h=x.alloc(),l=x.alloc();return e.set(i),e.bv(this.transform),e.Uj(),h.x=o,h.y=r,h.transform(e),s.x=n,s.y=r,s.transform(e),i=!1,Ur(this,s,h,l)?i=!0:(s.x=o,s.y=t,s.transform(e),Ur(this,s,h,l)?i=!0:(h.x=n,h.y=t,h.transform(e),Ur(this,s,h,l)?i=!0:(s.x=n,s.y=r,s.transform(e),Ur(this,s,h,l)&&(i=!0)))),x.free(s),it.free(e),x.free(h),x.free(l),i};function Ur(t,i,e,n){if(!t.qs(i,e,n))return!1;t=i.x,i=i.y;var o=e.x,r=e.y;return e=n.x,n=n.y,t===o?(i<r?(t=i,i=r):t=r,n>=t&&n<=i):(t<o?(n=t,t=o):n=o,e>=n&&e<=t)}d.tx=function(t,i,e){function n(v,m){for(var w=v.length,M=0;M<w;M+=2)if(m.zd(v[M],v[M+1])>o)return!0;return!1}if(e&&this.fill!==null&&this.gh(t,!0))return!0;var o=t.Bf(i),r=o;if(1.5<this.strokeWidth&&(o=this.strokeWidth/2+Math.sqrt(o),o*=o),i=this.ua,i===null&&(this.measure(1/0,1/0),i=this.ua,i===null))return!1;if(!e){var s=i.bounds,h=s.x,l=s.y,u=s.x+s.width;if(s=s.y+s.height,uo(t.x,t.y,h,l)<=o&&uo(t.x,t.y,u,l)<=o&&uo(t.x,t.y,h,s)<=o&&uo(t.x,t.y,u,s)<=o)return!0}if(h=i.startX,l=i.startY,u=i.endX,s=i.endY,i.type===I.j){if(e=(h-u)*(t.x-u)+(l-s)*(t.y-s),Yi(t.x,t.y,h,l,u,s)<=(0<=(u-h)*(t.x-h)+(s-l)*(t.y-l)&&0<=e?o:r))return!0}else{if(i.type===I.u)return i=!1,e&&(i=Yi(t.x,t.y,h,l,h,s)<=o||Yi(t.x,t.y,h,l,u,l)<=o||Yi(t.x,t.y,u,l,u,s)<=o||Yi(t.x,t.y,h,s,u,s)<=o),i;if(i.type===I.F){i=t.x-(h+u)/2,r=t.y-(l+s)/2;var a=Math.abs(u-h)/2,f=Math.abs(s-l)/2;if(a===0||f===0)return Yi(t.x,t.y,h,l,u,s)<=o;if(e){if(t=P.$y(a,f,i,r),t*t<=o)return!0}else return!(uo(i,r,-a,0)>=o||uo(i,r,0,-f)>=o||uo(i,r,0,f)>=o||uo(i,r,a,0)>=o)}else if(i.type===I.o){if(u=i.bounds,r=u.x,h=u.y,l=u.x+u.width,u=u.y+u.height,t.x>l&&t.x<r&&t.y>u&&t.y<h&&Yi(t.x,t.y,r,h,r,u)>o&&Yi(t.x,t.y,r,h,l,h)>o&&Yi(t.x,t.y,l,u,r,u)>o&&Yi(t.x,t.y,l,u,l,h)>o)return!1;if(r=Math.sqrt(o),e){if(this.fill===null?Ig(i,t.x,t.y,r):wp(i,t,r,!0,!1))return!0}else{for(e=i.figures,i=0;i<e.count;i++){if(r=e.s[i],s=r.startX,a=r.startY,t.zd(s,a)>o)return!1;for(h=r.segments.s,l=h.length,u=0;u<l;u++)switch(f=h[u],f.type){case on:case Dt:if(s=f.endX,a=f.endY,t.zd(s,a)>o)return!1;break;case je:var p=kt();if(P.Qe(s,a,f.point1X,f.point1Y,f.point2X,f.point2Y,f.endX,f.endY,.8,p),s=n(p,t),Mt(p),s||(s=f.endX,a=f.endY,t.zd(s,a)>o))return!1;break;case In:if(p=kt(),P.cp(s,a,f.point1X,f.point1Y,f.endX,f.endY,.8,p),s=n(p,t),Mt(p),s||(s=f.endX,a=f.endY,t.zd(s,a)>o))return!1;break;case Qt:case mn:p=f.type===Qt?po(f,r):Or(f,r,s,a);var c=p.length;if(c===0){if(s=f.type===Qt?f.centerX:f.endX,a=f.type===Qt?f.centerY:f.endY,t.zd(s,a)>o)return!1;break}f=null;for(var g=kt(),y=0;y<c;y++)if(f=p[y],g.length=0,P.Qe(f[0],f[1],f[2],f[3],f[4],f[5],f[6],f[7],.8,g),n(g,t))return Mt(g),!1;Mt(g),f!==null&&(s=f[6],a=f[7]);break;default:O("Unknown Segment type: "+f.type)}}return!0}}}return!1},d.rc=function(){this.ua=null},d.jq=function(){return this.ig};function Sy(t){var i=t.diagram;i!==null&&i.undoManager.isUndoingRedoing||(t.segmentOrientation=zl,t.toArrow!=="None"?(t.segmentIndex=-1,t.alignmentFocus=ae):t.fromArrow!=="None"&&(t.segmentIndex=0,t.alignmentFocus=new H(1-ae.x,ae.y)))}q.makeGeometry=function(t,i,e){if(t.toArrow!=="None")var n=_n[t.toArrow];else t.fromArrow!=="None"?n=_n[t.fromArrow]:(n=P.Ze[t.figure],typeof n=="string"&&(n=P.Ze[n]),n===void 0&&O("Unknown Shape.figure: "+t.figure),n=n(t,i,e),n.Rk=i,n.Qk=e);if(n===null){var o=P.Ze.Rectangle;typeof o=="function"&&(n=o(t,i,e))}return n};function Ny(t){var i=_n[t];if(i===void 0){var e=t.toLowerCase();if(e==="none")return"None";if(i=_n[e],i===void 0){var n=null,o;for(o in P.tm)if(o.toLowerCase()===e){n=o;break}if(n!==null)return t=I.parse(P.tm[n],!1),_n[n]=t,e!==n&&(_n[e]=n),n}}return typeof i=="string"?i:i instanceof I?t:null}tt.Object.defineProperties(q.prototype,{geometry:{get:function(){return this.ua!==null?this.ua:this.Rd},set:function(t){var i=this.ua,e=this.Rd;if(i!==t){t!==null?this.Rd=this.ua=t.freeze():this.Rd=this.ua=null;var n=this.part;n!==null&&(n.ag=NaN),this.v(),this.g("geometry",i||e,t),vs(this)&&(t=this.part,t!==null&&Rr(this,t,"geometryString"))}}},geometryString:{get:function(){return this.geometry===null?"":this.geometry.toString()},set:function(t){t=I.parse(t);var i=t.normalize();this.geometry=t,this.position=t=x.allocAt(-i.x,-i.y),x.free(t)}},isGeometryPositioned:{get:function(){return(this.l&1048576)!==0},set:function(t){var i=(this.l&1048576)!==0;i!==t&&(this.l^=1048576,this.v(),this.g("isGeometryPositioned",i,t))}},fill:{get:function(){return this.Ui},set:function(t){var i=this.Ui;i!==t&&(t!==null&&Ms(t,"Shape.fill"),t instanceof ct&&t.freeze(),this.Ui=t,this.N(),this.g("fill",i,t))}},stroke:{get:function(){return this.xc},set:function(t){var i=this.xc;i!==t&&(t!==null&&Ms(t,"Shape.stroke"),t instanceof ct&&t.freeze(),this.xc=t,this.N(),this.g("stroke",i,t))}},strokeWidth:{get:function(){return this.ig},set:function(t){var i=this.ig;if(i!==t)if(0<=t){this.ig=t,this.v();var e=this.part;e!==null&&(e.ag=NaN),this.g("strokeWidth",i,t)}else jt(t,"value >= 0",q,"strokeWidth:value")}},strokeCap:{get:function(){return this.Na!==null?this.Na.Gr:"butt"},set:function(t){var i=this.strokeCap;i!==t&&(typeof t!="string"||t!=="butt"&&t!=="round"&&t!=="square"?jt(t,'"butt", "round", or "square"',q,"strokeCap"):(Kr(this),this.Na.Gr=t,this.N(),this.g("strokeCap",i,t)))}},strokeJoin:{get:function(){return this.Na!==null?this.Na.Hr:"miter"},set:function(t){var i=this.strokeJoin;i!==t&&(typeof t!="string"||t!=="miter"&&t!=="bevel"&&t!=="round"?jt(t,'"miter", "bevel", or "round"',q,"strokeJoin"):(Kr(this),this.Na.Hr=t,this.N(),this.g("strokeJoin",i,t)))}},strokeMiterLimit:{get:function(){return this.Na!==null?this.Na.Ir:10},set:function(t){var i=this.strokeMiterLimit;if(i!==t&&1<=t){Kr(this),this.Na.Ir=t,this.N();var e=this.part;e!==null&&(e.ag=NaN),this.g("strokeMiterLimit",i,t)}}},strokeDashArray:{get:function(){return this.Yg},set:function(t){var i=this.Yg;if(i!==t){if(t!==null){for(var e=t.length,n=0,o=0;o<e;o++){var r=t[o];0<=r&&isFinite(r)||O("strokeDashArray:value "+r+" at index "+o+" must be a positive number or zero."),n+=r}if(n===0){if(i===null)return;t=null}}this.Yg=t,this.N(),this.g("strokeDashArray",i,t)}}},strokeDashOffset:{get:function(){return this.Na!==null?this.Na.uj:0},set:function(t){var i=this.strokeDashOffset;i!==t&&0<=t&&(Kr(this),this.Na.uj=t,this.N(),this.g("strokeDashOffset",i,t))}},figure:{get:function(){return this.$m},set:function(t){var i=this.$m;if(i!==t){var e=P.Ze[t];typeof e=="function"?e=t:(e=P.Ze[t.toLowerCase()])||O("Unknown Shape.figure: "+t),i!==e&&(t=this.part,t!==null&&(t.ag=NaN),this.$m=e,this.Rd=null,this.rc(),this.v(),this.g("figure",i,e))}}},toArrow:{get:function(){return this.Ua!==null?this.Ua.V:"None"},set:function(t){var i=this.toArrow;if(t===!0?t="Standard":t===!1&&(t=""),i!==t){var e=Ny(t);e===null?O("Unknown Shape.toArrow: "+t):i!==e&&(this.Ua===null&&(this.Ua=new hr),this.Ua.V=e,this.Rd=null,this.rc(),this.v(),Sy(this),this.g("toArrow",i,e))}}},fromArrow:{get:function(){return this.Ua!==null?this.Ua.j:"None"},set:function(t){var i=this.fromArrow;if(t===!0?t="Standard":t===!1&&(t=""),i!==t){var e=Ny(t);e===null?O("Unknown Shape.fromArrow: "+t):i!==e&&(this.Ua===null&&(this.Ua=new hr),this.Ua.j=e,this.Rd=null,this.rc(),this.v(),Sy(this),this.g("fromArrow",i,e))}}},spot1:{get:function(){return this.Na!==null?this.Na.fg:Si},set:function(t){var i=this.spot1;i.D(t)||(t=t.J(),Kr(this),this.Na.fg=t,this.v(),this.g("spot1",i,t))}},spot2:{get:function(){return this.Na!==null?this.Na.gg:Si},set:function(t){var i=this.spot2;i.D(t)||(t=t.J(),Kr(this),this.Na.gg=t,this.v(),this.g("spot2",i,t))}},parameter1:{get:function(){return this.Tn},set:function(t){var i=this.Tn;i!==t&&(this.Tn=t,this.rc(),this.v(),this.g("parameter1",i,t))}},parameter2:{get:function(){return this.Un},set:function(t){var i=this.Un;i!==t&&(this.Un=t,this.rc(),this.v(),this.g("parameter2",i,t))}},naturalBounds:{get:function(){return this.ec}},pathPattern:{get:function(){return this.Na!==null?this.Na.ar:null},set:function(t){var i=this.pathPattern;i!==t&&(Kr(this),this.Na.ar=t,this.N(),this.g("pathPattern",i,t))}},geometryStretch:{get:function(){return this.Na!==null?this.Na.iq:sn},set:function(t){var i=this.geometryStretch;i!==t&&(Kr(this),this.Na.iq=t,this.v(),this.g("geometryStretch",i,t))}},interval:{get:function(){return this.fa!==null?this.fa.Sk:1},set:function(t){var i=this.interval;if(t=Math.round(t),i!==t&&t!==0&&isFinite(t)){this.fa===null&&(this.fa=new $n),this.fa.Sk=t;var e=this.diagram;e!==null&&this.panel===e.grid&&Io(e),this.v(),e=this.panel,e!==null&&(e.graduatedIntervals=null),this.g("interval",i,t)}}},graduatedStart:{get:function(){return this.fa!==null?this.fa.u:0},set:function(t){var i=this.graduatedStart;i!==t&&(0>t?t=0:1<t&&(t=1),this.fa===null&&(this.fa=new $n),this.fa.u=t,this.v(),this.g("graduatedStart",i,t))}},graduatedEnd:{get:function(){return this.fa!==null?this.fa.j:1},set:function(t){var i=this.graduatedEnd;i!==t&&(0>t?t=0:1<t&&(t=1),this.fa===null&&(this.fa=new $n),this.fa.j=t,this.v(),this.g("graduatedEnd",i,t))}},graduatedSkip:{get:function(){return this.fa!==null?this.fa.o:null},set:function(t){var i=this.graduatedSkip;i!==t&&(this.fa===null&&(this.fa=new $n),this.fa.o=t,this.v(),this.g("graduatedSkip",i,t))}}}),q.prototype.intersectsRect=q.prototype.Yc,q.prototype.containedInRect=q.prototype.fh,q.prototype.getNearestIntersectionPoint=q.prototype.qs,q.prototype.getDocumentBounds=q.prototype.mi,q.prototype.getDocumentPoint=q.prototype.ga;var _n=new Xe,Gc=new Xe;q.className="Shape",q.getFigureGenerators=function(){var t=new _,i;for(i in P.Ze)i!==i.toLowerCase()&&t.add(i,P.Ze[i]);return t.freeze(),t},q.defineFigureGenerator=function(t,i){var e=t.toLowerCase(),n=P.Ze;n[t]=i,n[e]=t},q.getArrowheadGeometries=function(){var t=new _;for(n in P.tm)if(_n[n]===void 0){var i=I.parse(P.tm[n],!1);_n[n]=i,i=n.toLowerCase(),i!==n&&(_n[i]=n)}for(var e in _n)if(e!==e.toLowerCase()){var n=_n[e];n instanceof I&&t.add(e,n)}return t.freeze(),t},q.defineArrowheadGeometry=function(t,i){var e=null;typeof i=="string"?e=I.parse(i,!1):e=i,i=t.toLowerCase(),i!=="none"&&t!==i||O("Shape.defineArrowheadGeometry name must not be empty or None or all-lower-case: "+t);var n=_n;n[t]=e,n[i]=t};function Xc(){this.oc=!1,this.Gr="butt",this.Hr="miter",this.Ir=10,this.uj=0,this.ar=null,this.iq=sn,this.gg=this.fg=Si}Xc.prototype.copy=function(){var t=new Xc;return t.Gr=this.Gr,t.Hr=this.Hr,t.Ir=this.Ir,t.uj=this.uj,t.ar=this.ar,t.iq=this.iq,t.fg=this.fg.J(),t.gg=this.gg.J(),t};function St(t,i){return X.call(this),Aa||(bi=rn?new Je(null).context:null,Aa=!0),this.l|=2097152,this.fc="",this.xc="black",this.Ae="13px sans-serif",this.Kq=this.Db=this.Gc=0,this.da=this.fa=this.Fm=null,this.Ih=0,this.df=null,this.Le=0,this.ze=this.Rb=this.Qc=null,typeof t=="string"?this.text=t:t&&Object.assign(this,t),i&&Object.assign(this,i),this}pt(St,X),St.prototype.cloneProtected=function(t){X.prototype.cloneProtected.call(this,t),t.fc=this.fc,t.xc=this.xc,t.Ae=this.Ae,t.Gc=this.Gc,t.Db=this.Db,t.Kq=this.Kq,t.Fm=this.Fm,this.fa!==null&&(t.fa=this.fa.copy()),this.da!==null&&(t.da=this.da.oc?this.da:this.da.copy()),t.Ih=this.Ih,t.df=this.df,t.Le=this.Le,t.Qc=this.Qc,t.Rb=this.Rb,t.ze=this.ze};function Rn(t){t.da===null?t.da=new _c:t.da.oc&&(t.da=t.da.copy())}d=St.prototype,d.th=function(){X.prototype.th.call(this),this.da!==null&&(this.da.oc=!0)};function Py(t,i){t.l=i.l|6144,t.pb=i.opacity,t.Ma=i.background,t.areaBackground=i.areaBackground,t.jd=i.desiredSize.J(),t.minSize=i.minSize.J(),t.maxSize=i.maxSize.J(),i.Mb!==null?t.Mb=i.Mb.copy():t.Mb=null,t.Ca=i.scale,t.Lb=i.angle,t.stretch=i.stretch,t.Kg=i.margin.J(),t.Kb=i.alignment.J(),t.rk=i.alignmentFocus.J(),t.segmentFraction=i.segmentFraction,t.segmentOffset=i.segmentOffset.J(),t.segmentOrientation=i.segmentOrientation,i.tb!==null&&(t.tb=i.tb.copy()),t.shadowVisible=i.shadowVisible,t.fc=i.fc,t.xc=i.xc,t.Ae=i.Ae,t.fa!==null&&(t.fa=i.fa.copy()),i.da!==null&&(t.da=i.da.oc?i.da:i.da.copy()),t.Ih=i.Ih}d.qb=function(t){t.classType===St?this.wrap=t:X.prototype.qb.call(this,t)},d.toString=function(){return 22<this.fc.length?'TextBlock("'+this.fc.substring(0,20)+'"...)':'TextBlock("'+this.fc+'")'},d.v=function(){X.prototype.v.call(this)},d.hh=function(t,i){if(this.xc!==null&&this.fc.length!==0&&this.Ae!==null){var e=this.naturalBounds,n=this.actualBounds,o=e.width,r=e.height,s=Il(this),h=t.textAlign=this.textAlign,l=i.sn;h==="start"?h=l?"right":"left":h==="end"&&(h=l?"left":"right"),l=this.isUnderline;var u=this.isStrikethrough;Me(this,t,this.xc,!0,!1,e,n),(l||u)&&Me(this,t,this.xc,!1,!1,e,n),n=0,e=!1;var a=this.oe,f=a.dx-(s*a.m21+a.dx);a=a.dy-(s*a.m22+a.dy);var p=i.scale;switch(8>(f*f+a*a)*p*p&&(e=!0),i.ib!==t&&(e=!1),i.ib instanceof pe&&(e=!1),i.Gf("textGreeking")===!1&&(e=!1),i=this.spacingAbove,f=this.spacingBelow,this.flip){case Sl:t.translate(o,0),t.scale(-1,1);break;case Ml:t.translate(0,r),t.scale(1,-1);break;case Nl:t.translate(o,r),t.scale(-1,-1)}if(t.yc(),a=this.Gc,p=(i+s+f)*a,r>p&&(n=this.verticalAlignment,n=n.y*r-n.y*p+n.offsetY),a===1&&this.ze!==null)f=this.Db,f>o&&(f=o),this.Nj(this.ze,t,0,n+i,o,s,f,e,h,l,u);else if(this.Qc!==null&&this.Rb!==null)for(p=0;p<a;p++){var c=this.Qc[p];c>o&&(c=o),n+=i,this.Nj(this.Rb[p],t,0,n,o,s,c,e,h,l,u),n+=s+f}switch(this.flip){case Sl:t.scale(-1,1),t.translate(-o,0);break;case Ml:t.scale(1,-1),t.translate(0,-r);break;case Nl:t.scale(-1,-1),t.translate(-o,-r)}}},d.Nj=function(t,i,e,n,o,r,s,h,l,u,a){var f=0;if(h)l==="left"?f=0:l==="right"?f=o-s:l==="center"&&(f=(o-s)/2),i.fillRect(e+f,n+.25*r,s,1);else{if(l==="left"?f=0:l==="right"?f=o:l==="center"&&(f=o/2),o=Ta!==null?Ta(this,r):.75*r,i.fillText(t,e+f,n+o),t=r/20|0,t===0&&(t=1),l==="right"?f-=s:l==="center"&&(f-=s/2),u){h=La!==null?La(this,r):.8*r,l=e+f,u=n+h,o=e+f+s,h=n+h;var p=t;i.beginPath(),i.lineWidth=p,i.moveTo(l,u),i.lineTo(o,h),i.stroke(),i.Se(),i instanceof pe&&i.ad.classList.add("gojs-td")}a&&(a=n+r-r/2.2|0,t%2!==0&&(a+=.5),n=e+f,r=a,e=e+f+s,s=a,f=t,i.beginPath(),i.lineWidth=f,i.moveTo(n,r),i.lineTo(e,s),i.stroke(),i.Se(),i instanceof pe&&i.ad.classList.add("gojs-td"))}},d.jk=function(t,i,e){if(!X.prototype.jk.call(this,t,i,e))return!1;if(Me(this,t,this.xc,!0,!1,this.naturalBounds,this.actualBounds),e){if(this.svg.getElementsByTagName("text").length===0)return!0;for(i=this.svg.getElementsByClassName("gojs-td"),e=0;e<i.length;e++)ny(t,i[e],!1)}else i=this.svg,i.innerHTML=this.text,ny(t,i,!0);return!0},d.mk=function(t){return 1<this.lineCount||this.isUnderline||this.isStrikethrough?!0:X.prototype.mk.call(this,t)},d.Dv=function(t,i){if(t.nodeName!=="g")t.setAttributeNS(null,"filter",i);else{t=t.getElementsByTagName("text");for(var e=0;e<t.length;e++)t[e].setAttributeNS(null,"filter",i)}},d.Vl=function(t,i,e,n){var o=this.Gc;this.Ih=t,this.l&=-16777217;var r=this.Ae;bi!==null&&Ay!==r&&(Ay=bi.font=r),this.Db=this.Le=0,this.ze=this.Rb=this.Qc=this.df=null;var s;if(isNaN(this.desiredSize.width)){if(r=this.fc.replace(/\r\n/g,` `).replace(/\r/g,` `),r.length===0)r=8;else if(this.isMultiline){for(var h=s=0,l=!1;!l;){var u=r.indexOf(` `,h);u===-1&&(u=r.length,l=!0),h=r.substr(h,u-h),this.formatting===Dl&&(h=h.trim()),s=Math.max(s,un(h)),h=u+1}r=s}else s=r.indexOf(` `,0),0<=s&&(r=r.substr(0,s)),r=un(r);r=Math.min(r,t/this.scale)}else r=this.desiredSize.width;if(this.panel!==null&&(r=Math.min(r,this.panel.maxSize.width)),s=Cy(this,r),isNaN(this.desiredSize.height)?s=Math.min(s,i/this.scale):s=this.desiredSize.height,l=s,this.Db!==0&&this.Qc!==null&&this.Rb!==null&&this.overflow===ja&&(i=this.Ae,i=this.overflow===ja?ky(i):0,u=this.spacingAbove+this.spacingBelow,u=Math.max(0,Il(this)+u),l=Math.min(this.maxLines-1,Math.max(Math.floor(l/u+.01)-1,0)),!(l+1>=this.Rb.length))){for(this.l|=16777216,u=this.Rb[l],i=Math.max(1,t-i);un(u)>i&&1<u.length;)u=u.substr(0,u.length-1);u+=El,i=un(u),this.Rb[l]=u,this.Rb=this.Rb.slice(0,l+1),this.Qc[l]=i,this.Qc=this.Qc.slice(0,l+1),this.Le=this.Rb.length,this.Db=Math.max(this.Db,i),this.Gc=this.Le,this.Gc===1&&(this.ze=this.Rb[0])}(this.wrap===Ty||isNaN(this.desiredSize.width))&&(r=isNaN(t)?this.Db:Math.min(t,this.Db)),r=Math.max(e,r),s=Math.max(n,s),ao(this.ec,r,s),this.Ge(0,0,r,s),this.svg!==null&&o!==this.Gc&&(this.Uc=!0)},d.eh=function(t,i,e,n){dc(this,t,i,e,n)};function Ol(t,i,e){t.ze===null?(t.ze=i,t.Db=e):((t.Rb===null||t.Qc===null)&&(t.Rb=[],t.Qc=[],t.Rb.push(t.ze),t.Qc.push(t.Db)),t.Rb.push(i),t.Qc.push(e),t.Rb.length>t.maxLines&&(t.l|=16777216))}function Kc(t,i,e,n){var o=t.formatting===Dl;o&&(i=i.trim());var r=0,s=t.Ae,h=t.spacingAbove+t.spacingBelow;h=Math.max(0,Il(t)+h);var l=t.overflow===ja?ky(s):0;if(t.Gc>=t.maxLines)n!==null&&n.h(0,h);else if(s=i,t.wrap===Uc){t.Le=1;var u=un(i);if(l===0||u<=e)t.Db=Math.max(t.Db,u),Ol(t,i,t.Db),n!==null&&n.h(u,h);else{for(r=Ph(t,s),s=s.substr(r.length),i=Ph(t,s),u=un(r+i);0<i.length&&u<=e;)r+=i,s=s.substr(i.length),i=Ph(t,s),u=r+i,o&&(u=u.trim()),u=un(u);for(o&&(i=i.trim()),r+=i,e=Math.max(1,e-l);un(r)>e&&1<r.length;)r=r.substr(0,r.length-1);t.l|=16777216,r+=El;var a=un(r);t.Db=a,Ol(t,r,a),n!==null&&n.h(a,h)}}else{for(l=0,s.length===0&&(l=1,Ol(t,s,0));0<s.length;){for(i=Ph(t,s),s=s.substr(i.length);un(i)>e;){var f=1;for(u=un(i.substr(0,f)),a=0;u<=e;)f++,a=u,u=un(i.substr(0,f));if(f===1){var p=u;r=Math.max(r,u)}else p=a,r=Math.max(r,a);if(f--,1>f&&(f=1),Ol(t,i.substr(0,f),p),l++,i=i.substr(f),t.Gc+l>t.maxLines)break}for(a=Ph(t,s),u=un(i+a);0<a.length&&u<=e;)i+=a,s=s.substr(a.length),a=Ph(t,s),u=i+a,o&&(u=u.trim()),u=un(u);if(o&&(i=i.trim()),i!==""&&(i[i.length-1]===""&&(i=i.substring(0,i.length-1)+"‐"),a.length===0?(f=u,r=Math.max(r,u)):(f=a=un(i),r=Math.max(r,a)),Ol(t,i,f),l++,t.Gc+l>t.maxLines))break}t.Le=Math.min(t.maxLines,l),t.Db=Math.max(t.Db,r),n!==null&&n.h(t.Db,h*t.Le)}}function Ph(t,i){if(t.wrap===Ly)return i.substr(0,1);for(var e=i.length,n=0,o=t1;n<e&&!o.test(i.charAt(n));)n++;for(t.formatting===jy&&(e=Math.min(e,n+1));n<e&&o.test(i.charAt(n));)n++;return n>=i.length?i:i.substr(0,n)}function un(t){return bi===null?8*t.length:bi.measureText(t).width}function Il(t){if(t.df!==null)return t.df;var i=t.Ae;if(bi===null){var e=16;return t.df=e}return Jc[i]!==void 0&&5e3>Fy?e=Jc[i]:(e=1.3*bi.measureText("M").width,Jc[i]=e,Fy++),t.df=e}function ky(t){if(bi===null)return 6;if(Fa[t]!==void 0&&5e3>Zc)var i=Fa[t];else i=bi.measureText(El).width,Fa[t]=i,Zc++;return i}function Cy(t,i){var e=t.fc.replace(/\r\n/g,` `).replace(/\r/g,` `),n=t.spacingAbove+t.spacingBelow;if(n=Math.max(0,Il(t)+n),e.length===0)return t.Db=0,t.Gc=1,n;if(!t.isMultiline){var o=e.indexOf(` `,0);0<=o&&(e=e.substr(0,o))}o=0;for(var r=t.Gc=0,s,h=!1;!h;){if(s=e.indexOf(` `,r),s===-1&&(s=e.length,h=!0),r<=s){if(r=e.substr(r,s-r),t.wrap!==Uc){t.Le=0;var l=Z.alloc();Kc(t,r,i,l),o+=l.height,Z.free(l),t.Gc+=t.Le}else Kc(t,r,i,null),o+=n,t.Gc++;t.Gc===t.maxLines&&(h=!0)}r=s+1}return t.Kq=o}tt.Object.defineProperties(St.prototype,{font:{get:function(){return this.Ae},set:function(t){var i=this.Ae;i!==t&&(this.Ae=t,this.df=null,this.v(),this.g("font",i,t))}},text:{get:function(){return this.fc},set:function(t){var i=this.fc;t!=null?t=t.toString():t="",i!==t&&(this.fc=t,this.v(),this.g("text",i,t),this.Uc=!0)}},textAlign:{get:function(){return this.da!==null?this.da.Nr:"start"},set:function(t){var i=this.textAlign;i===t||t!=="start"&&t!=="end"&&t!=="left"&&t!=="right"&&t!=="center"||(Rn(this),this.da.Nr=t,this.N(),this.g("textAlign",i,t))}},flip:{get:function(){return this.da!==null?this.da.Xf:Xt},set:function(t){var i=this.flip;i!==t&&(Rn(this),this.da.Xf=t,this.N(),this.g("flip",i,t))}},verticalAlignment:{get:function(){return this.da!==null?this.da.Xr:Au},set:function(t){var i=this.verticalAlignment;i.D(t)||(t=t.J(),Rn(this),this.da.Xr=t,ch(this),this.g("verticalAlignment",i,t))}},naturalBounds:{get:function(){if(!this.ec.w()){var t=Z.alloc();Kc(this,this.fc,999999,t);var i=t.width;Z.free(t),t=Cy(this,i);var e=this.desiredSize;isNaN(e.width)||(i=e.width),isNaN(e.height)||(t=e.height),ao(this.ec,i,t)}return this.ec}},isMultiline:{get:function(){return(this.l&2097152)!==0},set:function(t){var i=(this.l&2097152)!==0;i!==t&&(this.l^=2097152,this.v(),this.g("isMultiline",i,t))}},isUnderline:{get:function(){return(this.l&4194304)!==0},set:function(t){var i=(this.l&4194304)!==0;i!==t&&(this.l^=4194304,this.Uc=!0,this.N(),this.g("isUnderline",i,t))}},isStrikethrough:{get:function(){return(this.l&8388608)!==0},set:function(t){var i=(this.l&8388608)!==0;i!==t&&(this.l^=8388608,this.Uc=!0,this.N(),this.g("isStrikethrough",i,t))}},wrap:{get:function(){return this.da!==null?this.da.Zr:Hc},set:function(t){var i=this.wrap;i!==t&&(Rn(this),this.da.Zr=t,this.v(),this.g("wrap",i,t))}},overflow:{get:function(){return this.da!==null?this.da.Zq:Wc},set:function(t){var i=this.overflow;i!==t&&(Rn(this),this.da.Zq=t,this.v(),this.g("overflow",i,t))}},isOverflowed:{get:function(){return(this.l&16777216)!==0}},stroke:{get:function(){return this.xc},set:function(t){var i=this.xc;i!==t&&(t!==null&&Ms(t,"TextBlock.stroke"),t instanceof ct&&t.freeze(),this.xc=t,this.N(),this.g("stroke",i,t))}},lineCount:{get:function(){return this.Gc}},lineHeight:{get:function(){return Il(this)}},editable:{get:function(){return(this.l&1048576)!==0},set:function(t){var i=(this.l&1048576)!==0;i!==t&&(this.l^=1048576,this.g("editable",i,t))}},textEditor:{get:function(){return this.da!==null?this.da.Pr:null},set:function(t){var i=this.textEditor;i!==t&&(Rn(this),this.da.Pr=t,this.g("textEditor",i,t))}},errorFunction:{get:function(){return this.da!==null?this.da.Hd:null},set:function(t){var i=this.errorFunction;i!==t&&(Rn(this),this.da.Hd=t,this.g("errorFunction",i,t))}},interval:{get:function(){return this.fa!==null?this.fa.Sk:1},set:function(t){var i=this.interval;if(t=Math.round(t),i!==t&&t!==0&&isFinite(t)){this.fa===null&&(this.fa=new $n),this.fa.Sk=t,this.v();var e=this.panel;e!==null&&(e.graduatedIntervals=null),this.g("interval",i,t)}}},graduatedStart:{get:function(){return this.fa!==null?this.fa.u:0},set:function(t){var i=this.graduatedStart;i!==t&&(0>t?t=0:1<t&&(t=1),this.fa===null&&(this.fa=new $n),this.fa.u=t,this.v(),this.g("graduatedStart",i,t))}},graduatedEnd:{get:function(){return this.fa!==null?this.fa.j:1},set:function(t){var i=this.graduatedEnd;i!==t&&(0>t?t=0:1<t&&(t=1),this.fa===null&&(this.fa=new $n),this.fa.j=t,this.v(),this.g("graduatedEnd",i,t))}},graduatedFunction:{get:function(){return this.fa!==null?this.fa.F:null},set:function(t){var i=this.graduatedFunction;i!==t&&(this.fa===null&&(this.fa=new $n),this.fa.F=t,this.v(),this.g("graduatedFunction",i,t))}},graduatedSkip:{get:function(){return this.fa!==null?this.fa.o:null},set:function(t){var i=this.graduatedSkip;i!==t&&(this.fa===null&&(this.fa=new $n),this.fa.o=t,this.v(),this.g("graduatedSkip",i,t))}},textValidation:{get:function(){return this.da!==null?this.da.vj:null},set:function(t){var i=this.textValidation;i!==t&&(Rn(this),this.da.vj=t,this.g("textValidation",i,t))}},textEdited:{get:function(){return this.da!==null?this.da.Or:null},set:function(t){var i=this.textEdited;i!==t&&(Rn(this),this.da.Or=t,this.g("textEdited",i,t))}},spacingAbove:{get:function(){return this.da!==null?this.da.Cr:0},set:function(t){var i=this.spacingAbove;i!==t&&(Rn(this),this.da.Cr=t,this.v(),this.g("spacingAbove",i,t))}},spacingBelow:{get:function(){return this.da!==null?this.da.Dr:0},set:function(t){var i=this.spacingBelow;i!==t&&(Rn(this),this.da.Dr=t,this.v(),this.g("spacingBelow",i,t))}},formatting:{get:function(){return this.da!==null?this.da.fq:Dl},set:function(t){var i=this.formatting;i!==t&&(Rn(this),this.da.fq=t,this.v(),this.g("formatting",i,t))}},maxLines:{get:function(){return this.da!==null?this.da.Iq:1/0},set:function(t){var i=this.maxLines;i!==t&&(t=Math.floor(t),0>=t&&jt(t,"> 0",St,"maxLines"),Rn(this),this.da.Iq=t,this.v(),this.g("maxLines",i,t))}},metrics:{get:function(){return{arrSize:this.Qc!==null?this.Qc:[this.Db],arrText:this.Rb!==null?this.Rb:[this.ze],maxLineWidth:this.Db,fontHeight:this.df}}},choices:{get:function(){return this.Fm},set:function(t){var i=this.Fm;i!==t&&(this.Fm=t,this.g("choices",i,t))}}});var Ta=null,La=null,Uc=new R(St,"None",0),Ty=new R(St,"WrapFit",1),Hc=new R(St,"WrapDesiredSize",2),Ly=new R(St,"WrapBreakAll",3),Wc=new R(St,"OverflowClip",0),ja=new R(St,"OverflowEllipsis",1),Dl=new R(St,"FormatTrim",0),jy=new R(St,"FormatNone",0),t1=/[ \u200b\u00ad]/,Jc=new Xe,Fy=0,Fa=new Xe,Zc=0,El="...",Ay="",bi=null,Aa=!1;St.className="TextBlock";function _c(){this.oc=!1,this.Hd=null,this.Xf=Xt,this.fq=Dl,this.Iq=1/0,this.Zq=Wc,this.Dr=this.Cr=0,this.Nr="start",this.vj=this.Pr=this.Or=null,this.Xr=Au,this.Zr=Hc}_c.prototype.copy=function(){var t=new _c;return t.Hd=this.Hd,t.Xf=this.Xf,t.fq=this.fq,t.Iq=this.Iq,t.Zq=this.Zq,t.Cr=this.Cr,t.Dr=this.Dr,t.Nr=this.Nr,t.Or=this.Or,t.Pr=this.Pr,t.vj=this.vj,t.Xr=this.Xr,t.Zr=this.Zr,t},St.getEllipsis=function(){return El},St.setEllipsis=function(t){El=t,Fa=new Xe,Zc=0},St.getBaseline=function(){return Ta},St.setBaseline=function(t){Ta=t},St.getUnderline=function(){return La},St.setUnderline=function(t){La=t},St.isValidFont=function(t){if(Aa||(bi=rn?new Je(null).context:null,Aa=!0),bi===null)return!0;var i=bi.font;if(t===i||t==="10px sans-serif")return!0;bi.font="10px sans-serif",bi.font=t;var e=bi.font;if(e!=="10px sans-serif")return bi.font=i,!0;bi.font="19px serif";var n=bi.font;return bi.font=t,e=bi.font,bi.font=i,e!==n},St.FormatNone=jy,St.FormatTrim=Dl,St.None=Uc,St.OverflowClip=Wc,St.OverflowEllipsis=ja,St.WrapBreakAll=Ly,St.WrapDesiredSize=Hc,St.WrapFit=Ty;function $n(){this.Sk=1,this.u=0,this.j=1,this.o=this.F=null}$n.prototype.copy=function(){var t=new $n;return t.Sk=this.Sk,t.u=this.u,t.j=this.j,t.F=this.F,t.o=this.o,t},$n.className="GradElementSettings";function te(t,i){X.call(this),this.Eg=null,this.po="",this.Xg=Mg,this.Mk=Ut,this.Zg=this.Hd=null,this.Lk=vt,this.Xf=Xt,this.ul=null,this.pn=!1,this.dn=!0,this.$k=!1,this.at=this.ql=null,typeof t=="string"?this.source=t:t&&Object.assign(this,t),i&&Object.assign(this,i)}var kh;pt(te,X),te.prototype.cloneProtected=function(t){X.prototype.cloneProtected.call(this,t),t.po=this.po,t.element=this.Eg,t.Xg=this.Xg.J(),t.Mk=this.Mk,t.Xf=this.Xf,t.Hd=this.Hd,t.Zg=this.Zg,t.Lk=this.Lk.J(),t.dn=this.dn,t.ql=this.ql},te.prototype.qb=function(t){t===Xt||t===Dn||t===wl?this.imageStretch=t:X.prototype.qb.call(this,t)},te.prototype.toString=function(){return"Picture("+this.source+")#"+qi(this)};function Ch(t){t===void 0&&(t=""),t!==""?kh[t]&&(delete kh[t],Oa--):(kh=new Xe,Oa=0)}function Oy(t,i){i.qy||(i.Eq=function(e){i.rq=!0,i.kn=!1;var n=i.Bg.copy();if(n!=null){for(n=n.iterator;n.next();){var o=n.value;o.N();var r=i.getAttribute("src")||"",s=o.Og.I(r);if(s!==null)for(var h=s.length,l=0;l<h;l++)r=s[l],o.Wn.add(r),r.Uc=!0,o.ac(),i.gn&&(i.du===void 0&&(i.du=e),r.Zg!==null&&r.Zg(r,e))}i.Bg.clear()}t.desiredSize.w()||(Ie(t,!1),t.v())},i.Xp=function(e){i.kn=e;var n=i.Bg.copy();if(n!=null){for(n=n.iterator;n.next();){var o=n.value,r=i.getAttribute("src")||"",s=o.Og.I(r);if(s!==null){o=s.length,r=kt();for(var h=0;h<o;h++)r.push(s[h]);if(i.gn)for(h=0;h<o;h++)s=r[h],s.Hd!==null&&s.Hd(s,e);Mt(r)}}i.Bg.clear()}},i.addEventListener("load",i.Eq),i.addEventListener("error",i.Xp),i.qy=!0)}te.prototype.hA=function(){if(this.source!==""){Ch(this.source);var t=this.source;this.source="",this.source=t}},te.prototype.redraw=function(){this.N(),this.Uc=!0},te.prototype.hh=function(t,i){var e=this.Eg;if(e!==null){var n=e.getAttribute("src");if(!(e instanceof HTMLImageElement&&(n===null||n==="")||e.kn instanceof Event&&t instanceof Gr)){var o=t instanceof pe;n=this.naturalBounds;var r=0,s=0,h=this.pn,l=h?+e.width:e.naturalWidth;if(h=h?+e.height:e.naturalHeight,l===void 0&&e.videoWidth&&(l=e.videoWidth),h===void 0&&e.videoHeight&&(h=e.videoHeight),l=l||n.width,h=h||n.height,l!==0&&h!==0){var u=l,a=h;this.sourceRect.w()&&(r=this.Xg.x,s=this.Xg.y,l=this.Xg.width,h=this.Xg.height);var f=l,p=h,c=this.Mk,g=this.Lk;switch(c){case Xt:if(this.sourceRect.w())break;f>=n.width&&(r=r+g.offsetX+(f*g.x-n.width*g.x)),p>=n.height&&(s=s+g.offsetY+(p*g.y-n.height*g.y)),l=Math.min(n.width,f),h=Math.min(n.height,p);break;case Ut:f=n.width,p=n.height;break;case Dn:case wl:c===Dn?(c=Math.min(n.height/p,n.width/f),f*=c,p*=c):c===wl&&(c=Math.max(n.height/p,n.width/f),f*=c,p*=c,f>=n.width&&(r=(r+g.offsetX+(f*g.x-n.width*g.x)/f)*l),p>=n.height&&(s=(s+g.offsetY+(p*g.y-n.height*g.y)/p)*h),l*=1/(f/n.width),h*=1/(p/n.height),f=n.width,p=n.height)}c=this.Df()*i.scale;var y=f*c*p*c,v=l*h/y,m=e.__goCache;c=null;var w=i1;if(!o){if(e.rq&&m!==void 0&&4<y&&v>w*w)for(m.gi===null&&(Dy(m,4,u,a,e),Dy(m,16,u,a,e)),o=m.gi,u=o.length,a=0;a<u&&o[a].ratio*o[a].ratio<v;a++)c=o[a];if(!i.Wm){if(this.ul===null)if(this.Eg===null)this.ul=!1;else{o=new Je(null).context;try{o.drawImage(this.Eg,0,0)}catch{this.dn=!1}try{o.getImageData(0,0,1,1).data[3]&&(this.ul=!1),this.ul=!1}catch{this.ul=!0}}if(this.ul)return}}switch(o=f<n.width?g.offsetX+(n.width*g.x-f*g.x):0,g=p<n.height?g.offsetY+(n.height*g.y-p*g.y):0,this.flip){case Sl:t.translate(Math.min(n.width,f),0),t.scale(-1,1);break;case Ml:t.translate(0,Math.min(n.height,p)),t.scale(1,-1);break;case Nl:t.translate(Math.min(n.width,f),Math.min(n.height,p)),t.scale(-1,-1)}if(t.yc(),i.Gf("pictureRatioOptimization")&&!i.$i&&m!==void 0&&c!==null&&c.ratio!==1){t.save(),i=c.ratio;try{t.drawImage(c.source,r/i,s/i,Math.min(c.source.width,l/i),Math.min(c.source.height,h/i),o,g,Math.min(n.width,f),Math.min(n.height,p)),t instanceof pe&&(this.at=[r/i,s/i,Math.min(c.source.width,l/i),Math.min(c.source.height,h/i),o,g,Math.min(n.width,f),Math.min(n.height,p)])}catch{this.dn=!1}t.restore()}else try{t.drawImage(e,r,s,l,h,o,g,Math.min(n.width,f),Math.min(n.height,p)),t instanceof pe&&(this.at=[r,s,l,h,o,g,Math.min(n.width,f),Math.min(n.height,p)])}catch{this.dn=!1}switch(this.flip){case Sl:t.scale(-1,1),t.translate(-Math.min(n.width,f),0);break;case Ml:t.scale(1,-1),t.translate(0,-Math.min(n.height,p));break;case Nl:t.scale(-1,-1),t.translate(-Math.min(n.width,f),-Math.min(n.height,p))}}}}},te.prototype.Vl=function(t,i,e,n){var o=this.desiredSize,r=Mn(this,!0),s=this.Eg,h=this.pn,l=0,u=0;(h||!this.$k&&s&&s.complete)&&(this.$k=!0),s===null?(isFinite(o.width)||(t=0),isFinite(o.height)||(i=0)):(l=h?+s.width:s.naturalWidth,u=h?+s.height:s.naturalHeight),isFinite(o.width)||r===Ut||r===wi?(isFinite(t)||(this.sourceRect.w()?t=this.sourceRect.width:s!==null&&(t=l)),e=0):s!==null&&this.$k!==!1&&(t=this.sourceRect.w()?this.sourceRect.width:l),isFinite(o.height)||r===Ut||r===Pi?(isFinite(i)||(this.sourceRect.w()?i=this.sourceRect.height:s!==null&&(i=u)),n=0):s!==null&&this.$k!==!1&&(i=this.sourceRect.w()?this.sourceRect.height:u),isFinite(o.width)&&(t=o.width),isFinite(o.height)&&(i=o.height),o=this.maxSize,r=this.minSize,e=Math.max(e||0,r.width),n=Math.max(n||0,r.height),t=Math.min(o.width,t),i=Math.min(o.height,i),t=Math.max(e,t),i=Math.max(n,i),s===null||s.complete||(isFinite(t)||(t=0),isFinite(i)||(i=0)),ao(this.ec,t,i),this.Ge(0,0,t,i)},te.prototype.eh=function(t,i,e,n){dc(this,t,i,e,n)},tt.Object.defineProperties(te.prototype,{element:{get:function(){return this.Eg},set:function(t){var i=this.Eg;if(this.Uc=!0,i!==t){this.pn=t instanceof HTMLCanvasElement;var e=t instanceof HTMLImageElement;t===null||e||t instanceof HTMLVideoElement||this.pn||O("Picture.element must be an instance of Image, Canvas, or Video, not: "+t);var n=this.diagram;n!==null&&ic(n,this),this.Eg=t,t!==null&&e&&t.Bg===void 0&&(t.Bg=new E),n!==null&&e&&tc(n,this),t!==null&&(this.pn||t.complete===!0?(t.gn&&(t.kn instanceof Event&&this.Hd!==null?this.Hd(this,t.kn):t.rq===!0&&!t.kn&&this.Zg!==null&&t.du&&this.Zg(this,t.du)),t.rq=!0,this.desiredSize.w()||(Ie(this,!1),this.v())):e&&Oy(this,t)),this.g("element",i,t),this.N()}}},source:{get:function(){return this.po},set:function(t){var i=this.po;if(i!==t){this.Uc=!0,this.po=t;var e=kh;if(rn){var n=null;if(e[t]!==void 0)n=e[t];else if(t!==""){30<Oa&&(Ch(),e=kh),n=tn("img"),n.gn=!0,Oy(this,n);var o=this.ql;o!==null&&(n.crossOrigin=o(this)),n.src=t,e[t]=n,Oa++}this.element=n,n!==null&&n.__goCache===void 0&&(n.__goCache=new Iy),this.v(),this.N()}this.g("source",i,t)}}},sourceCrossOrigin:{get:function(){return this.ql},set:function(t){if(this.ql!==t&&(this.ql=t,this.element!==null)){var i=this.element.getAttribute("src");t===null&&typeof i=="string"?this.element.crossOrigin=null:t!==null&&(this.element.crossOrigin=t(this)),this.element.src=i}}},sourceRect:{get:function(){return this.Xg},set:function(t){var i=this.Xg;i.D(t)||(this.Xg=t=t.J(),this.N(),this.g("sourceRect",i,t))}},imageStretch:{get:function(){return this.Mk},set:function(t){var i=this.Mk;i!==t&&(this.Mk=t,this.N(),this.g("imageStretch",i,t))}},flip:{get:function(){return this.Xf},set:function(t){var i=this.Xf;i!==t&&(this.Xf=t,this.N(),this.g("flip",i,t))}},imageAlignment:{get:function(){return this.Lk},set:function(t){var i=this.Lk;i.D(t)||(this.Lk=t=t.J(),this.N(),this.g("imageAlignment",i,t))}},errorFunction:{get:function(){return this.Hd},set:function(t){var i=this.Hd;i!==t&&(this.Hd=t,this.g("errorFunction",i,t))}},successFunction:{get:function(){return this.Zg},set:function(t){var i=this.Zg;i!==t&&(this.Zg=t,this.g("successFunction",i,t))}},naturalBounds:{get:function(){return this.ec}}}),te.prototype.redraw=te.prototype.redraw,te.prototype.reloadSource=te.prototype.hA;var Oa=0,i1=4;te.className="Picture",kh=new Xe,te.clearCache=Ch;function Iy(){this.gi=null}function Dy(t,i,e,n,o){t.gi===null&&(t.gi=[]);var r=new Je(null),s=r.context,h=1/i;r.width=e/i,r.height=n/i,r.width!==0&&r.height!==0&&(i=new Ey(r.Oa,i),e=1,0<t.gi.length&&(e=t.gi[t.gi.length-1],o=e.source,e=e.ratio),s.setTransform(h*e,0,0,h*e,0,0),s.yc(),s.drawImage(o,0,0),t.gi.push(i))}Iy.className="PictureCacheArray";function Ey(t,i){this.source=t,this.ratio=i}Ey.className="PictureCacheInstance";function Th(){this.ns=new I,this.nc=null}Th.prototype.reset=function(t){t!==null?(t.ka(),this.ns=t,t.figures.clear()):this.ns=new I,this.nc=null};function Lh(t,i,e,n,o,r){t.nc=new pi,t.nc.startX=i,t.nc.startY=e,t.nc.isFilled=n,t.nc.isEvenOdd=r||!1,t.ns.figures.add(t.nc),o!==void 0&&(t.nc.isShadowed=o)}function e1(t){var i=t.nc.segments.length;0<i&&t.nc.segments.M(i-1).close()}Th.prototype.moveTo=function(t,i,e){e===void 0&&(e=!1);var n=new ft(on);n.endX=t,n.endY=i,e&&n.close(),this.nc.segments.add(n)},Th.prototype.lineTo=function(t,i,e){e===void 0&&(e=!1);var n=new ft(Dt);n.endX=t,n.endY=i,e&&n.close(),this.nc.segments.add(n)};function Yo(t,i,e,n,o,r,s){var h;h===void 0&&(h=!1);var l=new ft(je);l.point1X=i,l.point1Y=e,l.point2X=n,l.point2Y=o,l.endX=r,l.endY=s,h&&l.close(),t.nc.segments.add(l)}function Ia(t,i,e,n,o){var r;r===void 0&&(r=!1);var s=new ft(In);s.point1X=i,s.point1Y=e,s.endX=n,s.endY=o,r&&s.close(),t.nc.segments.add(s)}Th.prototype.arcTo=function(t,i,e,n,o,r,s){r===void 0&&(r=0),s===void 0&&(s=!1);var h=new ft(Qt);h.startAngle=t,h.sweepAngle=i,h.centerX=e,h.centerY=n,h.radiusX=o,h.radiusY=r!==0?r:o,s&&h.close(),this.nc.segments.add(h)};function n1(t,i,e,n,o,r,s,h){var l;l===void 0&&(l=!1),i=new ft(mn,s,h,i,e,n,o,r),l&&i.close(),t.nc.segments.add(i)}function By(t){var i=Da;return i!==null?(Da=null,i.reset(t),i):(i=new Th,i.reset(t),i)}var Da=null;Th.className="StreamGeometryContext";function ki(t,i){var e=t.toLowerCase(),n=P.Ze;n[t]=i,n[e]=t}ki("Rectangle",function(t,i,e){t="r"+i+","+e;var n=P.Mf[t];return n!==void 0||(n=new I(I.u),n.endX=i,n.endY=e,P.Nf<P.um&&(P.Mf[t]=n,P.Nf++)),n}),ki("Square",function(t,i,e){t="s"+i+","+e;var n=P.Mf[t];return n!==void 0||(n=new I(I.u),n.endX=i,n.endY=e,n.defaultStretch=Dn,P.Nf<P.um&&(P.Mf[t]=n,P.Nf++)),n}),ki("RoundedRectangle",function(t,i,e){t=t?t.parameter1:NaN,(isNaN(t)||0>t)&&(t=5),t=Math.min(t,i/3),t=Math.min(t,e/3);var n="rr"+i+","+e+","+t,o=P.Mf[n];if(o!==void 0)return o;var r=t*P.wg;return o=new I().add(new pi(t,0,!0).add(new ft(Dt,i-t,0)).add(new ft(je,i,t,i-r,0,i,r)).add(new ft(Dt,i,e-t)).add(new ft(je,i-t,e,i,e-r,i-r,e)).add(new ft(Dt,t,e)).add(new ft(je,0,e-t,r,e,0,e-r)).add(new ft(Dt,0,t)).add(new ft(je,t,0,0,r,r,0).close())),1<r&&(o.spot1=new H(0,0,r,r),o.spot2=new H(1,1,-r,-r)),P.Nf<P.um&&(P.Mf[n]=o,P.Nf++),o}),ki("Border","RoundedRectangle"),ki("Ellipse",function(t,i,e){t="e"+i+","+e;var n=P.Mf[t];return n!==void 0||(n=new I(I.F),n.endX=i,n.endY=e,n.spot1=mp,n.spot2=vp,P.Nf<P.um&&(P.Mf[t]=n,P.Nf++)),n}),ki("Circle",function(t,i,e){t="c"+i+","+e;var n=P.Mf[t];return n!==void 0||(n=new I(I.F),n.endX=i,n.endY=e,n.spot1=mp,n.spot2=vp,n.defaultStretch=Dn,P.Nf<P.um&&(P.Mf[t]=n,P.Nf++)),n}),ki("TriangleRight",function(t,i,e){return new I().add(new pi(0,0).add(new ft(Dt,i,.5*e)).add(new ft(Dt,0,e).close())).om(0,.25,.5,.75)}),ki("TriangleDown",function(t,i,e){return new I().add(new pi(0,0).add(new ft(Dt,i,0)).add(new ft(Dt,.5*i,e).close())).om(.25,0,.75,.5)}),ki("TriangleLeft",function(t,i,e){return new I().add(new pi(i,e).add(new ft(Dt,0,.5*e)).add(new ft(Dt,i,0).close())).om(.5,.25,1,.75)}),ki("TriangleUp",function(t,i,e){return new I().add(new pi(i,e).add(new ft(Dt,0,e)).add(new ft(Dt,.5*i,0).close())).om(.25,.5,.75,1)}),ki("Triangle","TriangleUp"),ki("Diamond",function(t,i,e){return new I().add(new pi(.5*i,0).add(new ft(Dt,0,.5*e)).add(new ft(Dt,.5*i,e)).add(new ft(Dt,i,.5*e).close())).om(.25,.25,.75,.75)}),ki("LineH",function(t,i,e){return t=new I(I.j),t.startX=0,t.startY=e/2,t.endX=i,t.endY=e/2,t}),ki("LineV",function(t,i,e){return t=new I(I.j),t.startX=i/2,t.startY=0,t.endX=i/2,t.endY=e,t}),ki("None","Rectangle"),ki("BarH","Rectangle"),ki("BarV","Rectangle"),ki("MinusLine","LineH"),ki("PlusLine",function(t,i,e){return new I().add(new pi(0,e/2,!1).add(new ft(Dt,i,e/2)).add(new ft(on,i/2,0)).add(new ft(Dt,i/2,e)))}),ki("XLine",function(t,i,e){return new I().add(new pi(0,e,!1).add(new ft(Dt,i,0)).add(new ft(on,0,0)).add(new ft(Dt,i,e)))}),ki("LineRight",function(t,i,e){return new I().add(new pi(.25*i,0,!1).add(new ft(Dt,.75*i,.5*e)).add(new ft(Dt,.25*i,e)))}),ki("LineDown",function(t,i,e){return new I().add(new pi(0,.25*e,!1).add(new ft(Dt,.5*i,.75*e)).add(new ft(Dt,i,.25*e)))}),ki("LineLeft",function(t,i,e){return new I().add(new pi(.75*i,0,!1).add(new ft(Dt,.25*i,.5*e)).add(new ft(Dt,.75*i,e)))}),ki("LineUp",function(t,i,e){return new I().add(new pi(0,.75*e,!1).add(new ft(Dt,.5*i,.25*e)).add(new ft(Dt,i,.75*e)))}),P.tm={"":"",Standard:"F1 m 0,0 l 8,4 -8,4 2,-4 z",Backward:"F1 m 8,0 l -2,4 2,4 -8,-4 z",Triangle:"F1 m 0,0 l 8,4.62 -8,4.62 z",BackwardTriangle:"F1 m 8,4 l 0,4 -8,-4 8,-4 0,4 z",Boomerang:"F1 m 0,0 l 8,4 -8,4 4,-4 -4,-4 z",BackwardBoomerang:"F1 m 8,0 l -8,4 8,4 -4,-4 4,-4 z",SidewaysV:"m 0,0 l 8,4 -8,4 0,-1 6,-3 -6,-3 0,-1 z",BackwardV:"m 8,0 l -8,4 8,4 0,-1 -6,-3 6,-3 0,-1 z",OpenTriangle:"m 0,0 l 8,4 -8,4",BackwardOpenTriangle:"m 8,0 l -8,4 8,4",OpenTriangleLine:"m 0,0 l 8,4 -8,4 m 8.5,0 l 0,-8",BackwardOpenTriangleLine:"m 8,0 l -8,4 8,4 m -8.5,0 l 0,-8",OpenTriangleTop:"m 0,0 l 8,4 m 0,4",BackwardOpenTriangleTop:"m 8,0 l -8,4 m 0,4",OpenTriangleBottom:"m 0,8 l 8,-4",BackwardOpenTriangleBottom:"m 0,4 l 8,4",HalfTriangleTop:"F1 m 0,0 l 0,4 8,0 z m 0,8",BackwardHalfTriangleTop:"F1 m 8,0 l 0,4 -8,0 z m 0,8",HalfTriangleBottom:"F1 m 0,4 l 0,4 8,-4 z",BackwardHalfTriangleBottom:"F1 m 8,4 l 0,4 -8,-4 z",ForwardSemiCircle:"m 4,0 b 270 180 0 4 4",BackwardSemiCircle:"m 4,8 b 90 180 0 -4 4",Feather:"m 0,0 l 3,4 -3,4",BackwardFeather:"m 3,0 l -3,4 3,4",DoubleFeathers:"m 0,0 l 3,4 -3,4 m 3,-8 l 3,4 -3,4",BackwardDoubleFeathers:"m 3,0 l -3,4 3,4 m 3,-8 l -3,4 3,4",TripleFeathers:"m 0,0 l 3,4 -3,4 m 3,-8 l 3,4 -3,4 m 3,-8 l 3,4 -3,4",BackwardTripleFeathers:"m 3,0 l -3,4 3,4 m 3,-8 l -3,4 3,4 m 3,-8 l -3,4 3,4",ForwardSlash:"m 0,8 l 5,-8",BackSlash:"m 0,0 l 5,8",DoubleForwardSlash:"m 0,8 l 4,-8 m -2,8 l 4,-8",DoubleBackSlash:"m 0,0 l 4,8 m -2,-8 l 4,8",TripleForwardSlash:"m 0,8 l 4,-8 m -2,8 l 4,-8 m -2,8 l 4,-8",TripleBackSlash:"m 0,0 l 4,8 m -2,-8 l 4,8 m -2,-8 l 4,8",Fork:"m 0,4 l 8,0 m -8,0 l 8,-4 m -8,4 l 8,4",BackwardFork:"m 8,4 l -8,0 m 8,0 l -8,-4 m 8,4 l -8,4",LineFork:"m 0,0 l 0,8 m 0,-4 l 8,0 m -8,0 l 8,-4 m -8,4 l 8,4",BackwardLineFork:"m 8,4 l -8,0 m 8,0 l -8,-4 m 8,4 l -8,4 m 8,-8 l 0,8",CircleFork:"F1 m 6,4 b 0 360 -3 0 3 z m 0,0 l 6,0 m -6,0 l 6,-4 m -6,4 l 6,4",BackwardCircleFork:"F1 m 0,4 l 6,0 m -6,-4 l 6,4 m -6,4 l 6,-4 m 6,0 b 0 360 -3 0 3",CircleLineFork:"F1 m 6,4 b 0 360 -3 0 3 z m 1,-4 l 0,8 m 0,-4 l 6,0 m -6,0 l 6,-4 m -6,4 l 6,4",BackwardCircleLineFork:"F1 m 0,4 l 6,0 m -6,-4 l 6,4 m -6,4 l 6,-4 m 0,-4 l 0,8 m 7,-4 b 0 360 -3 0 3",Circle:"F1 m 8,4 b 0 360 -4 0 4 z",Block:"F1 m 0,0 l 0,8 8,0 0,-8 z",StretchedDiamond:"F1 m 0,3 l 5,-3 5,3 -5,3 -5,-3 z",Diamond:"F1 m 0,4 l 4,-4 4,4 -4,4 -4,-4 z",Chevron:"F1 m 0,0 l 5,0 3,4 -3,4 -5,0 3,-4 -3,-4 z",StretchedChevron:"F1 m 0,0 l 8,0 3,4 -3,4 -8,0 3,-4 -3,-4 z",NormalArrow:"F1 m 0,2 l 4,0 0,-2 4,4 -4,4 0,-2 -4,0 z",X:"m 0,0 l 8,8 m 0,-8 l -8,8",TailedNormalArrow:"F1 m 0,0 l 2,0 1,2 3,0 0,-2 2,4 -2,4 0,-2 -3,0 -1,2 -2,0 1,-4 -1,-4 z",DoubleTriangle:"F1 m 0,0 l 4,4 -4,4 0,-8 z m 4,0 l 4,4 -4,4 0,-8 z",BigEndArrow:"F1 m 0,0 l 5,2 0,-2 3,4 -3,4 0,-2 -5,2 0,-8 z",ConcaveTailArrow:"F1 m 0,2 h 4 v -2 l 4,4 -4,4 v -2 h -4 l 2,-2 -2,-2 z",RoundedTriangle:"F1 m 0,1 a 1,1 0 0 1 1,-1 l 7,3 a 0.5,1 0 0 1 0,2 l -7,3 a 1,1 0 0 1 -1,-1 l 0,-6 z",SimpleArrow:"F1 m 1,2 l -1,-2 2,0 1,2 -1,2 -2,0 1,-2 5,0 0,-2 2,2 -2,2 0,-2 z",AccelerationArrow:"F1 m 0,0 l 0,8 0.2,0 0,-8 -0.2,0 z m 2,0 l 0,8 1,0 0,-8 -1,0 z m 3,0 l 2,0 2,4 -2,4 -2,0 0,-8 z",BoxArrow:"F1 m 0,0 l 4,0 0,2 2,0 0,-2 2,4 -2,4 0,-2 -2,0 0,2 -4,0 0,-8 z",TriangleLine:"F1 m 8,4 l -8,-4 0,8 8,-4 z m 0.5,4 l 0,-8",CircleEndedArrow:"F1 m 10,4 l -2,-3 0,2 -2,0 0,2 2,0 0,2 2,-3 z m -4,0 b 0 360 -3 0 3 z",DynamicWidthArrow:"F1 m 0,3 l 2,0 2,-1 2,-2 2,4 -2,4 -2,-2 -2,-1 -2,0 0,-2 z",EquilibriumArrow:"m 0,3 l 8,0 -3,-3 m 3,5 l -8,0 3,3",FastForward:"F1 m 0,0 l 3.5,4 0,-4 3.5,4 0,-4 1,0 0,8 -1,0 0,-4 -3.5,4 0,-4 -3.5,4 0,-8 z",Kite:"F1 m 0,4 l 2,-4 6,4 -6,4 -2,-4 z",HalfArrowTop:"F1 m 0,0 l 4,4 4,0 -8,-4 z m 0,8",HalfArrowBottom:"F1 m 0,8 l 4,-4 4,0 -8,4 z",OpposingDirectionDoubleArrow:"F1 m 0,4 l 2,-4 0,2 4,0 0,-2 2,4 -2,4 0,-2 -4,0 0,2 -2,-4 z",PartialDoubleTriangle:"F1 m 0,0 4,3 0,-3 4,4 -4,4 0,-3 -4,3 0,-8 z",LineCircle:"F1 m 0,0 l 0,8 m 7 -4 b 0 360 -3 0 3 z",DoubleLineCircle:"F1 m 0,0 l 0,8 m 2,-8 l 0,8 m 7 -4 b 0 360 -3 0 3 z",TripleLineCircle:"F1 m 0,0 l 0,8 m 2,-8 l 0,8 m 2,-8 l 0,8 m 7 -4 b 0 360 -3 0 3 z",CircleLine:"F1 m 6 4 b 0 360 -3 0 3 z m 1,-4 l 0,8",DiamondCircle:"F1 m 8,4 l -4,4 -4,-4 4,-4 4,4 m 8,0 b 0 360 -4 0 4 z",PlusCircle:"F1 m 8,4 b 0 360 -4 0 4 l -8 0 z m -4 -4 l 0 8",OpenRightTriangleTop:"m 8,0 l 0,4 -8,0 m 0,4",OpenRightTriangleBottom:"m 8,8 l 0,-4 -8,0",Line:"m 0,0 l 0,8",DoubleLine:"m 0,0 l 0,8 m 2,0 l 0,-8",TripleLine:"m 0,0 l 0,8 m 2,0 l 0,-8 m 2,0 l 0,8",PentagonArrow:"F1 m 8,4 l -4,-4 -4,0 0,8 4,0 4,-4 z"};function $c(){this.oc=!1,this.sr=this.Jp=this.yq=null,this.ur="",this.er=this.nq=this.tr=null,this.gr="",this.fr=Lu,this.hr=null,this.ir="",this.kr=Si,this.Fq="",this.Gq=Ti,this.Oq=$f,this.Jq=Qf,this.Tp=null,this.Bq=127,this.yr=qf,this.xr="gray",this.Vg=4}$c.prototype.copy=function(){var t=new $c;return t.yq=this.yq,t.Jp=this.Jp,t.sr=this.sr,t.ur=this.ur,t.tr=this.tr,t.nq=this.nq,t.er=this.er,t.gr=this.gr,t.fr=this.fr.J(),t.hr=this.hr,t.ir=this.ir,t.kr=this.kr.J(),t.Fq=this.Fq,t.Gq=this.Gq.J(),t.Oq=this.Oq.J(),t.Jq=this.Jq.J(),t.Tp=this.Tp,t.Bq=this.Bq,t.yr=this.yr.J(),t.xr=this.xr,t.Vg=this.Vg,t};function U(t,i){t===void 0||t instanceof bt||typeof t=="string"?j.call(this,t):(j.call(this),t&&(i=t)),this.G=2408959,this.Tf="",this.P=null,this.Jg="",this.Qf=this.Ug=null,this.fc="",this.Ah=this.Ig=null,this.ke=new x(NaN,NaN).freeze(),this.nf=null,this.zo=NaN,this.vw=-1,this.py=new T,this.Rh=null,this.ag=NaN,i&&Object.assign(this,i)}pt(U,j),U.prototype.cloneProtected=function(t){j.prototype.cloneProtected.call(this,t),t.G=this.G&-4097|49152,t.Tf=this.Tf,this.P!==null&&(t.P=this.P.oc?this.P:this.P.copy()),t.Jg=this.Jg,t.Qf=null,t.fc=this.fc,t.ke.assign(this.ke),t.zo=this.zo},d=U.prototype,d.Af=function(t){j.prototype.Af.call(this,t),t.oh(),t.Ug=null,t.nf=null,t.Rh=null},d.toString=function(){var t=Ar(this.constructor)+"#"+qi(this);return this.data!==null&&(t+="("+en(this.data)+")"),t};function ie(t){t.P===null?t.P=new $c:t.P.oc&&(t.P=t.P.copy())}d.th=function(){j.prototype.th.call(this),this.P!==null&&(this.P.oc=!0)},d.fk=function(t,i,e,n,o,r,s){var h=this.diagram;h!==null&&(t===ii&&i==="elements"?o instanceof j?Xr(o,function(l){Sd(h.partManager,l),T0(h,l)}):tc(h,o):t===si&&i==="elements"&&(o instanceof j?Xr(o,function(l){Nd(h.partManager,l,h)}):ic(h,o)),h.cb(t,i,e,n,o,r,s))},d.La=function(t){if(j.prototype.La.call(this,t),this.data!==null){for(var i=this.O.s,e=i.length,n=0;n<e;n++){var o=i[n];o instanceof j&&Xr(o,function(r){r.data!==null&&r.La()})}for(i=this.adornments;i.next();)i.value.La(t)}},U.prototype.updateRelationshipsFromData=function(){var t;this.data!==null&&((t=this.diagram)===null||t===void 0||t.partManager.updateRelationshipsFromData(this))},U.prototype.Oj=function(t){var i=this.Qf;return i===null?null:i.I(t)},U.prototype.bh=function(t,i){if(i!==null){var e=null,n=this.Qf;if(n!==null&&(e=n.I(t)),e!==i){if(e!==null){var o=e.diagram;o!==null&&o.remove(e)}n===null&&(this.Qf=n=new _),i.Tf!==t&&(i.category=t),n.add(t,i),t=this.diagram,t!==null&&(t.add(i),t=i.adornedObject,t!==null&&(t=t.ih(),t!==null&&(i.data=t.data)))}}},U.prototype.Jf=function(t){var i=this.Qf;if(i!==null){var e=i.I(t);if(e!==null){var n=e.diagram;n!==null&&n.remove(e)}i.remove(t),i.count===0&&(this.Qf=null)}},U.prototype.Dj=function(){var t=this.Qf;if(t!==null){var i=kt();for(t=t.iterator;t.next();)i.push(t.key);t=i.length;for(var e=0;e<t;e++)this.Jf(i[e]);Mt(i)}},U.prototype.updateAdornments=function(){var t=this.diagram;if(t!==null){for(var i=this.adornments;i.next();){var e=i.value;e.v(),e.placeholder&&e.placeholder.v()}t:{if(this.isSelected&&this.selectionAdorned&&(i=this.selectionObject,i!==null&&this.actualBounds.w()&&this.isVisible()&&i.Ed()&&i.actualBounds.w())){if(e=this.Oj("Selection"),e===null){if(e=this.selectionAdornmentTemplate,e===null&&(e=this.ph()?t.linkSelectionAdornmentTemplate:this instanceof Q?t.groupSelectionAdornmentTemplate:t.nodeSelectionAdornmentTemplate),!(e instanceof lt))break t;Ze(e),e=e.copy(),e!==null&&(this.ph()&&this.selectionObject===this.path&&(e.type=j.Link),e.adornedObject=i)}if(e!==null){e.type===j.Link&&e.v(),this.bh("Selection",e);break t}}this.Jf("Selection")}for(o1(this,t),i=this.adornments;i.next();)i.value.La()}},U.prototype.Xb=function(){var t=this.diagram;t!==null&&(t.vd=!0,!(this.G&16384)&&(this.G|=16384))};function Qc(t){t.G&16384&&(t.updateAdornments(),t.G&=-16385)}function o1(t,i){i.toolManager.mouseDownTools.each(function(e){e.isEnabled&&e.updateAdornments(t)}),i.toolManager.updateAdornments(t)}function Ea(t){if(lr(t)===!1){bc(t,!0),t.Tk();var i=t.diagram;i!==null&&(i.De.add(t),i.ac())}}function Ry(t){if(t.G|=2097152,lr(t)!==!1){var i=t.position,e=t.location;e.w()&&i.w()||zy(t,i,e),e=t.Jb;var n=T.alloc().assign(e);e.ka(),e.x=i.x,e.y=i.y,e.freeze(),t.Wl(n,e),T.free(n),bc(t,!1)}}U.prototype.Ge=function(t,i,e,n){var o=this.uc;o.h(t,i,e,n),this.Mb===null&&(this.Mb=new it);var r=this.Mb;r.reset(),this.mo(r,t,i,e,n),this.Mb=r,r.vs()||r.op(o)},U.prototype.mo=function(t,i,e,n,o){if(this.Ca!==1&&t.scale(this.Ca),this.Lb!==0){var r=vt;this.locationSpot.sb()&&(r=this.locationSpot);var s=x.alloc();if(this.locationObject!==this)for(i=this.locationObject,e=i.naturalBounds,s.yi(e.x,e.y,e.width,e.height,r),i.Mb!==null&&i.Mb.Ga(s),s.offset(-i.measuredBounds.x,-i.measuredBounds.y),r=i.panel;r!==null&&r!==this;)r.Mb!==null&&r.Mb.Ga(s),s.offset(-r.measuredBounds.x,-r.measuredBounds.y),r=r.panel;else s.yi(i,e,n,o,r);t.rotate(this.Lb,s.x,s.y),x.free(s)}},U.prototype.move=function(t,i){i===!0?this.location=t:this.position=t},U.prototype.moveTo=function(t,i,e){t=x.allocAt(t,i),this.move(t,e),x.free(t)},U.prototype.isVisible=function(){if(!this.visible)return!1;var t=this.layer;if(t!==null){if(!t.visible)return!1;if(t=t.diagram,t!==null&&t.animationManager.fv(this))return!0}return t=this.containingGroup,!!(t===null||t.isSubGraphExpanded&&t.isVisible())},U.prototype.$b=function(t){var i=this.diagram;t?(this.C(4),this.Xb(),i!==null&&i.De.add(this)):(this.C(8),this.Dj()),this.oh(),i!==null&&(i.Ya(),i.N())},U.prototype.fb=function(t){if(this.name===t)return this;var i=this.Rh;if(i===null&&(this.Rh=i=new _),i.I(t)!==null)return i.I(t);var e=j.prototype.fb.call(this,t);return e!==null?(i.set(t,e),e):(i.set(t,null),null)};function zo(t,i,e,n){n===void 0&&(n=new x),e=e.Mc()?vt:e;var o=i.naturalBounds;if(n.h(o.width*e.x+e.offsetX,o.height*e.y+e.offsetY),i===null||i===t)return n;for(i.transform.Ga(n),i=i.panel;i!==null&&i!==t;)i.transform.Ga(n),i=i.panel;return t.Mb!==null&&t.Mb.Ga(n),n.offset(-t.uc.x,-t.uc.y),n}U.prototype.mi=function(t){return t===void 0&&(t=new T),t.assign(this.actualBounds)},U.prototype.Va=function(){this.measure(1/0,1/0),this.arrange()};function Vy(t){var i=x.alloc(),e=t.locationObject,n=e.naturalBounds,o=e instanceof q?e.strokeWidth:0;if(i.yi(0,0,n.width+o,n.height+o,t.locationSpot),e!==t)for(i.offset(-o/2,-o/2),e.transform.Ga(i),e=e.panel;e!==null&&e!==t;)e.transform.Ga(i),e=e.panel;return t.Mb!==null&&t.Mb.Ga(i),i.offset(-t.uc.x,-t.uc.y),i}function Hr(t,i){var e=t.py;isNaN(t.ag)&&(t.ag=gy(t));var n=t.ag,o=2*n;if(!t.isShadowed)return e.h(i.x-1-n,i.y-1-n,i.width+2+o,i.height+2+o),e;n=i.x,o=i.y;var r=i.width;i=i.height;var s=t.shadowBlur;return t=t.shadowOffset,r+=s,i+=s,n-=s/2,o-=s/2,0<t.x?r+=t.x:(n+=t.x,r-=t.x),0<t.y?i+=t.y:(o+=t.y,i-=t.y),e.h(n-1,o-1,r+2,i+2),e}U.prototype.arrange=function(){if(hn(this)===!1)Ry(this);else{Vr(this,!1);var t=this.Jb,i=T.alloc();i.assign(t);var e=ur(this);this.eh(0,0,this.uc.width,this.uc.height);var n=this.position;zy(this,n,this.location),t.ka(),t.x=n.x,t.y=n.y,t.freeze(),this.Wl(i,t),i.D(t)?this.Fd(e):!this.Zc()||P.B(i.width,t.width)&&P.B(i.height,t.height)||0<=this.vw&&this.C(16),T.free(i),bc(this,!1)}},d=U.prototype,d.Wl=function(t,i){var e=this.diagram;if(e!==null){var n=!1;if(e.Zi===!1&&t.w()){var o=T.alloc();o.assign(e.documentBounds),o.Fv(e.padding),t.x>o.x&&t.y>o.y&&t.right<o.right&&t.bottom<o.bottom&&i.x>o.x&&i.y>o.y&&i.right<o.right&&i.bottom<o.bottom&&(n=!0),T.free(o)}!(this.G&65536)&&t.D(i)||Ky(this,n,e),e.N(),!t.w()&&!i.w()||np(t,i)||(this instanceof B&&!e.undoManager.isUndoingRedoing&&this.Bd(),this.oh())}},d.zv=function(t,i,e){if(this.ph()||!t.w())return!1;var n=this.diagram;return n!==null&&Yy(this,n,t,i,e),this.pa=t,this.G&=-2097153,!this.ke.w()||n!==null&&!n.animationManager.isTicking&&n.undoManager.isUndoingRedoing||(n=this.ke,this.ke=new x(n.x+(t.x-i),n.y+(t.y-e)),this.g("location",n,this.ke.copy())),lr(this)===!1&&hn(this)===!1&&(Ea(this),Ry(this)),!0};function Yy(t,i,e,n,o){i===null||t instanceof lt||(i=i.animationManager,i.Ab&&e0(i,t,new x(n,o),e))}d.lm=function(t,i,e){var n=this.ke,o=this.pa;if(e){if(n.x===t&&n.y===i)return;lr(this)||hn(this)?o.h(NaN,NaN):o.h(o.x+t-n.x,o.y+i-n.y),n.h(t,i)}else{if(o.x===t&&o.y===i)return;n.h(n.x+t-o.x,n.y+i-o.y),o.h(t,i)}Ea(this)},d.Av=function(){this.G&=-2097153,Ea(this)};function zy(t,i,e){var n=Vy(t),o=t.diagram,r=e.w(),s=i.w();r&&s?t.G&2097152?Gy(t,i,e,o,n):Xy(t,i,e,o,n):r?Gy(t,i,e,o,n):s&&Xy(t,i,e,o,n),t.G|=2097152,x.free(n),t.Tk()}function Gy(t,i,e,n,o){var r=i.x,s=i.y;i.h(e.x-o.x,e.y-o.y),n!==null&&(e=n.animationManager,(n=e.defaultAnimation.isAnimating)||!e.Ab||t instanceof lt||e0(e,t,new x(r,s),i),n||i.x===r&&i.y===s||t.g("position",new x(r,s),i.copy()))}function Xy(t,i,e,n,o){var r=e.copy();e.h(i.x+o.x,i.y+o.y),e.D(r)||n===null||t.g("location",r,e.copy())}function Ky(t,i,e){td(t,!1),t instanceof B&&hc(e,t),t.layer.isTemporary||i||e.Ya(),i=t.Jb;var n=e.viewportBounds;n.w()?ur(t)?(xg(i,n)||t.Fd(!1),t.updateAdornments()):t.isVisible()&&i.Yc(n)?(t.Fd(!0),t.updateAdornments()):t.Xb():e.vd=!0}d.si=function(){return!0},d.Zc=function(){return!0},d.ph=function(){return!1},d.Dd=function(){return!0};function qc(t,i,e,n){i.constructor===t.constructor||Wy||(Wy=!0,ue('Should not change the class of the Part when changing category from "'+e+'" to "'+n+'"'),ue(" Old class: "+Ar(t.constructor)+", new class: "+Ar(i.constructor)+", part: "+t.toString())),t.Dj();var o=t.data;e=t.layerName;var r=t.isSelected,s=t.isHighlighted,h=!0,l=!0,u=!1;t instanceof B&&(h=t.isTreeLeaf,l=t.isTreeExpanded,u=t.wasTreeExpanded),i.Af(t),i.cloneProtected(t),t.Tf=n,t.svg!==null&&(t.svg.remove(),t.svg=null,t.Uc=!0),t.v(),t.N(),i=t.diagram,n=!0,i!==null&&(n=i.skipsUndoManager,i.skipsUndoManager=!0),t.ub=o,t.G=r?t.G|4096:t.G&-4097,t.G=s?t.G|524288:t.G&-524289,t instanceof B&&(t.U=h?t.U|4:t.U&-5,t.U=l?t.U|1:t.U&-2,t.U=u?t.U|2:t.U&-3),o!==null&&t.La(),o=t.layerName,o!==e&&(t.Jg=e,t.layerName=o),i!==null&&(i.skipsUndoManager=n),t.Zc()&&t.C(64)}U.prototype.canCopy=function(){if(!this.copyable)return!1;var t=this.layer;return t===null?!0:t.allowCopy?(t=t.diagram,t===null?!0:!!t.allowCopy):!1},U.prototype.canDelete=function(){if(!this.deletable)return!1;var t=this.layer;return t===null?!0:t.allowDelete?(t=t.diagram,t===null?!0:!!t.allowDelete):!1},U.prototype.canEdit=function(){if(!this.textEditable)return!1;var t=this.layer;return t===null?!0:t.allowTextEdit?(t=t.diagram,t===null?!0:!!t.allowTextEdit):!1},U.prototype.canGroup=function(){if(!this.groupable)return!1;var t=this.layer;return t===null?!0:t.allowGroup?(t=t.diagram,t===null?!0:!!t.allowGroup):!1},U.prototype.canMove=function(){if(!this.movable)return!1;var t=this.layer;return t===null?!0:t.allowMove?(t=t.diagram,t===null?!0:!!t.allowMove):!1},U.prototype.canReshape=function(){if(!this.reshapable)return!1;var t=this.layer;return t===null?!0:t.allowReshape?(t=t.diagram,t===null?!0:!!t.allowReshape):!1},U.prototype.canResize=function(){if(!this.resizable)return!1;var t=this.layer;return t===null?!0:t.allowResize?(t=t.diagram,t===null?!0:!!t.allowResize):!1},U.prototype.canRotate=function(){if(!this.rotatable)return!1;var t=this.layer;return t===null?!0:t.allowRotate?(t=t.diagram,t===null?!0:!!t.allowRotate):!1},U.prototype.canSelect=function(){if(!this.selectable)return!1;var t=this.layer;return t===null?!0:t.allowSelect?(t=t.diagram,t===null?!0:!!t.allowSelect):!1};function lr(t){return(t.G&32768)!==0}function bc(t,i){t.G=i?t.G|32768:t.G&-32769}function td(t,i){t.G=i?t.G|65536:t.G&-65537}function ur(t){return(t.G&131072)!==0}d=U.prototype,d.Fd=function(t){this.G=t?this.G|131072:this.G&-131073};function Ba(t,i){t.G=i?t.G|1048576:t.G&-1048577}d.oh=function(){var t=this.containingGroup;t!==null&&(t.v(),t.placeholder!==null&&t.placeholder.v(),t.Bd())},d.N=function(){var t=this.diagram;t!==null&&!hn(this)&&!lr(this)&&this.isVisible()&&this.Jb.w()&&t.N(Hr(this,this.Jb))},d.v=function(){j.prototype.v.call(this);var t=this.diagram;t!==null&&(t.De.add(this),this instanceof B&&this.labeledLink!==null&&ch(this.labeledLink),t.ac(!0))},d.Uo=function(t){t||(t=this.Ah,t!==null&&sd(t,this))},d.Vo=function(t){t||(t=this.Ah,t!==null&&hd(t,this))},d.Kj=function(){var t=this.data;if(t!==null){var i=this.diagram;i!==null&&(i=i.model,i!==null&&i.bm(t))}},d.oz=function(){return id(this,this)};function id(t,i){var e=i.containingGroup;return e!==null?1+id(t,e):i instanceof B&&(i=i.labeledLink,i!==null)?id(t,i):0}d.sz=function(){return Uy(this,this)};function Uy(t,i){var e=i.containingGroup;return e!==null||i instanceof B&&(e=i.labeledLink,e!==null)?Uy(t,e):i}d.Td=function(t){return t instanceof Q?ed(this,this,t):!1};function ed(t,i,e){if(i===e||e===null)return!1;var n=i.containingGroup;return n===null||n!==e&&!ed(t,n,e)?i instanceof B&&(i=i.labeledLink,i!==null)?ed(t,i,e):!1:!0}d.px=function(t){if(t===null)return null;if(this===t)return this.containingGroup;for(var i=this;i!==null;){if(i instanceof Q&&Ba(i,!0),i instanceof B){var e=i.labeledLink;e!==null&&(i=e)}i=i.containingGroup}for(e=null,i=t;i!==null;){if(i.G&1048576){e=i;break}i instanceof B&&(t=i.labeledLink,t!==null&&(i=t)),i=i.containingGroup}for(i=this;i!==null;)i instanceof Q&&Ba(i,!1),i instanceof B&&(t=i.labeledLink,t!==null&&(i=t)),i=i.containingGroup;return e},U.prototype.canLayout=function(){if(!this.isLayoutPositioned||!this.isVisible())return!1;var t=this.layer;return!(t!==null&&t.isTemporary||this instanceof B&&this.isLinkLabel)},U.prototype.C=function(t){if(t===void 0&&(t=16777215),this.isLayoutPositioned&&t&this.layoutConditions){var i=this.layer;i!==null&&i.isTemporary||this instanceof B&&this.isLinkLabel?i=!1:(i=this.diagram,i=!(i!==null&&i.undoManager.isUndoingRedoing))}else i=!1;if(i)if(i=this.Ah,i!==null){var e=i.layout;e!==null?e.C():i.C(t)}else t=this.diagram,t!==null&&(t=t.layout,t!==null&&t.C())};function Hy(t){return t.isVisible()?(t=t.layer,!(t!==null&&t.isTemporary)):!1}function ar(t,i,e,n,o,r){if(r===void 0&&(r=null),!(t.contains(i)||r!==null&&!r(i)||i instanceof lt)){if(t.add(i),i instanceof B){if(e&&i instanceof Q)for(var s=i.memberParts;s.next();)ar(t,s.value,e,n,o,r);if(o!==!1)for(s=i.linksConnected;s.next();){var h=s.value;if(!t.contains(h)){var l=h.fromNode,u=h.toNode;l=l===null||t.contains(l),u=u===null||t.contains(u),(o?l&&u:l||u)&&ar(t,h,e,n,o,r)}}if(1<n)for(i=i.Ou();i.next();)ar(t,i.value,e,n-1,o,r)}else if(i instanceof F)for(i=i.labelNodes;i.next();)ar(t,i.value,e,n,o,r)}}tt.Object.defineProperties(U.prototype,{key:{get:function(){var t=this.diagram;if(t!==null)return t.model.wa(this.data)}},adornments:{get:function(){return this.Qf===null?nn:this.Qf.iteratorValues}},layer:{get:function(){return this.Ig}},diagram:{get:function(){var t=this.Ig;return t==null?null:t.diagram}},layerName:{get:function(){return this.Jg},set:function(t){var i=this.Jg;if(i!==t){var e=this.diagram;if((e===null||e.Pj(t)!==null&&!e.partManager.addsToTemporaryLayer)&&(this.Jg=t,e!==null&&e.Ya(),this.g("layerName",i,t),i=this.layer,i!==null&&i.name!==t&&(e=i.diagram,e!==null&&(t=e.Pj(t),t!==null&&t!==i)))){var n=i.qc(-1,this,!0);if(0<=n&&e.cb(si,"parts",i,this,null,n,!0),n=t.oi(99999999,this,!0),i.visible!==t.visible&&this.$b(t.visible),0<=n&&e.cb(ii,"parts",t,null,this,!0,n),n=this.layerChanged,n!==null){var o=e.aa;e.aa=!0,n(this,i,t),e.aa=o}}}}},layerChanged:{get:function(){return this.P!==null?this.P.yq:null},set:function(t){var i=this.layerChanged;i!==t&&(ie(this),this.P.yq=t,this.g("layerChanged",i,t))}},zOrder:{get:function(){return this.zo},set:function(t){var i=this.zo;if(i!==t){this.zo=t;var e=this.layer;e!==null&&Uu(e,-1,this),this.g("zOrder",i,t),t=this.diagram,t!==null&&t.N()}}},locationObject:{get:function(){if(this.nf===null){var t=this.locationObjectName;t!==""?(t=this.fb(t),t!==null?this.nf=t:this.nf=this):this instanceof lt?this.type!==j.Link&&this.placeholder!==null?this.nf=this.placeholder:this.nf=this:this.nf=this}return this.nf.visible?this.nf:this}},minLocation:{get:function(){return this.P!==null?this.P.Oq:$f},set:function(t){var i=this.minLocation;i.D(t)||(t=t.J(),ie(this),this.P.Oq=t,this.g("minLocation",i,t))}},maxLocation:{get:function(){return this.P!==null?this.P.Jq:Qf},set:function(t){var i=this.maxLocation;i.D(t)||(t=t.J(),ie(this),this.P.Jq=t,this.g("maxLocation",i,t))}},locationObjectName:{get:function(){return this.P!==null?this.P.Fq:""},set:function(t){var i=this.locationObjectName;i!==t&&(ie(this),this.P.Fq=t,this.nf=null,this.v(),this.g("locationObjectName",i,t))}},locationSpot:{get:function(){return this.P!==null?this.P.Gq:Ti},set:function(t){var i=this.locationSpot;i.D(t)||(t=t.J(),ie(this),this.P.Gq=t,this.v(),this.g("locationSpot",i,t))}},location:{get:function(){return this.ke},set:function(t){var i=t.x,e=t.y,n=this.ke;if(!(n.x===i||isNaN(n.x)&&isNaN(i))||!(n.y===e||isNaN(n.y)&&isNaN(e))){if(t=t.copy(),i=t,this.ph())i=!1;else{if(this.ke=i,this.G|=2097152,hn(this)===!1&&(Ea(this),e=this.pa,e.w())){var o=this.diagram;if(o===null||o.animationManager.isTicking||!o.undoManager.isUndoingRedoing){var r=e.copy();e.h(e.x+(i.x-n.x),e.y+(i.y-n.y)),Yy(this,o,e,r.x,r.y),this.g("position",r,e.copy())}}i=!0}i&&this.g("location",n,t.copy())}}},category:{get:function(){return this.Tf},set:function(t){var i=this.Tf;if(i!==t){this.svg!==null&&(this.svg.remove(),this.Uc=!0);var e=this.diagram,n=this.data,o=null;if(e!==null&&n!==null&&!(this instanceof lt)){var r=e.model.undoManager;r.isEnabled&&!r.isUndoingRedoing&&(o=this.clone(),o.O.addAll(this.O))}this.Tf=t,this.g("category",i,t),e===null||n===null||this instanceof lt?this instanceof lt&&(o=this.adornedPart,o!==null&&(t=o.Qf,t!==null&&t.remove(i),o.bh(this.category,this))):(r=e.model,r.undoManager.isUndoingRedoing||(this.ph()?(e.partManager.setLinkCategoryForData(n,t),e=e.partManager.findLinkTemplateForCategory(t),e!==null&&(Ze(e),e=e.copy(),e!==null&&qc(this,e,i,t))):(r!==null&&r.im(n,t),e=vm(e.partManager,n,t),e!==null&&(Ze(e),e=e.copy(),e===null||e instanceof F||(n=this.location.copy(),qc(this,e,i,t),this.location.w()||(this.location=n)))),o!==null&&(i=this.clone(),i.O.addAll(this.O),this.g("self",o,i))))}}},self:{get:function(){return this},set:function(t){qc(this,t,this.category,t.category)}},copyable:{get:function(){return(this.G&1)!==0},set:function(t){var i=(this.G&1)!==0;i!==t&&(this.G^=1,this.g("copyable",i,t))}},deletable:{get:function(){return(this.G&2)!==0},set:function(t){var i=(this.G&2)!==0;i!==t&&(this.G^=2,this.g("deletable",i,t))}},textEditable:{get:function(){return(this.G&4)!==0},set:function(t){var i=(this.G&4)!==0;i!==t&&(this.G^=4,this.g("textEditable",i,t),this.Xb())}},groupable:{get:function(){return(this.G&8)!==0},set:function(t){var i=(this.G&8)!==0;i!==t&&(this.G^=8,this.g("groupable",i,t))}},movable:{get:function(){return(this.G&16)!==0},set:function(t){var i=(this.G&16)!==0;i!==t&&(this.G^=16,this.g("movable",i,t))}},selectionAdorned:{get:function(){return(this.G&32)!==0},set:function(t){var i=(this.G&32)!==0;i!==t&&(this.G^=32,this.g("selectionAdorned",i,t),this.Xb())}},isInDocumentBounds:{get:function(){return(this.G&64)!==0},set:function(t){var i=(this.G&64)!==0;if(i!==t){this.G^=64;var e=this.diagram;e!==null&&e.Ya(),this.g("isInDocumentBounds",i,t)}}},isLayoutPositioned:{get:function(){return(this.G&128)!==0},set:function(t){var i=(this.G&128)!==0;i!==t&&(this.G^=128,this.g("isLayoutPositioned",i,t),this.C(t?4:8))}},selectable:{get:function(){return(this.G&256)!==0},set:function(t){var i=(this.G&256)!==0;i!==t&&(this.G^=256,this.g("selectable",i,t),this.Xb())}},reshapable:{get:function(){return(this.G&512)!==0},set:function(t){var i=(this.G&512)!==0;i!==t&&(this.G^=512,this.g("reshapable",i,t),this.Xb())}},resizable:{get:function(){return(this.G&1024)!==0},set:function(t){var i=(this.G&1024)!==0;i!==t&&(this.G^=1024,this.g("resizable",i,t),this.Xb())}},rotatable:{get:function(){return(this.G&2048)!==0},set:function(t){var i=(this.G&2048)!==0;i!==t&&(this.G^=2048,this.g("rotatable",i,t),this.Xb())}},isSelected:{get:function(){return(this.G&4096)!==0},set:function(t){var i=(this.G&4096)!==0;if(i!==t){var e=this.diagram;if(!t||this.canSelect()&&!(e!==null&&e.selection.count>=e.maxSelectionCount)){this.G^=4096;var n=!1;if(e!==null){n=e.skipsUndoManager,e.skipsUndoManager=!0;var o=e.selection;o.ka(),t?o.add(this):o.remove(this),o.freeze()}this.g("isSelected",i,t),this.Xb(),t=this.selectionChanged,t!==null&&t(this),e!==null&&(e.ac(),e.skipsUndoManager=n)}}}},isHighlighted:{get:function(){return(this.G&524288)!==0},set:function(t){var i=(this.G&524288)!==0;if(i!==t){this.G^=524288;var e=this.diagram;e!==null&&(e=e.highlighteds,e.ka(),t?e.add(this):e.remove(this),e.freeze()),this.g("isHighlighted",i,t),this.N(),t=this.highlightedChanged,t!==null&&t(this)}}},isShadowed:{get:function(){return(this.G&8192)!==0},set:function(t){var i=(this.G&8192)!==0;i!==t&&(this.G^=8192,this.Uc=!0,this.g("isShadowed",i,t),this.N())}},isAnimated:{get:function(){return(this.G&262144)!==0},set:function(t){var i=(this.G&262144)!==0;i!==t&&(this.G^=262144,this.g("isAnimated",i,t))}},highlightedChanged:{get:function(){return this.P!==null?this.P.nq:null},set:function(t){var i=this.highlightedChanged;i!==t&&(ie(this),this.P.nq=t,this.g("highlightedChanged",i,t))}},selectionObjectName:{get:function(){return this.P!==null?this.P.ur:""},set:function(t){var i=this.selectionObjectName;i!==t&&(ie(this),this.P.ur=t,this.Ug=null,this.g("selectionObjectName",i,t))}},selectionAdornmentTemplate:{get:function(){return this.P!==null?this.P.sr:null},set:function(t){var i=this.selectionAdornmentTemplate;i!==t&&(ie(this),this.P.sr=t,this.g("selectionAdornmentTemplate",i,t))}},selectionObject:{get:function(){if(this.Ug===null){var t=this.selectionObjectName;t!==null&&t!==""?(t=this.fb(t),t!==null?this.Ug=t:this.Ug=this):this instanceof F?(t=this.path,t!==null?this.Ug=t:this.Ug=this):this.Ug=this}return this.Ug}},selectionChanged:{get:function(){return this.P!==null?this.P.tr:null},set:function(t){var i=this.selectionChanged;i!==t&&(ie(this),this.P.tr=t,this.g("selectionChanged",i,t))}},resizeAdornmentTemplate:{get:function(){return this.P!==null?this.P.er:null},set:function(t){var i=this.resizeAdornmentTemplate;i!==t&&(ie(this),this.P.er=t,this.g("resizeAdornmentTemplate",i,t))}},resizeObjectName:{get:function(){return this.P!==null?this.P.gr:""},set:function(t){var i=this.resizeObjectName;i!==t&&(ie(this),this.P.gr=t,this.g("resizeObjectName",i,t))}},resizeObject:{get:function(){var t=this.resizeObjectName;return t!==""&&(t=this.fb(t),t!==null)?t:this}},resizeCellSize:{get:function(){return this.P!==null?this.P.fr:Lu},set:function(t){var i=this.resizeCellSize;i.D(t)||(t=t.J(),ie(this),this.P.fr=t,this.g("resizeCellSize",i,t))}},rotateAdornmentTemplate:{get:function(){return this.P!==null?this.P.hr:null},set:function(t){var i=this.rotateAdornmentTemplate;i!==t&&(ie(this),this.P.hr=t,this.g("rotateAdornmentTemplate",i,t))}},rotateObjectName:{get:function(){return this.P!==null?this.P.ir:""},set:function(t){var i=this.rotateObjectName;i!==t&&(ie(this),this.P.ir=t,this.g("rotateObjectName",i,t))}},rotateObject:{get:function(){var t=this.rotateObjectName;return t!==""&&(t=this.fb(t),t!==null)?t:this}},rotationSpot:{get:function(){return this.P!==null?this.P.kr:Si},set:function(t){var i=this.rotationSpot;i.D(t)||(t=t.J(),ie(this),this.P.kr=t,this.g("rotationSpot",i,t))}},text:{get:function(){return this.fc},set:function(t){var i=this.fc;i!==t&&(this.fc=t,this.g("text",i,t))}},containingGroup:{get:function(){return this.Ah},set:function(t){if(this.Zc()){var i=this.Ah;if(i!==t){t===null||this!==t&&!t.Td(this)||(this===t&&O("Cannot make a Group a member of itself: "+this.toString()),O("Cannot make a Group indirectly contain itself: "+this.toString()+" already contains "+t.toString())),this.C(2);var e=this.diagram;if(i!==null?hd(i,this):this instanceof Q&&e!==null&&e.ai.remove(this),this.Ah=t,t!==null?sd(t,this):this instanceof Q&&e!==null&&e.ai.add(this),this.C(1),e!==null&&e.aa){var n=this.data,o=e.model;if(n!==null&&o.Wj()){var r=o.wa(t!==null?t.data:null);o.lp(n,r)}}if(n=this.containingGroupChanged,n!==null&&(o=!0,e!==null&&(o=e.aa,e.aa=!0),n(this,i,t),e!==null&&(e.aa=o)),this instanceof Q){for(e=new E,ar(e,this,!0,0,!0),e=e.iterator;e.next();)if(n=e.value,n instanceof B)for(n=n.linksConnected;n.next();)jh(n.value)}if(this instanceof B){for(e=this.linksConnected;e.next();)jh(e.value);e=this.labeledLink,e!==null&&jh(e)}this.g("containingGroup",i,t),t!==null&&(i=t.layer,i!==null&&Uu(i,-1,t))}}else O("cannot set the Part.containingGroup of a Link or Adornment")}},containingGroupChanged:{get:function(){return this.P!==null?this.P.Jp:null},set:function(t){var i=this.containingGroupChanged;i!==t&&(ie(this),this.P.Jp=t,this.g("containingGroupChanged",i,t))}},isTopLevel:{get:function(){return!(this.containingGroup!==null||this instanceof B&&this.labeledLink!==null)}},layoutConditions:{get:function(){return this.P!==null?this.P.Bq:127},set:function(t){var i=this.layoutConditions;i!==t&&(ie(this),this.P.Bq=t,this.g("layoutConditions",i,t))}},dragComputation:{get:function(){return this.P!==null?this.P.Tp:null},set:function(t){var i=this.dragComputation;i!==t&&(ie(this),this.P.Tp=t,this.g("dragComputation",i,t))}},shadowOffset:{get:function(){return this.P!==null?this.P.yr:qf},set:function(t){var i=this.shadowOffset;i.D(t)||(t=t.J(),ie(this),this.P.yr=t,this.N(),this.g("shadowOffset",i,t))}},shadowColor:{get:function(){return this.P!==null?this.P.xr:"gray"},set:function(t){var i=this.shadowColor;i!==t&&(ie(this),this.P.xr=t,this.N(),this.g("shadowColor",i,t))}},shadowBlur:{get:function(){return this.P!==null?this.P.Vg:4},set:function(t){var i=this.shadowBlur;i!==t&&(ie(this),this.P.Vg=t,this.N(),this.g("shadowBlur",i,t))}}}),U.prototype.invalidateLayout=U.prototype.C,U.prototype.findCommonContainingGroup=U.prototype.px,U.prototype.isMemberOf=U.prototype.Td,U.prototype.findTopLevelPart=U.prototype.sz,U.prototype.findSubGraphLevel=U.prototype.oz,U.prototype.ensureBounds=U.prototype.Va,U.prototype.getDocumentBounds=U.prototype.mi,U.prototype.findObject=U.prototype.fb,U.prototype.moveTo=U.prototype.moveTo,U.prototype.invalidateAdornments=U.prototype.Xb,U.prototype.clearAdornments=U.prototype.Dj,U.prototype.removeAdornment=U.prototype.Jf,U.prototype.addAdornment=U.prototype.bh,U.prototype.findAdornment=U.prototype.Oj,U.prototype.updateTargetBindings=U.prototype.La;var Wy=!1;U.className="Part",U.LayoutNone=0,U.LayoutAdded=1,U.LayoutRemoved=2,U.LayoutShown=4,U.LayoutHidden=8,U.LayoutNodeSized=16,U.LayoutGroupLayout=32,U.LayoutNodeReplaced=64,U.LayoutStandard=127,U.LayoutAll=16777215;function lt(t,i){t===void 0||t instanceof bt||typeof t=="string"?U.call(this,t):(U.call(this),t&&(i=t)),this.G&=-257,this.Jg="Adornment",this.ue=null,this.Aw=0,this.Uw=!1,this.j=this.$a=null,i&&Object.assign(this,i)}pt(lt,U),lt.prototype.toString=function(){var t=this.adornedPart;return"Adornment("+this.category+")"+(t!==null?t.toString():"")},lt.prototype.updateRelationshipsFromData=function(){},lt.prototype.Tl=function(t){var i=this.adornedObject,e=i==null?void 0:i.part;if(e instanceof F&&i instanceof q){i=e.path,e.Tl(t),t=i.geometry,e=this.O.s,i=e.length;for(var n=0;n<i;n++){var o=e[n];o.isPanelMain&&o instanceof q&&(o.ua=t)}}},lt.prototype.si=function(){var t=this.ue;return t===null?!0:(t=t.part,t===null||!hn(t))},lt.prototype.Zc=function(){return!1},lt.prototype.fk=function(t,i,e,n,o,r,s){if(t===ii&&i==="elements"){if(o instanceof Ki)this.$a===null&&(this.$a=o);else if(o instanceof j){var h=o.Ml(function(l){return l instanceof Ki});h instanceof Ki&&this.$a===null&&(this.$a=h)}}else t===si&&i==="elements"&&this.$a!==null&&(n===this.$a?this.$a=null:n instanceof j&&this.$a.rg(n)&&(this.$a=null));U.prototype.fk.call(this,t,i,e,n,o,r,s)},lt.prototype.updateAdornments=function(){},lt.prototype.Kj=function(){},tt.Object.defineProperties(lt.prototype,{placeholder:{get:function(){return this.$a}},adornedObject:{get:function(){return this.ue},set:function(t){var i=this.adornedPart,e=null;t!==null&&(e=t.part),i===null||t!==null&&i===e||i.Jf(this.category),this.ue=t,e!==null&&e.bh(this.category,this)}},adornedPart:{get:function(){var t=this.ue;return t!==null?t.part:null}},containingGroup:{get:function(){return null}}}),lt.className="Adornment";function nd(){this.oc=!1,this.Ur=this.gj=this.Dq=this.Cq=null,this.xp=rp,this.dr=Ya,this.Jr=this.ij=this.Mq=this.Lq=null}nd.prototype.copy=function(){var t=new nd;return t.Cq=this.Cq,t.Dq=this.Dq,t.gj=this.gj,t.Ur=this.Ur,t.xp=this.xp.J(),t.dr=this.dr,t.Lq=this.Lq,t.Mq=this.Mq,t.ij=this.ij,t.Jr=this.Jr,t};function B(t,i){t===void 0||t instanceof bt||typeof t=="string"?U.call(this,t):(U.call(this),t&&(i=t)),this.U=13,this.Ba=null,this.jb=new V,this.wc=this.af=this.Xk=null,this.ci=!1,i&&Object.assign(this,i)}pt(B,U),B.prototype.cloneProtected=function(t){U.prototype.cloneProtected.call(this,t),t.U=this.U,this.Ba!==null&&(t.Ba=this.Ba.oc?this.Ba:this.Ba.copy())},d=B.prototype,d.Af=function(t){U.prototype.Af.call(this,t),t.Bd(),t.af=this.af,t.wc=null};function Go(t){t.Ba===null?t.Ba=new nd:t.Ba.oc&&(t.Ba=t.Ba.copy())}d.th=function(){U.prototype.th.call(this),this.Ba!==null&&(this.Ba.oc=!0)};function Jy(t,i){i!==null&&(t.af===null&&(t.af=new E),t.af.add(i))}function Zy(t,i,e,n){if(i===null||t.af===null)return null;for(var o=t.af.iterator;o.next();){var r=o.value;if(r.Cs===t&&r.cv===i&&r.Ox===e&&r.Px===n||r.Cs===i&&r.cv===t&&r.Ox===n&&r.Px===e)return r}return null}d.Lz=function(t,i,e){i==null&&(i=""),e==null&&(e=""),t=Zy(this,t,i,e),t!==null&&t.Rl()},d.fk=function(t,i,e,n,o,r,s){t===ii&&i==="elements"?this.wc=null:t===si&&i==="elements"&&(this.wc=null),U.prototype.fk.call(this,t,i,e,n,o,r,s)},d.Bd=function(t){for(var i=this.linksConnected;i.next();){var e=i.value;t!==void 0&&t.contains(e)||(ce(e.fromPort),ce(e.toPort),e.bb())}};function _y(t,i){for(t=t.linksConnected;t.next();){var e=t.value;(e.fromPort===i||e.toPort===i)&&(ce(e.fromPort),ce(e.toPort),e.bb())}}function ce(t){if(t!==null){var i=t.Yn;i!==null&&i.Rl(),t=t.part,i=t.containingGroup,i===null||t.isVisible()||ce(i.port)}}d.si=function(){return!0},B.prototype.getAvoidableRect=function(t){return t.set(this.actualBounds),t.Bo(this.avoidableMargin),t},B.prototype.findVisibleNode=function(){for(var t=this;t!==null&&!t.isVisible();)t=t.containingGroup;return t},B.prototype.isVisible=function(){if(!U.prototype.isVisible.call(this))return!1;var t=!0,i=gs,e=this.diagram;if(e!==null&&(t=e.isTreePathToChildren,i=e.treeCollapsePolicy),i===gs){if(t=this.pg(),t!==null&&!t.isTreeExpanded)return!1}else if(i===ac){if(t=t?this.No():this.Oo(),0<t.count&&t.all(function(n){return!n.isTreeExpanded}))return!1}else if(i===fc&&(t=t?this.No():this.Oo(),0<t.count&&t.any(function(n){return!n.isTreeExpanded})))return!1;return t=this.labeledLink,t!==null?t.isVisible():!0},B.prototype.$b=function(t){U.prototype.$b.call(this,t);for(var i=this.linksConnected;i.next();){var e=i.value;if(t&&this.containingGroup!==null){var n=e.So(this);n===null||n.Td(this.containingGroup)||e.bb()}e.$b(t)}},B.prototype.qx=function(){var t=new E,i=new E;return $y(this,this,t,i),i.iterator};function $y(t,i,e,n){if(i!==null&&!e.has(i)){e.add(i);var o=!0,r=t.diagram;r!==null&&(o=r.isTreePathToChildren),i.linksConnected.each(function(s){s.isTreeLink?(o?s.fromNode===i:s.toNode===i)&&$y(t,o?s.toNode:s.fromNode,e,n):n.add(s)})}}B.prototype.findLinksConnected=function(t){if(t===void 0&&(t=null),t===null)return this.jb.iterator;var i=new fi(this.jb),e=this;return i.predicate=function(n){return n.fromNode===e&&n.fromPortId===t||n.toNode===e&&n.toPortId===t},i},d=B.prototype,d.Lo=function(t){t===void 0&&(t=null);var i=new fi(this.jb),e=this;return i.predicate=function(n){return n.fromNode!==e?!1:t===null?!0:n.fromPortId===t},i},d.Sd=function(t){t===void 0&&(t=null);var i=new fi(this.jb),e=this;return i.predicate=function(n){return n.toNode!==e?!1:t===null?!0:n.toPortId===t},i},d.Mu=function(t){t===void 0&&(t=null);for(var i=null,e=null,n=this.jb.iterator;n.next();){var o=n.value;o.fromNode===this?(t===null||o.fromPortId===t)&&(o=o.toNode,i!==null?i.add(o):e!==null&&e!==o?(i=new E,i.add(e),i.add(o)):e=o):o.toNode!==this||t!==null&&o.toPortId!==t||(o=o.fromNode,i!==null?i.add(o):e!==null&&e!==o?(i=new E,i.add(e),i.add(o)):e=o)}return i!==null?i.iterator:e!==null?new gi(e):nn},d.Oo=function(t){t===void 0&&(t=null);for(var i=null,e=null,n=this.jb.iterator;n.next();){var o=n.value;o.fromNode!==this||t!==null&&o.fromPortId!==t||(o=o.toNode,i!==null?i.add(o):e!==null&&e!==o?(i=new E,i.add(e),i.add(o)):e=o)}return i!==null?i.iterator:e!==null?new gi(e):nn},d.No=function(t){t===void 0&&(t=null);for(var i=null,e=null,n=this.jb.iterator;n.next();){var o=n.value;o.toNode!==this||t!==null&&o.toPortId!==t||(o=o.fromNode,i!==null?i.add(o):e!==null&&e!==o?(i=new E,i.add(e),i.add(o)):e=o)}return i!==null?i.iterator:e!==null?new gi(e):nn},d.jz=function(t,i,e){i===void 0&&(i=null),e===void 0&&(e=null);var n=new fi(this.jb),o=this;return n.predicate=function(r){return!((r.fromNode!==o||r.toNode!==t||i!==null&&r.fromPortId!==i||e!==null&&r.toPortId!==e)&&(r.fromNode!==t||r.toNode!==o||e!==null&&r.fromPortId!==e||i!==null&&r.toPortId!==i))},n},d.kz=function(t,i,e){i===void 0&&(i=null),e===void 0&&(e=null);var n=new fi(this.jb),o=this;return n.predicate=function(r){return!(r.fromNode!==o||r.toNode!==t||i!==null&&r.fromPortId!==i||e!==null&&r.toPortId!==e)},n};function Ra(t,i,e){ce(e);var n=t.jb.contains(i);if(n||t.jb.add(i),!n||i.fromNode===i.toNode){var o=t.linkConnected;if(o!==null){var r=!0,s=t.diagram;s!==null&&(r=s.aa,s.aa=!0),o(t,i,e),s!==null&&(s.aa=r)}}!n&&i.isTreeLink&&(e=i.fromNode,i=i.toNode,e!==null&&i!==null&&e!==i&&(n=!0,t=t.diagram,t!==null&&(n=t.isTreePathToChildren),o=n?i:e,r=n?e:i,o.ci||(o.ci=r),!r.isTreeLeaf||t!==null&&t.undoManager.isUndoingRedoing||(n?e===r&&(r.isTreeLeaf=!1):i===r&&(r.isTreeLeaf=!1))))}function Va(t,i,e){ce(e);var n=t.jb.remove(i),o=null;if(n||i.toNode===i.fromNode){var r=t.linkDisconnected;if(o=t.diagram,r!==null){var s=!0;o!==null&&(s=o.aa,o.aa=!0),r(t,i,e),o!==null&&(o.aa=s)}}n&&i.isTreeLink&&(e=!0,o!==null&&(e=o.isTreePathToChildren),t=e?i.toNode:i.fromNode,i=e?i.fromNode:i.toNode,t!==null&&(t.ci=!1),i===null||i.isTreeLeaf||(i.jb.count===0?(i.ci=null,o!==null&&o.undoManager.isUndoingRedoing||(i.isTreeLeaf=!0)):Bl(i)))}function Bl(t){if(t.ci=!1,t.jb.count!==0){var i=!0,e=t.diagram;if(e===null||!e.undoManager.isUndoingRedoing){for(e!==null&&(i=e.isTreePathToChildren),e=t.jb.iterator;e.next();){var n=e.value;if(n.isTreeLink){if(i){if(n.fromNode===t){t.isTreeLeaf=!1;return}}else if(n.toNode===t){t.isTreeLeaf=!1;return}}}t.isTreeLeaf=!0}}}B.prototype.updateRelationshipsFromData=function(){var t=this.diagram;t!==null&&t.partManager.updateRelationshipsFromData(this)},d=B.prototype,d.Uo=function(t){U.prototype.Uo.call(this,t),t||(Bl(this),t=this.Xk,t!==null&&rm(t,this))},d.Vo=function(t){U.prototype.Vo.call(this,t),t||(t=this.Xk,t!==null&&t.wd!==null&&(t.wd.remove(this),t.v()))},d.Kj=function(){if(0<this.jb.count){var t=this.diagram;if(t!==null)for(var i=t.commandHandler!==null?t.commandHandler.deletesConnectedLinks:!0,e=this.jb.copy().iterator;e.next();){var n=e.value;i?t.remove(n):(n.fromNode===this&&(n.fromNode=null),n.toNode===this&&(n.toNode=null))}}this.labeledLink=null,U.prototype.Kj.call(this)},d.ms=function(t){if(this.wc===null){if(t===""&&this.Te===!1)return this;Qy(this)}var i=this.wc.I(t);return i!==null||t!==""&&(i=this.wc.I(""),i!==null)?i:this};function Qy(t){t.wc===null?t.wc=new _:t.wc.clear(),t.pm(t,function(i,e){qy(i,e)}),t.wc.count===0&&t.wc.add("",t)}function qy(t,i){var e=i.portId;e!==null&&t.wc!==null&&t.wc.add(e,i)}function od(t,i,e){var n=i.portId;if(n!==null&&(t.wc!==null&&t.wc.remove(n),i=t.diagram,i!==null&&e)){for(e=null,t=t.findLinksConnected(n);t.next();)n=t.value,e===null&&(e=kt()),e.push(n);if(e!==null){for(t=0;t<e.length;t++)i.remove(e[t]);Mt(e)}}}d.Nz=function(t){if(t===null||t===this)return!1;var i=!0,e=this.diagram;if(e!==null&&(i=e.isTreePathToChildren),e=this,i)for(;e!==t;){i=null;for(var n=e.jb.iterator;n.next();){var o=n.value;if(o.isTreeLink&&(i=o.fromNode,i!==e&&i!==this))break}if(i===this||i===null||i===e)return!1;e=i}else for(;e!==t;){for(i=null,n=e.jb.iterator;n.next()&&(o=n.value,!o.isTreeLink||(i=o.toNode,i===e||i===this)););if(i===this||i===null||i===e)return!1;e=i}return!0},d.xz=function(){var t=!0,i=this.diagram;if(i!==null&&(t=i.isTreePathToChildren),i=this,t)for(;;){t=null;for(var e=i.jb.iterator;e.next();){var n=e.value;if(n.isTreeLink&&(t=n.fromNode,t!==i&&t!==this))break}if(t===this)return this;if(t===null||t===i)return i;i=t}else for(;;){for(t=null,e=i.jb.iterator;e.next()&&(n=e.value,!n.isTreeLink||(t=n.toNode,t===i||t===this)););if(t===this)return this;if(t===null||t===i)return i;i=t}},d.gz=function(t){if(t===null)return null;if(this===t)return this;for(var i=this;i!==null;)Ba(i,!0),i=i.pg();var e=null;for(i=t;i!==null;){if(i.G&1048576){e=i;break}i=i.pg()}for(i=this;i!==null;)Ba(i,!1),i=i.pg();return e},d.kh=function(){var t=!0,i=this.diagram;if(i!==null&&(t=i.isTreePathToChildren),i=this.jb.iterator,t){for(;i.next();)if(t=i.value,t.isTreeLink&&t.fromNode!==this)return t}else for(;i.next();)if(t=i.value,t.isTreeLink&&t.toNode!==this)return t;return null},d.pg=function(){var t=this.ci;if(t===null)return null;if(t instanceof B)return t;t=this.diagram,t=t!==null?t.isTreePathToChildren:!0;for(var i=this.jb.iterator;i.next();){var e=i.value;if(e.isTreeLink&&(e=t?e.fromNode:e.toNode,e!==this))return this.ci=e}return this.ci=null},d.vz=function(){function t(e,n){n.add(e);var o=e.kh();o!==null&&(n.add(o),e=e.pg(),e!==null&&t(e,n))}var i=new E;return t(this,i),i},d.uz=function(){return by(this,this)};function by(t,i){return i=i.pg(),i===null?0:1+by(t,i)}d.Po=function(){var t=!0,i=this.diagram;i!==null&&(t=i.isTreePathToChildren),i=new fi(this.jb);var e=this;return i.predicate=t?function(n){return!!(n.isTreeLink&&n.fromNode===e)}:function(n){return!!(n.isTreeLink&&n.toNode===e)},i},d.Ou=function(){var t=!0,i=this.diagram;i!==null&&(t=i.isTreePathToChildren);var e=i=null,n=this.jb.iterator;if(t)for(;n.next();)t=n.value,t.isTreeLink&&t.fromNode===this&&(t=t.toNode,i!==null?i.add(t):e!==null&&e!==t?(i=new V,i.add(e),i.add(t)):e=t);else for(;n.next();)t=n.value,t.isTreeLink&&t.toNode===this&&(t=t.fromNode,i!==null?i.add(t):e!==null&&e!==t?(i=new V,i.add(e),i.add(t)):e=t);return i!==null?i.iterator:e!==null?new gi(e):nn},d.wz=function(t){t===void 0&&(t=1/0);var i=new E;return ar(i,this,!1,t,!0),i},B.prototype.collapseTree=function(t){t===void 0&&(t=1),1>t&&(t=1);var i=this.diagram;if(i!==null&&!i.Ue){i.Ue=!0;var e=new E;e.add(this),tm(this,e,i.isTreePathToChildren,t,i,this,i.treeCollapsePolicy===gs),i.Ue=!1}};function tm(t,i,e,n,o,r,s){if(1<n)for(var h=e?t.Lo():t.Sd();h.next();){var l=h.value;l.isTreeLink&&(l=l.So(t),l===null||l===t||i.contains(l)||(i.add(l),tm(l,i,e,n-1,o,r)))}else im(t,i,e,o,r)}function im(t,i,e,n,o,r){for(var s=o===t?!0:t.isTreeExpanded,h=e?t.Lo():t.Sd(),l={};h.next();){var u=h.value;if(u.isTreeLink&&(u=u.So(t),u!==null&&u!==t)){var a=i.contains(u);if(a||i.add(u),s){var f=e?u.No():u.Oo();l.uv=t,f.all(function(p){return function(c){return c===p.uv||!c.isTreeExpanded}}(l))&&n.Aj(u,o),u.oh(),u.$b(!1)}u.isTreeExpanded&&(u.wasTreeExpanded=u.isTreeExpanded,a||im(u,i,e,n,o))}l={uv:l.uv}}t.isTreeExpanded=!1}B.prototype.expandTree=function(t){t===void 0&&(t=2),2>t&&(t=2);var i=this.diagram;if(i!==null&&!i.Ue){i.Ue=!0;var e=new E;e.add(this),em(this,e,i.isTreePathToChildren,t,i,this,i.treeCollapsePolicy===gs),i.Ue=!1}};function em(t,i,e,n,o,r,s){for(var h=r===t?!1:t.isTreeExpanded,l=e?t.Lo():t.Sd(),u={};l.next();){var a=l.value;if(a.isTreeLink&&(h||a.fd||a.bb(),a=a.So(t),a!==null&&a!==t&&!i.contains(a))){if(i.add(a),!h){a.$b(!0),a.oh();var f=e?a.No():a.Oo();u.vv=t,f.all(function(p){return function(c){return c===p.vv||!c.isTreeExpanded}}(u))&&o.Cj(a,r)}(2<n||a.wasTreeExpanded)&&(a.wasTreeExpanded=!1,em(a,i,e,n-1,o,r))}u={vv:u.vv}}t.isTreeExpanded=!0}tt.Object.defineProperties(B.prototype,{portSpreading:{get:function(){return this.Ba!==null?this.Ba.dr:Ya},set:function(t){var i=this.portSpreading;i!==t&&(Go(this),this.Ba.dr=t,this.g("portSpreading",i,t),t=this.diagram,t!==null&&t.undoManager.isUndoingRedoing||this.Bd())}},avoidable:{get:function(){return(this.U&8)!==0},set:function(t){var i=(this.U&8)!==0;if(i!==t){this.U^=8;var e=this.diagram;e!==null&&hc(e,this),this.g("avoidable",i,t)}}},avoidableMargin:{get:function(){return this.Ba!==null?this.Ba.xp:rp},set:function(t){typeof t=="number"&&(t=new gt(t));var i=this.avoidableMargin;if(!i.D(t)){t=t.J(),Go(this),this.Ba.xp=t;var e=this.diagram;e!==null&&hc(e,this),this.g("avoidableMargin",i,t)}}},linksConnected:{get:function(){return this.jb.iterator}},linkConnected:{get:function(){return this.Ba!==null?this.Ba.Cq:null},set:function(t){var i=this.linkConnected;i!==t&&(Go(this),this.Ba.Cq=t,this.g("linkConnected",i,t))}},linkDisconnected:{get:function(){return this.Ba!==null?this.Ba.Dq:null},set:function(t){var i=this.linkDisconnected;i!==t&&(Go(this),this.Ba.Dq=t,this.g("linkDisconnected",i,t))}},linkValidation:{get:function(){return this.Ba!==null?this.Ba.gj:null},set:function(t){var i=this.linkValidation;i!==t&&(Go(this),this.Ba.gj=t,this.g("linkValidation",i,t))}},isLinkLabel:{get:function(){return this.Xk!==null}},labeledLink:{get:function(){return this.Xk},set:function(t){var i=this.Xk;if(i!==t){var e=this.diagram,n=this.data;if(i!==null){if(i.wd!==null&&(i.wd.remove(this),i.v()),e!==null&&n!==null&&!e.undoManager.isUndoingRedoing){var o=i.data,r=e.model;if(o!==null&&r.ri()){var s=r.wa(n);s!==void 0&&r.Qx(o,s)}}this.containingGroup=null}this.Xk=t,t!==null&&(rm(t,this),e===null||n===null||e.undoManager.isUndoingRedoing||(o=t.data,e=e.model,o!==null&&e.ri()&&(n=e.wa(n),n!==void 0&&e.Au(o,n))),this.containingGroup=t.containingGroup),ch(this),this.g("labeledLink",i,t)}}},port:{get:function(){return this.ms("")}},ports:{get:function(){return this.wc===null&&Qy(this),this.wc.iteratorValues}},isTreeExpanded:{get:function(){return(this.U&1)!==0},set:function(t){var i=(this.U&1)!==0;if(i!==t){this.U^=1;var e=this.diagram;if(this.g("isTreeExpanded",i,t),i=this.treeExpandedChanged,i!==null){var n=!0;e!==null&&(n=e.aa,e.aa=!0),i(this),e!==null&&(e.aa=n)}e!==null&&e.undoManager.isUndoingRedoing?this.$b(t):t?this.expandTree():this.collapseTree()}}},wasTreeExpanded:{get:function(){return(this.U&2)!==0},set:function(t){var i=(this.U&2)!==0;i!==t&&(this.U^=2,this.g("wasTreeExpanded",i,t))}},treeExpandedChanged:{get:function(){return this.Ba!==null?this.Ba.Ur:null},set:function(t){var i=this.treeExpandedChanged;i!==t&&(Go(this),this.Ba.Ur=t,this.g("treeExpandedChanged",i,t))}},isTreeLeaf:{get:function(){return(this.U&4)!==0},set:function(t){var i=(this.U&4)!==0;i!==t&&(this.U^=4,this.g("isTreeLeaf",i,t))}}}),B.prototype.expandTree=B.prototype.expandTree,B.prototype.collapseTree=B.prototype.collapseTree,B.prototype.findTreeParts=B.prototype.wz,B.prototype.findTreeChildrenNodes=B.prototype.Ou,B.prototype.findTreeChildrenLinks=B.prototype.Po,B.prototype.findTreeLevel=B.prototype.uz,B.prototype.findTreeParentChain=B.prototype.vz,B.prototype.findTreeParentNode=B.prototype.pg,B.prototype.findTreeParentLink=B.prototype.kh,B.prototype.findCommonTreeParent=B.prototype.gz,B.prototype.findTreeRoot=B.prototype.xz,B.prototype.isInTreeOf=B.prototype.Nz,B.prototype.findPort=B.prototype.ms,B.prototype.findLinksTo=B.prototype.kz,B.prototype.findLinksBetween=B.prototype.jz,B.prototype.findNodesInto=B.prototype.No,B.prototype.findNodesOutOf=B.prototype.Oo,B.prototype.findNodesConnected=B.prototype.Mu,B.prototype.findLinksInto=B.prototype.Sd,B.prototype.findLinksOutOf=B.prototype.Lo,B.prototype.findExternalTreeLinksConnected=B.prototype.qx,B.prototype.invalidateConnectedLinks=B.prototype.Bd,B.prototype.invalidateLinkBundle=B.prototype.Lz;var r1=new R(B,"SpreadingNone",10),Ya=new R(B,"SpreadingEvenly",11),rd=new R(B,"SpreadingPacked",12);B.className="Node",B.SpreadingNone=r1,B.SpreadingEvenly=Ya,B.SpreadingPacked=rd;function Q(t,i){t===void 0||t instanceof bt||typeof t=="string"?B.call(this,t):(B.call(this),t&&(i=t)),this.U|=4608,this.Fn=new E,this.$a=null,this.Sc=new Lt,this.Sc.group=this,this.fl=new E,this.tb=this.Zp=null,i&&Object.assign(this,i)}pt(Q,B),Q.prototype.cloneProtected=function(t){B.prototype.cloneProtected.call(this,t),this.U=this.U&-32769;var i=t.Ml(function(e){return e instanceof Ki});i instanceof Ki?t.$a=i:t.$a=null,this.Sc!==null?(t.Sc=this.Sc.copy(),t.Sc.group=t):(t.Sc!==null&&(t.Sc.group=null),t.Sc=null),this.tb!==null&&(t.tb=this.tb.copy())},d=Q.prototype,d.Af=function(t){B.prototype.Af.call(this,t);var i=t.Qj();for(t=t.memberParts;t.next();){var e=t.value;if(e.v(),e.C(8),e.Dj(),e instanceof B)e.Bd(i);else if(e instanceof F)for(e=e.labelNodes;e.next();)e.value.Bd(i)}},d.fk=function(t,i,e,n,o,r,s){if(t===ii&&i==="elements"){if(o instanceof Ki)this.$a===null?this.$a=o:this.$a!==o&&O("Cannot insert a second Placeholder into the visual tree of a Group.");else if(o instanceof j){var h=o.Ml(function(l){return l instanceof Ki});h instanceof Ki&&(this.$a===null?this.$a=h:this.$a!==h&&O("Cannot insert a second Placeholder into the visual tree of a Group."))}}else t===si&&i==="elements"&&this.$a!==null&&(n===this.$a?this.$a=null:n instanceof j&&this.$a.rg(n)&&(this.$a=null));B.prototype.fk.call(this,t,i,e,n,o,r,s)},d.Wl=function(t,i){B.prototype.Wl.call(this,t,i),this.isClipping&&this.type!==j.Spot&&this.isSubGraphExpanded&&(t=this.resizeObject,t instanceof j&&(t=t.Qb()),this.tb===null&&(this.tb=new T),t.mi(this.tb),t instanceof q&&this.tb.Bc(-t.strokeWidth,-t.strokeWidth))},d.eh=function(t,i,e,n){this.nf=this.$a,B.prototype.eh.call(this,t,i,e,n)},d.Va=function(){var t=this;t.isSubGraphExpanded&&this.memberParts.each(function(i){!t.computesBoundsIncludingLinks&&i instanceof F||i.Va()}),B.prototype.Va.call(this)},d.si=function(){if(!B.prototype.si.call(this))return!1;for(var t=this.memberParts;t.next();){var i=t.value;if(i instanceof B){if(i.isVisible()&&hn(i))return!1}else if(i instanceof F&&i.isVisible()&&hn(i)&&i.fromNode!==this&&i.toNode!==this)return!1}return!0};function sd(t,i){if(t.Fn.add(i)){i instanceof Q&&t.fl.add(i);var e=t.memberAdded;if(e!==null){var n=!0,o=t.diagram;o!==null&&(n=o.aa,o.aa=!0),e(t,i),o!==null&&(o.aa=n)}t.isVisible()&&t.isSubGraphExpanded||i.$b(!1)}i instanceof F&&!t.computesBoundsIncludingLinks||(i=t.$a,i===null&&(i=t),i.v())}function hd(t,i){if(t.Fn.remove(i)){i instanceof Q&&t.fl.remove(i);var e=t.memberRemoved;if(e!==null){var n=!0,o=t.diagram;o!==null&&(n=o.aa,o.aa=!0),e(t,i),o!==null&&(o.aa=n)}t.isVisible()&&t.isSubGraphExpanded||i.$b(!0)}i instanceof F&&!t.computesBoundsIncludingLinks||(i=t.$a,i===null&&(i=t),i.v())}d.Kj=function(){if(0<this.Fn.count){var t=this.diagram;if(t!==null)for(var i=this.Fn.copy().iterator;i.next();)t.remove(i.value)}B.prototype.Kj.call(this)},Q.prototype.canAddMembers=function(t){var i=this.diagram;if(i===null)return!1;for(i=i.commandHandler,t=cc(t).iterator;t.next();)if(!i.isValidMember(this,t.value))return!1;return!0},Q.prototype.addMembers=function(t,i){var e=this.diagram;if(e===null)return!1;e=e.commandHandler;var n=!0;for(t=cc(t).iterator;t.next();){var o=t.value;!i||e.isValidMember(this,o)?o.containingGroup=this:n=!1}return n},Q.prototype.canUngroup=function(){if(!this.ungroupable)return!1;var t=this.layer;return t===null||!t.allowUngroup?!1:(t=t.diagram,!!(t===null||t.allowUngroup))},d=Q.prototype,d.Bd=function(t){var i=(this.U&65536)!==0;if(B.prototype.Bd.call(this,t),!i)for(!(this.U&65536)&&(this.U=this.U^65536),i=this.Lu();i.next();){var e=i.value;if(t===void 0||!t.contains(e)){var n=e.fromNode;n!==null&&n!==this&&n.Td(this)&&!n.isVisible()?(ce(e.fromPort),ce(e.toPort),e.bb()):(n=e.toNode,n!==null&&n!==this&&n.Td(this)&&!n.isVisible()&&(ce(e.fromPort),ce(e.toPort),e.bb()))}}},d.Lu=function(){var t=this.diagram!==null&&this.diagram.Pw;if(t&&this.Zp!==null)return this.Zp.iterator;var i=this.Qj();i.add(this);for(var e=new E,n=i.iterator;n.next();){var o=n.value;if(o instanceof B)for(o=o.linksConnected;o.next();){var r=o.value;i.contains(r)||e.add(r)}}return t&&(this.Zp=e),e.iterator},d.iz=function(){var t=this.Qj();t.add(this);for(var i=new E,e=t.iterator;e.next();){var n=e.value;if(n instanceof B)for(n=n.linksConnected;n.next();){var o=n.value,r=o.fromNode;r===null||t.contains(r)&&r!==this||i.add(r),o=o.toNode,o===null||t.contains(o)&&o!==this||i.add(o)}}return i.iterator},d.hz=function(){function t(e,n){e!==null&&(n.add(e),t(e.containingGroup,n))}var i=new E;return t(this,i),i},d.Qj=function(){var t=new E;return ar(t,this,!0,0,!0),t.remove(this),t},d.$b=function(t){B.prototype.$b.call(this,t);for(var i=this.memberParts;i.next();)i.value.$b(t)},Q.prototype.collapseSubGraph=function(){var t=this.diagram;if(t!==null&&!t.Ue){t.Ue=!0;var i=this.Qj();nm(this,i,t,this),t.Ue=!1}};function nm(t,i,e,n){for(var o=t.memberParts;o.next();){var r=o.value;if(r.$b(!1),r instanceof Q&&r.isSubGraphExpanded&&(r.wasSubGraphExpanded=r.isSubGraphExpanded,nm(r,i,e,n)),r instanceof B)r.Bd(i),e.Aj(r,n);else if(r instanceof F)for(r=r.labelNodes;r.next();)r.value.Bd(i)}t.isSubGraphExpanded=!1}Q.prototype.expandSubGraph=function(){var t=this.diagram;if(t!==null&&!t.Ue){t.Ue=!0;var i=this.Qj();om(this,i,t,this),t.Ue=!1}};function om(t,i,e,n){for(var o=t.memberParts;o.next();){var r=o.value;if(r.$b(!0),r instanceof Q&&r.wasSubGraphExpanded&&(r.wasSubGraphExpanded=!1,om(r,i,e,n)),r instanceof B)r.Bd(i),e.Cj(r,n);else if(r instanceof F)for(r=r.labelNodes;r.next();)r.value.Bd(i)}t.isSubGraphExpanded=!0}Q.prototype.move=function(t,i){i===void 0&&(i=!1);var e=i?this.location:this.position,n=e.x;e=e.y;var o=t.x,r=t.y;if(!(n===o||isNaN(n)&&isNaN(o))||!(e===r||isNaN(e)&&isNaN(r))){for(n=o-(isNaN(n)?0:n),e=r-(isNaN(e)?0:e),r=x.alloc(),B.prototype.move.call(this,t,i),t=new E,i=this.Qj().iterator;i.next();)o=i.value,o instanceof F&&(o.suspendsRouting&&t.add(o),o.fd||o.fromNode!==this&&o.toNode!==this)&&(o.suspendsRouting=!0);for(i.reset();i.next();)if(o=i.value,!(o.ph()||o instanceof B&&o.isLinkLabel)){var s=o.position,h=o.location;s.w()?(r.x=s.x+n,r.y=s.y+e,o.position=r):h.w()&&(r.x=h.x+n,r.y=h.y+e,o.location=r)}for(i.reset();i.next();)o=i.value,o instanceof F&&(o.suspendsRouting=t.contains(o),o.fd||o.fromNode!==this&&o.toNode!==this)&&(s=o.position,r.x=s.x+n,r.y=s.y+e,r.w()?o.move(r):o.bb());x.free(r)}},tt.Object.defineProperties(Q.prototype,{placeholder:{get:function(){return this.$a}},computesBoundsAfterDrag:{get:function(){return(this.U&2048)!==0},set:function(t){var i=(this.U&2048)!==0;i!==t&&(this.U^=2048,this.g("computesBoundsAfterDrag",i,t))}},computesBoundsIncludingLinks:{get:function(){return(this.U&4096)!==0},set:function(t){var i=(this.U&4096)!==0;i!==t&&(this.U^=4096,this.g("computesBoundsIncludingLinks",i,t))}},computesBoundsIncludingLocation:{get:function(){return(this.U&8192)!==0},set:function(t){var i=(this.U&8192)!==0;i!==t&&(this.U^=8192,this.g("computesBoundsIncludingLocation",i,t))}},handlesDragDropForMembers:{get:function(){return(this.U&16384)!==0},set:function(t){var i=(this.U&16384)!==0;i!==t&&(this.U^=16384,this.g("handlesDragDropForMembers",i,t))}},memberParts:{get:function(){return this.Fn.iterator}},layout:{get:function(){return this.Sc},set:function(t){var i=this.Sc;if(i!==t){t!==null&&t.diagram!==null&&t.diagram.layout===t&&O("A layout cannot be both the Diagram.layout and a Group.layout: "+t),i!==null&&(i.diagram=null,i.group=null),this.Sc=t;var e=this.diagram;t!==null&&(t.diagram=e,t.group=this),e!==null&&(e.xh=!0),this.g("layout",i,t),e!==null&&e.ac()}}},memberAdded:{get:function(){return this.Ba!==null?this.Ba.Lq:null},set:function(t){var i=this.memberAdded;i!==t&&(Go(this),this.Ba.Lq=t,this.g("memberAdded",i,t))}},memberRemoved:{get:function(){return this.Ba!==null?this.Ba.Mq:null},set:function(t){var i=this.memberRemoved;i!==t&&(Go(this),this.Ba.Mq=t,this.g("memberRemoved",i,t))}},memberValidation:{get:function(){return this.Ba!==null?this.Ba.ij:null},set:function(t){var i=this.memberValidation;i!==t&&(Go(this),this.Ba.ij=t,this.g("memberValidation",i,t))}},ungroupable:{get:function(){return(this.U&256)!==0},set:function(t){var i=(this.U&256)!==0;i!==t&&(this.U^=256,this.g("ungroupable",i,t))}},isSubGraphExpanded:{get:function(){return(this.U&512)!==0},set:function(t){var i=(this.U&512)!==0;if(i!==t){this.U^=512;var e=this.diagram;if(this.g("isSubGraphExpanded",i,t),i=this.subGraphExpandedChanged,i!==null){var n=!0;e!==null&&(n=e.aa,e.aa=!0),i(this),e!==null&&(e.aa=n)}e!==null&&e.undoManager.isUndoingRedoing?(this.$a!==null&&this.$a.v(),this.memberParts.each(function(o){o.updateAdornments()})):t?this.expandSubGraph():this.collapseSubGraph()}}},wasSubGraphExpanded:{get:function(){return(this.U&1024)!==0},set:function(t){var i=(this.U&1024)!==0;i!==t&&(this.U^=1024,this.g("wasSubGraphExpanded",i,t))}},subGraphExpandedChanged:{get:function(){return this.Ba!==null?this.Ba.Jr:null},set:function(t){var i=this.subGraphExpandedChanged;i!==t&&(Go(this),this.Ba.Jr=t,this.g("subGraphExpandedChanged",i,t))}},rh:{get:function(){return(this.U&32768)!==0},set:function(t){(this.U&32768)!==0!==t&&(this.U^=32768)}}}),Q.prototype.expandSubGraph=Q.prototype.expandSubGraph,Q.prototype.collapseSubGraph=Q.prototype.collapseSubGraph,Q.prototype.findSubGraphParts=Q.prototype.Qj,Q.prototype.findContainingGroupChain=Q.prototype.hz,Q.prototype.findExternalNodesConnected=Q.prototype.iz,Q.prototype.findExternalLinksConnected=Q.prototype.Lu,Q.prototype.ensureBounds=Q.prototype.Va,Q.className="Group";function Ki(t){X.call(this),this.zb=Ks,this.jo=new T(NaN,NaN,NaN,NaN),t&&Object.assign(this,t)}pt(Ki,X),Ki.prototype.cloneProtected=function(t){X.prototype.cloneProtected.call(this,t),t.zb=this.zb.J(),t.jo=this.jo.copy()},Ki.prototype.gh=function(t){if(this.background===null&&this.areaBackground===null)return!1;var i=this.naturalBounds;return yn(0,0,i.width,i.height,t.x,t.y)},Ki.prototype.Vl=function(){var t=this.part;if(t!==null&&(t instanceof Q||t instanceof lt)||O("Placeholder is not inside a Group or Adornment."),t instanceof Q){var i=this.computeBorder(this.jo),e=this.minSize,n=this.ec;for(ao(n,(isFinite(e.width)?Math.max(e.width,i.width):i.width)||0,(isFinite(e.height)?Math.max(e.height,i.height):i.height)||0),this.Ge(0,0,n.width,n.height),n=t.memberParts,e=!1;n.next();)if(n.value.isVisible()){e=!0;break}n=t.diagram,!e||n===null||n.animationManager.Xu(t)||isNaN(i.x)||isNaN(i.y)||(e=x.alloc(),e.xi(i,t.locationSpot),e.D(t.location)||(t.location=e),x.free(e))}else{i=this.ec,e=this.zb,n=e.left+e.right;var o=e.top+e.bottom,r=t.adornedObject;t.angle=r.li();var s=0;r instanceof q&&(s=r.strokeWidth);var h=r.Df(),l=r.naturalBounds,u=(l.width+s)*h;s=(l.height+s)*h,t.type!==j.Link&&(h=r.ga(t.category==="Selection"?Ti:t.locationSpot,x.alloc()),t.location=h,x.free(h)),isNaN(u)||isNaN(s)?(t=r.ga(Ti,x.alloc()),u=T.allocAt(t.x,t.y,0,0),u.Ye(r.ga(Xn,t)),u.Ye(r.ga(Us,t)),u.Ye(r.ga(Hs,t)),ao(i,u.width+n||0,u.height+o||0),this.Ge(-e.left,-e.top,i.width,i.height),x.free(t),T.free(u)):(ao(i,u+n||0,s+o||0),this.Ge(-e.left,-e.top,i.width,i.height))}},Ki.prototype.eh=function(t,i,e,n){this.actualBounds.h(t,i,e,n)},Ki.prototype.computeBorder=function(t){var i=this.part,e=i.diagram,n=e===null||!e.animationManager.isAnimating;if(e!==null&&i instanceof Q&&!i.layer.isTemporary&&i.computesBoundsAfterDrag&&this.jo.w()){var o=e.toolManager.findTool("Dragging");if(o===e.currentTool&&(e=o.computeBorder(i,this.jo,t),e!==null))return e}e=T.alloc(),o=this.computeMemberBounds(e);var r=this.zb;return i instanceof Q&&!i.isSubGraphExpanded?t.h(o.x-r.left,o.y-r.top,0,0):t.h(o.x-r.left,o.y-r.top,Math.max(o.width+r.left+r.right,0),Math.max(o.height+r.top+r.bottom,0)),T.free(e),n&&i instanceof Q&&i.computesBoundsIncludingLocation&&i.location.w()&&t.Ye(i.location),t},Ki.prototype.computeMemberBounds=function(t){if(!(this.part instanceof Q))return t.h(0,0,0,0),t;for(var i=this.part,e=1/0,n=1/0,o=-1/0,r=-1/0,s=i.memberParts;s.next();){var h=s.value;if(h.isVisible()){if(h instanceof F&&(!i.computesBoundsIncludingLinks||Eo(h)||h.fromNode===i||h.toNode===i))continue;h=h.actualBounds,h.left<e&&(e=h.left),h.top<n&&(n=h.top),h.right>o&&(o=h.right),h.bottom>r&&(r=h.bottom)}}return isFinite(e)&&isFinite(n)?t.h(e,n,o-e,r-n):(i=i.location,t.h(i.x,i.y,0,0)),t},tt.Object.defineProperties(Ki.prototype,{padding:{get:function(){return this.zb},set:function(t){typeof t=="number"&&(t=new gt(t));var i=this.zb;i.D(t)||(this.zb=t=t.J(),this.g("padding",i,t),this.v())}}}),Ki.className="Placeholder";function F(t){U.call(this,j.Link),this.Qa=8,this.ef=null,this.ff="",this.uf=this.fn=null,this.vf="",this.to=null,this.pk=Ui,this.Nm=0,this.Pm=Ui,this.Qm=NaN,this.qj=fd,this.oo=.5,this.wd=null,this.Ob=new V().freeze(),this.Tg=this.Mg=null,this.ll=new T,this.ua=new I,this.u=this.o=this.Sf=this.Wf=null,this.ru=new x,this.bq=this.Mw=this.Lw=null,this.ut=NaN,this.ba=null,this.j=[],t&&Object.assign(this,t)}pt(F,U),F.prototype.cloneProtected=function(t){U.prototype.cloneProtected.call(this,t),t.Qa=this.Qa&-113,t.ff=this.ff,t.fn=this.fn,t.vf=this.vf,t.to=this.to,t.pk=this.pk,t.Nm=this.Nm,t.Pm=this.Pm,t.Qm=this.Qm,t.qj=this.qj,t.oo=this.oo,this.ba!==null&&(t.ba=this.ba.copy())},d=F.prototype,d.Af=function(t){U.prototype.Af.call(this,t),this.ff=t.ff,this.vf=t.vf,t.Mg=null,t.bb(),t.Sf=this.Sf;var i=t.fromPort;i!==null&&ce(i),t=t.toPort,t!==null&&ce(t)},d.qb=function(t){t.classType===F?(t.value&2)===2?this.routing=t:t===Ne||t===Ko||t===Ah?this.curve=t:t===Yl||t===Ha||t===Wa?this.adjusting=t:t!==fd&&t!==Ui&&O("Unknown Link enum value for a Link property: "+t):U.prototype.qb.call(this,t)},d.Xc=function(){this.ba===null&&(this.ba=new kl)},d.si=function(){var t=this.fromNode;if(t!==null){var i=t.findVisibleNode();if(i!==null&&(t=i),hn(t)||lr(t))return!1}return t=this.toNode,!(t!==null&&(i=t.findVisibleNode(),i!==null&&(t=i),hn(t)||lr(t)))},d.zv=function(){return!1},d.Av=function(){},d.Zc=function(){return!1},F.prototype.computeAngle=function(t,i,e){return F.computeAngle(i,e)},F.computeAngle=function(t,i){switch(t){default:case Ui:t=0;break;case zl:t=i;break;case Gl:t=i+90;break;case Xl:t=i-90;break;case pd:t=i+180;break;case Ja:t=P.ap(i),90<t&&270>t&&(t-=180);break;case Kl:t=P.ap(i+90),90<t&&270>t&&(t-=180);break;case Ul:t=P.ap(i-90),90<t&&270>t&&(t-=180);break;case Za:if(t=P.ap(i),45<t&&135>t||225<t&&315>t)return 0;90<t&&270>t&&(t-=180)}return P.ap(t)};function jh(t){var i=t.fromNode,e=t.toNode,n=null;if(i!==null?n=e!==null?i.px(e):i.containingGroup:e!==null?n=e.containingGroup:n=null,i=n,e=t.Ah,e!==i){e!==null&&hd(e,t),t.Ah=i,i!==null&&sd(i,t);var o=t.containingGroupChanged;if(o!==null){var r=!0,s=t.diagram;s!==null&&(r=s.aa,s.aa=!0),o(t,e,i),s!==null&&(s.aa=r)}!t.fd||t.Lw!==e&&t.Mw!==e||t.bb()}if(t.isLabeledLink)for(t=t.labelNodes;t.next();)t.value.containingGroup=n}d=F.prototype,d.oh=function(){var t=this.containingGroup;t!==null&&this.fromNode!==t&&this.toNode!==t&&t.computesBoundsIncludingLinks&&U.prototype.oh.call(this)},d.So=function(t){var i=this.fromNode;return t===i?this.toNode:i},d.Cz=function(t){var i=this.fromPort;return t===i?this.toPort:i};function rm(t,i){t.wd===null&&(t.wd=new E),t.wd.add(i),t.v()}d.Uo=function(t){if(U.prototype.Uo.call(this,t),Wr(this)&&this.Wo(this.actualBounds),!t){t=this.ef;var i=null;t!==null&&(i=this.fromPort,Ra(t,this,i));var e=this.uf;if(e!==null){var n=this.toPort;e===t&&n===i||Ra(e,this,n)}Rl(this)}},d.Vo=function(t){if(U.prototype.Vo.call(this,t),Wr(this)&&this.Wo(this.actualBounds),!t){t=this.ef;var i=null;t!==null&&(i=this.fromPort,Va(t,this,i));var e=this.uf;if(e!==null){var n=this.toPort;e===t&&n===i||Va(e,this,n)}Vl(this)}},d.Kj=function(){if(this.fd=!0,this.wd!==null){var t=this.diagram;if(t!==null)for(var i=this.wd.copy().iterator;i.next();)t.remove(i.value)}this.data!==null&&(t=this.diagram,t!==null&&t.partManager.removeDataForLink(this))},F.prototype.updateRelationshipsFromData=function(){if(this.data!==null){var t=this.diagram;t!==null&&t.partManager.updateRelationshipsFromData(this)}},F.prototype.move=function(t,i){var e=i?this.location:this.position,n=e.x;isNaN(n)&&(n=0);var o=e.y;for(isNaN(o)&&(o=0),n=t.x-n,o=t.y-o,i===!0?U.prototype.move.call(this,t,!1):(t=x.allocAt(e.x+n,e.y+o),U.prototype.move.call(this,t,!1),x.free(t)),Xo(this,n,o),t=this.labelNodes;t.next();)i=t.value,e=i.position,i.moveTo(e.x+n,e.y+o)},F.prototype.canRelinkFrom=function(){if(!this.relinkableFrom)return!1;var t=this.layer;return t===null?!0:t.allowRelink?(t=t.diagram,!!(t===null||t.allowRelink)):!1},F.prototype.canRelinkTo=function(){if(!this.relinkableTo)return!1;var t=this.layer;return t===null?!0:t.allowRelink?(t=t.diagram,!!(t===null||t.allowRelink)):!1},F.prototype.computeMidPoint=function(t){var i=this.pointsCount;if(i===0)return t.assign(Cu),t;if(i===1)return t.assign(this.i(0)),t;if(i===2){var e=this.i(0),n=this.i(1);return t.h((e.x+n.x)/2,(e.y+n.y)/2),t}if(this.isOrthogonal&&(15<=this.computeCorner()||this.computeCurve()===Ne))return this.ua.Pu(.5,t),t.add(this.i(0)),e=this.ua.figures.first(),t.offset(-e.startX,-e.startY),t;if(this.computeCurve()===Ne){if(i===3){e=this.i(0),n=this.i(1);var o=this.i(2);return P.ax(e.x,e.y,n.x,n.y,n.x,n.y,o.x,o.y,t),t}if(n=(i-1)/3|0,e=3*(n/2|0),n%2===1){n=this.i(e),o=this.i(e+1);var r=this.i(e+2);e=this.i(e+3),P.ax(n.x,n.y,o.x,o.y,r.x,r.y,e.x,e.y,t)}else t.assign(this.i(e));return t}var s=this.flattenedLengths;for(e=this.flattenedTotalLength,o=r=n=0;n<e/2&&r<i&&(o=s[r],!(n+o>e/2));)n+=o,r++;return i=this.i(r),r=this.i(r+1),1>Math.abs(i.x-r.x)?i.y>r.y?t.h(i.x,i.y-(e/2-n)):t.h(i.x,i.y+(e/2-n)):1>Math.abs(i.y-r.y)?i.x>r.x?t.h(i.x-(e/2-n),i.y):t.h(i.x+(e/2-n),i.y):(e=(e/2-n)/o,t.h(i.x+e*(r.x-i.x),i.y+e*(r.y-i.y))),t},F.prototype.computeMidAngle=function(){var t=this.pointsCount;if(2>t)return NaN;if(t===2)return this.i(0).ab(this.i(1));if(this.isOrthogonal&&(15<=this.computeCorner()||this.computeCurve()===Ne))return this.ua.wx(.5);if(this.computeCurve()===Ne&&4<=t){var i=(t-1)/3|0,e=3*(i/2|0);if(i%2===1){e=Math.floor(e),t=this.i(e),i=this.i(e+1);var n=this.i(e+2);return e=this.i(e+3),P.My(t.x,t.y,i.x,i.y,n.x,n.y,e.x,e.y)}if(0<e&&e+1<t)return this.i(e-1).ab(this.i(e+1))}i=this.flattenedLengths,n=this.flattenedTotalLength;var o=0;e=0;for(var r;o<n/2&&e<t&&(r=i[e],!(o+r>n/2));)o+=r,e++;if(i=this.i(e),n=this.i(e+1),1>Math.abs(i.x-n.x)&&1>Math.abs(i.y-n.y)){if(0<e&&e+2<t)return this.i(e-1).ab(this.i(e+2))}else{if(1>Math.abs(i.x-n.x))return i.y>n.y?270:90;if(1>Math.abs(i.y-n.y))return i.x>n.x?180:0}return i.ab(n)},d=F.prototype,d.i=function(t){return this.Ob.s[t]},d.dd=function(t,i){this.Ob.cd(t,i)},d.L=function(t,i,e){this.Ob.cd(t,new x(i,e))},d.Kz=function(t,i){this.Ob.Hb(t,i)},d.m=function(t,i,e){this.Ob.Hb(t,new x(i,e))},d.ne=function(t){this.Ob.add(t)},d.yf=function(t,i){this.Ob.add(new x(t,i))},d.pv=function(t){this.Ob.mb(t)},d.Ej=function(){this.Ob.clear()};function Xo(t,i,e){if(i!==0||e!==0)if(t.pointsCount===0)t.defaultFromPoint&&t.defaultFromPoint.offset(i,e),t.defaultToPoint&&t.defaultToPoint.offset(i,e);else{for(var n=t.fd,o=new V,r=t.Ob.iterator;r.next();){var s=r.value;o.add(new x(s.x+i,s.y+e).freeze())}o.freeze(),r=t.Ob,t.Ob=o,s=t.diagram,isNaN(i)||isNaN(e)||s!==null&&s.animationManager.Ab?t.v():(t.ke.h(t.ke.x+i,t.ke.y+e),t.pa.h(t.pa.x+i,t.pa.y+e),ch(t)),n?za(t):(t.defaultFromPoint&&(t.defaultFromPoint=t.i(0)),t.defaultToPoint&&(t.defaultToPoint=t.i(t.pointsCount-1))),s!==null&&s.animationManager.Ab&&Vp(s.animationManager,t,o),t.g("points",r,o)}}d.uh=function(){this.Mg===null&&(this.Mg=this.Ob,this.Ob=this.Ob.copy())},d.zf=function(){if(this.Mg!==null){for(var t=this.Mg,i=this.Ob,e=1/0,n=1/0,o=t.s,r=o.length,s=0;s<r;s++){var h=o[s];e=Math.min(h.x,e),n=Math.min(h.y,n)}h=s=1/0;for(var l=i.s,u=l.length,a=0;a<u;a++){var f=l[a];s=Math.min(f.x,s),h=Math.min(f.y,h),f.freeze()}if(i.freeze(),u===r){for(r=0;r<u;r++)if(a=o[r],f=l[r],a.x-e!==f.x-s||a.y-n!==f.y-h){this.rc();break}}else this.rc();this.Mg=null,e=this.diagram,e!==null&&e.animationManager.Ab&&Vp(e.animationManager,this,i),za(this),this.g("points",t,i)}},d.rv=function(){this.Mg!==null&&(this.Ob=this.Mg,this.Mg=null)};function za(t){t.Ob.count===0?t.fd=!1:(t.fd=!0,t.bq=null,t.ut=NaN,t.defaultFromPoint=t.i(0),t.defaultToPoint=t.i(t.pointsCount-1),Ua(t,!1))}d.bb=function(){if(!this.suspendsRouting){var t=this.diagram;if(t){if(t.zs.contains(this)||t.undoManager.isUndoingRedoing||(t=t.animationManager,t.isTicking&&!t.isAnimating))return;this.Tg===null||t.isTicking||(this.Tg=null)}t=this.path,t!==null&&(this.fd=!1,this.v(),t.v())}},d.vg=function(){if(!this.fd&&!this.computingPoints){var t=!0;try{this.computingPoints=!0,this.uh(),t=this.computePoints()}catch{this.computingPoints=!1,this.rv()}finally{this.computingPoints=!1,t?this.zf():this.rv()}}},F.prototype.computePoints=function(){if(this.diagram===null)return!1;var t=this.fromNode,i=null;if(t===null?(Ps||(Ps=new B,Ps.desiredSize=hs,Ps.Va()),this.defaultFromPoint&&(Ps.location=this.defaultFromPoint,Ps.Va(),i=t=Ps)):i=this.fromPort,i!==null&&!t.isVisible()){var e=t.findVisibleNode();e!==null&&e!==t?(t=e,i=e.port):t=e}if(this.Lw=t,t===null||!t.location.w())return!1;for(;!(i===null||i.actualBounds.w()&&i.Ed());)i=i.panel;if(i===null)return!1;var n=this.toNode,o=null;if(n===null?(ks||(ks=new B,ks.desiredSize=hs,ks.Va()),this.defaultToPoint&&(ks.location=this.defaultToPoint,ks.Va(),o=n=ks)):o=this.toPort,o===null||n.isVisible()||(e=n.findVisibleNode(),e!==null&&e!==n?(n=e,o=e.port):n=e),this.Mw=n,n===null||!n.location.w())return!1;for(;!(o===null||o.actualBounds.w()&&o.Ed());)o=o.panel;if(o===null)return!1;var r=this.pointsCount,s=this.computeSpot(!0,i);e=this.computeSpot(!1,o);var h=Fh(s),l=Fh(e),u=i===o&&i!==null,a=this.isOrthogonal,f=this.curve===Ne;this.Wf=u&&!a?f=!0:!1;var p=this.computeAdjusting()===Ui||u;if(!a&&!u&&h&&l){if(h=!1,!p&&3<=r&&(p=this.getLinkPoint(t,i,s,!0,!1,n,o),l=this.getLinkPoint(n,o,e,!1,!1,t,i),h=this.adjustPoints(0,p,r-1,l))&&(p=this.getLinkPoint(t,i,s,!0,!1,n,o),l=this.getLinkPoint(n,o,e,!1,!1,t,i),this.adjustPoints(0,p,r-1,l)),!h)if(this.Ej(),f){r=this.getLinkPoint(t,i,s,!0,!1,n,o),p=this.getLinkPoint(n,o,e,!1,!1,t,i),h=p.x-r.x,l=p.y-r.y,u=this.computeCurviness(),f=a=0;var c=r.x+h/3,g=r.y+l/3,y=c,v=g;P.B(l,0)?v=0<h?v-u:v+u:(a=-h/l,f=Math.sqrt(u*u/(a*a+1)),0>u&&(f=-f),y=(0>l?-1:1)*f+c,v=a*(y-c)+g),c=r.x+2*h/3,g=r.y+2*l/3;var m=c,w=g;P.B(l,0)?w=0<h?w-u:w+u:(m=(0>l?-1:1)*f+c,w=a*(m-c)+g),this.Ej(),this.ne(r),this.yf(y,v),this.yf(m,w),this.ne(p),this.dd(0,this.getLinkPoint(t,i,s,!0,!1,n,o)),this.dd(3,this.getLinkPoint(n,o,e,!1,!1,t,i))}else r=n,p=o,n=this.getLinkPoint(t,i,s,!0,!1,r,p),o=this.getLinkPoint(r,p,e,!1,!1,t,i),this.hasCurviness()?(p=o.x-n.x,e=o.y-n.y,s=this.computeCurviness(),t=n.x+p/2,i=n.y+e/2,r=t,h=i,P.B(e,0)?h=0<p?h-s:h+s:(p=-p/e,r=Math.sqrt(s*s/(p*p+1)),0>s&&(r=-r),r=(0>e?-1:1)*r+t,h=p*(r-t)+i),this.ne(n),this.yf(r,h),this.ne(o)):(this.ne(n),this.ne(o),h=T.alloc(),i.mi(h),l=h.ca(o),p.mi(h),u=h.ca(n),(l||u)&&(s=i.ga(Xa(s),new x),this.dd(0,this.getLinkPointFromPoint(t,i,s,o,!0,s)),e=p.ga(Xa(e),new x),this.dd(1,this.getLinkPointFromPoint(r,p,e,n,!1,e))),T.free(h))}else{f=this.isAvoiding,p&&(a&&f||u)&&this.Ej();var M=u?this.computeCurviness():0;f=this.getLinkPoint(t,i,s,!0,a,n,o),c=y=g=0,(a||!h||u)&&(v=this.computeEndSegmentLength(t,i,s,!0),c=this.getLinkDirection(t,i,f,s,!0,a,n,o),u&&(h||s.D(e)||!a&&s.x+e.x===1&&s.y+e.y===1)&&(c-=a?90:30,0>M&&(c-=180)),0>c?c+=360:360<=c&&(c-=360),u&&(v+=Math.abs(M)*(a?1:2)),c===0?g=v:c===90?y=v:c===180?g=-v:c===270?y=-v:(g=v*Math.cos(c*Math.PI/180),y=v*Math.sin(c*Math.PI/180)),s.Mc()&&u&&(v=i.ga(vt,x.alloc()),m=x.allocAt(v.x+1e3*g,v.y+1e3*y),this.getLinkPointFromPoint(t,i,v,m,!0,f),x.free(v),x.free(m))),v=this.getLinkPoint(n,o,e,!1,a,t,i);var S=w=m=0;if(a||!l||u){var N=this.computeEndSegmentLength(n,o,e,!1);S=this.getLinkDirection(n,o,v,e,!1,a,t,i),u&&(l||s.D(e)||!a&&s.x+e.x===1&&s.y+e.y===1)&&(S+=a?0:30,0>M&&(S+=180)),0>S?S+=360:360<=S&&(S-=360),u&&(N+=Math.abs(M)*(a?1:2)),S===0?m=N:S===90?w=N:S===180?m=-N:S===270?w=-N:(m=N*Math.cos(S*Math.PI/180),w=N*Math.sin(S*Math.PI/180)),e.Mc()&&u&&(e=o.ga(vt,x.alloc()),s=x.allocAt(e.x+1e3*m,e.y+1e3*w),this.getLinkPointFromPoint(n,o,e,s,!1,v),x.free(e),x.free(s))}e=f,(a||!h||u)&&(e=new x(f.x+g,f.y+y)),s=v,(a||!l||u)&&(s=new x(v.x+m,v.y+w)),!p&&!a&&h&&3<r&&this.adjustPoints(0,f,r-2,s)?this.dd(r-1,v):!p&&!a&&l&&3<r&&this.adjustPoints(1,e,r-1,v)?this.dd(0,f):!p&&(a?6<=r:4<r)&&this.adjustPoints(1,e,r-2,s)?(this.dd(0,f),this.dd(r-1,v)):(this.Ej(),this.ne(f),(a||!h||u)&&this.ne(e),a&&this.addOrthoPoints(e,c,s,S,t,n),(a||!l||u)&&this.ne(s),this.ne(v))}return!0};function ld(t,i){return Math.abs(i.x-t.x)>Math.abs(i.y-t.y)?(i.x>=t.x?i.x=t.x+9e9:i.x=t.x-9e9,i.y=t.y):(i.y>=t.y?i.y=t.y+9e9:i.y=t.y-9e9,i.x=t.x),i}F.prototype.getLinkPointFromPoint=function(t,i,e,n,o,r){if(r===void 0&&(r=new x),t===null||i===null)return r.assign(e),r;if(t.isVisible()||(o=t.findVisibleNode(),o!==null&&o!==t&&(i=o.port)),t=null,o=i.panel,o===null||o.se()||(o=o.panel),o===null){o=n.x,n=n.y;var s=e.x;e=e.y}else{t=o.oe,o=1/(t.m11*t.m22-t.m12*t.m21),s=t.m22*o;var h=-t.m12*o,l=-t.m21*o,u=t.m11*o,a=o*(t.m21*t.dy-t.m22*t.dx),f=o*(t.m12*t.dx-t.m11*t.dy);o=n.x*s+n.y*l+a,n=n.x*h+n.y*u+f,s=e.x*s+e.y*l+a,e=e.x*h+e.y*u+f}return i.Rj(o,n,s,e,r),t!==null&&r.transform(t),r};function Ga(t,i){var e=i.Yn;return e===null&&(e=new Cs,e.port=i,e.node=i.part,i.Yn=e),dm(e,t)}F.prototype.getLinkPoint=function(t,i,e,n,o,r,s,h){if(h===void 0&&(h=new x),e.sb()&&!Fh(e))return i.ga(e,h),h;if(e.$c()){var l=Ga(this,i);if(l!==null){if(h.assign(l.Yo),o&&this.routing===lm){var u=Ga(this,s);if(u!==null&&l.Fl<u.Fl){l=x.alloc(),u=x.alloc();var a=new T(i.ga(Ti,l),i.ga(Xn,u)),f=this.computeSpot(!n,s);t=this.getLinkPoint(r,s,f,!n,o,t,i,u),(e.Hf(Js)||e.Hf(Zs))&&t.y>=a.y&&t.y<=a.y+a.height?h.y=t.y:(e.Hf(Ws)||e.Hf(_s))&&t.x>=a.x&&t.x<=a.x+a.width&&(h.x=t.x),x.free(l),x.free(u)}}return h}}return e=i.ga(Xa(e),x.alloc()),this.pointsCount>(o?6:2)?(s=n?this.i(1):this.i(this.pointsCount-2),o&&(s=ld(e,s.copy()))):(l=this.computeSpot(!n,s),r=x.alloc(),s=s.ga(Xa(l),r),o&&(s=ld(e,s)),x.free(r)),this.getLinkPointFromPoint(t,i,e,s,n,h),x.free(e),h},F.prototype.getLinkDirection=function(t,i,e,n,o,r,s,h){t:if(n.sb())var l=n.x>n.y?n.x>1-n.y?0:n.x<1-n.y?270:315:n.x<n.y?n.x>1-n.y?90:n.x<1-n.y?180:135:.5>n.x?225:.5<n.x?45:0;else{if(n.$c()&&(l=Ga(this,i),l!==null))switch(l.Nc){case 1:l=270;break t;case 2:l=180;break t;default:case 4:l=0;break t;case 8:l=90;break t}l=i.ga(vt,x.alloc()),this.pointsCount>(r?6:2)?(h=o?this.i(1):this.i(this.pointsCount-2),h=r?ld(l,h.copy()):e):(e=x.alloc(),h=h.ga(vt,e),x.free(e)),e=Math.abs(h.x-l.x)>Math.abs(h.y-l.y)?h.x>=l.x?0:180:h.y>=l.y?90:270,x.free(l),l=e}return s&&n.Mc()&&s.Td(t)&&(l+=180,360<=l&&(l-=360)),Fh(n)||(t=i.li(),t===0)||(45<=t&&135>t?l+=90:135<=t&&225>t?l+=180:225<=t&&315>t&&(l+=270),360<=l&&(l-=360)),l},F.prototype.computeEndSegmentLength=function(t,i,e,n){return i!==null&&e.$c()&&(t=Ga(this,i),t!==null)?t.Ju:(t=n?this.fromEndSegmentLength:this.toEndSegmentLength,i!==null&&isNaN(t)&&(t=n?i.fromEndSegmentLength:i.toEndSegmentLength),isNaN(t)&&(t=10),t)},F.prototype.computeSpot=function(t,i){return i===void 0&&(i=null),t?(t=i||this.fromPort,t===null?t=vt:(i=this.fromSpot,i.Yb()&&(i=t.fromSpot),t=i===Si?Mi:i)):(t=i||this.toPort,t===null?t=vt:(i=this.toSpot,i.Yb()&&(i=t.toSpot),t=i===Si?Mi:i)),t};function Fh(t){return t===Mi||t.x===.5&&t.y===.5}function Xa(t){return t.x===.5&&t.y===.5?t:vt}F.prototype.computeOtherPoint=function(t,i){return this.computeAdjusting()!==Ui&&4<this.pointsCount?this.computeMidPoint(new x):(t=i.Yn,t=t!==null?dm(t,this):null,t!==null?t.Yo:i.ga(vt))},F.prototype.computeShortLength=function(t){if(t){if(t=this.fromShortLength,isNaN(t)){var i=this.fromPort;i!==null&&(t=i.fromShortLength)}return isNaN(t)?0:t}return t=this.toShortLength,isNaN(t)&&(i=this.toPort,i!==null&&(t=i.toShortLength)),isNaN(t)?0:t},F.prototype.Cf=function(t,i,e,n,o,r){if(this.pickable===!1)return!1;i===void 0&&(i=null),e===void 0&&(e=null);var s=r;if(r===void 0&&(s=it.alloc(),s.reset()),s.multiply(this.transform),this.fh(t,s))return Oc(this,i,e,o),r===void 0&&it.free(s),!0;if(this.Yc(t,s)){var h=!1;if(!this.isAtomic)for(var l=this.O.s,u=l.length;u--;){var a=l[u];if(a.visible||a===this.locationObject){var f=a.actualBounds,p=this.naturalBounds;if(!(f.x>p.width||f.y>p.height||0>f.x+f.width||0>f.y+f.height)){if(f=it.alloc(),f.set(s),a instanceof j)h=a.Cf(t,i,e,n,o,f);else if(this.path===a){if(a instanceof q)if(h=t,p=n,a.pickable===!1)h=!1;else if(f.multiply(a.transform),p)t:{var c=h,g=f;if(a.fh(c,g))h=!0;else{if(g===void 0&&(g=a.transform,c.Re(a.actualBounds))){h=!0;break t}h=c.left,p=c.right;var y=c.top;c=c.bottom;var v=x.alloc(),m=x.alloc(),w=x.alloc(),M=it.alloc();M.set(g),M.bv(a.transform),M.Uj(),m.x=p,m.y=y,m.transform(M),v.x=h,v.y=y,v.transform(M),g=!1,Ur(a,v,m,w)?g=!0:(v.x=p,v.y=c,v.transform(M),Ur(a,v,m,w)?g=!0:(m.x=h,m.y=c,m.transform(M),Ur(a,v,m,w)?g=!0:(v.x=h,v.y=y,v.transform(M),Ur(a,v,m,w)&&(g=!0)))),it.free(M),x.free(v),x.free(m),x.free(w),h=g}}else h=a.fh(h,f)}else h=_0(a,t,n,f);h&&(p=a,i!==null&&(p=i(a)),p&&(e===null||e(p))&&o.add(p)),it.free(f)}}}return r===void 0&&it.free(s),h||this.background!==null||this.areaBackground!==null}return r===void 0&&it.free(s),!1},F.prototype.computeCurve=function(){if(this.Wf===null){var t=this.fromPort,i=this.isOrthogonal;this.Wf=t!==null&&t===this.toPort&&!i}return this.Wf?Ne:this.curve},F.prototype.computeCorner=function(){if(this.curve===Ne)return 0;var t=this.corner;return(isNaN(t)||0>t)&&(t=10),t},F.prototype.findMidLabel=function(){for(var t=this.path,i=this.O.s,e=i.length,n=0;n<e;n++){var o=i[n];if(o!==t&&!o.isPanelMain&&(o.segmentIndex===-1/0||isNaN(o.segmentIndex)))return o}for(t=this.labelNodes;t.next();)if(i=t.value,i.segmentIndex===-1/0||isNaN(i.segmentIndex))return i;return null},F.prototype.computeSpacing=function(){if(!this.isVisible())return 0;var t=am;t=Math.max(t,this.computeThickness());var i=this.fromPort,e=this.toPort;if(i!==null&&e!==null){var n=this.findMidLabel();if(n!==null){var o=n.naturalBounds,r=n.margin,s=isNaN(o.width)?30:o.width*n.scale+r.left+r.right;o=isNaN(o.height)?14:o.height*n.scale+r.top+r.bottom,n=n.segmentOrientation,n===zl||n===Ja||n===pd?t=Math.max(t,o):n===Xl||n===Ul||n===Gl||n===Kl?t=Math.max(t,s):(i=i.ga(vt).ab(e.ga(vt))/180*Math.PI,t=Math.max(t,Math.abs(Math.sin(i)*s)+Math.abs(Math.cos(i)*o)+1)),this.curve===Ne&&(t*=1.333)}}return t},F.prototype.arrangeBundledLinks=function(t,i){if(i)for(i=0;i<t.length;i++){var e=t[i];e.computeAdjusting()===Ui&&e.bb()}},F.prototype.computeCurviness=function(){var t=this.curviness;if(isNaN(t)){t=um;var i=this.Sf;if(i!==null){for(var e=kt(),n=0,o=i.links,r=0;r<o.length;r++){var s=o[r].computeSpacing();e.push(s),n+=s}for(n=-n/2,r=0;r<o.length;r++){if(o[r]===this){t=n+e[r]/2;break}n+=e[r]}i.Cs===this.fromNode&&(t=-t),Mt(e)}}return t},F.prototype.computeThickness=function(){if(!this.isVisible())return 0;var t=this.path;return t!==null?Math.max(t.strokeWidth,1):1},F.prototype.hasCurviness=function(){return!isNaN(this.curviness)||this.Sf!==null},F.prototype.adjustPoints=function(t,i,e,n){var o=this.computeAdjusting();if(this.isOrthogonal){if(o===Ha)return!1;o===Wa&&(o=Yl)}switch(o){case Ha:var r=this.i(t),s=this.i(e);if(!r.Xa(i)||!s.Xa(n)){o=r.x,r=r.y;var h=s.x-o,l=s.y-r,u=Math.sqrt(h*h+l*l);if(!P.$(u,0)){if(P.$(h,0))var a=0>l?-Math.PI/2:Math.PI/2;else a=Math.atan(l/Math.abs(h)),0>h&&(a=Math.PI-a);s=i.x;var f=i.y;h=n.x-s;var p=n.y-f;for(l=Math.sqrt(h*h+p*p),P.$(h,0)?p=0>p?-Math.PI/2:Math.PI/2:(p=Math.atan(p/Math.abs(h)),0>h&&(p=Math.PI-p)),u=l/u,a=p-a,this.dd(t,i),t+=1;t<e;t++)i=this.i(t),h=i.x-o,l=i.y-r,i=Math.sqrt(h*h+l*l),P.$(i,0)||(P.$(h,0)?l=0>l?-Math.PI/2:Math.PI/2:(l=Math.atan(l/Math.abs(h)),0>h&&(l=Math.PI-l)),h=l+a,i*=u,this.L(t,s+i*Math.cos(h),f+i*Math.sin(h)));this.dd(e,n)}}return!0;case Wa:if(r=this.i(t),f=this.i(e),!r.Xa(i)||!f.Xa(n)){o=r.x,r=r.y,s=f.x,f=f.y,u=(s-o)*(s-o)+(f-r)*(f-r),h=i.x,a=i.y,l=n.x,p=n.y;var c=1;if(l-h!==0){var g=(p-a)/(l-h);c=Math.sqrt(1+1/(g*g))}else g=9e9;for(this.dd(t,i),t+=1;t<e;t++){i=this.i(t);var y=i.x,v=i.y,m=.5;u!==0&&(m=((o-y)*(o-s)+(r-v)*(r-f))/u);var w=o+m*(s-o),M=r+m*(f-r);i=Math.sqrt((y-w)*(y-w)+(v-M)*(v-M)),v<g*(y-w)+M&&(i=-i),0<g&&(i=-i),y=h+m*(l-h),m=a+m*(p-a),g!==0?(i=y+i/c,this.L(t,i,m-(i-y)/g)):this.L(t,y,m+i)}this.dd(e,n)}return!0;case Yl:t:{if(this.isOrthogonal&&(o=this.i(t),r=this.i(t+1),s=this.i(t+2),h=r.x,a=r.y,f=h,u=a,P.B(o.y,r.y)?P.B(r.x,s.x)?a=i.y:P.B(r.y,s.y)&&(h=i.x):P.B(o.x,r.x)&&(P.B(r.y,s.y)?h=i.x:P.B(r.x,s.x)&&(a=i.y)),this.L(t+1,h,a),o=this.i(e),r=this.i(e-1),s=this.i(e-2),h=r.x,a=r.y,l=h,p=a,P.B(o.y,r.y)?P.B(r.x,s.x)?a=n.y:P.B(r.y,s.y)&&(h=n.x):P.B(o.x,r.x)&&(P.B(r.y,s.y)?h=n.x:P.B(r.x,s.x)&&(a=n.y)),this.L(e-1,h,a),sm(this))){this.L(t+1,f,u),this.L(e-1,l,p),e=!1;break t}this.dd(t,i),this.dd(e,n),e=!0}return e;default:return!1}},F.prototype.addOrthoPoints=function(t,i,e,n,o,r){0>i?i+=360:360<=i&&(i-=360),0>n?n+=360:360<=n&&(n-=360);var s=n;i=315<=i||45>i?0:45<=i&&135>i?90:135<=i&&225>i?180:270,n=315<=n||45>n?0:45<=n&&135>n?90:135<=n&&225>n?180:270;var h=o.actualBounds.copy(),l=r.actualBounds.copy();if(h.w()&&l.w()){h.Bc(Hl,Hl),l.Bc(Hl,Hl),h.Ye(t),l.Ye(e);var u=x.alloc(),a=x.alloc();i===0?e.x>t.x||n===270&&e.y<t.y&&l.right>t.x||n===90&&e.y>t.y&&l.right>t.x?(u.h(e.x,t.y),a.h(e.x,(t.y+e.y)/2),n===180?(u.x=this.computeMidOrthoPosition(t.x,t.y,e.x,e.y,!1),a.x=u.x,a.y=e.y):n===270&&e.y<t.y||n===90&&e.y>t.y?(u.x=t.x<l.left?this.computeMidOrthoPosition(t.x,t.y,l.left,e.y,!1):t.x<l.right&&(n===270&&t.y<l.top||n===90&&t.y>l.bottom)?this.computeMidOrthoPosition(t.x,t.y,e.x,e.y,!1):l.right,a.x=u.x,a.y=e.y):n===0&&t.x<l.left&&t.y>l.top&&t.y<l.bottom&&(u.x=t.x,u.y=t.y<e.y?Math.min(e.y,l.top):Math.max(e.y,l.bottom),a.y=u.y)):(u.h(t.x,e.y),a.h((t.x+e.x)/2,e.y),(n===180||n===90&&e.y<h.top||n===270&&e.y>h.bottom)&&(n===180&&(l.ca(t)||h.ca(e))?u.y=this.computeMidOrthoPosition(t.x,t.y,e.x,e.y,!0):e.y<t.y&&(n===180||n===90)?u.y=this.computeMidOrthoPosition(t.x,h.top,e.x,Math.max(e.y,l.bottom),!0):e.y>t.y&&(n===180||n===270)&&(u.y=this.computeMidOrthoPosition(t.x,h.bottom,e.x,Math.min(e.y,l.top),!0)),a.x=e.x,a.y=u.y),u.y>h.top&&u.y<h.bottom&&(e.x>=h.left&&e.x<=t.x||t.x<=l.right&&t.x>=e.x?(n===90||n===270)&&(u.h(Math.max((t.x+e.x)/2,t.x),t.y),a.h(u.x,e.y)):(u.y=n===270||(n===0||n===180)&&e.y<t.y?Math.min(e.y,n===0?h.top:Math.min(h.top,l.top)):Math.max(e.y,n===0?h.bottom:Math.max(h.bottom,l.bottom)),a.x=e.x,a.y=u.y))):i===180?e.x<t.x||n===270&&e.y<t.y&&l.left<t.x||n===90&&e.y>t.y&&l.left<t.x?(u.h(e.x,t.y),a.h(e.x,(t.y+e.y)/2),n===0?(u.x=this.computeMidOrthoPosition(t.x,t.y,e.x,e.y,!1),a.x=u.x,a.y=e.y):n===270&&e.y<t.y||n===90&&e.y>t.y?(u.x=t.x>l.right?this.computeMidOrthoPosition(t.x,t.y,l.right,e.y,!1):t.x>l.left&&(n===270&&t.y<l.top||n===90&&t.y>l.bottom)?this.computeMidOrthoPosition(t.x,t.y,e.x,e.y,!1):l.left,a.x=u.x,a.y=e.y):n===180&&t.x>l.right&&t.y>l.top&&t.y<l.bottom&&(u.x=t.x,u.y=t.y<e.y?Math.min(e.y,l.top):Math.max(e.y,l.bottom),a.y=u.y)):(u.h(t.x,e.y),a.h((t.x+e.x)/2,e.y),(n===0||n===90&&e.y<h.top||n===270&&e.y>h.bottom)&&(n===0&&(l.ca(t)||h.ca(e))?u.y=this.computeMidOrthoPosition(t.x,t.y,e.x,e.y,!0):e.y<t.y&&(n===0||n===90)?u.y=this.computeMidOrthoPosition(t.x,h.top,e.x,Math.max(e.y,l.bottom),!0):e.y>t.y&&(n===0||n===270)&&(u.y=this.computeMidOrthoPosition(t.x,h.bottom,e.x,Math.min(e.y,l.top),!0)),a.x=e.x,a.y=u.y),u.y>h.top&&u.y<h.bottom&&(e.x<=h.right&&e.x>=t.x||t.x>=l.left&&t.x<=e.x?(n===90||n===270)&&(u.h(Math.min((t.x+e.x)/2,t.x),t.y),a.h(u.x,e.y)):(u.y=n===270||(n===0||n===180)&&e.y<t.y?Math.min(e.y,n===180?h.top:Math.min(h.top,l.top)):Math.max(e.y,n===180?h.bottom:Math.max(h.bottom,l.bottom)),a.x=e.x,a.y=u.y))):i===90?e.y>t.y||n===180&&e.x<t.x&&l.bottom>t.y||n===0&&e.x>t.x&&l.bottom>t.y?(u.h(t.x,e.y),a.h((t.x+e.x)/2,e.y),n===270?(u.y=this.computeMidOrthoPosition(t.x,t.y,e.x,e.y,!0),a.x=e.x,a.y=u.y):n===180&&e.x<t.x||n===0&&e.x>t.x?(u.y=t.y<l.top?this.computeMidOrthoPosition(t.x,t.y,e.x,l.top,!0):t.y<l.bottom&&(n===180&&t.x<l.left||n===0&&t.x>l.right)?this.computeMidOrthoPosition(t.x,t.y,e.x,e.y,!0):l.bottom,a.x=e.x,a.y=u.y):n===90&&t.y<l.top&&t.x>l.left&&t.x<l.right&&(u.x=t.x<e.x?Math.min(e.x,l.left):Math.max(e.x,l.right),u.y=t.y,a.x=u.x)):(u.h(e.x,t.y),a.h(e.x,(t.y+e.y)/2),(n===270||n===0&&e.x<h.left||n===180&&e.x>h.right)&&(n===270&&(l.ca(t)||h.ca(e))?u.x=this.computeMidOrthoPosition(t.x,t.y,e.x,e.y,!1):e.x<t.x&&(n===270||n===0)?u.x=this.computeMidOrthoPosition(h.left,t.y,Math.max(e.x,l.right),e.y,!1):e.x>t.x&&(n===270||n===180)&&(u.x=this.computeMidOrthoPosition(h.right,t.y,Math.min(e.x,l.left),e.y,!1)),a.x=u.x,a.y=e.y),u.x>h.left&&u.x<h.right&&(e.y>=h.top&&e.y<=t.y||t.y<=l.bottom&&t.y>=e.y?(n===0||n===180)&&(u.h(t.x,Math.max((t.y+e.y)/2,t.y)),a.h(e.x,u.y)):(u.x=n===180||(n===90||n===270)&&e.x<t.x?Math.min(e.x,n===90?h.left:Math.min(h.left,l.left)):Math.max(e.x,n===90?h.right:Math.max(h.right,l.right)),a.x=u.x,a.y=e.y))):e.y<t.y||n===180&&e.x<t.x&&l.top<t.y||n===0&&e.x>t.x&&l.top<t.y?(u.h(t.x,e.y),a.h((t.x+e.x)/2,e.y),n===90?(u.y=this.computeMidOrthoPosition(t.x,t.y,e.x,e.y,!0),a.x=e.x,a.y=u.y):n===180&&e.x<t.x||n===0&&e.x>=t.x?(u.y=t.y>l.bottom?this.computeMidOrthoPosition(t.x,t.y,e.x,l.bottom,!0):t.y>l.top&&(n===180&&t.x<l.left||n===0&&t.x>l.right)?this.computeMidOrthoPosition(t.x,t.y,e.x,e.y,!0):l.top,a.x=e.x,a.y=u.y):n===270&&t.y>l.bottom&&t.x>l.left&&t.x<l.right&&(u.x=t.x<e.x?Math.min(e.x,l.left):Math.max(e.x,l.right),u.y=t.y,a.x=u.x)):(u.h(e.x,t.y),a.h(e.x,(t.y+e.y)/2),(n===90||n===0&&e.x<h.left||n===180&&e.x>h.right)&&(n===90&&(l.ca(t)||h.ca(e))?u.x=this.computeMidOrthoPosition(t.x,t.y,e.x,e.y,!1):e.x<t.x&&(n===90||n===0)?u.x=this.computeMidOrthoPosition(h.left,t.y,Math.max(e.x,l.right),e.y,!1):e.x>t.x&&(n===90||n===180)&&(u.x=this.computeMidOrthoPosition(h.right,t.y,Math.min(e.x,l.left),e.y,!1)),a.x=u.x,a.y=e.y),u.x>h.left&&u.x<h.right&&(e.y<=h.bottom&&e.y>=t.y||t.y>=l.top&&t.y<=e.y?(n===0||n===180)&&(u.h(t.x,Math.min((t.y+e.y)/2,t.y)),a.h(e.x,u.y)):(u.x=n===180||(n===90||n===270)&&e.x<t.x?Math.min(e.x,n===270?h.left:Math.min(h.left,l.left)):Math.max(e.x,n===270?h.right:Math.max(h.right,l.right)),a.x=u.x,a.y=e.y)));var f=e;if(this.isAvoiding){var p=this.diagram;if(p===null||o===r||this.layer.isTemporary||!A0(p)||h.ca(f)&&!r.Td(o)||l.ca(t)&&!o.Td(r))i=!1;else{var c=rc(p,!0,this.containingGroup,null);if(this.segmentIndex!==17&&c.Xj(Math.min(t.x,u.x),Math.min(t.y,u.y),Math.abs(t.x-u.x),Math.abs(t.y-u.y))&&c.Xj(Math.min(u.x,a.x),Math.min(u.y,a.y),Math.abs(u.x-a.x),Math.abs(u.y-a.y))&&c.Xj(Math.min(a.x,f.x),Math.min(a.y,f.y),Math.abs(a.x-f.x),Math.abs(a.y-f.y)))i=!1;else{o=t,r=f;var g=e=null;if(p.isVirtualized){p=c.bounds.copy(),p.Bc(-c.Go,-c.Fo);var y=x.alloc();Oh(c,t.x,t.y)||(P.Ff(p.x,p.y,p.x+p.width,p.y+p.height,t.x,t.y,u.x,u.y,y)?(e=t=y.copy(),i=y.ab(u)):P.Ff(p.x,p.y,p.x+p.width,p.y+p.height,u.x,u.y,a.x,a.y,y)?(e=t=y.copy(),i=y.ab(a)):P.Ff(p.x,p.y,p.x+p.width,p.y+p.height,a.x,a.y,f.x,f.y,y)&&(e=t=y.copy(),i=y.ab(f))),Oh(c,f.x,f.y)||(P.Ff(p.x,p.y,p.x+p.width,p.y+p.height,f.x,f.y,a.x,a.y,y)?(g=f=y.copy(),n=a.ab(y)):P.Ff(p.x,p.y,p.x+p.width,p.y+p.height,a.x,a.y,u.x,u.y,y)?(g=f=y.copy(),n=u.ab(y)):P.Ff(p.x,p.y,p.x+p.width,p.y+p.height,u.x,u.y,t.x,t.y,y)&&(g=f=y.copy(),n=t.ab(y))),x.free(y)}h=h.copy().ed(l),h.Bc(c.Go*c.Ns,c.Fo*c.Ns),pm(c,t,i,f,n,h,!0),l=Qn(c,f.x,f.y),!c.abort&&l>=Ih&&(fm(c),h.Bc(c.Go*c.Hx,c.Fo*c.Ix),pm(c,t,i,f,n,h,!1),l=Qn(c,f.x,f.y)),!c.abort&&l<Ih&&Qn(c,f.x,f.y)!==Uo?(ud(this,c,f.x,f.y,n,!0,s),h=this.i(2),4>this.pointsCount?(i===0||i===180?(h.x=t.x,h.y=f.y):(h.x=f.x,h.y=t.y),this.L(2,h.x,h.y),this.m(3,h.x,h.y)):(s=this.i(3),i===0||i===180?P.B(h.x,s.x)?(h=i===0?Math.max(h.x,t.x):Math.min(h.x,t.x),this.L(2,h,t.y),this.L(3,h,s.y)):P.B(h.y,s.y)?(Math.abs(t.y-h.y)<=c.Fo/2&&(this.L(2,h.x,t.y),this.L(3,s.x,t.y)),this.m(2,h.x,t.y)):this.L(2,t.x,h.y):(i===90||i===270)&&(P.B(h.y,s.y)?(h=i===90?Math.max(h.y,t.y):Math.min(h.y,t.y),this.L(2,t.x,h),this.L(3,s.x,h)):P.B(h.x,s.x)?(Math.abs(t.x-h.x)<=c.Go/2&&(this.L(2,t.x,h.y),this.L(3,t.x,s.y)),this.m(2,t.x,h.y)):this.L(2,h.x,t.y))),e!==null&&(t=this.i(1),s=this.i(2),t.x!==s.x&&t.y!==s.y?i===0||i===180?this.m(2,t.x,s.y):this.m(2,s.x,t.y):i===0||i===180?this.m(2,o.x,e.y):this.m(2,e.x,o.y)),g!==null&&(n===0||n===180?this.yf(r.x,g.y):this.yf(g.x,r.y)),i=!0):i=!1}}}else i=!1;i||(this.ne(u.copy()),this.ne(a.copy())),x.free(u),x.free(a)}},F.prototype.computeMidOrthoPosition=function(t,i,e,n,o){var r=0;return!this.hasCurviness()||this.computeSpot(!0,this.fromPort).$c()||this.computeSpot(!1,this.toPort).$c()||(r=this.computeCurviness()),o?(i+n)/2+r:(t+e)/2+r};function sm(t){if(t.diagram===null||!t.isAvoiding||!A0(t.diagram))return!1;var i=t.points.s,e=i.length;if(4>e)return!1;t=rc(t.diagram,!0,t.containingGroup,null);for(var n=1;n<e-2;n++){var o=i[n],r=i[n+1];if(!t.Xj(Math.min(o.x,r.x),Math.min(o.y,r.y),Math.abs(o.x-r.x),Math.abs(o.y-r.y)))return!0}return!1}function ud(t,i,e,n,o,r,s){var h=i.Go,l=i.Fo,u=Qn(i,e,n),a=e,f=n;for(o===0?a+=h:o===90?f+=l:o===180?a-=h:f-=l,o!==s&&u>Jr&&Qn(i,a,f)!==u-1&&(Qn(i,e-h,n)===u-1?(o=180,a=e-h,f=n):Qn(i,e+h,n)===u-1?(o=0,a=e+h,f=n):Qn(i,e,n-l)===u-1?(o=270,a=e,f=n-l):Qn(i,e,n+l)===u-1&&(o=90,a=e,f=n+l));u>Jr&&Qn(i,a,f)===u-1;)e=a,n=f,o===0?a+=h:o===90?f+=l:o===180?a-=h:f-=l,--u;r?u>Jr&&(o===180||o===0?e=Math.floor(e/h)*h+h/2:(o===90||o===270)&&(n=Math.floor(n/l)*l+l/2)):(e=Math.floor(e/h)*h+h/2,n=Math.floor(n/l)*l+l/2),u>Jr&&(r=o,s=e,a=n,o===0?(r=90,a+=l):o===90?(r=180,s-=h):o===180?(r=270,a-=l):o===270&&(r=0,s+=h),Qn(i,s,a)===u-1?ud(t,i,s,a,r,!1,r):(s=e,a=n,o===0?(r=270,a-=l):o===90?(r=0,s+=h):o===180?(r=90,a+=l):o===270&&(r=180,s-=h),Qn(i,s,a)===u-1&&ud(t,i,s,a,r,!1,r))),t.yf(e,n)}F.prototype.ez=function(t){var i=t.x;t=t.y;for(var e=this.i(0),n=this.i(1),o=Yi(i,t,e.x,e.y,n.x,n.y),r=0,s=1;s<this.pointsCount-1;s++){e=this.i(s+1);var h=Yi(i,t,n.x,n.y,e.x,e.y);n=e,h<o&&(r=s,o=h)}return r},F.prototype.rc=function(){this.kk=!1,this.v()},F.prototype.Tl=function(t){if(!(!t&&(this.fd===!1||(t=this.Qb(),this.kk&&(t===null||t.geometry!==null))))&&(2>this.pointsCount?this.kk=!0:this.ua=this.makeGeometry(),t=this.path,t!==null)){t.ua=this.ua;for(var i=this.O.s,e=i.length,n=0;n<e;n++){var o=i[n];o!==t&&o.isPanelMain&&o instanceof q&&(o.ua=this.ua)}}},F.prototype.makeGeometry=function(){var t=this.ua,i=this.pointsCount,e=!1,n=this.diagram;n!==null&&Wr(this)&&n.Eh.contains(this)&&(this.ll.width!==0||this.ll.height!==0)&&(n.animationManager.isAnimating||n.currentTool!==n.toolManager)&&(e=!0);var o=this.i(0).copy(),r=o.copy();n=this.Ob.s;var s=this.computeCurve();if(s===Ne&&3<=i&&!P.$(this.smoothness,0))if(i===3){var h=this.i(1);n=Math.min(o.x,h.x);var l=Math.min(o.y,h.y);h=this.i(2),n=Math.min(n,h.x),l=Math.min(l,h.y)}else{if(this.isOrthogonal)for(l=0;l<i;l++)h=n[l],r.x=Math.min(h.x,r.x),r.y=Math.min(h.y,r.y);else for(n=3;n<i;n+=3)n+3>=i&&(n=i-1),l=this.i(n),r.x=Math.min(l.x,r.x),r.y=Math.min(l.y,r.y);n=r.x,l=r.y}else{for(l=0;l<i;l++)h=n[l],r.x=Math.min(h.x,r.x),r.y=Math.min(h.y,r.y);n=r.x,l=r.y}if(n-=this.ru.x,l-=this.ru.y,o.x-=n,o.y-=l,i!==2||Wr(this)){if(t.type=I.o,h=By(t),this.computeShortLength(!0)!==0&&(o=Ss(this,o,!0,r)),Lh(h,o.x,o.y,!1),s===Ne&&3<=i&&!P.$(this.smoothness,0))if(i===3)e=this.i(1),i=e.x-n,e=e.y-l,o=this.i(2).copy(),o.x-=n,o.y-=l,this.computeShortLength(!1)!==0&&(o=Ss(this,o,!1,r)),Yo(h,i,e,i,e,o.x,o.y);else if(this.isOrthogonal){i=x.allocAt(n,l),e=x.alloc(),e.assign(this.i(1)),r=x.allocAt(n,l),o=x.allocAt(n,l),s=this.i(0);for(var u,a=this.smoothness/3,f=1;f<this.pointsCount-1;f++){u=this.i(f);var p=s,c=u,g=this.i(ad(this,u,f,!1));if((!P.$(p.x,c.x)||!P.$(c.x,g.x))&&(!P.$(p.y,c.y)||!P.$(c.y,g.y))){var y=a;isNaN(y)&&(y=this.smoothness/3);var v=p.x;p=p.y;var m=c.x;c=c.y;var w=g.x;g=g.y;var M=y*Ka(v,p,m,c);y*=Ka(m,c,w,g),P.$(p,c)&&P.$(m,w)&&(m>v?g>c?(r.x=m-M,r.y=c-M,o.x=m+y,o.y=c+y):(r.x=m-M,r.y=c+M,o.x=m+y,o.y=c-y):g>c?(r.x=m+M,r.y=c-M,o.x=m-y,o.y=c+y):(r.x=m+M,r.y=c+M,o.x=m-y,o.y=c-y)),P.$(v,m)&&P.$(c,g)&&(c>p?(w>m?(r.x=m-M,r.y=c-M,o.x=m+y):(r.x=m+M,r.y=c-M,o.x=m-y),o.y=c+y):(w>m?(r.x=m-M,r.y=c+M,o.x=m+y):(r.x=m+M,r.y=c+M,o.x=m-y),o.y=c-y)),(P.$(v,m)&&P.$(m,w)||P.$(p,c)&&P.$(c,g))&&(v=.5*(v+w),p=.5*(p+g),r.x=v,r.y=p,o.x=v,o.y=p),(f===1||f===2&&P.$(s.x,this.i(0).x)&&P.$(s.y,this.i(0).y))&&(e.x=.5*(s.x+u.x),e.y=.5*(s.y+u.y)),Yo(h,e.x-n,e.y-l,r.x-n,r.y-l,u.x-n,u.y-l),i.set(r),e.set(o),s=u}}u=s.x,s=s.y,a=this.i(this.pointsCount-1),this.computeShortLength(!1)!==0&&(a=Ss(this,a.copy(),!1,lo)),u=.5*(u+a.x),s=.5*(s+a.y),Yo(h,o.x-n,o.y-l,u-n,s-l,a.x-n,a.y-l),x.free(i),x.free(e),x.free(r),x.free(o)}else for(e=3;e<i;e+=3)r=this.i(e-2),e+3>=i&&(e=i-1),o=this.i(e-1),s=this.i(e),e===i-1&&this.computeShortLength(!1)!==0&&(s=Ss(this,s.copy(),!1,lo)),Yo(h,r.x-n,r.y-l,o.x-n,o.y-l,s.x-n,s.y-l);else{for(r=x.alloc(),r.assign(this.i(0)),o=x.alloc(),o.assign(r),s=this.computeCorner(),f=1,u=0;f<i;){if(f=ad(this,r,f,1<f),a=this.i(f),f>=i-1){if(!r.D(a))this.computeShortLength(!1)!==0&&(a=Ss(this,a.copy(),!1,lo)),Ns(this,h,-n,-l,r,a,e);else if(u===0)for(f=1;f<i;)o.assign(r),a=this.i(f++),Ns(this,h,-n,-l,r,a,e),r.assign(a);break}if(u=ad(this,a,f+1,f<i-3),f=-n,v=-l,p=a,m=this.i(u),y=e,P.B(r.y,p.y)&&P.B(p.x,m.x))if(g=Math.min(s,Math.abs(p.x-o.x)/2),g=M=Math.min(g,Math.abs(m.y-p.y)/2),P.B(g,0))Ns(this,h,f,v,r,p,y),r.assign(p);else{var S=p.x,N=p.y;c=S,w=N,p.x>r.x?S=p.x-g:S=p.x+g,m.y>p.y?w=p.y+M:w=p.y-M,m=x.allocAt(S,N),Ns(this,h,f,v,r,m,y),x.free(m),Ia(h,p.x+f,p.y+v,c+f,w+v),r.h(c,w)}else P.B(r.x,p.x)&&P.B(p.y,m.y)?(g=Math.min(s,Math.abs(p.y-o.y)/2),g=M=Math.min(g,Math.abs(m.x-p.x)/2),P.B(M,0)?(Ns(this,h,f,v,r,p,y),r.assign(p)):(S=p.x,N=p.y,c=S,w=N,p.y>r.y?N=p.y-g:N=p.y+g,m.x>p.x?c=p.x+M:c=p.x-M,m=x.allocAt(S,N),Ns(this,h,f,v,r,m,y),x.free(m),Ia(h,p.x+f,p.y+v,c+f,w+v),r.h(c,w))):(Ns(this,h,f,v,r,p,y),r.assign(p));o.assign(a),f=u}x.free(r)}Da=h}else h=this.i(1).copy(),h.x-=n,h.y-=l,this.computeShortLength(!0)!==0&&(o=Ss(this,o,!0,r)),this.computeShortLength(!1)!==0&&(h=Ss(this,h,!1,r)),t.type=I.j,t.startX=o.x,t.startY=o.y,t.endX=h.x,t.endY=h.y;return this.kk=!0,t};function Ka(t,i,e,n){return t=e-t,isNaN(t)||t===1/0||t===-1/0?NaN:(0>t&&(t=-t),i=n-i,isNaN(i)||i===1/0||i===-1/0?NaN:(0>i&&(i=-i),P.$(t,0)?i:P.$(i,0)?t:Math.sqrt(t*t+i*i)))}function Ss(t,i,e,n){var o=t.pointsCount;if(2>o)return i;if(e){var r=t.i(1);if(e=r.x-n.x,r=r.y-n.y,n=Ka(i.x,i.y,e,r),n===0)return i;o=o===2?.5*n:n,t=t.computeShortLength(!0),t>o&&(t=o),o=t*(r-i.y)/n,i.x+=t*(e-i.x)/n,i.y+=o}else{if(r=t.i(o-2),e=r.x-n.x,r=r.y-n.y,n=Ka(i.x,i.y,e,r),n===0)return i;o=o===2?.5*n:n,t=t.computeShortLength(!1),t>o&&(t=o),o=t*(i.y-r)/n,i.x-=t*(i.x-e)/n,i.y-=o}return i}function ad(t,i,e,n){for(var o=t.pointsCount,r=i;P.$(i.x,r.x)&&P.$(i.y,r.y);){if(e>=o)return o-1;r=t.i(e++)}if(!P.$(i.x,r.x)&&!P.$(i.y,r.y))return e-1;for(var s=r;P.$(i.x,r.x)&&P.$(r.x,s.x)&&(!n||(i.y>=r.y?r.y>=s.y:r.y<=s.y))||P.$(i.y,r.y)&&P.$(r.y,s.y)&&(!n||(i.x>=r.x?r.x>=s.x:r.x<=s.x));){if(e>=o)return o-1;s=t.i(e++)}return e-2}F.prototype.computeJumpLength=function(){return 10};function Ns(t,i,e,n,o,r,s){if(!s&&Wr(t)){s=t.computeJumpLength();var h=s/2,l=[],u=0;if(t.isVisible()&&(u=s1(t,o,r,l)),0<u){if(P.B(o.y,r.y))if(o.x<r.x)for(var a=0;a<u;){var f=Math.max(o.x,Math.min(l[a++]-h,r.x-s));i.lineTo(f+e,r.y+n);for(var p=f+e,c=Math.min(f+s,r.x);a<u&&(f=l[a],f<c+s);)a++,c=Math.min(f+h,r.x);f=r.y-s+n,c+=e;var g=r.y+n;t.curve===Ko?Lh(i,c,g,!1):Yo(i,p,f,c,f,c,g)}else for(--u;0<=u;){for(a=Math.min(o.x,Math.max(l[u--]+h,r.x+s)),i.lineTo(a+e,r.y+n),p=a+e,f=Math.max(a-s,r.x);0<=u&&(a=l[u],a>f-s);)u--,f=Math.max(a-h,r.x);a=r.y-s+n,f+=e,c=r.y+n,t.curve===Ko?Lh(i,f,c,!1):Yo(i,p,a,f,a,f,c)}else if(P.B(o.x,r.x))if(o.y<r.y)for(a=0;a<u;){for(f=Math.max(o.y,Math.min(l[a++]-h,r.y-s)),i.lineTo(r.x+e,f+n),p=f+n,f=Math.min(f+s,r.y);a<u&&(c=l[a],c<f+s);)a++,f=Math.min(c+h,r.y);c=r.x-s+e,g=r.x+e,f+=n,t.curve===Ko?Lh(i,g,f,!1):Yo(i,c,p,c,f,g,f)}else for(--u;0<=u;){for(a=Math.min(o.y,Math.max(l[u--]+h,r.y+s)),i.lineTo(r.x+e,a+n),p=a+n,a=Math.max(a-s,r.y);0<=u&&(f=l[u],f>a-s);)u--,a=Math.max(f-h,r.y);f=r.x-s+e,c=r.x+e,a+=n,t.curve===Ko?Lh(i,c,a,!1):Yo(i,f,p,f,a,c,a)}}}i.lineTo(r.x+e,r.y+n)}function s1(t,i,e,n){var o=t.diagram;if(o===null||i.D(e))return 0;for(o=o.layers;o.next();){var r=o.value;if(r!==null&&r.visible){r=r.Pa.s;for(var s=r.length,h=0;h<s;h++){var l=r[h];if(l instanceof F){if(l===t)return 0<n.length&&n.sort(function(a,f){return a-f}),n.length;if(l.isVisible()&&Wr(l)){var u=l.routeBounds;u.w()&&t.routeBounds.Yc(u)&&!t.usesSamePort(l)&&(u=l.path,u!==null&&u.Ed()&&h1(i,e,n,l))}}}}}return 0<n.length&&n.sort(function(a,f){return a-f}),n.length}function h1(t,i,e,n){for(var o=P.B(t.y,i.y),r=n.pointsCount,s=n.i(0),h=x.alloc(),l=1;l<r;l++){var u=n.i(l);if(l<r-1){var a=n.i(l+1);if(s.y===u.y&&u.y===a.y){if(u.x>s.x&&a.x>=u.x||u.x<s.x&&a.x<=u.x)continue}else if(s.x===u.x&&u.x===a.x&&(u.y>s.y&&a.y>=u.y||u.y<s.y&&a.y<=u.y))continue}t:{a=t.x;var f=t.y,p=i.x,c=i.y,g=s.x;s=s.y;var y=u.x,v=u.y;if(P.B(a,p)){if(!P.B(f,c)&&P.B(s,v)&&Math.min(f,c)<s&&Math.max(f,c)>s&&Math.min(g,y)<a&&Math.max(g,y)>a&&!P.B(g,y)){h.x=a,h.y=s,a=!0;break t}}else if(P.B(f,c)&&P.B(g,y)&&Math.min(a,p)<g&&Math.max(a,p)>g&&Math.min(s,v)<f&&Math.max(s,v)>f&&!P.B(s,v)){h.x=g,h.y=f,a=!0;break t}h.x=0,h.y=0,a=!1}a&&(o?e.push(h.x):e.push(h.y)),s=u}x.free(h)}function Wr(t){return t=t.curve,t===Ah||t===Ko}function Ua(t,i){(i||Wr(t))&&(i=t.diagram,i===null||i.animationManager.isTicking||i.Eh.contains(t)||t.ll.width===0&&t.ll.height===0||i.Eh.add(t,t.ll.copy()))}F.prototype.Wo=function(t){var i=this.layer;if(i!==null&&i.visible&&!i.isTemporary){var e=i.diagram;if(e!==null&&!e.animationManager.isTicking){var n=!1;for(e=e.layers;e.next();){var o=e.value;if(o.visible){if(o===i){n=!0;var r=!1;o=o.Pa.s;for(var s=o.length,h=0;h<s;h++){var l=o[h];l instanceof F&&(l===this?r=!0:r&&hm(this,l,t))}}else if(n)for(r=o.Pa.s,o=r.length,s=0;s<o;s++)h=r[s],h instanceof F&&hm(this,h,t)}}}}};function hm(t,i,e){if(i!==null&&i.kk&&i.fd&&Wr(i)){var n=i.routeBounds;n.w()&&(t.routeBounds.Yc(n)||e.Yc(n))&&(t.usesSamePort(i)||i.rc())}}F.prototype.usesSamePort=function(t){var i=this.pointsCount,e=t.pointsCount;if(0<i&&0<e){var n=this.i(0),o=t.i(0);if(n.Xa(o)||(i=this.i(i-1),t=t.i(e-1),i.Xa(t)||n.Xa(t)||i.Xa(o)))return!0}else if(this.fromNode===t.fromNode||this.toNode===t.toNode||this.fromNode===t.toNode||this.toNode===t.fromNode)return!0;return!1},F.prototype.isVisible=function(){if(!U.prototype.isVisible.call(this))return!1;var t=this.containingGroup,i=!0,e=this.diagram;if(e!==null&&(i=e.isTreePathToChildren),e=this.fromNode,e!==null){if(this.isTreeLink&&i&&!e.isTreeExpanded)return!1;if(e===t)return!0;for(var n=e;n!==null;){if(n.labeledLink===this)return!0;n=n.containingGroup}if(e=e.findVisibleNode(),e===null||e===t)return!1}if(e=this.toNode,e!==null){if(this.isTreeLink&&!i&&!e.isTreeExpanded)return!1;if(e===t)return!0;for(i=e;i!==null;){if(i.labeledLink===this)return!0;i=i.containingGroup}if(i=e.findVisibleNode(),i===null||i===t)return!1}return!0},F.prototype.$b=function(t){if(U.prototype.$b.call(this,t),t&&Ua(this,!1),this.Sf!==null&&this.Sf.Rl(),this.wd!==null)for(var i=this.wd.iterator;i.next();)i.value.$b(t)},F.prototype.computeAdjusting=function(){return this.isAvoiding&&this.diagram!==null&&this.diagram.animationManager.defaultAnimation.isAnimating?Yl:this.pk};function Rl(t){var i=t.ef;if(i!==null){var e=t.uf;if(e!==null&&isNaN(t.curviness)){for(var n=t.ff,o=t.vf,r=t=null,s=i.jb.s,h=s.length,l=0;l<h;l++){var u=s[l];(u.ef===i&&u.ff===n&&u.uf===e&&u.vf===o||u.ef===e&&u.ff===o&&u.uf===i&&u.vf===n)&&(r===null?r=u:(t===null&&(t=[],t.push(r)),t.push(u)))}if(t!==null){for(r=Zy(i,e,n,o),r===null&&(r=new _a(i,n,e,o),Jy(i,r),Jy(e,r)),r.links=t,i=0;i<t.length;i++)t[i].Sf=r;r.Rl()}}}}function Vl(t){var i=t.Sf;i!==null&&isNaN(t.curviness)&&(t.Sf=null,t=i.links.indexOf(t),0<=t&&(ns(i.links,t),i.Rl()))}F.prototype.ph=function(){return!0},tt.Object.defineProperties(F.prototype,{fromNode:{get:function(){return this.ef},set:function(t){var i=this.ef;if(i!==t){var e=this.fromPort;i!==null&&(this.uf!==i&&Va(i,this,e),Vl(this),this.C(2)),this.ef=t,t!==null&&this.$b(t.isVisible()),this.Wf=null,this.bb();var n=this.diagram;n!==null&&n.aa&&n.partManager.setFromNodeForLink(this,t,i);var o=this.fromPort,r=this.fromPortChanged;if(r!==null){var s=!0;n!==null&&(s=n.aa,n.aa=!0),r(this,e,o),n!==null&&(n.aa=s)}t!==null&&(this.uf!==t&&Ra(t,this,o),Rl(this),this.C(1)),this.g("fromNode",i,t),jh(this)}}},fromPortId:{get:function(){return this.ff},set:function(t){var i=this.ff;if(i!==t){var e=this.fromPort;e!==null&&ce(e),Vl(this),this.ff=t;var n=this.fromPort;n!==null&&ce(n);var o=this.diagram;if(o!==null){var r=this.data,s=o.model;r!==null&&s.ri()&&s.xv(r,t)}e!==n&&(this.Wf=null,this.bb(),r=this.fromPortChanged,r!==null&&(s=!0,o!==null&&(s=o.aa,o.aa=!0),r(this,e,n),o!==null&&(o.aa=s))),Rl(this),this.g("fromPortId",i,t)}}},fromPort:{get:function(){var t=this.ef;return t===null?null:t.ms(this.ff)}},fromPortChanged:{get:function(){return this.fn},set:function(t){var i=this.fn;i!==t&&(this.fn=t,this.g("fromPortChanged",i,t))}},toNode:{get:function(){return this.uf},set:function(t){var i=this.uf;if(i!==t){var e=this.toPort;i!==null&&(this.ef!==i&&Va(i,this,e),Vl(this),this.C(2)),this.uf=t,t!==null&&this.$b(t.isVisible()),this.Wf=null,this.bb();var n=this.diagram;n!==null&&n.aa&&n.partManager.setToNodeForLink(this,t,i);var o=this.toPort,r=this.toPortChanged;if(r!==null){var s=!0;n!==null&&(s=n.aa,n.aa=!0),r(this,e,o),n!==null&&(n.aa=s)}t!==null&&(this.ef!==t&&Ra(t,this,o),Rl(this),this.C(1)),this.g("toNode",i,t),jh(this)}}},toPortId:{get:function(){return this.vf},set:function(t){var i=this.vf;if(i!==t){var e=this.toPort;e!==null&&ce(e),Vl(this),this.vf=t;var n=this.toPort;n!==null&&ce(n);var o=this.diagram;if(o!==null){var r=this.data,s=o.model;r!==null&&s.ri()&&s.Cv(r,t)}e!==n&&(this.Wf=null,this.bb(),r=this.toPortChanged,r!==null&&(s=!0,o!==null&&(s=o.aa,o.aa=!0),r(this,e,n),o!==null&&(o.aa=s))),Rl(this),this.g("toPortId",i,t)}}},toPort:{get:function(){var t=this.uf;return t===null?null:t.ms(this.vf)}},toPortChanged:{get:function(){return this.to},set:function(t){var i=this.to;i!==t&&(this.to=t,this.g("toPortChanged",i,t))}},fromSpot:{get:function(){return this.ba!==null?this.ba.Xi:Si},set:function(t){var i=this.fromSpot;i.D(t)||(t=t.J(),this.Xc(),this.ba.Xi=t,this.g("fromSpot",i,t),(i.$c()||t.$c())&&this.fromNode!==null&&ce(this.fromPort),this.bb())}},fromEndSegmentLength:{get:function(){return this.ba!==null?this.ba.Vi:NaN},set:function(t){var i=this.fromEndSegmentLength;i!==t&&(0>t&&jt(t,">= 0",F,"fromEndSegmentLength"),this.Xc(),this.ba.Vi=t,this.g("fromEndSegmentLength",i,t),this.bb())}},fromShortLength:{get:function(){return this.ba!==null?this.ba.Wi:NaN},set:function(t){var i=this.fromShortLength;i!==t&&(this.Xc(),this.ba.Wi=t,this.rc(),this.g("fromShortLength",i,t))}},toSpot:{get:function(){return this.ba!==null?this.ba.yj:Si},set:function(t){var i=this.toSpot;i.D(t)||(t=t.J(),this.Xc(),this.ba.yj=t,this.g("toSpot",i,t),(i.$c()||t.$c())&&this.toNode!==null&&ce(this.toPort),this.bb())}},toEndSegmentLength:{get:function(){return this.ba!==null?this.ba.wj:NaN},set:function(t){var i=this.toEndSegmentLength;i!==t&&(0>t&&jt(t,">= 0",F,"toEndSegmentLength"),this.Xc(),this.ba.wj=t,this.g("toEndSegmentLength",i,t),this.bb())}},toShortLength:{get:function(){return this.ba!==null?this.ba.xj:NaN},set:function(t){var i=this.toShortLength;i!==t&&(this.Xc(),this.ba.xj=t,this.rc(),this.g("toShortLength",i,t))}},isLabeledLink:{get:function(){return this.wd===null?!1:0<this.wd.count}},labelNodes:{get:function(){return this.wd===null?nn:this.wd.iterator}},relinkableFrom:{get:function(){return(this.Qa&1)!==0},set:function(t){var i=(this.Qa&1)!==0;i!==t&&(this.Qa^=1,this.g("relinkableFrom",i,t),this.Xb())}},relinkableTo:{get:function(){return(this.Qa&2)!==0},set:function(t){var i=(this.Qa&2)!==0;i!==t&&(this.Qa^=2,this.g("relinkableTo",i,t),this.Xb())}},resegmentable:{get:function(){return(this.Qa&4)!==0},set:function(t){var i=(this.Qa&4)!==0;i!==t&&(this.Qa^=4,this.g("resegmentable",i,t),this.Xb())}},isTreeLink:{get:function(){return(this.Qa&8)!==0},set:function(t){var i=(this.Qa&8)!==0;i!==t&&(this.Qa^=8,this.g("isTreeLink",i,t),this.fromNode!==null&&Bl(this.fromNode),this.toNode!==null&&Bl(this.toNode))}},path:{get:function(){var t=this.Qb();return t instanceof q?t:null}},routeBounds:{get:function(){this.vg();var t=this.ll,i=1/0,e=1/0,n=this.pointsCount;if(n===0)t.h(NaN,NaN,0,0);else{if(n===1)n=this.i(0),i=Math.min(n.x,i),e=Math.min(n.y,e),t.h(n.x,n.y,0,0);else if(n===2){n=this.i(0);var o=this.i(1);i=Math.min(n.x,o.x),e=Math.min(n.y,o.y),t.h(n.x,n.y,0,0),t.Ye(o)}else if(this.computeCurve()===Ne&&3<=n&&!this.isOrthogonal)if(o=this.i(0),i=o.x,e=o.y,t.h(i,e,0,0),n===3){n=this.i(1),i=Math.min(n.x,i),e=Math.min(n.y,e);var r=this.i(2);i=Math.min(r.x,i),e=Math.min(r.y,e),P.Cl(o.x,o.y,n.x,n.y,n.x,n.y,r.x,r.y,.5,t)}else for(r=3;r<n;r+=3){var s=this.i(r-2);r+3>=n&&(r=n-1);var h=this.i(r-1),l=this.i(r);P.Cl(o.x,o.y,s.x,s.y,h.x,h.y,l.x,l.y,.5,t),i=Math.min(l.x,i),e=Math.min(l.y,e),o=l}else for(o=this.i(0),r=this.i(1),i=Math.min(o.x,r.x),e=Math.min(o.y,r.y),t.h(o.x,o.y,0,0),t.Ye(r),o=2;o<n;o++)r=this.i(o),i=Math.min(r.x,i),e=Math.min(r.y,e),t.Ye(r);this.ru.h(i-t.x,e-t.y)}return t}},midPoint:{get:function(){return this.vg(),this.computeMidPoint(new x)}},midAngle:{get:function(){return this.vg(),this.computeMidAngle()}},flattenedLengths:{get:function(){if(this.bq===null){this.fd||za(this);for(var t=this.bq=[],i=this.pointsCount,e=0;e<i-1;e++){var n=this.i(e),o=this.i(e+1);P.$(n.x,o.x)?(n=o.y-n.y,0>n&&(n=-n)):P.$(n.y,o.y)?(n=o.x-n.x,0>n&&(n=-n)):n=Math.sqrt(n.Bf(o)),t.push(n)}}return this.bq}},flattenedTotalLength:{get:function(){var t=this.ut;if(isNaN(t)){for(var i=this.flattenedLengths,e=i.length,n=t=0;n<e;n++)t+=i[n];this.ut=t}return t}},points:{get:function(){return this.Ob},set:function(t){var i=this.Ob;if(i!==t){var e=null;if(Array.isArray(t)){var n=t.length%2===0;if(n){for(var o=0;o<t.length;o++)if(typeof t[o]!="number"||isNaN(t[o])){n=!1;break}}if(n)for(e=new V,n=0;n<t.length/2;n++)o=new x(t[2*n],t[2*n+1]).freeze(),e.add(o);else{for(n=!0,o=0;o<t.length;o++){var r=t[o];if(!At(r)||typeof r.x!="number"||isNaN(r.x)||typeof r.y!="number"||isNaN(r.y)){n=!1;break}}if(n)for(e=new V,n=0;n<t.length;n++)o=t[n],e.add(new x(o.x,o.y).freeze())}}else if(t instanceof V)for(e=t.copy(),t=e.iterator;t.next();)t.value.freeze();else O("Link.points value is not an instance of List or Array: "+t);e.freeze(),this.Ob=e,this.rc(),za(this),t=this.diagram,t!==null&&(t.pi||t.undoManager.isUndoingRedoing||t.zs.add(this),t.animationManager.Ab&&Vp(t.animationManager,this,e)),this.g("points",i,e)}}},pointsCount:{get:function(){return this.Ob.count}},fd:{get:function(){return(this.Qa&16)!==0},set:function(t){(this.Qa&16)!==0!==t&&(this.Qa^=16)}},suspendsRouting:{get:function(){return(this.Qa&32)!==0},set:function(t){(this.Qa&32)!==0!==t&&(this.Qa^=32)}},computingPoints:{get:function(){return(this.Qa&64)!==0},set:function(t){(this.Qa&64)!==0!==t&&(this.Qa^=64)}},defaultFromPoint:{get:function(){return this.o},set:function(t){this.o=t.copy()}},defaultToPoint:{get:function(){return this.u},set:function(t){this.u=t.copy()}},isOrthogonal:{get:function(){return(this.qj.value&2)===2}},isAvoiding:{get:function(){return(this.qj.value&4)===4}},kk:{get:function(){return(this.Qa&128)!==0},set:function(t){(this.Qa&128)!==0!==t&&(this.Qa^=128)}},geometry:{get:function(){if(!this.kk){if(this.vg(),2>this.pointsCount)return this.kk=!0,this.ua;this.ua=this.makeGeometry()}return this.ua}},firstPickIndex:{get:function(){return 2>=this.pointsCount?0:this.isOrthogonal||!Fh(this.computeSpot(!0))?1:0}},lastPickIndex:{get:function(){var t=this.pointsCount;return t===0?0:2>=t?t-1:this.isOrthogonal||!Fh(this.computeSpot(!1))?t-2:t-1}},adjusting:{get:function(){return this.pk},set:function(t){var i=this.pk;i!==t&&(this.pk=t,this.g("adjusting",i,t))}},corner:{get:function(){return this.Nm},set:function(t){var i=this.Nm;i!==t&&(this.Nm=t,this.rc(),this.g("corner",i,t))}},curve:{get:function(){return this.Pm},set:function(t){var i=this.Pm;i!==t&&(this.Pm=t,this.bb(),this.rc(),Ua(this,i===Ko||i===Ah||t===Ko||t===Ah),this.g("curve",i,t))}},curviness:{get:function(){return this.Qm},set:function(t){var i=this.Qm;i!==t&&(this.Qm=t,this.bb(),this.rc(),this.g("curviness",i,t))}},routing:{get:function(){return this.qj},set:function(t){var i=this.qj;i!==t&&(this.qj=t,this.Wf=null,this.bb(),Ua(this,(i.value&2)===2||(t.value&2)===2),this.g("routing",i,t))}},smoothness:{get:function(){return this.oo},set:function(t){var i=this.oo;i!==t&&(this.oo=t,this.rc(),this.g("smoothness",i,t))}},key:{get:function(){var t=this.diagram;if(t!==null&&t.model.ri())return t.model.Ac(this.data)}}}),F.prototype.invalidateOtherJumpOvers=F.prototype.Wo,F.prototype.findClosestSegment=F.prototype.ez,F.prototype.updateRoute=F.prototype.vg,F.prototype.invalidateRoute=F.prototype.bb,F.prototype.rollbackRoute=F.prototype.rv,F.prototype.commitRoute=F.prototype.zf,F.prototype.startRoute=F.prototype.uh,F.prototype.clearPoints=F.prototype.Ej,F.prototype.removePoint=F.prototype.pv,F.prototype.addPointAt=F.prototype.yf,F.prototype.addPoint=F.prototype.ne,F.prototype.insertPointAt=F.prototype.m,F.prototype.insertPoint=F.prototype.Kz,F.prototype.setPointAt=F.prototype.L,F.prototype.setPoint=F.prototype.dd,F.prototype.getPoint=F.prototype.i,F.prototype.getOtherPort=F.prototype.Cz,F.prototype.getOtherNode=F.prototype.So;var Ps=null,ks=null,fd=new R(F,"Normal",1),l1=new R(F,"Orthogonal",2),u1=new R(F,"AvoidsNodes",6),lm=new R(F,"AvoidsNodesStraight",7),Ui=new R(F,"None",0),Ne=new R(F,"Bezier",9),Ko=new R(F,"JumpGap",10),Ah=new R(F,"JumpOver",11),Yl=new R(F,"End",17),Ha=new R(F,"Scale",18),Wa=new R(F,"Stretch",19),zl=new R(F,"OrientAlong",21),Gl=new R(F,"OrientPlus90",22),Xl=new R(F,"OrientMinus90",23),pd=new R(F,"OrientOpposite",24),Ja=new R(F,"OrientUpright",25),Kl=new R(F,"OrientPlus90Upright",26),Ul=new R(F,"OrientMinus90Upright",27),Za=new R(F,"OrientUpright45",28),um=16,am=14,Hl=8;F.className="Link",F.Normal=fd,F.Orthogonal=l1,F.AvoidsNodes=u1,F.AvoidsNodesStraight=lm,F.None=Ui,F.Bezier=Ne,F.JumpGap=Ko,F.JumpOver=Ah,F.End=Yl,F.Scale=Ha,F.Stretch=Wa,F.OrientAlong=zl,F.OrientPlus90=Gl,F.OrientMinus90=Xl,F.OrientOpposite=pd,F.OrientUpright=Ja,F.OrientPlus90Upright=Kl,F.OrientMinus90Upright=Ul,F.OrientUpright45=Za,F.EndSegmentStep=8,F.CurvinessStart=um,F.SpacingMin=am,F.OrthoShortCut=Hl;function _a(t,i,e,n){ui(this),this.Fe=this.pq=!1,this.Cs=t,this.Ox=i,this.cv=e,this.Px=n,this.links=[]}_a.prototype.Rl=function(){if(!this.pq){var t=this.links;0<t.length&&(t=t[0].diagram,t!==null&&(t.ow.add(this),this.Fe=t.undoManager.isUndoingRedoing))}this.pq=!0},_a.prototype.Nv=function(){if(this.pq){this.pq=!1;var t=this.links;if(0<t.length){var i=t[0],e=i.diagram;e=e===null||e.pi&&!this.Fe,this.Fe=!1,i.arrangeBundledLinks(t,e),t.length===1&&(i.Sf=null,t.length=0)}t.length===0&&(t=this.Cs,this!==null&&t.af!==null&&t.af.remove(this),t=this.cv,this!==null&&t.af!==null&&t.af.remove(this))}},_a.className="LinkBundle";function Wl(t){ui(this),this.Yx=this.group=null,this.us=!0,this.abort=!1,this.Od=this.Nd=1,this.En=this.Dn=-1,this.sc=t.width,this.tc=t.height,this.bc=null,this.ei=this.di=0,this.Ns=11,this.Ix=this.Hx=22}Wl.prototype.initialize=function(t){if(!(0>=t.width||0>=t.height)){var i=t.y,e=t.x+t.width,n=t.y+t.height;if(this.Nd=Math.floor((t.x-this.sc)/this.sc)*this.sc,this.Od=Math.floor((i-this.tc)/this.tc)*this.tc,this.Dn=Math.ceil((e+2*this.sc)/this.sc)*this.sc,this.En=Math.ceil((n+2*this.tc)/this.tc)*this.tc,t=1+(Math.ceil((this.Dn-this.Nd)/this.sc)|0),i=1+(Math.ceil((this.En-this.Od)/this.tc)|0),this.bc===null||this.di<t-1||this.ei<i-1){for(e=[],n=0;n<=t;n++)e[n]=new Uint32Array(i);this.bc=e,this.di=t-1,this.ei=i-1}if(t=cd,this.bc!==null)for(i=0;i<=this.di;i++)if(e=this.bc[i],e.fill)e.fill(t);else for(n=0;n<=this.ei;n++)e[n]=t}};function Oh(t,i,e){return t.Nd<=i&&i<=t.Dn&&t.Od<=e&&e<=t.En}function Qn(t,i,e){return Oh(t,i,e)?(i-=t.Nd,i/=t.sc,e-=t.Od,e/=t.tc,t.bc[i|0][e|0]):cd}function fm(t){if(t.bc!==null)for(var i=0;i<=t.di;i++)for(var e=t.bc[i],n=0;n<=t.ei;n++)e[n]>=Jr&&(e[n]=cd)}Wl.prototype.Xj=function(t,i,e,n){if(t>this.Dn||t+e<this.Nd||i>this.En||i+n<this.Od)return!0;t=(t-this.Nd)/this.sc|0,i=(i-this.Od)/this.tc|0,e=Math.max(0,e)/this.sc+1|0;var o=Math.max(0,n)/this.tc+1|0;if(0>t&&(e+=t,t=0),0>i&&(o+=i,i=0),0>e||0>o)return!0;for(n=Math.min(t+e-1,this.di)|0,e=Math.min(i+o-1,this.ei)|0;t<=n;t++){o=this.bc[t];for(var r=i;r<=e;r++)if(o[r]===Uo)return!1}return!0};function qn(t,i,e,n,o,r,s,h,l){if(!(i<r||i>s||e<h||e>l)){var u=i|0,a=e|0,f=t.bc[u][a];if(f>=Jr&&f<Ih)for(o?a+=n:u+=n,f+=1;r<=u&&u<=s&&h<=a&&a<=l&&!(f>=t.bc[u][a]);)t.bc[u][a]=f,f+=1,o?a+=n:u+=n;if(u=o?a:u,o)if(0<n)for(e+=n;e<u;e+=n)qn(t,i,e,1,!o,r,s,h,l),qn(t,i,e,-1,!o,r,s,h,l);else for(e+=n;e>u;e+=n)qn(t,i,e,1,!o,r,s,h,l),qn(t,i,e,-1,!o,r,s,h,l);else if(0<n)for(i+=n;i<u;i+=n)qn(t,i,e,1,!o,r,s,h,l),qn(t,i,e,-1,!o,r,s,h,l);else for(i+=n;i>u;i+=n)qn(t,i,e,1,!o,r,s,h,l),qn(t,i,e,-1,!o,r,s,h,l)}}function $a(t,i,e,n,o,r,s,h,l){i|=0,e|=0;var u=Uo,a=Jr;for(t.bc[i][e]=a;u===Uo&&i>r&&i<s&&e>h&&e<l;)a+=1,t.bc[i][e]=a,o?e+=n:i+=n,u=t.bc[i][e]}function Qa(t,i,e,n,o,r,s,h,l){i|=0,e|=0;var u=Uo,a=Ih;for(t.bc[i][e]=a;u===Uo&&i>r&&i<s&&e>h&&e<l;)t.bc[i][e]=a,o?e+=n:i+=n,u=t.bc[i][e]}function pm(t,i,e,n,o,r,s){if(t.bc!==null){t.abort=!1;var h=i.x,l=i.y;if(Oh(t,h,l)){h-=t.Nd,h/=t.sc,l-=t.Od,l/=t.tc;var u=n.x,a=n.y;if(Oh(t,u,a))if(u-=t.Nd,u/=t.sc,a-=t.Od,a/=t.tc,1>=Math.abs(h-u)&&1>=Math.abs(l-a))t.abort=!0;else{var f=r.x;n=r.y,i=r.x+r.width;var p=r.y+r.height;f-=t.Nd,f/=t.sc,n-=t.Od,n/=t.tc,i-=t.Nd,i/=t.sc,p-=t.Od,p/=t.tc,r=Math.max(0,Math.min(t.di,f|0)),i=Math.min(t.di,Math.max(0,i|0)),f=Math.max(0,Math.min(t.ei,n|0)),p=Math.min(t.ei,Math.max(0,p|0)),n=t.bc,h|=0,l|=0,u|=0,a|=0;var c=e===0||e===90?1:-1;if(e=e===90||e===270,n[h][l]===Uo?($a(t,h,l,c,e,r,i,f,p),$a(t,h,l,1,!e,r,i,f,p),$a(t,h,l,-1,!e,r,i,f,p)):$a(t,h,l,c,e,h,l,h,l),n[u][a]===Uo?(Qa(t,u,a,o===0||o===90?1:-1,o===90||o===270,r,i,f,p),Qa(t,u,a,1,!(o===90||o===270),r,i,f,p),Qa(t,u,a,-1,!(o===90||o===270),r,i,f,p)):Qa(t,u,a,c,e,u,a,u,a),e=kt(),s&&cm(t,u,a,o,h,l,e))for((e[0]!==u||e[1]!==a)&&(e.unshift(a),e.unshift(u)),(e[e.length-2]!==h||e[e.length-1]!==l)&&(e.push(h),e.push(l)),t=Jr,o=e[e.length-2],s=e[e.length-1],n[o][s]=t++,r=e.length-4;0<=r;r-=2)for(o=e[r+2],s=e[r+3],i=e[r],u=e[r+1];i>o?o++:i<o?o--:u>s?s++:u<s&&s--,n[o][s]=t++,o!==i||s!==u;);else qn(t,h,l,1,!1,r,i,f,p),qn(t,h,l,-1,!1,r,i,f,p),qn(t,h,l,1,!0,r,i,f,p),qn(t,h,l,-1,!0,r,i,f,p);Mt(e)}}}}function cm(t,i,e,n,o,r,s){for(var h=t.bc,l=i,u=e;;){if(l===o&&u===r)return!0;var a=l,f=u;if(n===0)if(a<o)a++;else break;else if(n===90)if(f<r)f++;else break;else if(n===180)if(a>o)a--;else break;else if(f>r)f--;else break;var p=h[a][f];if(p===0||p===dd)break;l=a,u=f}for(;;){if(a=n,f=l,p=u,n===0?p<r?(a=90,p++):p>r&&(a=270,p--):n===90?f<o?(a=0,f++):f>o&&(a=180,f--):n===180?p<r?(a=90,p++):p>r&&(a=270,p--):f<o?(a=0,f++):f>o&&(a=180,f--),f=h[f][p],a!==n&&f!==0&&f!==dd){if(s.push(l),s.push(u),cm(t,l,u,a,o,r,s))return!0;s.pop(),s.pop()}if(h[l][u]=dd,n===0){if(l===i)return!1;l--}else if(n===90){if(u===e)return!1;u--}else if(n===180){if(l===i)return!1;l++}else{if(u===e)return!1;u++}}}tt.Object.defineProperties(Wl.prototype,{bounds:{get:function(){return new T(this.Nd,this.Od,this.Dn-this.Nd,this.En-this.Od)}},Go:{get:function(){return this.sc},set:function(t){0<t&&t!==this.sc&&(this.sc=t,this.initialize(this.bounds))}},Fo:{get:function(){return this.tc},set:function(t){0<t&&t!==this.tc&&(this.tc=t,this.initialize(this.bounds))}}});var Uo=0,Jr=1,Ih=999999,cd=Ih+1,dd=Ih+2;Wl.className="PositionArray";function Cs(){ui(this),this.port=this.node=null,this.pe=[],this.$o=!1}Cs.prototype.toString=function(){for(var t=this.pe,i=this.node.toString()+" "+t.length.toString()+":",e=0;e<t.length;e++){var n=t[e];n!==null&&(i+=` `+n.toString())}return i};function a1(t,i,e,n){switch(i=i.offsetY,i){case 8:return 90;case 2:return 180;case 1:return 270;case 4:return 0}switch(i){case 9:return 180<e?270:90;case 6:return 90<e&&270>=e?180:0}switch(t=180*Math.atan2(t.height,t.width)/Math.PI,i){case 3:return e>t&&e<=180+t?180:270;case 5:return e>180-t&&e<=360-t?270:0;case 12:return e>t&&e<=180+t?90:0;case 10:return e>180-t&&e<=360-t?180:90;case 7:return 90<e&&e<=180+t?180:e>180+t&&e<=360-t?270:0;case 13:return 180<e&&e<=360-t?270:e>t&&180>=e?90:0;case 14:return e>t&&e<=180-t?90:e>180-t&&270>=e?180:0;case 11:return e>180-t&&e<=180+t?180:e>180+t?270:90}return n&&i!==15&&(e-=15,0>e&&(e+=360)),e>t&&e<180-t?90:e>=180-t&&e<=180+t?180:e>180+t&&e<360-t?270:0}Cs.prototype.Rl=function(){this.pe.length=0};function dm(t,i){var e=t.pe;if(e.length===0){t:if(!t.$o){e=t.$o,t.$o=!0;var n=null,o=t.node,r=o instanceof Q?o:null;if(r===null||r.isSubGraphExpanded)var s=o.isTreeExpanded?o.findLinksConnected(t.port.portId):o.qx();else{if(!r.actualBounds.w()){t.$o=e;break t}n=r,s=n.Lu()}r=t.pe.length=0;var h=t.port.ga(Ti,x.alloc()),l=t.port.ga(Xn,x.alloc());for(o=T.allocAt(h.x,h.y,0,0),o.Ye(l),x.free(h),x.free(l),h=x.allocAt(o.x+o.width/2,o.y+o.height/2),l=t.port.li(),s=s.iterator;s.next();){var u=s.value;if(u.isVisible()&&u.fromPort!==u.toPort){var a=u.fromPort===t.port||u.fromNode!==null&&u.fromNode.Td(n),f=u.computeSpot(a,t.port);if(f.$c()&&(a=a?u.toPort:u.fromPort,a!==null)){var p=a.part;if(p!==null){var c=p.findVisibleNode();c!==null&&c!==p&&(p=c,a=p.port),a=u.computeOtherPoint(p,a),p=h.ab(a),p-=l,0>p?p+=360:360<=p&&(p-=360),f=a1(o,f,p,u.isOrthogonal),f===0?(f=4,180<p&&(p-=360)):f===90?(f=8,270<p&&(p-=360)):f===180?f=2:(f=1,90>p&&(p+=360)),c=t.pe[r],c===void 0?(c=new gd(u,p,f),t.pe[r]=c):(c.link=u,c.angle=p,c.Nc=f),c.hv.set(a),r++}}}}for(x.free(h),t.pe.sort(Cs.prototype.j),l=t.pe.length,n=-1,r=h=0;r<l;r++)s=t.pe[r],s!==void 0&&(s.Nc!==n&&(n=s.Nc,h=0),s.To=h,h++);for(n=-1,h=0,r=l-1;0<=r;r--)l=t.pe[r],l!==void 0&&(l.Nc!==n&&(n=l.Nc,h=l.To+1),l.Fl=h);if(r=t.pe,f=t.port,n=t.node.portSpreading,h=x.alloc(),l=x.alloc(),s=x.alloc(),u=x.alloc(),f.ga(Ti,h),f.ga(Us,l),f.ga(Xn,s),f.ga(Hs,u),c=p=a=f=0,n===rd)for(var g=0;g<r.length;g++){var y=r[g];if(y!==null){var v=y.link.computeThickness();switch(y.Nc){case 8:p+=v;break;case 2:c+=v;break;case 1:f+=v;break;default:case 4:a+=v}}}var m=g=0,w=1,M=y=0;for(v=0;v<r.length;v++){var S=r[v];if(S!==null){if(g!==S.Nc){switch(g=S.Nc,g){case 8:var N=s;m=u;break;case 2:N=u,m=h;break;case 1:N=h,m=l;break;default:case 4:N=l,m=s}switch(y=m.x-N.x,M=m.y-N.y,g){case 8:p>Math.abs(y)?(w=Math.abs(y)/p,p=Math.abs(y)):w=1;break;case 2:c>Math.abs(M)?(w=Math.abs(M)/c,c=Math.abs(M)):w=1;break;case 1:f>Math.abs(y)?(w=Math.abs(y)/f,f=Math.abs(y)):w=1;break;default:case 4:a>Math.abs(M)?(w=Math.abs(M)/a,a=Math.abs(M)):w=1}m=0}var k=S.Yo;if(n===rd){switch(S=S.link.computeThickness(),S*=w,k.set(N),g){case 8:k.x=N.x+y/2+p/2-m-S/2;break;case 2:k.y=N.y+M/2+c/2-m-S/2;break;case 1:k.x=N.x+y/2-f/2+m+S/2;break;default:case 4:k.y=N.y+M/2-a/2+m+S/2}m+=S}else{var D=.5;n===Ya&&(D=(S.To+1)/(S.Fl+1)),k.x=N.x+y*D,k.y=N.y+M*D}}}for(x.free(h),x.free(l),x.free(s),x.free(u),N=t.pe,r=0;r<N.length;r++)n=N[r],n!==null&&(n.Ju=t.computeEndSegmentLength(n));t.$o=e,T.free(o)}e=t.pe}for(t=0;t<e.length;t++)if(o=e[t],o!==null&&o.link===i)return o;return null}Cs.prototype.j=function(t,i){return t===i?0:t===null?-1:i===null?1:t.Nc<i.Nc?-1:t.Nc>i.Nc?1:t.angle<i.angle?-1:t.angle>i.angle?1:0},Cs.prototype.computeEndSegmentLength=function(t){var i=t.link,e=i.computeEndSegmentLength(this.node,this.port,Mi,i.fromPort===this.port),n=t.To;if(0>n)return e;var o=t.Fl;if(1>=o||!i.isOrthogonal)return e;i=t.hv;var r=t.Yo;return(t.Nc===2||t.Nc===8)&&(n=o-1-n),((t=t.Nc===2||t.Nc===4)?i.y<r.y:i.x<r.x)?e+8*n:(t?i.y===r.y:i.x===r.x)?e:e+8*(o-1-n)},Cs.className="Knot";function gd(t,i,e){this.link=t,this.angle=i,this.Nc=e,this.hv=new x,this.Fl=this.To=0,this.Yo=new x,this.Ju=0}gd.prototype.toString=function(){return this.link.toString()+" "+this.angle.toString()+" "+this.Nc.toString()+":"+this.To.toString()+"/"+this.Fl.toString()+" "+this.Yo.toString()+" "+this.Ju.toString()+" "+this.hv.toString()},gd.className="LinkInfo";function Lt(t){ui(this),this.o=this.H=null,this.Gh=this.rn=!0,this.xn=!1,this.zm=new x(0,0).freeze(),this.un=!0,this.Dm=this.tn=null,this.wn=!1,this.j=null,t&&Object.assign(this,t)}Lt.prototype.cloneProtected=function(t){t.rn=this.rn,t.Gh=this.Gh,t.xn=this.xn,t.zm.assign(this.zm),t.un=this.un,t.tn=this.tn,t.Dm=this.Dm,t.wn=!0},Lt.prototype.copy=function(){var t=new this.constructor;return this.cloneProtected(t),t},Lt.prototype.qb=function(){},Lt.prototype.toString=function(){var t=Ar(this.constructor);return t+="(",this.group!==null&&(t+=" in "+this.group),this.diagram!==null&&(t+=" for "+this.diagram),t+")"},Lt.prototype.C=function(){if(this.isValidLayout){var t=this.diagram;if(t!==null&&!t.undoManager.isUndoingRedoing){var i=t.animationManager;!i.isTicking&&(i.defaultAnimation.isAnimating&&i.Cc(),this.isOngoing&&t.pi||this.isInitial&&!t.pi)&&(this.isValidLayout=!1,t.ac())}}},Lt.prototype.createNetwork=function(){return new Nt(this)},Lt.prototype.makeNetwork=function(t){var i=this.createNetwork();return t instanceof C?(i.lg(t.nodes,!0),i.lg(t.links,!0)):t instanceof Q?i.lg(t.memberParts):i.lg(t.iterator),i},Lt.prototype.updateParts=function(){this.isValidLayout=!0;var t=this.diagram;if(t===null&&this.network!==null)for(var i=this.network.vertexes.iterator;i.next();){var e=i.value.node;if(e!==null&&(t=e.diagram,t!==null))break}try{t!==null&&t.Ea("Layout"),this.commitLayout()}finally{t!==null&&t.eb("Layout")}},Lt.prototype.commitLayout=function(){if(this.network!==null){for(var t=this.network.vertexes.iterator;t.next();)t.value.commit();if(this.isRouting)for(t=this.network.edges.iterator;t.next();)t.value.commit()}},Lt.prototype.doLayout=function(t){var i=new E;t instanceof C?(fr(this,i,t.nodes,!0,this.rh,!0,!1,!0),fr(this,i,t.parts,!0,this.rh,!0,!1,!0)):t instanceof Q?fr(this,i,t.memberParts,!1,this.rh,!0,!1,!0):i.addAll(t.iterator),0<i.count&&(t=this.diagram,t!==null&&t.Ea("Layout"),this.doMinimalNoNetworkLayout(i),t!==null&&t.eb("Layout")),this.isValidLayout=!0},Lt.prototype.doMinimalNoNetworkLayout=function(t){var i=Math.ceil(Math.sqrt(t.count));this.arrangementOrigin=this.initialOrigin(this.arrangementOrigin);var e=this.arrangementOrigin.x,n=e,o=this.arrangementOrigin.y,r=0,s=0;for(t=t.iterator;t.next();){var h=t.value;Jl(h);var l=h.measuredBounds,u=l.width;l=l.height,h.moveTo(n,o),h instanceof Q&&(h.rh=!1),n+=Math.max(u,50)+20,s=Math.max(s,Math.max(l,50)),r>=i-1?(r=0,n=e,o+=s+20,s=0):r++}},Lt.prototype.doMinimalNetworkLayout=function(){var t=Math.ceil(Math.sqrt(this.network.vertexes.count));this.arrangementOrigin=this.initialOrigin(this.arrangementOrigin);for(var i=this.arrangementOrigin.x,e=i,n=this.arrangementOrigin.y,o=0,r=0,s=this.network.vertexes.iterator;s.next();){var h=s.value.node;if(!(h===null||h instanceof F)&&(Jl(h),this.rh(h))){var l=h.measuredBounds,u=l.width;l=l.height,h.moveTo(e,n),h instanceof Q&&(h.rh=!1),e+=Math.max(u,50)+20,r=Math.max(r,Math.max(l,50)),o>=t-1?(o=0,e=i,n+=r+20,r=0):o++}}},Lt.prototype.rh=function(t){return!!(!t.location.w()||t instanceof Q&&t.rh)};function fr(t,i,e,n,o,r,s,h){for(e=e.iterator;e.next();){var l=e.value;n&&!l.isTopLevel||o!==null&&!o(l)||!l.canLayout()||(r&&l instanceof B?l.isLinkLabel||(l instanceof Q&&l.layout===null?fr(t,i,l.memberParts,!1,o,r,s,h):(Jl(l),i.add(l))):s&&l instanceof F?i.add(l):!h||!l.Zc()||l instanceof B||(Jl(l),i.add(l)))}}function Jl(t){var i=t.actualBounds;(i.width===0||i.height===0||isNaN(i.width)||isNaN(i.height))&&t.Va()}Lt.prototype.ni=function(t,i){var e=this.boundsComputation;return e!==null?(i||(i=new T),e(t,this,i)):i?(i.set(t.actualBounds),i):t.actualBounds},Lt.prototype.ex=function(t){var i=new E;return t instanceof C?(fr(this,i,t.nodes,!0,null,!0,!0,!0),fr(this,i,t.links,!0,null,!0,!0,!0),fr(this,i,t.parts,!0,null,!0,!0,!0)):t instanceof Q?fr(this,i,t.memberParts,!1,null,!0,!0,!0):fr(this,i,t.iterator,!1,null,!0,!0,!0),i},Lt.prototype.initialOrigin=function(t){var i=this.group;if(i!==null){var e=i.position.copy();return(isNaN(e.x)||isNaN(e.y))&&e.set(t),i=i.placeholder,i!==null&&(e=i.ga(Ti),(isNaN(e.x)||isNaN(e.y))&&e.set(t),t=i.padding,e.x+=t.left,e.y+=t.top),e}return t},tt.Object.defineProperties(Lt.prototype,{diagram:{get:function(){return this.H},set:function(t){this.H=t}},group:{get:function(){return this.o},set:function(t){this.o!==t&&(this.o=t,t!==null&&(this.H=t.diagram))}},isOngoing:{get:function(){return this.rn},set:function(t){this.rn!==t&&(this.rn=t)}},isInitial:{get:function(){return this.Gh},set:function(t){this.Gh=t,t||(this.wn=!0)}},isViewportSized:{get:function(){return this.xn},set:function(t){this.xn!==t&&(this.xn=t)&&this.C()}},isRouting:{get:function(){return this.un},set:function(t){this.un!==t&&(this.un=t)}},isRealtime:{get:function(){return this.tn},set:function(t){this.tn!==t&&(this.tn=t)}},isValidLayout:{get:function(){return this.wn},set:function(t){this.wn!==t&&(this.wn=t,t||(t=this.diagram,t!==null&&(t.xh=!0)))}},network:{get:function(){return this.j},set:function(t){this.j!==t&&(this.j=t,t!==null&&(t.layout=this))}},boundsComputation:{get:function(){return this.Dm},set:function(t){this.Dm!==t&&(this.Dm=t,this.C())}},arrangementOrigin:{get:function(){return this.zm},set:function(t){this.zm.D(t)||(this.zm.assign(t),this.C())}}}),Lt.prototype.collectParts=Lt.prototype.ex,Lt.prototype.getLayoutBounds=Lt.prototype.ni,Lt.prototype.invalidateLayout=Lt.prototype.C,Lt.className="Layout";function Nt(t){ui(this),this.Sc=t,this.wf=new E,this.ye=new E,this.Ds=new _,this.ys=new _}Nt.prototype.clear=function(){if(this.wf)for(var t=this.wf.iterator;t.next();)t.value.clear();if(this.ye)for(t=this.ye.iterator;t.next();)t.value.clear();this.wf=new E,this.ye=new E,this.Ds=new _,this.ys=new _},Nt.prototype.toString=function(t){t===void 0&&(t=0);var i="LayoutNetwork"+(this.layout!==null?"("+this.layout.toString()+")":"");if(0>=t)return i;if(i+=" vertexes: "+this.wf.count+" edges: "+this.ye.count,1<t){for(var e=this.wf.iterator;e.next();)i+=` `+e.value.toString(t-1);for(e=this.ye.iterator;e.next();)i+=` `+e.value.toString(t-1)}return i},Nt.prototype.createVertex=function(){return new ti(this)},Nt.prototype.createEdge=function(){return new de(this)},Nt.prototype.lg=function(t,i,e){if(t!==null){for(i===void 0&&(i=!1),e===void 0&&(e=null),e===null&&(e=function(s){if(s instanceof B)return!s.isLinkLabel;if(s instanceof F){var h=s.fromNode;return h===null||h.isLinkLabel?!1:(s=s.toNode,!(s===null||s.isLinkLabel))}return!1}),t=t.iterator;t.next();){var n=t.value;if(n instanceof B&&(!i||n.isTopLevel)&&n.canLayout()&&e(n)){if(n instanceof Q&&n.layout===null)this.lg(n.memberParts,!1);else if(this.ki(n)===null){var o=this.createVertex();o.node=n,this.dh(o)}}}for(t.reset();t.next();)if(n=t.value,n instanceof F&&(!i||n.isTopLevel)&&n.canLayout()&&e(n)&&this.Ko(n)===null){var r=n.fromNode;o=n.toNode,r!==null&&o!==null&&r!==o&&(r=this.findGroupVertex(r),o=this.findGroupVertex(o),r!==null&&o!==null&&this.Yj(r,o,n))}}},Nt.prototype.findGroupVertex=function(t){if(t===null)return null;var i=t.findVisibleNode();if(i===null)return null;if(t=this.ki(i),t!==null)return t;for(i=i.containingGroup;i!==null;){if(t=this.ki(i),t!==null)return t;i=i.containingGroup}return null},d=Nt.prototype,d.dh=function(t){if(t!==null){this.wf.add(t);var i=t.node;i!==null&&this.Ds.add(i,t),t.network=this}},d.Al=function(t){if(t===null)return null;var i=this.ki(t);return i===null&&(i=this.createVertex(),i.node=t,this.dh(i)),i},d.Iu=function(t){if(t!==null&&gm(this,t)){for(var i=t.tg,e=i.count-1;0<=e;e--){var n=i.M(e);this.Lj(n)}for(i=t.mg,t=i.count-1;0<=t;t--)e=i.M(t),this.Lj(e)}};function gm(t,i){if(i===null)return!1;var e=t.wf.remove(i);return e&&(i=i.node,i!==null&&t.Ds.remove(i)),e}d.Zy=function(t){t!==null&&(t=this.ki(t),t!==null&&this.Iu(t))},d.ki=function(t){return t===null?null:this.Ds.I(t)},d.Ao=function(t){if(t!==null){yd(this,t);var i=t.toVertex;i!==null&&i.Bl(t),i=t.fromVertex,i!==null&&i.yl(t)}};function yd(t,i){if(i!==null){t.ye.add(i);var e=i.link;e!==null&&t.Ko(e)===null&&t.ys.add(e,i),i.network=t}}d.Dy=function(t){if(t===null)return null;var i=t.fromNode,e=t.toNode,n=this.Ko(t);return n===null?(n=this.createEdge(),n.link=t,i!==null&&(n.fromVertex=this.Al(i)),e!==null&&(n.toVertex=this.Al(e)),this.Ao(n)):(i!==null?n.fromVertex=this.Al(i):n.fromVertex=null,e!==null?n.toVertex=this.Al(e):n.toVertex=null),n},d.Lj=function(t){if(t!==null){var i=t.toVertex;i!==null&&i.Jl(t),i=t.fromVertex,i!==null&&i.Il(t),md(this,t)}};function md(t,i){i!==null&&t.ye.remove(i)&&(i=i.link,i!==null&&t.ys.remove(i))}d.Yy=function(t){t!==null&&(t=this.Ko(t),t!==null&&this.Lj(t))},d.Ko=function(t){return t===null?null:this.ys.I(t)},d.Yj=function(t,i,e){if(t===null||i===null)return null;if(t.network===this&&i.network===this){var n=this.createEdge();return n.link=e,n.fromVertex=t,n.toVertex=i,this.Ao(n),n}return null},d.fm=function(t){if(t!==null){var i=t.fromVertex,e=t.toVertex;i!==null&&e!==null&&(i.Il(t),e.Jl(t),t.fm(),i.Bl(t),e.yl(t))}},d.Jo=function(){for(var t=kt(),i=this.ye.iterator;i.next();){var e=i.value;e.fromVertex===e.toVertex&&t.push(e)}for(i=t.length,e=0;e<i;e++)this.Lj(t[e]);Mt(t)},Nt.prototype.deleteArtificialVertexes=function(){for(var t=kt(),i=this.wf.iterator;i.next();){var e=i.value;e.node===null&&e.data===null&&t.push(e)}for(e=t.length,i=0;i<e;i++)this.Iu(t[i]);for(i=kt(),e=this.ye.iterator;e.next();){var n=e.value;n.link===null&&n.data===null&&i.push(n)}for(e=i.length,n=0;n<e;n++)this.Lj(i[n]);Mt(t),Mt(i)};function f1(t){for(var i=kt(),e=t.ye.iterator;e.next();){var n=e.value;n.fromVertex!==null&&n.toVertex!==null||i.push(n)}for(e=i.length,n=0;n<e;n++)t.Lj(i[n]);Mt(i)}Nt.prototype.Zx=function(t){t===void 0&&(t=!0),t&&(this.deleteArtificialVertexes(),f1(this),this.Jo()),t=new V;for(var i=!0;i;){i=!1;for(var e=this.wf.iterator;e.next();){var n=e.value;if(0<n.tg.count||0<n.mg.count){i=this.layout.createNetwork(),t.add(i),vd(this,i,n),i=!0;break}}}return t.sort(function(o,r){return o===null||r===null||o===r?0:r.vertexes.count-o.vertexes.count}),t};function vd(t,i,e){if(e!==null&&e.network!==i){gm(t,e),i.dh(e);for(var n=e.sourceEdges;n.next();){var o=n.value;o.network!==i&&(md(t,o),yd(i,o),vd(t,i,o.fromVertex))}for(n=e.destinationEdges;n.next();)e=n.value,e.network!==i&&(md(t,e),yd(i,e),vd(t,i,e.toVertex))}}Nt.prototype.dz=function(){for(var t=new E,i=this.wf.iterator;i.next();)t.add(i.value.node);for(i=this.ye.iterator;i.next();)t.add(i.value.link);return t},tt.Object.defineProperties(Nt.prototype,{layout:{get:function(){return this.Sc},set:function(t){t!==null&&(this.Sc=t)}},vertexes:{get:function(){return this.wf}},edges:{get:function(){return this.ye}}}),Nt.prototype.findAllParts=Nt.prototype.dz,Nt.prototype.splitIntoSubNetworks=Nt.prototype.Zx,Nt.prototype.deleteSelfEdges=Nt.prototype.Jo,Nt.prototype.reverseEdge=Nt.prototype.fm,Nt.prototype.linkVertexes=Nt.prototype.Yj,Nt.prototype.findEdge=Nt.prototype.Ko,Nt.prototype.deleteLink=Nt.prototype.Yy,Nt.prototype.deleteEdge=Nt.prototype.Lj,Nt.prototype.addLink=Nt.prototype.Dy,Nt.prototype.addEdge=Nt.prototype.Ao,Nt.prototype.findVertex=Nt.prototype.ki,Nt.prototype.deleteNode=Nt.prototype.Zy,Nt.prototype.deleteVertex=Nt.prototype.Iu,Nt.prototype.addNode=Nt.prototype.Al,Nt.prototype.addVertex=Nt.prototype.dh,Nt.prototype.addParts=Nt.prototype.lg,Nt.className="LayoutNetwork";function ti(t){ui(this),this.ob=t,this.j=new T(0,0,10,10).freeze(),this.o=new x(5,5).freeze(),this.Sh=this.ub=null,this.tg=new V,this.mg=new V}ti.prototype.clear=function(){this.Sh=this.ub=null,this.tg=new V,this.mg=new V},ti.prototype.toString=function(t){t===void 0&&(t=0);var i="LayoutVertex#"+qi(this);if(0<t&&(i+=this.node!==null?"("+this.node.toString()+")":"",1<t)){t="";for(var e=!0,n=this.tg.iterator;n.next();){var o=n.value;e?e=!1:t+=",",t+=o.toString(0)}for(o="",e=!0,n=this.mg.iterator;n.next();){var r=n.value;e?e=!1:o+=",",o+=r.toString(0)}i+=" sources: "+t+" destinations: "+o}return i},ti.prototype.commit=function(){var t=this.ub;if(t!==null){var i=this.bounds,e=t.bounds;At(e)?(e.x=i.x,e.y=i.y,e.width=i.width,e.height=i.height):t.bounds=i.copy()}else if(t=this.node,t!==null){if(i=this.bounds,!(t instanceof Q)){e=T.alloc(),t.Va();var n=this.network.layout.ni(t,e),o=t.locationObject.ga(vt);if(n.w()&&o.w()){t.moveTo(i.x+this.focusX-(o.x-n.x),i.y+this.focusY-(o.y-n.y)),T.free(e);return}T.free(e)}t.moveTo(i.x,i.y)}},ti.prototype.Bl=function(t){t!==null&&(this.tg.contains(t)||this.tg.add(t))},ti.prototype.Jl=function(t){t!==null&&this.tg.remove(t)},ti.prototype.yl=function(t){t!==null&&(this.mg.contains(t)||this.mg.add(t))},ti.prototype.Il=function(t){t!==null&&this.mg.remove(t)};function xd(t,i){return t=t.Sh,i=i.Sh,t?i?(t=t.text,i=i.text,t<i?-1:t>i?1:0):1:i!==null?-1:0}tt.Object.defineProperties(ti.prototype,{sourceEdgesArrayAccess:{get:function(){return this.tg._dataArray}},destinationEdgesArrayAccess:{get:function(){return this.mg._dataArray}},data:{get:function(){return this.ub},set:function(t){if(this.ub=t,t!==null&&t.bounds){var i=t.bounds;t=i.x;var e=i.y,n=i.width;i=i.height,this.o.h(n/2,i/2),this.j.h(t,e,n,i)}}},node:{get:function(){return this.Sh},set:function(t){if(this.Sh!==t){this.Sh=t,t.Va();var i=this.network.layout,e=T.alloc(),n=i.ni(t,e);i=n.x;var o=n.y,r=n.width;if(n=n.height,isNaN(i)&&(i=0),isNaN(o)&&(o=0),this.j.h(i,o,r,n),T.free(e),!(t instanceof Q)&&(t=t.locationObject.ga(vt),t.w())){this.o.h(t.x-i,t.y-o);return}this.o.h(r/2,n/2)}}},bounds:{get:function(){return this.j},set:function(t){this.j.D(t)||this.j.assign(t)}},focus:{get:function(){return this.o},set:function(t){this.o.D(t)||this.o.assign(t)}},centerX:{get:function(){return this.j.x+this.o.x},set:function(t){var i=this.j;i.x+this.o.x!==t&&(i.ka(),i.x=t-this.o.x,i.freeze())}},centerY:{get:function(){return this.j.y+this.o.y},set:function(t){var i=this.j;i.y+this.o.y!==t&&(i.ka(),i.y=t-this.o.y,i.freeze())}},focusX:{get:function(){return this.o.x},set:function(t){var i=this.o;i.x!==t&&(i.ka(),i.x=t,i.freeze())}},focusY:{get:function(){return this.o.y},set:function(t){var i=this.o;i.y!==t&&(i.ka(),i.y=t,i.freeze())}},x:{get:function(){return this.j.x},set:function(t){var i=this.j;i.x!==t&&(i.ka(),i.x=t,i.freeze())}},y:{get:function(){return this.j.y},set:function(t){var i=this.j;i.y!==t&&(i.ka(),i.y=t,i.freeze())}},width:{get:function(){return this.j.width},set:function(t){var i=this.j;i.width!==t&&(i.ka(),i.width=t,i.freeze())}},height:{get:function(){return this.j.height},set:function(t){var i=this.j;i.height!==t&&(i.ka(),i.height=t,i.freeze())}},network:{get:function(){return this.ob},set:function(t){this.ob=t}},sourceVertexes:{get:function(){for(var t=new E,i=this.sourceEdges;i.next();)t.add(i.value.fromVertex);return t.iterator}},destinationVertexes:{get:function(){for(var t=new E,i=this.destinationEdges;i.next();)t.add(i.value.toVertex);return t.iterator}},vertexes:{get:function(){for(var t=new E,i=this.sourceEdges;i.next();)t.add(i.value.fromVertex);for(i=this.destinationEdges;i.next();)t.add(i.value.toVertex);return t.iterator}},sourceEdges:{get:function(){return this.tg.iterator}},destinationEdges:{get:function(){return this.mg.iterator}},edges:{get:function(){for(var t=new V,i=this.sourceEdges;i.next();)t.add(i.value);for(i=this.destinationEdges;i.next();)t.add(i.value);return t.iterator}},edgesCount:{get:function(){return this.tg.count+this.mg.count}}}),ti.prototype.deleteDestinationEdge=ti.prototype.Il,ti.prototype.addDestinationEdge=ti.prototype.yl,ti.prototype.deleteSourceEdge=ti.prototype.Jl,ti.prototype.addSourceEdge=ti.prototype.Bl,ti.className="LayoutVertex",ti.standardComparer=xd,ti.smartComparer=function(t,i){if(t!==null){if(i!==null){t=t.Sh;var e=i.Sh;if(t!==null){if(e!==null){for(i=t.text.toLocaleLowerCase().split(/([+-]?[.]?\d+(?:\.\d*)?(?:e[+-]?\d+)?)/),t=e.text.toLocaleLowerCase().split(/([+-]?[.]?\d+(?:\.\d*)?(?:e[+-]?\d+)?)/),e=0;e<i.length;e++)if(t[e]!==""&&t[e]!==void 0){var n=parseFloat(i[e]),o=parseFloat(t[e]);if(isNaN(n))if(isNaN(o)){if(i[e].localeCompare(t[e])!==0)return i[e].localeCompare(t[e])}else return 1;else{if(isNaN(o))return-1;if(n-o!==0)return n-o}}else if(i[e]!=="")return 1;return t[e]!==""&&t[e]!==void 0?-1:0}return 1}return e!==null?-1:0}return 1}return i!==null?-1:0};function de(t){ui(this),this.nb=t,this.qd=this.kd=this.Zk=this.ub=null}de.prototype.clear=function(){this.qd=this.kd=this.Zk=this.ub=null},de.prototype.toString=function(t){t===void 0&&(t=0);var i="LayoutEdge#"+qi(this);return 0<t&&(i+=this.Zk!==null?"("+this.Zk.toString()+")":"",1<t&&(i+=" "+(this.kd?this.kd.toString():"null")+" --> "+(this.qd?this.qd.toString():"null"))),i},de.prototype.fm=function(){var t=this.kd;this.kd=this.qd,this.qd=t},de.prototype.commit=function(){},de.prototype.Ax=function(t){return this.qd===t?this.kd:this.kd===t?this.qd:null},tt.Object.defineProperties(de.prototype,{network:{get:function(){return this.nb},set:function(t){this.nb=t}},data:{get:function(){return this.ub},set:function(t){this.ub!==t&&(this.ub=t)}},link:{get:function(){return this.Zk},set:function(t){this.Zk!==t&&(this.Zk=t)}},fromVertex:{get:function(){return this.kd},set:function(t){this.kd!==t&&(this.kd=t)}},toVertex:{get:function(){return this.qd},set:function(t){this.qd!==t&&(this.qd=t)}}}),de.prototype.getOtherVertex=de.prototype.Ax,de.className="LayoutEdge";function ci(t){Lt.call(this),this.isViewportSized=!0,this.xo=this.yo=NaN,this.yg=new Z(NaN,NaN).freeze(),this.tf=new Z(10,10).freeze(),this.Kb=Zl,this.Sb=ba,this.nd=_l,this.hd=ym,t&&Object.assign(this,t)}pt(ci,Lt),ci.prototype.cloneProtected=function(t){Lt.prototype.cloneProtected.call(this,t),t.yo=this.yo,t.xo=this.xo,t.yg.assign(this.yg),t.tf.assign(this.tf),t.Kb=this.Kb,t.Sb=this.Sb,t.nd=this.nd,t.hd=this.hd},ci.prototype.qb=function(t){t.classType===ci?t===_l||t===ef||t===wd||t===tf?this.sorting=t:t===ba||t===Sn?this.arrangement=t:t===Zl||t===qa?this.alignment=t:O("Unknown enum value: "+t):Lt.prototype.qb.call(this,t)},ci.prototype.doLayout=function(t){this.arrangementOrigin=this.initialOrigin(this.arrangementOrigin);var i=this.ex(t);t=this.diagram;for(var e=i.copy().iterator;e.next();){var n=e.value;if(!n.ph()||n.fromNode===null&&n.toNode===null){if(n.Va(),n instanceof Q)for(n=n.memberParts;n.next();)i.remove(n.value)}else i.remove(n)}var o=i.Fa();if(o.length!==0){switch(this.sorting){case tf:o.reverse();break;case _l:o.sort(this.comparer);break;case ef:o.sort(this.comparer),o.reverse()}var r=this.wrappingColumn;isNaN(r)&&(r=0);var s=this.wrappingWidth;switch(isNaN(s)&&t!==null?(i=t.padding,s=Math.max(t.viewportBounds.width-i.left-i.right,0)):s=Math.max(this.wrappingWidth,0),0>=r&&0>=s&&(r=1),i=this.spacing.width,isFinite(i)||(i=0),e=this.spacing.height,isFinite(e)||(e=0),t!==null&&t.Ea("Layout"),n=[],this.alignment){case qa:var h=i,l=e,u=T.alloc(),a=Math.max(this.cellSize.width,1);if(!isFinite(a))for(var f=a=0;f<o.length;f++){var p=this.ni(o[f],u);a=Math.max(a,p.width)}if(a=Math.max(a+h,1),f=Math.max(this.cellSize.height,1),!isFinite(f))for(p=f=0;p<o.length;p++){var c=this.ni(o[p],u);f=Math.max(f,c.height)}f=Math.max(f+l,1),p=this.arrangement;for(var g=c=this.arrangementOrigin.x,y=this.arrangementOrigin.y,v=0,m=0,w=0;w<o.length;w++){var M=o[w],S=this.ni(M,u),N=Math.ceil((S.width+h)/a)*a,k=Math.ceil((S.height+l)/f)*f;switch(p){case Sn:var D=Math.abs(g-S.width);break;default:D=g+S.width}switch((0<r&&v>r-1||0<s&&0<v&&D-c>s)&&(n.push(new T(0,y,s+h,m)),v=0,g=c,y+=m,m=0),m=Math.max(m,k),p){case Sn:S=-S.width;break;default:S=0}switch(M.moveTo(g+S,y),p){case Sn:g-=N;break;default:g+=N}v++}n.push(new T(0,y,s+h,m)),T.free(u);break;case Zl:for(l=s,a=r,f=i,p=e,s=T.alloc(),c=Math.max(this.cellSize.width,1),r=y=u=0,h=x.alloc(),g=0;g<o.length;g++)m=o[g],v=this.ni(m,s),m=zo(m,m.locationObject,m.locationSpot,h),u=Math.max(u,m.x),y=Math.max(y,v.width-m.x),r=Math.max(r,m.y);switch(g=this.arrangement,g){case Sn:u+=f;break;default:y+=f}c=isFinite(c)?Math.max(c+f,1):Math.max(u+y,1);var z=m=this.arrangementOrigin.x;for(w=this.arrangementOrigin.y,y=0,l>=u&&(l-=u),u=M=0,N=Math.max(this.cellSize.height,1),S=r=0,k=!0,v=x.alloc(),D=0;D<o.length;D++){var Y=o[D],A=this.ni(Y,s),L=zo(Y,Y.locationObject,Y.locationSpot,h);if(0<y)switch(g){case Sn:z=(z-m-(A.width-L.x))/c,z=P.$(Math.round(z),z)?Math.round(z):Math.floor(z),z=z*c+m;break;default:z=(z-m+L.x)/c,z=P.$(Math.round(z),z)?Math.round(z):Math.ceil(z),z=z*c+m}else switch(g){case Sn:M=z+L.x+A.width;break;default:M=z-L.x}switch(g){case Sn:var $=-(z+L.x)+M;break;default:$=z+A.width-L.x-M}if(0<a&&y>a-1||0<l&&0<y&&$>l){for(n.push(new T(0,k?w-r:w,l+f,S+r+p)),z=0;z<y&&D!==y;z++){$=o[D-y+z];var W=zo($,$.locationObject,$.locationSpot,v);$.moveTo($.position.x,$.position.y+r-W.y)}S+=p,w=k?w+S:w+(S+r),y=S=r=0,z=m,k=!1}switch(z===m&&(u=g===Sn?Math.max(u,A.width-L.x):Math.min(u,-L.x)),r=Math.max(r,L.y),S=Math.max(S,A.height-L.y),isFinite(N)&&(S=Math.max(S,Math.max(A.height,N)-L.y)),k?Y.moveTo(z-L.x,w-L.y):Y.moveTo(z-L.x,w),g){case Sn:z-=L.x+f;break;default:z+=A.width-L.x+f}y++}if(n.push(new T(0,w,l+f,(k?S:S+r)+p)),o.length!==y)for(l=0;l<y;l++)a=o[o.length-y+l],f=zo(a,a.locationObject,a.locationSpot,h),a.moveTo(a.position.x,a.position.y+r-f.y);if(x.free(h),x.free(v),g===Sn)for(o=0;o<n.length;o++)r=n[o],r.width+=u,r.x-=u;else for(o=0;o<n.length;o++)r=n[o],r.x>u&&(r.width+=r.x-u,r.x=u);T.free(s)}for(h=r=s=o=0;h<n.length;h++)l=n[h],o=Math.min(o,l.x),s=Math.min(s,l.y),r=Math.max(r,l.x+l.width);this.arrangement===Sn?this.commitLayers(n,new x(o+i/2-(r+o),s-e/2)):this.commitLayers(n,new x(o-i/2,s-e/2)),t!==null&&t.eb("Layout"),this.isValidLayout=!0}},ci.prototype.commitLayers=function(){};function ym(t,i){return t=t.text,i=i.text,t<i?-1:t>i?1:0}tt.Object.defineProperties(ci.prototype,{wrappingWidth:{get:function(){return this.yo},set:function(t){this.yo!==t&&(0<t||isNaN(t))&&(this.yo=t,this.isViewportSized=isNaN(t),this.C())}},wrappingColumn:{get:function(){return this.xo},set:function(t){this.xo!==t&&(0<t||isNaN(t))&&(this.xo=t,this.C())}},cellSize:{get:function(){return this.yg},set:function(t){this.yg.D(t)||(this.yg.assign(t),this.C())}},spacing:{get:function(){return this.tf},set:function(t){this.tf.D(t)||(this.tf.assign(t),this.C())}},alignment:{get:function(){return this.Kb},set:function(t){this.Kb===t||t!==Zl&&t!==qa||(this.Kb=t,this.C())}},arrangement:{get:function(){return this.Sb},set:function(t){this.Sb===t||t!==ba&&t!==Sn||(this.Sb=t,this.C())}},sorting:{get:function(){return this.nd},set:function(t){this.nd===t||t!==wd&&t!==tf&&t!==_l&&t!==ef||(this.nd=t,this.C())}},comparer:{get:function(){return this.hd},set:function(t){this.hd!==t&&(this.hd=t,this.C())}}});var qa=new R(ci,"Position",0),Zl=new R(ci,"Location",1),ba=new R(ci,"LeftToRight",2),Sn=new R(ci,"RightToLeft",3),wd=new R(ci,"Forward",4),tf=new R(ci,"Reverse",5),_l=new R(ci,"Ascending",6),ef=new R(ci,"Descending",7);ci.className="GridLayout",ci.standardComparer=ym,ci.smartComparer=function(t,i){if(t!==null){if(i!==null){t=t.text.toLocaleLowerCase().split(/([+-]?[.]?\d+(?:\.\d*)?(?:e[+-]?\d+)?)/),i=i.text.toLocaleLowerCase().split(/([+-]?[.]?\d+(?:\.\d*)?(?:e[+-]?\d+)?)/);for(var e=0;e<t.length;e++)if(i[e]!==""&&i[e]!==void 0){var n=parseFloat(t[e]),o=parseFloat(i[e]);if(isNaN(n))if(isNaN(o)){if(t[e].localeCompare(i[e])!==0)return t[e].localeCompare(i[e])}else return 1;else{if(isNaN(o))return-1;if(n-o!==0)return n-o}}else if(t[e]!=="")return 1;return i[e]!==""&&i[e]!==void 0?-1:0}return 1}return i!==null?-1:0},ci.Position=qa,ci.Location=Zl,ci.LeftToRight=ba,ci.RightToLeft=Sn,ci.Forward=wd,ci.Reverse=tf,ci.Ascending=_l,ci.Descending=ef;function yt(){this.Nn=new E,this.Cn=new E,this.Pa=new E,this.cf=new _,this.bf=new _,this.aj=new _,this.H=null,this.sp=!1}d=yt.prototype,d.clear=function(){this.Nn.clear(),this.Cn.clear(),this.Pa.clear(),this.cf.clear(),this.bf.clear(),this.aj.clear()},d.Xe=function(t){this.H=t},d.oi=function(t){if(t instanceof B){if(this.Nn.add(t),t instanceof Q){var i=t.containingGroup;i===null?this.H.ai.add(t):i.fl.add(t),i=t.layout,i!==null&&(i.diagram=this.H)}}else t instanceof F?this.Cn.add(t):t instanceof lt||this.Pa.add(t);i=t.data,i===null||t instanceof lt||(t instanceof F?this.bf.add(i,t):this.cf.add(i,t))},d.qc=function(t){if(t.Dj(),t instanceof B){if(this.Nn.remove(t),t instanceof Q){var i=t.containingGroup;i===null?this.H.ai.remove(t):i.fl.remove(t),i=t.layout,i!==null&&(i.diagram=null)}}else t instanceof F?this.Cn.remove(t):t instanceof lt||this.Pa.remove(t);i=t.data,i===null||t instanceof lt||(t instanceof F?this.bf.remove(i):this.cf.remove(i))},d.Wd=function(){var t=this.H;if(t!==null){for(var i=t.nodeTemplateMap.iterator;i.next();){var e=i.value,n=i.key;(!e.Zc()||e instanceof Q)&&O('Invalid node template in Diagram.nodeTemplateMap: template for "'+n+'" must be a Node or a simple Part, not a Group or Link: '+e)}for(i=t.groupTemplateMap.iterator;i.next();)e=i.value,n=i.key,e instanceof Q||O('Invalid group template in Diagram.groupTemplateMap: template for "'+n+'" must be a Group, not a normal Node or Link: '+e);for(i=t.linkTemplateMap.iterator;i.next();)e=i.value,n=i.key,e instanceof F||O('Invalid link template in Diagram.linkTemplateMap: template for "'+n+'" must be a Link, not a normal Node or simple Part: '+e);for(i=kt(),e=t.selection.iterator;e.next();)(n=e.value.data)&&i.push(n);for(e=kt(),t=t.highlighteds.iterator;t.next();)(n=t.value.data)&&e.push(n);for(t=kt(),n=this.nodes.iterator;n.next();){var o=n.value;o.data!==null&&(t.push(o.data),t.push(o.location))}for(n=this.links.iterator;n.next();)o=n.value,o.data!==null&&(t.push(o.data),t.push(o.location));for(n=this.parts.iterator;n.next();)o=n.value,o.data!==null&&(t.push(o.data),t.push(o.location));for(this.removeAllModeledParts(),this.addAllModeledParts(),n=0;n<i.length;n++)o=this.Lc(i[n]),o!==null&&(o.isSelected=!0);for(n=0;n<e.length;n++)o=this.Lc(e[n]),o!==null&&(o.isHighlighted=!0);for(n=0;n<t.length;n+=2)o=this.Lc(t[n]),o!==null&&(o.location=t[n+1]);Mt(i),Mt(e),Mt(t)}},yt.prototype.addAllModeledParts=function(){this.addModeledParts(this.diagram.model.nodeDataArray)},yt.prototype.addModeledParts=function(t,i){var e=this,n=this.diagram.model;t.forEach(function(o){n.lb(o)&&mm(e,o,!1)}),t.forEach(function(o){n.lb(o)&&e.resolveReferencesForData(o)}),i!==!1&&$u(this.diagram,!1)};function mm(t,i,e){if(i!=null&&!t.diagram.undoManager.isUndoingRedoing&&!t.cf.contains(i)){e===void 0&&(e=!0);t:{if(i!=null&&!t.H.undoManager.isUndoingRedoing&&!t.cf.contains(i)){var n=t.Qo(i),o=vm(t,i,n);if(o!==null&&(Ze(o),o=o.copy(),o!==null)){var r=t.diagram.skipsModelSourceBindings;t.diagram.skipsModelSourceBindings=!0,o.Tf=n,o.ub=i,t.sp&&(o.Jg="Tool"),t.diagram.add(o),o.ub=null,o.data=i,t.diagram.skipsModelSourceBindings=r,n=o;break t}}n=null}n!==null&&e&&t.resolveReferencesForData(i)}}yt.prototype.insertLink=function(){return null},yt.prototype.resolveReferencesForData=function(){},yt.prototype.Qo=function(t){return this.H.model.Qo(t)};function vm(t,i,e){t=t.H;var n=t.model;return n.Wj()&&n.Yu(i)?(i=t.groupTemplateMap.I(e),i===null&&(i=t.groupTemplateMap.I(""),i===null&&(Mm||(Mm=!0,ue('No Group template found for category "'+e+'"'),ue(" Using default group template")),i=t.ly))):(i=t.nodeTemplateMap.I(e),i===null&&(i=t.nodeTemplateMap.I(""),i===null&&(wm||(wm=!0,ue('No Node template found for category "'+e+'"'),ue(" Using default node template")),i=t.ny))),i}yt.prototype.getLinkCategoryForData=function(){return""},yt.prototype.setLinkCategoryForData=function(){},yt.prototype.setFromNodeForLink=function(){},yt.prototype.setToNodeForLink=function(){},yt.prototype.findLinkTemplateForCategory=function(t){var i=this.H,e=i.linkTemplateMap.I(t);return e===null&&(e=i.linkTemplateMap.I(""),e===null&&(Sm||(Sm=!0,ue('No Link template found for category "'+t+'"'),ue(" Using default link template")),e=i.my)),e},yt.prototype.removeAllModeledParts=function(){this.Fs(this.diagram.model.nodeDataArray)},yt.prototype.Fs=function(t){var i=this;t.forEach(function(e){i.hp(e)})},yt.prototype.hp=function(t){t=this.Lc(t),t!==null&&(_p(this.diagram,t,!1),this.unresolveReferencesForPart(t))},yt.prototype.unresolveReferencesForPart=function(){},yt.prototype.removeDataForLink=function(){},yt.prototype.findPartForKey=function(t){return t==null?null:(t=this.H.model.ic(t),t!==null?this.cf.I(t):null)},yt.prototype.Wb=function(t){return t==null||(t=this.H.model.ic(t),t===null)?null:(t=this.cf.I(t),t instanceof B?t:null)},yt.prototype.findLinkForKey=function(){return null},d=yt.prototype,d.Lc=function(t){if(t===null)return null;var i=this.cf.I(t);return i!==null?i:i=this.bf.I(t)},d.ii=function(t){return t===null?null:(t=this.cf.I(t),t instanceof B?t:null)},d.Kc=function(t){return t===null?null:this.bf.I(t)},d.ls=function(t){for(var i=0;i<arguments.length;++i);i=new E;for(var e=this.Nn.iterator;e.next();){var n=e.value,o=n.data;if(o!==null)for(var r=0;r<arguments.length;r++){var s=arguments[r];if(At(s)&&Md(this,o,s)){i.add(n);break}}}return i.iterator},d.ks=function(t){for(var i=0;i<arguments.length;++i);i=new E;for(var e=this.Cn.iterator;e.next();){var n=e.value,o=n.data;if(o!==null)for(var r=0;r<arguments.length;r++){var s=arguments[r];if(At(s)&&Md(this,o,s)){i.add(n);break}}}return i.iterator};function Md(t,i,e){for(var n in e){var o=i[n],r=e[n];if(ai(r)){if(!ai(o)||o.length<r.length)return!1;for(var s=0;s<o.length;s++){var h=r[s];if(h!==void 0&&!xm(t,o[s],h))return!1}}else if(!xm(t,o,r))return!1}return!0}function xm(t,i,e){if(typeof e=="function"){if(!e(i))return!1}else if(e instanceof RegExp){if(!i||!e.test(i.toString()))return!1}else if(At(i)&&At(e)){if(!Md(t,i,e))return!1}else if(i!==e)return!1;return!0}yt.prototype.doModelChanged=function(t){if(this.H){var i=this.H;if(t.model===i.model){var e=t.change;if(i.doModelChanged(t),i.aa){i.aa=!1;try{var n=t.modelChange;if(n!=="")if(e===Ot){if(n==="nodeCategory"){var o=this.Lc(t.object),r=t.newValue;o!==null&&typeof r=="string"&&(o.category=r)}else n==="nodeDataArray"&&(this.Fs(t.oldValue),this.addModeledParts(t.newValue));i.isModified=!0}else if(e===ii){var s=t.newValue;n==="nodeDataArray"&&At(s)&&mm(this,s),i.isModified=!0}else if(e===si){var h=t.oldValue;n==="nodeDataArray"&&At(h)&&this.hp(h),i.isModified=!0}else e===vn&&(n==="SourceChanged"?t.object!==null?this.updateDataBindings(t.object,t.propertyName):(this.qp(),this.updateAllTargetBindings()):n==="ModelDisplaced"&&this.Wd());else if(e===Ot){var l=t.propertyName,u=t.object;u===i.model?(l==="nodeKeyProperty"||l==="nodeCategoryProperty")&&(i.undoManager.isUndoingRedoing||this.Wd()):this.updateDataBindings(u,l),i.isModified=!0}else if(e===ii||e===si){var a=t.change===ii,f=a?t.newParam:t.oldParam,p=a?t.newValue:t.oldValue,c=this.aj.I(t.object);if(Array.isArray(c))for(t=0;t<c.length;t++){var g=c[t];if(a)wa(g,p,f,!0);else if(!(0>f)){var y=f+Fl(g);g.qc(y,!0),Bc(g,y,f)}}i.isModified=!0}}finally{i.aa=!0}}}}},yt.prototype.updateAllTargetBindings=function(t){t===void 0&&(t="");for(var i=this.parts.iterator;i.next();)i.value.La(t);for(i=this.nodes.iterator;i.next();)i.value.La(t);for(i=this.links.iterator;i.next();)i.value.La(t)},yt.prototype.qp=function(){for(var t=this.H.model,i=new E,e=t.nodeDataArray,n=0;n<e.length;n++)i.add(e[n]);var o=[];for(this.nodes.each(function(s){s.data===null||i.contains(s.data)||o.push(s.data)}),this.parts.each(function(s){s.data===null||i.contains(s.data)||o.push(s.data)}),o.forEach(function(s){Am(t,s,!1)}),n=0;n<e.length;n++){var r=e[n];this.Lc(r)===null&&Fm(t,r,!1)}for(this.refreshDataBoundLinks(),e=this.parts.iterator;e.next();)e.value.updateRelationshipsFromData();for(e=this.nodes.iterator;e.next();)e.value.updateRelationshipsFromData();for(e=this.links.iterator;e.next();)e.value.updateRelationshipsFromData()},yt.prototype.refreshDataBoundLinks=function(){},yt.prototype.updateRelationshipsFromData=function(){},yt.prototype.updateDataBindings=function(t,i){if(typeof i=="string"){var e=this.Lc(t);if(e!==null)e.La(i);else{e=null;for(var n=this.aj.iterator;n.next();){for(var o=n.value,r=0;r<o.length;r++){var s=o[r].sx(t);s!==null&&(e===null&&(e=kt()),e.push(s))}if(e!==null)break}if(e!==null){for(n=0;n<e.length;n++)e[n].La(i);Mt(e)}}t===this.diagram.model.modelData&&this.updateAllTargetBindings(i)}};function Sd(t,i){var e=i.Hh;if(ai(e)){var n=t.aj.I(e);if(n===null)n=[],n.push(i),t.aj.add(e,n);else{for(t=0;t<n.length;t++)if(n[t]===i)return;n.push(i)}}}function Nd(t,i,e){Xr(i,function(s){s=s.O.s;for(var h=s.length,l=0;l<h;l++)ic(e,s[l])});var n=i.Hh;if(ai(n)){var o=t.aj.I(n);if(o!==null){for(var r=0;r<o.length;r++)if(o[r]===i){o.splice(r,1),o.length===0&&t.aj.remove(n);break}}}}yt.prototype.Jj=function(t,i,e){e===void 0&&(e=!1);var n=new _;if(ai(t))for(var o=0;o<t.length;o++)nf(this,t[o],i,n,e);else for(t=t.iterator;t.next();)nf(this,t.value,i,n,e);if(i!==null){e=i.model,t=i.toolManager.findTool("Dragging"),t=t!==null?t.dragOptions.dragsLink:i.Vm.dragsLink,o=new E;for(var r=new _,s=n.iterator;s.next();){var h=s.value;if(h instanceof F)t||h.fromNode!==null&&h.toNode!==null||o.add(h);else if(h instanceof B&&h.data!==null&&e.Sl()){var l=h;h=s.key;var u=h.pg();u!==null&&(u=n.I(u),u!==null?(e.qe(l.data,e.wa(u.data)),l=i.Kc(l.data),h=h.kh(),h!==null&&l!==null&&r.add(h,l)):e.qe(l.data,void 0))}}if(0<o.count&&i.Hs(o,!1),0<r.count)for(e=r.iterator;e.next();)n.add(e.key,e.value)}if(i!==null&&this.H!==null&&(i=i.model,e=i.afterCopyFunction,e!==null)){var a=new _;n.each(function(f){f.key.data!==null&&a.add(f.key.data,f.value.data)}),e(a,i,this.H.model)}for(i=n.iterator;i.next();)i.value.La();return n};function nf(t,i,e,n,o){if(i===null||o&&!i.canCopy())return null;if(n.contains(i))return n.I(i);var r=t.copyPartData(i,e);if(!(r instanceof U))return null;if(r.isSelected=!1,r.isHighlighted=!1,n.add(i,r),i instanceof B){for(var s=i.linksConnected;s.next();){var h=s.value;if(h.fromNode===i){var l=n.I(h);l!==null&&(l.fromNode=r)}h.toNode===i&&(h=n.I(h),h!==null&&(h.toNode=r))}if(i instanceof Q&&r instanceof Q)for(i=i.memberParts;i.next();)s=nf(t,i.value,e,n,o),s instanceof F||s===null||(s.containingGroup=r)}else if(i instanceof F&&r instanceof F)for(s=i.fromNode,s!==null&&(s=n.I(s),s!==null&&(r.fromNode=s)),s=i.toNode,s!==null&&(s=n.I(s),s!==null&&(r.toNode=s)),i=i.labelNodes;i.next();)s=nf(t,i.value,e,n,o),s!==null&&s instanceof B&&(s.labeledLink=r);return r}yt.prototype.copyPartData=function(t,i){var e=null,n=t.data;if(n!==null&&i!==null){var o=i.model;t instanceof F||(n=o.copyNodeData(n),At(n)&&(o.xf(n),e=i.Lc(n)))}else Ze(t),e=t.copy(),e!==null&&(o=this.H,i!==null?i.add(e):n!==null&&o!==null&&o.commandHandler!==null&&o.commandHandler.copiesClipboardData&&(i=o.model,o=null,e instanceof F||(o=i.copyNodeData(n)),At(o)&&(e.data=o)));return e},tt.Object.defineProperties(yt.prototype,{nodes:{get:function(){return this.Nn}},links:{get:function(){return this.Cn}},parts:{get:function(){return this.Pa}},diagram:{get:function(){return this.H}},addsToTemporaryLayer:{get:function(){return this.sp},set:function(t){this.sp=t}}}),yt.prototype.updateAllRelationshipsFromData=yt.prototype.qp,yt.prototype.findLinksByExample=yt.prototype.ks,yt.prototype.findNodesByExample=yt.prototype.ls,yt.prototype.findLinkForData=yt.prototype.Kc,yt.prototype.findNodeForData=yt.prototype.ii,yt.prototype.findPartForData=yt.prototype.Lc,yt.prototype.findNodeForKey=yt.prototype.Wb,yt.prototype.removeModeledPart=yt.prototype.hp,yt.prototype.removeModeledParts=yt.prototype.Fs,yt.prototype.rebuildParts=yt.prototype.Wd;var wm=!1,Mm=!1,Sm=!1;yt.className="PartManager";function hi(t){yt.apply(this,arguments)}pt(hi,yt),hi.prototype.addAllModeledParts=function(){var t=this.diagram.model;this.addModeledParts(t.nodeDataArray),Nm(this,t.linkDataArray)},hi.prototype.addModeledParts=function(t){for(yt.prototype.addModeledParts.call(this,t,!1),t=this.links.iterator;t.next();)jh(t.value);$u(this.diagram,!1)};function Nm(t,i){i.forEach(function(e){Pm(t,e)}),$u(t.diagram,!1)}function Pm(t,i){if(i!=null&&!t.diagram.undoManager.isUndoingRedoing&&!t.bf.contains(i)){var e=t.getLinkCategoryForData(i),n=t.findLinkTemplateForCategory(e);if(n!==null){Ze(n);var o=n.copy();if(o!==null){n=t.diagram.skipsModelSourceBindings,t.diagram.skipsModelSourceBindings=!0,o.Tf=e,o.ub=i,e=t.diagram.model;var r=hf(e,i,!0);r!==""&&(o.fromPortId=r),r=Pe(e,i,!0),r!==void 0&&(r=t.Wb(r),r instanceof B&&(o.fromNode=r)),r=hf(e,i,!1),r!==""&&(o.toPortId=r),r=Pe(e,i,!1),r!==void 0&&(r=t.Wb(r),r instanceof B&&(o.toNode=r)),e=e.Ef(i),Array.isArray(e)&&e.forEach(function(s){s=t.Wb(s),s!==null&&(s.labeledLink=o)}),t.sp&&(o.Jg="Tool"),t.diagram.add(o),o.ub=null,o.data=i,t.diagram.skipsModelSourceBindings=n}}}}hi.prototype.removeAllModeledParts=function(){var t=this.diagram.model;km(this,t.linkDataArray),this.Fs(t.nodeDataArray)};function km(t,i){i.forEach(function(e){t.hp(e)})}hi.prototype.getLinkCategoryForData=function(t){return this.diagram.model.os(t)},hi.prototype.setLinkCategoryForData=function(t,i){return this.diagram.model.kp(t,i)},hi.prototype.setFromNodeForLink=function(t,i){var e=this.diagram.model;e.wv(t.data,e.wa(i!==null?i.data:null))},hi.prototype.setToNodeForLink=function(t,i){var e=this.diagram.model;e.Bv(t.data,e.wa(i!==null?i.data:null))},hi.prototype.removeDataForLink=function(t){this.diagram.model.am(t.data)},hi.prototype.findPartForKey=function(t){var i=yt.prototype.findPartForKey.call(this,t);return i===null&&(t=this.diagram.model.jh(t),t!==null)?this.bf.I(t):i},hi.prototype.findLinkForKey=function(t){return t==null?null:(t=this.diagram.model.jh(t),t!==null?this.bf.I(t):null)},hi.prototype.doModelChanged=function(t){var i=this;if(yt.prototype.doModelChanged.call(this,t),this.diagram){var e=this.diagram;if(t.model===e.model){var n=t.change;if(e.aa){e.aa=!1;try{var o=t.modelChange;if(o!==""){if(n===Ot){if(o==="linkFromKey"){var r=this.Kc(t.object);if(r!==null){var s=this.Wb(t.newValue);r.fromNode=s}}else if(o==="linkToKey"){var h=this.Kc(t.object);if(h!==null){var l=this.Wb(t.newValue);h.toNode=l}}else if(o==="linkFromPortId"){var u=this.Kc(t.object);if(u!==null){var a=t.newValue;typeof a=="string"&&(u.fromPortId=a)}}else if(o==="linkToPortId"){var f=this.Kc(t.object);if(f!==null){var p=t.newValue;typeof p=="string"&&(f.toPortId=p)}}else if(o==="nodeGroupKey"){var c=this.Lc(t.object);if(c!==null){var g=t.newValue;if(g!==void 0){var y=this.Wb(g);y instanceof Q?c.containingGroup=y:c.containingGroup=null}else c.containingGroup=null}}else if(o==="linkLabelKeys"){var v=this.Kc(t.object);if(v!==null){var m=t.oldValue,w=t.newValue;Array.isArray(m)&&m.forEach(function(L){0<=w.indexOf(L)||(L=i.Wb(L),L!==null&&(L.labeledLink=null))}),Array.isArray(w)&&w.forEach(function(L){L=i.Wb(L),L!==null&&(L.labeledLink=v)})}}else if(o==="linkCategory"){var M=this.Kc(t.object),S=t.newValue;M!==null&&typeof S=="string"&&(M.category=S)}else o==="linkDataArray"&&(km(this,t.oldValue),Nm(this,t.newValue));e.isModified=!0}else if(n===ii){var N=t.newValue;if(o==="linkDataArray"&&typeof N=="object"&&N!==null)Pm(this,N);else if(o==="linkLabelKeys"&&cr(N)){var k=this.Kc(t.object),D=this.Wb(N);k!==null&&D!==null&&(D.labeledLink=k)}e.isModified=!0}else if(n===si){var z=t.oldValue;if(o==="linkDataArray"&&typeof z=="object"&&z!==null)this.hp(z);else if(o==="linkLabelKeys"&&cr(z)){var Y=this.Wb(z);Y!==null&&(Y.labeledLink=null)}e.isModified=!0}}else if(n===Ot){var A=t.propertyName;t.object!==e.model||A!=="linkFromKeyProperty"&&A!=="linkToKeyProperty"&&A!=="linkFromPortIdProperty"&&A!=="linkToPortIdProperty"&&A!=="linkLabelKeysProperty"&&A!=="nodeIsGroupProperty"&&A!=="nodeGroupKeyProperty"&&A!=="linkCategoryProperty"||e.undoManager.isUndoingRedoing||this.Wd(),e.isModified=!0}}finally{e.aa=!0}}}}},hi.prototype.refreshDataBoundLinks=function(){var t=this,i=this.diagram.model,e=new E,n=i.linkDataArray;n.forEach(function(r){e.add(r)});var o=[];this.links.each(function(r){r.data===null||e.contains(r.data)||o.push(r.data)}),o.forEach(function(r){Rm(i,r,!1)}),n.forEach(function(r){t.Kc(r)===null&&Bm(i,r,!1)})},hi.prototype.updateRelationshipsFromData=function(t){var i=t.data;if(i!==null){var e=t.diagram;if(e!==null){var n=e.model;if(t instanceof F){var o=Pe(n,i,!0);if(o=e.Wb(o),t.fromNode=o,o=Pe(n,i,!1),o=e.Wb(o),t.toNode=o,i=n.Ef(i),0<i.length||0<t.labelNodes.count){if(i.length===1&&t.labelNodes.count===1){o=i[0];var r=t.labelNodes.first();if(n.wa(r.data)===o)return}o=new E().addAll(i);var s=new E;t.labelNodes.each(function(h){h.data!==null&&(h=n.wa(h.data),h!==void 0&&s.add(h))}),i=s.copy(),i.gp(o),o=o.copy(),o.gp(s),(0<i.count||0<o.count)&&(i.each(function(h){h=e.Wb(h),h!==null&&h.labeledLink===t&&(h.labeledLink=null)}),o.each(function(h){h=e.Wb(h),h!==null&&h.labeledLink!==t&&(h.labeledLink=t)}))}}else!(t instanceof lt)&&(i=n.lh(i),i=e.findPartForKey(i),i===null||i instanceof Q)&&(t.containingGroup=i)}}},hi.prototype.resolveReferencesForData=function(t){var i=this.diagram.model,e=i.wa(t);if(e!==void 0){var n=$l(i,e),o=this.Lc(t);if(n!==null&&o!==null){n=n.iterator;for(var r={};n.next();){var s=n.value;i.lb(s)?o instanceof Q&&i.lh(s)===e&&(s=this.Lc(s),s!==null&&(s.containingGroup=o)):(r.link=this.Kc(s),r.link!==null&&o instanceof B&&(Pe(i,s,!0)===e&&(r.link.fromNode=o),Pe(i,s,!1)===e&&(r.link.toNode=o),s=i.Ef(s),Array.isArray(s)&&s.some(function(h){return function(l){return l===e?(o.labeledLink=h.link,!0):!1}}(r)))),r={link:r.link}}Pn(i,e)}t=i.lh(t),t!==void 0&&(t=this.Wb(t),t instanceof Q&&(o.containingGroup=t))}},hi.prototype.unresolveReferencesForPart=function(t){var i=this.diagram.model;if(t instanceof B){var e=i.wa(t.data);if(e!==void 0){for(var n=t.linksConnected;n.next();)Nn(i,e,n.value.data);if(t.isLinkLabel&&(n=t.labeledLink,n!==null&&Nn(i,e,n.data)),t instanceof Q)for(t=t.memberParts;t.next();)n=t.value.data,i.lb(n)&&Nn(i,e,n)}}},hi.prototype.copyPartData=function(t,i){var e=yt.prototype.copyPartData.call(this,t,i);if(t instanceof F)if(t=t.data,t!==null&&i!==null){var n=i.model;t=n.Io(t),typeof t=="object"&&t!==null&&(n.fi(t),e=i.Kc(t))}else e!==null&&(i=this.diagram,t!==null&&i!==null&&i.commandHandler!==null&&i.commandHandler.copiesClipboardData&&(i=i.model.Io(t),typeof i=="object"&&i!==null&&(e.data=i)));return e},hi.prototype.insertLink=function(t,i,e,n){var o=this.diagram,r=o.model,s=o.toolManager.findTool("Linking"),h="";if(t!==null&&(i===null&&(i=t),h=i.portId,h===null&&(h="")),i="",e!==null&&(n===null&&(n=e),i=n.portId,i===null&&(i="")),n=s.archetypeLinkData,n instanceof F){if(Ze(n),r=n.copy(),r!==null)return r.fromNode=t,r.fromPortId=h,r.toNode=e,r.toPortId=i,o.add(r),t=s.archetypeLabelNodeData,t instanceof B&&(Ze(t),t=t.copy(),t!==null&&(t.labeledLink=r,o.add(t))),r}else if(n!==null&&(n=r.Io(n),typeof n=="object"&&n!==null))return t!==null&&Eh(r,n,r.wa(t.data),!0),Bh(r,n,h,!0),e!==null&&Eh(r,n,r.wa(e.data),!1),Bh(r,n,i,!1),r.fi(n),t=s.archetypeLabelNodeData,t===null||t instanceof B||(t=r.copyNodeData(t),typeof t=="object"&&t!==null&&(r.xf(t),t=r.wa(t),t!==void 0&&r.Au(n,t))),o.Kc(n);return null},hi.prototype.findLinkForKey=hi.prototype.findLinkForKey,hi.prototype.findPartForKey=hi.prototype.findPartForKey,hi.prototype.removeAllModeledParts=hi.prototype.removeAllModeledParts,hi.prototype.addModeledParts=hi.prototype.addModeledParts,hi.prototype.addAllModeledParts=hi.prototype.addAllModeledParts,hi.className="GraphLinksPartManager";function Re(){yt.apply(this,arguments),this.Sg=null}pt(Re,yt);function of(t,i,e){if(i!==null&&e!==null&&e.kh()===null){var n=t.diagram.toolManager.findTool("Linking"),o=i,r=e;if(t.diagram.isTreePathToChildren||(o=e,r=i),(n===null||!hl(n,o,r,null,!0))&&(i=t.getLinkCategoryForData(e.data),n=t.findLinkTemplateForCategory(i),n!==null&&(Ze(n),n=n.copy(),n!==null))){var s=t.diagram.skipsModelSourceBindings;t.diagram.skipsModelSourceBindings=!0,n.Tf=i,n.ub=e.data,n.fromNode=o,n.toNode=r,t.diagram.add(n),n.ub=null,n.data=e.data,t.diagram.skipsModelSourceBindings=s}}}Re.prototype.getLinkCategoryForData=function(t){return this.diagram.model.rs(t)},Re.prototype.setLinkCategoryForData=function(t,i){this.diagram.model.Ls(t,i)},Re.prototype.setFromNodeForLink=function(t,i,e){var n=this.diagram.model;if(e===void 0&&(e=null),i=i!==null?i.data:null,this.diagram.isTreePathToChildren)n.qe(t.data,n.wa(i));else{var o=this.Sg;this.Sg=t,e!==null&&n.qe(e.data,void 0),n.qe(i,n.wa(t.toNode!==null?t.toNode.data:null)),this.Sg=o}},Re.prototype.setToNodeForLink=function(t,i,e){var n=this.diagram.model;if(e===void 0&&(e=null),i=i!==null?i.data:null,this.diagram.isTreePathToChildren){var o=this.Sg;this.Sg=t,e!==null&&n.qe(e.data,void 0),n.qe(i,n.wa(t.fromNode!==null?t.fromNode.data:null)),this.Sg=o}else n.qe(t.data,n.wa(i))},Re.prototype.removeDataForLink=function(t){this.diagram.model.qe(t.data,void 0)},Re.prototype.findLinkForKey=function(t){return t==null?null:(t=this.diagram.model.ic(t),t!==null?this.bf.I(t):null)},Re.prototype.doModelChanged=function(t){if(yt.prototype.doModelChanged.call(this,t),this.diagram){var i=this.diagram;if(t.model===i.model){var e=t.change;if(i.aa){i.aa=!1;try{var n=t.modelChange;if(n!==""){if(e===Ot){if(n==="nodeParentKey"){var o=t.object,r=this.Wb(t.newValue),s=this.ii(o);if(this.Sg!==null)r!==null&&(this.Sg.data=o,this.Sg.category=this.getLinkCategoryForData(o));else if(s!==null){var h=s.kh();h!==null?r===null?i.remove(h):i.isTreePathToChildren?h.fromNode=r:h.toNode=r:of(this,r,s)}}else if(n==="parentLinkCategory"){var l=this.ii(t.object),u=t.newValue;if(l!==null&&typeof u=="string"){var a=l.kh();a!==null&&(a.category=u)}}i.isModified=!0}}else if(e===Ot){var f=t.propertyName;t.object===i.model&&f==="nodeParentKeyProperty"&&(i.undoManager.isUndoingRedoing||this.Wd()),i.isModified=!0}}finally{i.aa=!0}}}}},Re.prototype.updateRelationshipsFromData=function(t){var i=t.data;if(i!==null){var e=t.diagram;if(e!==null){var n=e.model;t instanceof B&&(i=n.mh(i),i=e.Wb(i),n=t.pg(),i!==n&&(n=t.kh(),i!==null?n!==null?e.isTreePathToChildren?n.fromNode=i:n.toNode=i:of(this,i,t):n!==null&&_p(e,n,!1)))}}},Re.prototype.updateDataBindings=function(t,i){yt.prototype.updateDataBindings.call(this,t,i),typeof i=="string"&&this.Lc(t)!==null&&(t=this.Kc(t),t!==null&&t.La(i))},Re.prototype.resolveReferencesForData=function(t){var i=this.diagram.model,e=i.wa(t);if(e!==void 0){var n=$l(i,e),o=this.Lc(t);if(n!==null&&o!==null){for(n=n.iterator;n.next();){var r=n.value;i.lb(r)&&o instanceof B&&i.mh(r)===e&&of(this,o,this.ii(r))}Pn(i,e)}t=i.mh(t),t!==void 0&&o instanceof B&&(t=this.Wb(t),of(this,t,o))}},Re.prototype.unresolveReferencesForPart=function(t){var i=this.diagram.model;if(t instanceof B){var e=i.wa(t.data),n=this.Kc(t.data);if(n!==null){n.isSelected=!1,n.isHighlighted=!1;var o=n.layer;if(o!==null){var r=o.qc(-1,n,!1);0<=r&&this.diagram.cb(si,"parts",o,n,null,r,null),r=n.layerChanged,r!==null&&r(n,o,null)}}for(n=this.diagram.isTreePathToChildren,t=t.linksConnected;t.next();)o=t.value,o=(n?o.toNode:o.fromNode).data,i.lb(o)&&Nn(i,e,o)}},Re.prototype.insertLink=function(t,i,e){i=this.diagram.model;var n=t,o=e;return this.diagram.isTreePathToChildren||(n=e,o=t),n!==null&&o!==null?(i.qe(o.data,i.wa(n.data)),o.kh()):null},Re.prototype.findLinkForKey=Re.prototype.findLinkForKey,Re.className="TreePartManager";function G(t,i){this.jl=new E,this.hl=new E,this.Wv=`, "insertedNodeKeys": `,this.jy=`, "modifiedNodeData": `,this.Yv=`, "removedNodeKeys": `,this.vh=null,ui(this),this.Rm=this.xa="",this.Gg=!1,this.j={},this.Tc=[],this.kb=new _,this.Th="key",this.Ak=this.al=null,this.Im=this.Jm=!1,this.Lm=!0,this.wm=null,this.lj="category",this.Vf=new _,this.Kt=new V,this.Wg=!1,this.o=null,this.undoManager=new Vt,t!==void 0&&(ai(t)?this.nodeDataArray=t:i=t),i&&(Object.assign(this,i),t=i.Changed)&&(delete this.Changed,this.Pe(t))}G.prototype.cloneProtected=function(t){t.xa=this.xa,t.Rm=this.Rm,t.Gg=this.Gg,t.Th=this.Th,t.al=this.al,t.Ak=this.Ak,t.Jm=this.Jm,t.Im=this.Im,t.Lm=this.Lm,t.wm=this.wm,t.lj=this.lj},G.prototype.copy=function(){var t=new this.constructor;return this.cloneProtected(t),t},G.prototype.clear=function(){this.Tc=[],this.kb.clear(),this.Vf.clear(),this.undoManager.clear()},G.prototype.toString=function(t){if(t===void 0&&(t=0),1<t)return this.mp();var i=(this.name!==""?this.name:"")+" Model";if(0<t){i+=` node data:`,t=this.nodeDataArray;for(var e=t.length,n=0;n<e;n++){var o=t[n];i+=" "+this.wa(o)+":"+en(o)}}return i},G.prototype.xA=function(t){t.change!==vn&&O("Model.toIncrementalData argument is not a Transaction ChangedEvent:"+t.toString());var i=t.object;return t.isTransactionFinished&&i instanceof mi?(Tm(this,i),t=this.Qv(i,t.propertyName==="FinishedUndo"),this.vh=null,t):null},G.prototype.Qv=function(t,i){var e=this,n=!1,o=new E,r=new E,s=new E,h=this.vh;t.changes.each(function(f){f.model===e&&(f.modelChange==="nodeDataArray"?f.change===ii?o.add(f.newValue):f.change===si&&s.add(f.oldValue):e.lb(f.object)?r.add(f.object):f.change!==Ot||e.modelData!==f.object&&f.propertyName!=="modelData"?f.object!==null&&(h&&h.contains(f.object)?h.get(f.object).each(function(p){e.lb(p)&&r.add(p)}):f.object instanceof G||e.ri()&&e.Jc(f.object)||Lm(e,f.object).each(function(p){r.add(p)})):n=!0)});var l=this.hl;l.clear(),o.each(function(f){l.add(e.wa(f)),i||r.add(f)});var u=this.jl;u.clear(),s.each(function(f){u.add(e.wa(f)),i&&r.add(f)}),t=e.cloneDeep(r.Fa());var a=null;return n&&(a===null&&(a={}),a.modelData=this.cloneDeep(this.modelData)),0<l.count&&(a===null&&(a={}),i?a.removedNodeKeys=l.Fa():a.insertedNodeKeys=l.Fa()),0<t.length&&(a===null&&(a={}),a.modifiedNodeData=t),0<u.count&&(a===null&&(a={}),i?a.insertedNodeKeys=u.Fa():a.removedNodeKeys=u.Fa()),u.clear(),l.clear(),a},G.prototype.cloneDeep=function(t){return Dh(this,t,!0)};function Dh(t,i,e,n,o,r){function s(f,p){h?(f.__gohashid===void 0&&r.push(f),n.set(f,p)):(f=ss++,n.set(f,p),o.set(f,i))}if(!At(i))return i;r||(r=[]);var h=Object.isExtensible(i);if(n||(n=new _),h){var l=n.get(i);if(l)return l}else for(o||(o=new _),l=o.iterator;l.next();){var u=l.key;if(l.value===i&&(u=n.get(u)))return u}if(Array.isArray(i)){l=[],s(i,l);for(var a=0;a<i.length;a++)l.push(Dh(t,i[a],!1,n,o,r))}else if(i instanceof x||i instanceof Z||i instanceof T||i instanceof gt||i instanceof H)l=i.copy(),s(i,l);else{if(i instanceof ct||i instanceof I||i instanceof R)return i;if(i instanceof V)l=new V().addAll(Dh(t,i.Fa(),!1,n,o,r)),s(i,l);else if(i instanceof E)l=new E().addAll(Dh(t,i.Fa(),!1,n,o,r)),s(i,l);else if(i instanceof _)l=new _().addAll(Dh(t,i.Fa(),!1,n,o,r)),s(i,l);else if(i instanceof Date)l=new Date(i.getTime()),s(i,l);else if(i instanceof RegExp)l=new RegExp(i),s(i,l),l.lastIndex=i.lastIndex;else if(typeof i.copy=="function")l=i.copy(),s(i,l);else for(a in l={},s(i,l),i)a!=="__gohashid"&&(l[a]=Dh(t,i[a],!1,n,o,r))}return e&&r.forEach(function(f){delete f.__gohashid}),l}d=G.prototype,d.quote=function(t){return JSON.stringify(t).replace(/[\u007F-\uFFFF]/g,function(i){return"\\u"+("0000"+i.charCodeAt(0).toString(16)).substr(-4)})},d.qm=function(){var t="";return this.name!==""&&(t+=`, "name": `+this.quote(this.name)),this.dataFormat!==""&&(t+=`, "dataFormat": `+this.quote(this.dataFormat)),this.isReadOnly&&(t+=`, "isReadOnly": `+this.isReadOnly),this.nodeKeyProperty!=="key"&&typeof this.nodeKeyProperty=="string"&&(t+=`, "nodeKeyProperty": `+this.quote(this.nodeKeyProperty)),this.copiesArrays&&(t+=`, "copiesArrays": true`),this.copiesArrayObjects&&(t+=`, "copiesArrayObjects": true`),this.copiesKey||(t+=`, "copiesKey": false`),this.nodeCategoryProperty!=="category"&&typeof this.nodeCategoryProperty=="string"&&(t+=`, "nodeCategoryProperty": `+this.quote(this.nodeCategoryProperty)),t},d.fp=function(t){t.name&&(this.name=t.name),t.dataFormat&&(this.dataFormat=t.dataFormat),t.isReadOnly&&(this.isReadOnly=!0),t.nodeKeyProperty&&(this.nodeKeyProperty=t.nodeKeyProperty),t.copiesArrays&&(this.copiesArrays=!0),t.copiesArrayObjects&&(this.copiesArrayObjects=!0),t.copiesKey===!1&&(this.copiesKey=!1),t.nodeCategoryProperty&&(this.nodeCategoryProperty=t.nodeCategoryProperty)};function Cm(t,i){i=i.modelData,At(i)&&(t.cm(i),t.modelData=i)}d.Rv=function(){var t=this.modelData,i=!1,e;for(e in t)if(!jm(e,t[e])){i=!0;break}return t="",i&&(t=`, "modelData": `+Pd(this,this.modelData)),t+`, "nodeDataArray": `+pr(this,this.nodeDataArray,!0)},d.kv=function(t){Cm(this,t),t=t.nodeDataArray,ai(t)&&(this.cm(t),this.nodeDataArray=t)};function Tm(t,i){function e(o,r){if((r=r.part)&&(r=r.data,o!==r)){var s=n.get(o);s===null?(s=new E,s.add(r),n.add(o,s)):s.add(r)}}var n=t.vh;n===null&&(n=new _,i.changes.each(function(o){if(o.diagram!==null){var r=o.change;r===Ot?(o=o.object.panel)&&(r=o.data)&&e(r,o):(r===ii||r===si)&&(o=o.object,(r=o.itemArray)&&e(r,o))}}),t.vh=n)}function Lm(t,i){for(var e=new E,n=0;n<t.nodeDataArray.length;n++){var o=t.nodeDataArray[n];rf(t,i,o,o,e)}return e}function rf(t,i,e,n,o){if(Array.isArray(e))for(var r=0;r<e.length;r++){var s=e[r];if(s===i)return o.add(n),!0;if(rf(t,i,s,n,o))return!0}else if(At(e)&&Object.getPrototypeOf(e)===Object.prototype)for(r in e){if(s=e[r],s===i)return o.add(n),!0;if(rf(t,i,s,n,o))return!0}return!1}d.Pv=function(t,i){var e=this,n=!1,o=new E,r=new E,s=new E,h=this.vh;t.changes.each(function(a){a.model===e&&(a.modelChange==="nodeDataArray"?a.change===ii?o.add(a.newValue):a.change===si&&s.add(a.oldValue):e.lb(a.object)?r.add(a.object):a.change!==Ot||e.modelData!==a.object&&a.propertyName!=="modelData"?a.object!==null&&(h&&h.contains(a.object)?h.get(a.object).each(function(f){e.lb(f)&&r.add(f)}):a.object instanceof G||e.ri()&&e.Jc(a.object)||Lm(e,a.object).each(function(f){r.add(f)})):n=!0)});var l=this.hl;l.clear(),o.each(function(a){l.add(e.wa(a)),i||r.add(a)});var u=this.jl;return u.clear(),s.each(function(a){u.add(e.wa(a)),i&&r.add(a)}),t="",n&&(t+=`, "modelData": `+Pd(this,this.modelData)),0<l.count&&(t+=(i?this.Yv:this.Wv)+pr(this,l.Fa(),!0)),0<r.count&&(t+=this.jy+pr(this,r.Fa(),!0)),0<u.count&&(t+=(i?this.Wv:this.Yv)+pr(this,u.Fa(),!0)),u.clear(),l.clear(),t},d.ep=function(t){(t.name!==void 0&&t.name!==this.name||t.dataFormat!==void 0&&t.dataFormat!==this.dataFormat||t.isReadOnly!==void 0&&t.isReadOnly!==this.isReadOnly||t.nodeKeyProperty!==void 0&&t.nodeKeyProperty!==this.nodeKeyProperty||t.copiesArrays!==void 0&&t.copiesArrays!==this.copiesArrays||t.copiesArrayObjects!==void 0&&t.copiesArrayObjects!==this.copiesArrayObjects||t.copiesKey!==void 0&&t.copiesKey!==this.copiesKey||t.nodeCategoryProperty!==void 0&&t.nodeCategoryProperty!==this.nodeCategoryProperty)&&O("applyIncrementalJson cannot change Model properties"),Cm(this,t);var i=t.insertedNodeKeys,e=t.modifiedNodeData,n=new _;if(Array.isArray(e))for(var o=0;o<e.length;o++){var r=e[o],s=this.wa(r);s!=null&&n.set(s,r)}if(Array.isArray(i))for(o=i.length,r=0;r<o;r++){s=i[r];var h=this.ic(s);h===null&&(h=(h=n.get(s))?h:this.copyNodeData({}),this.jm(h,s),this.xf(h))}if(Array.isArray(e)){for(i=e.length,n=0;n<i;n++)if(o=e[n],r=this.wa(o),r=this.ic(r),r!==null){for(var l in o)l==="__gohashid"||l===this.nodeKeyProperty||this.Vj()&&l===this.nodeIsGroupProperty||this.setDataProperty(r,l,o[l]);this.km(o,r)}}if(t=t.removedNodeKeys,Array.isArray(t))for(e=t.length,l=0;l<e;l++)i=this.ic(t[l]),i!==null&&this.bm(i)},d.$x=function(t,i){t.change!==vn&&O("Model.toIncrementalJson argument is not a Transaction ChangedEvent:"+t.toString());var e=t.object;return t.isTransactionFinished&&e instanceof mi?(i===void 0&&(i=Ql(this,this)),Tm(this,e),t=this.Pv(e,t.propertyName==="FinishedUndo"),this.vh=null,i==="2"?'{ "incremental": 2'+t+"}":'{ "class": '+this.quote(i)+', "incremental": 1'+this.qm()+t+"}"):'{ "incremental": 0 }'},d.yA=function(t,i){return this.$x(t,i)},d.mp=function(t){return t===void 0&&(t=Ql(this,this)),'{ "class": '+this.quote(t)+this.qm()+this.Rv()+"}"},d.toJSON=function(t){return this.mp(t)},d.Zw=function(t){var i=null;if(typeof t=="string")try{i=J.JSON.parse(t)}catch{}else typeof t=="object"?i=t:O("Unable to modify a Model from: "+t);var e=i.incremental;typeof e!="number"&&O("Unable to apply non-incremental changes to Model: "+t),e!==0&&(this.Ea("applyIncrementalJson"),this.ep(i),this.eb("applyIncrementalJson"))},d.Ky=function(t){return this.Zw(t)},G.constructGraphLinksModel=function(){return new G},d=G.prototype,d.cm=function(t){if(ai(t))for(var i=t.length,e=0;e<i;e++){var n=t[e];if(At(n)){var o=e;n=this.cm(n),Array.isArray(t)?t[o]=n:O("Cannot replace an object in an HTMLCollection or NodeList at "+o)}}else if(At(t)){for(i in t)if(e=t[i],At(e)&&(e=this.cm(e),t[i]=e,i==="points"&&Array.isArray(e))){for(o=e.length%2===0,n=0;n<e.length;n++)if(typeof e[n]!="number"){o=!1;break}if(o){for(o=new V,n=0;n<e.length/2;n++)o.add(new x(e[2*n],e[2*n+1]));o.freeze(),t[i]=o}}return p1(t)}return t},d.rm=function(t){return t===void 0?"undefined":t===null?"null":t===!0?"true":t===!1?"false":typeof t=="string"?this.quote(t):typeof t=="number"?t===1/0?"9e9999":t===-1/0?"-9e9999":isNaN(t)?'{"class":"NaN"}':t.toString():t instanceof Date?'{"class":"Date", "value":"'+t.toJSON()+'"}':t instanceof Number?this.rm(t.valueOf()):ai(t)?pr(this,t):At(t)?Pd(this,t):typeof t=="function"?"null":t.toString()};function pr(t,i,e){e===void 0&&(e=!1);var n=i.length;if(0>=n)return"[]";var o=new Pu;o.add("["),e&&1<n&&o.add(` `);for(var r=0;r<n;r++){var s=i[r];s!==void 0&&(0<r&&(o.add(","),e&&o.add(` `)),o.add(t.rm(s)))}return e&&1<n&&o.add(` `),o.add("]"),o.toString()}function jm(t,i){return i===void 0||t==="__gohashid"||t[0]==="_"||typeof i=="function"}function Hi(t){return isNaN(t)?"NaN":t===1/0?"9e9999":t===-1/0?"-9e9999":t}function Pd(t,i){var e=i;if(e instanceof x)i={class:"go.Point",x:Hi(e.x),y:Hi(e.y)};else if(e instanceof Z)i={class:"go.Size",width:Hi(e.width),height:Hi(e.height)};else if(e instanceof T)i={class:"go.Rect",x:Hi(e.x),y:Hi(e.y),width:Hi(e.width),height:Hi(e.height)};else if(e instanceof gt)i={class:"go.Margin",top:Hi(e.top),right:Hi(e.right),bottom:Hi(e.bottom),left:Hi(e.left)};else if(e instanceof H)e.sb()?i={class:"go.Spot",x:Hi(e.x),y:Hi(e.y),offsetX:Hi(e.offsetX),offsetY:Hi(e.offsetY)}:i={class:"go.Spot",enum:e.toString()};else if(e instanceof ct){if(i={class:"go.Brush",type:e.type.name},e.type===Ro?i.color=e.color:(e.type===mo||e.type===Ee)&&(i.start=e.start,i.end=e.end,e.type===Ee&&(e.startRadius!==0&&(i.startRadius=Hi(e.startRadius)),isNaN(e.endRadius)||(i.endRadius=Hi(e.endRadius)))),e.colorStops!==null){var n={};for(e=e.colorStops.iterator;e.next();)n[e.key]=e.value;i.colorStops=n}}else e instanceof I?(i={class:"go.Geometry",type:e.type.name},e.startX!==0&&(i.startX=Hi(e.startX)),e.startY!==0&&(i.startY=Hi(e.startY)),e.endX!==0&&(i.endX=Hi(e.endX)),e.endY!==0&&(i.endY=Hi(e.endY)),e.spot1.D(Ti)||(i.spot1=e.spot1),e.spot2.D(Xn)||(i.spot2=e.spot2),e.type===I.o&&(i.path=I.ia(e))):e instanceof R&&(i={class:"go.EnumValue",classType:Ql(t,e.classType),name:e.name});n="{",e=!0;for(var o in i){var r=Kt(i,o);if(!jm(o,r))if(e?e=!1:n+=",",n+=t.quote(o)+":",o==="points"&&r instanceof V){var s="[";for(r=r.iterator;r.next();){var h=r.value;1<s.length&&(s+=","),s+=t.rm(h.x),s+=",",s+=t.rm(h.y)}s+="]",n+=s}else n+=t.rm(r)}return n+"}"}function Wi(t){return typeof t=="number"?t:t==="NaN"?NaN:t==="9e9999"?1/0:t==="-9e9999"?-1/0:parseFloat(t)}function p1(t){if(typeof t!="object")return t;var i=t.class||"";if(i==="NaN")return NaN;if(i==="Date")return new Date(t.value);if(i.indexOf("go.")!==0)return t;i=i.substr(3);var e=t;if(i==="Point")e=new x(Wi(t.x),Wi(t.y));else if(i==="Size")e=new Z(Wi(t.width),Wi(t.height));else if(i==="Rect")e=new T(Wi(t.x),Wi(t.y),Wi(t.width),Wi(t.height));else if(i==="Margin")e=new gt(Wi(t.top),Wi(t.right),Wi(t.bottom),Wi(t.left));else if(i==="Spot")typeof t.enum=="string"?e=xp(t.enum):e=new H(Wi(t.x),Wi(t.y),Wi(t.offsetX),Wi(t.offsetY));else if(i==="Brush"){if(e=new ct,e.type=os(ct,t.type),typeof t.color=="string"&&(e.color=t.color),t.start instanceof H&&(e.start=t.start),t.end instanceof H&&(e.end=t.end),typeof t.startRadius=="number"&&(e.startRadius=Wi(t.startRadius)),typeof t.endRadius=="number"&&(e.endRadius=Wi(t.endRadius)),t=t.colorStops,At(t))for(var n in t)e.addColorStop(parseFloat(n),t[n])}else i==="Geometry"?(e=null,typeof t.path=="string"?e=I.parse(t.path):e=new I,e.type=os(I,t.type),typeof t.startX=="number"&&(e.startX=Wi(t.startX)),typeof t.startY=="number"&&(e.startY=Wi(t.startY)),typeof t.endX=="number"&&(e.endX=Wi(t.endX)),typeof t.endY=="number"&&(e.endY=Wi(t.endY)),t.spot1 instanceof H&&(e.spot1=t.spot1),t.spot2 instanceof H&&(e.spot2=t.spot2)):i==="EnumValue"&&(n=t.classType,n.indexOf("go.")===0&&(n=n.substr(3)),n=Cd(n),typeof n=="function"&&(e=os(n,t.name)));return e}d.Pe=function(t){return this.Kt.add(t),this},d.hk=function(t){this.Kt.remove(t)},d.cs=function(t){this.skipsUndoManager||this.undoManager.Tu(t);for(var i=this.Kt,e=i.length,n=0;n<e;n++)i.M(n)(t)},d.cb=function(t,i,e,n,o,r,s){$t(this,"",t,i,e,n,o,r,s)},d.g=function(t,i,e,n,o){$t(this,"",Ot,t,this,i,e,n,o)},d.Es=function(t,i,e,n,o,r){$t(this,"",Ot,i,t,e,n,o,r)};function $t(t,i,e,n,o,r,s,h,l){h===void 0&&(h=null),l===void 0&&(l=null);var u=new Et;u.model=t,u.change=e,u.modelChange=i,u.propertyName=n,u.object=o,u.oldValue=r,u.oldParam=h,u.newValue=s,u.newParam=l,t.cs(u)}G.prototype.changeState=function(t,i){if(t!==null&&t.model===this)if(t.change===Ot){var e=t.object,n=t.propertyName,o=t.I(i);n===this.nodeKeyProperty&&this.lb(e)&&(i=t.I(!i),i!==void 0&&this.kb.remove(i),o!==void 0&&this.kb.add(o,e)),Ct(e,n,o)}else t.change===ii?(e=t.newParam,t.modelChange==="nodeDataArray"?(t=t.newValue,At(t)&&typeof e=="number"&&(n=this.wa(t),i?(this.Tc[e]===t&&ns(this.Tc,e),n!==void 0&&this.kb.remove(n)):(this.Tc[e]!==t&&Xs(this.Tc,e,t),n!==void 0&&this.kb.add(n,t)))):t.modelChange===""?((n=t.object)&&!ai(n)&&t.propertyName&&(n=Kt(t.object,t.propertyName)),ai(n)&&typeof e=="number"&&(t=t.newValue,i?ns(n,e):Xs(n,e,t))):O("unknown ChangedEvent.Insert modelChange: "+t.toString())):t.change===si?(e=t.oldParam,t.modelChange==="nodeDataArray"?(t=t.oldValue,At(t)&&typeof e=="number"&&(n=this.wa(t),i?(this.Tc[e]!==t&&Xs(this.Tc,e,t),n!==void 0&&this.kb.add(n,t)):(this.Tc[e]===t&&ns(this.Tc,e),n!==void 0&&this.kb.remove(n)))):t.modelChange===""?((n=t.object)&&!ai(n)&&t.propertyName&&(n=Kt(t.object,t.propertyName)),ai(n)&&typeof e=="number"&&(t=t.oldValue,i?Xs(n,e,t):ns(n,e))):O("unknown ChangedEvent.Remove modelChange: "+t.toString())):t.change!==vn&&O("unknown ChangedEvent: "+t.toString())},G.prototype.Ea=function(t){return this.undoManager.Ea(t)},G.prototype.eb=function(t){return this.undoManager.eb(t)},G.prototype.Kf=function(){return this.undoManager.Kf()},G.prototype.commit=function(t,i){i===void 0&&(i="");var e=this.skipsUndoManager;i===null&&(this.skipsUndoManager=!0,i=""),this.undoManager.Ea(i);var n=!1;try{t(this),n=!0}finally{n?this.undoManager.eb(i):this.undoManager.Kf(),this.skipsUndoManager=e}},d=G.prototype,d.La=function(t,i){i===void 0&&(i=""),$t(this,"SourceChanged",vn,i,t,null,null)},d.wa=function(t){if(t!==null){var i=this.Th;if(i!==""&&(i=Kt(t,i),i!==void 0)){if(cr(i))return i;O("Key value for node data "+t+" is not a number or a string: "+i)}}},d.jm=function(t,i){if(t!==null){var e=this.Th;if(e!=="")if(this.lb(t)){var n=Kt(t,e);n!==i&&this.ic(i)===null&&(Ct(t,e,i),n!==void 0&&this.kb.remove(n),this.kb.add(i,t),$t(this,"nodeKey",Ot,e,t,n,i),typeof e=="string"&&this.La(t,e),this.ip(n,i))}else Ct(t,e,i)}};function cr(t){return typeof t=="number"||typeof t=="string"}d.lb=function(t){var i=this.wa(t);return i===void 0?!1:this.kb.I(i)===t},d.ic=function(t){return t===null&&O("Model.findNodeDataForKey:key must not be null"),t!==void 0&&cr(t)?this.kb.I(t):null},d.$u=function(t){if(t!==null){var i=this.Th;if(i!==""){var e=this.wa(t);if(e===void 0||this.kb.contains(e)){var n=this.al;if(n!==null&&(e=n(this,t),e!=null&&!this.kb.contains(e))){Ct(t,i,e);return}if(typeof e=="string"){for(n=2;this.kb.contains(e+n);)n++;Ct(t,i,e+n)}else if(e===void 0||typeof e=="number"){for(e=-this.kb.count-1;this.kb.contains(e);)e--;Ct(t,i,e)}}}}},d.xf=function(t){t!==null&&(rs(t),this.lb(t)||Fm(this,t,!0))};function Fm(t,i,e){var n=t.wa(i);(n===void 0||t.kb.I(n)!==i)&&(t.$u(i),n=t.wa(i),n===void 0&&O("Model.makeNodeDataKeyUnique failed on "+i+". Data not added to Model."),t.kb.add(n,i),n=null,e&&(n=t.Tc.length,Xs(t.Tc,n,i)),$t(t,"nodeDataArray",ii,"nodeDataArray",t,null,i,null,n),t.em(i),t.dm(i))}d.Fy=function(t){if(ai(t))for(var i=t.length,e=0;e<i;e++)this.xf(t[e]);else for(t=t.iterator;t.next();)this.xf(t.value)},d.bm=function(t){t!==null&&Am(this,t,!0)};function Am(t,i,e){var n=t.wa(i);if(n!==void 0&&t.kb.remove(n),n=null,e){t:if(e=t.Tc,Array.isArray(e))n=e.indexOf(i);else{n=e.length;for(var o=0;o<n;o++)if(e[o]===i){n=o;break t}n=-1}if(0>n)return;ns(t.Tc,n)}$t(t,"nodeDataArray",si,"nodeDataArray",t,i,null,n,null),t.pp(i)}d.nA=function(t){if(ai(t))for(var i=t.length,e=0;e<i;e++)this.bm(t[e]);else for(t=t.iterator;t.next();)this.bm(t.value)},d.$z=function(t){if(t!==this.nodeDataArray&&ai(t)){var i=this.jl;i.clear(),i.addAll(this.kb.iteratorKeys);var e=this.hl;e.clear();for(var n=t.length,o=0;o<n;o++){var r=t[o],s=this.wa(r);if(s!==void 0){e.add(s);var h=this.ic(s);h!==r&&(h!==null?(this.Co(h,r),this.km(r,h)):(r=this.cloneDeep(r),this.jm(r,s),this.xf(r)))}else s=this.cloneDeep(r),this.xf(s),e.add(this.wa(s))}for(t=i.iterator;t.next();)n=t.value,e.contains(n)||(n=this.ic(n))&&this.bm(n);i.clear(),e.clear()}},d.ip=function(t,i){i!==void 0&&(t=$l(this,t),t instanceof E&&this.Vf.add(i,t))},d.Lv=function(){},d.em=function(){},d.dm=function(){},d.pp=function(){};function Nn(t,i,e){if(i!==void 0){var n=t.Vf.I(i);n===null&&(n=new E,t.Vf.add(i,n)),n.add(e)}}function Pn(t,i,e){if(i!==void 0){var n=t.Vf.I(i);n instanceof E&&(e==null?t.Vf.remove(i):(n.remove(e),n.count===0&&t.Vf.remove(i)))}}function $l(t,i){return i===void 0?null:(t=t.Vf.I(i),t instanceof E?t:null)}d.Qy=function(t){t===void 0?this.Vf.clear():this.Vf.remove(t)},G.prototype.copyNodeData=function(t){if(t===null)return null;var i=this.Ak;return t=i!==null?i(t,this):sf(this,t,!0),At(t)&&ui(t),t};function sf(t,i,e){if(t.copiesArrays&&Array.isArray(i)){var n=[];for(e=0;e<i.length;e++){var o=sf(t,i[e],t.copiesArrayObjects);n.push(o)}return ui(n),n}if(e&&At(i)){e=(e=i.constructor)?new e:{},o=t.copiesKey||typeof t.nodeKeyProperty!="string"?null:t.nodeKeyProperty;for(n in i)if(n==="__gohashid")e.__gohashid=void 0;else if(n===o)e[o]=void 0;else{var r=Kt(i,n),s=Ql(t,r);s==="GraphObject"||s==="Diagram"||s==="Layer"||s==="RowColumnDefinition"||s==="AnimationManager"||s==="Tool"||s==="CommandHandler"||s==="Layout"||s==="InputEvent"||s==="DiagramEvent"||r instanceof G||r instanceof Vt||r instanceof mi||r instanceof Et||(r=sf(t,r,!1)),Ct(e,n,r)}return ui(e),e}return i instanceof x||i instanceof Z||i instanceof T||i instanceof H||i instanceof gt?i.copy():i}G.prototype.setDataProperty=function(t,i,e){if(this.lb(t)){if(i===this.nodeKeyProperty){this.jm(t,e);return}if(i===this.nodeCategoryProperty){this.im(t,e);return}}else!Om&&t instanceof X&&(Om=!0,ue('Model.setDataProperty is modifying a GraphObject, "'+t.toString()+'"'),ue(" Is that really your intent?"));var n=Kt(t,i);n!==e&&(Ct(t,i,e),this.Es(t,i,n,e))},d=G.prototype,d.set=function(t,i,e){this.setDataProperty(t,i,e)},d.Co=function(t,i){if(i){var e=this.lb(t),n;for(n in i)n==="__gohashid"||e&&n===this.nodeKeyProperty||this.setDataProperty(t,n,i[n])}},d.Ay=function(t,i){this.ss(t,-1,i)},d.ss=function(t,i,e){0>i&&(i=t.length),Xs(t,i,e),$t(this,"",ii,"",t,null,e,null,i)},d.ov=function(t,i){i===void 0&&(i=-1),t===this.Tc&&O("Model.removeArrayItem should not be called on the Model.nodeDataArray"),i===-1&&(i=t.length-1);var e=t[i];ns(t,i),$t(this,"",si,"",t,e,null,i,null)},d.Qo=function(t){if(t===null)return"";var i=this.lj;if(i===""||(i=Kt(t,i),i===void 0))return"";if(typeof i=="string")return i;O("getCategoryForNodeData found a non-string category for "+t+": "+i)},d.im=function(t,i){if(t!==null){var e=this.lj;if(e!=="")if(this.lb(t)){var n=Kt(t,e);n===void 0&&(n=""),n!==i&&(Ct(t,e,i),$t(this,"nodeCategory",Ot,e,t,n,i))}else Ct(t,e,i)}},d.km=function(t,i){this.im(i,this.Qo(t))},d.Sl=function(){return!1},d.Vj=function(){return!1},d.ri=function(){return!1},d.ws=function(){return!1},d.Wj=function(){return!1};function kd(){return new G}function Ql(t,i){if(typeof i=="function"){if(i.className)return i.className;if(i.name)return i.name}else if(typeof i=="object"&&i!==null&&i.constructor)return Ql(t,i.constructor);return typeof i}function Cd(t){return an[t]?an[t]:J.go!==void 0&&J.go[t]?J.go[t]:null}function Kt(t,i){if(!t||!i)return null;try{if(typeof i=="function")var e=i(t);else typeof t.getAttribute=="function"?(e=t.getAttribute(i),e===null&&(e=void 0)):e=t[i]}catch{}return e}function Ct(t,i,e){if(t&&i)try{typeof i=="function"?i(t,e):typeof t.setAttribute=="function"?t.setAttribute(i,e):t[i]=e}catch{}}tt.Object.defineProperties(G.prototype,{name:{get:function(){return this.xa},set:function(t){var i=this.xa;i!==t&&(this.xa=t,this.g("name",i,t))}},dataFormat:{get:function(){return this.Rm},set:function(t){var i=this.Rm;i!==t&&(this.Rm=t,this.g("dataFormat",i,t))}},isReadOnly:{get:function(){return this.Gg},set:function(t){var i=this.Gg;i!==t&&(this.Gg=t,this.g("isReadOnly",i,t))}},modelData:{get:function(){return this.j},set:function(t){var i=this.j;i!==t&&(this.j=t,this.g("modelData",i,t),this.La(t))}},undoManager:{get:function(){return this.o},set:function(t){var i=this.o;i!==t&&(i!==null&&i.Rx(this),this.o=t,t!==null&&t.Xw(this))}},skipsUndoManager:{get:function(){return this.Wg},set:function(t){this.Wg=t}},nodeKeyProperty:{get:function(){return this.Th},set:function(t){var i=this.Th;i!==t&&(t===""&&O("Model.nodeKeyProperty may not be the empty string"),0<this.kb.count&&O("Cannot set Model.nodeKeyProperty when there is existing node data"),this.Th=t,this.g("nodeKeyProperty",i,t))}},makeUniqueKeyFunction:{get:function(){return this.al},set:function(t){var i=this.al;i!==t&&(this.al=t,this.g("makeUniqueKeyFunction",i,t))}},nodeDataArray:{get:function(){return this.Tc},set:function(t){var i=this.Tc;if(i!==t){this.kb.clear(),this.Lv();for(var e=t.length,n=0;n<e;n++){var o=t[n];At(o)||O("Model.nodeDataArray must only contain Objects, not: "+o),rs(o)}for(this.Tc=t,n=new V,o=0;o<e;o++){var r=t[o],s=this.wa(r);s===void 0||this.kb.I(s)!==null?n.add(r):this.kb.add(s,r)}for(n=n.iterator;n.next();)o=n.value,this.$u(o),r=this.wa(o),r!==void 0&&this.kb.add(r,o);for($t(this,"nodeDataArray",Ot,"nodeDataArray",this,i,t),i=0;i<e;i++)n=t[i],this.em(n),this.dm(n);Array.isArray(t)||(this.isReadOnly=!0)}}},copyNodeDataFunction:{get:function(){return this.Ak},set:function(t){var i=this.Ak;i!==t&&(this.Ak=t,this.g("copyNodeDataFunction",i,t))}},copiesArrays:{get:function(){return this.Jm},set:function(t){var i=this.Jm;i!==t&&(this.Jm=t,this.g("copiesArrays",i,t))}},copiesArrayObjects:{get:function(){return this.Im},set:function(t){var i=this.Im;i!==t&&(this.Im=t,this.g("copiesArrayObjects",i,t))}},copiesKey:{get:function(){return this.Lm},set:function(t){var i=this.Lm;i!==t&&(this.Lm=t,this.g("copiesKey",i,t))}},afterCopyFunction:{get:function(){return this.wm},set:function(t){var i=this.wm;i!==t&&(this.wm=t,this.g("afterCopyFunction",i,t))}},nodeCategoryProperty:{get:function(){return this.lj},set:function(t){var i=this.lj;i!==t&&(this.lj=t,this.g("nodeCategoryProperty",i,t))}},type:{get:function(){return"Model"}}}),G.prototype.setCategoryForNodeData=G.prototype.im,G.prototype.getCategoryForNodeData=G.prototype.Qo,G.prototype.removeArrayItem=G.prototype.ov,G.prototype.insertArrayItem=G.prototype.ss,G.prototype.addArrayItem=G.prototype.Ay,G.prototype.assignAllDataProperties=G.prototype.Co,G.prototype.set=G.prototype.set,G.prototype.clearUnresolvedReferences=G.prototype.Qy,G.prototype.mergeNodeDataArray=G.prototype.$z,G.prototype.removeNodeDataCollection=G.prototype.nA,G.prototype.removeNodeData=G.prototype.bm,G.prototype.addNodeDataCollection=G.prototype.Fy,G.prototype.addNodeData=G.prototype.xf,G.prototype.makeNodeDataKeyUnique=G.prototype.$u,G.prototype.findNodeDataForKey=G.prototype.ic,G.prototype.containsNodeData=G.prototype.lb,G.prototype.setKeyForNodeData=G.prototype.jm,G.prototype.getKeyForNodeData=G.prototype.wa,G.prototype.updateTargetBindings=G.prototype.La,G.prototype.commit=G.prototype.commit,G.prototype.rollbackTransaction=G.prototype.Kf,G.prototype.commitTransaction=G.prototype.eb,G.prototype.startTransaction=G.prototype.Ea,G.prototype.raiseDataChanged=G.prototype.Es,G.prototype.raiseChanged=G.prototype.g,G.prototype.raiseChangedEvent=G.prototype.cb,G.prototype.removeChangedListener=G.prototype.hk,G.prototype.addChangedListener=G.prototype.Pe,G.prototype.writeJsonValue=G.prototype.rm,G.prototype.replaceJsonObjects=G.prototype.cm,G.prototype.applyIncrementalJSON=G.prototype.Ky,G.prototype.applyIncrementalJson=G.prototype.Zw,G.prototype.toJSON=G.prototype.toJSON,G.prototype.toJson=G.prototype.mp,G.prototype.toIncrementalJSON=G.prototype.yA,G.prototype.toIncrementalJson=G.prototype.$x,G.prototype.toIncrementalData=G.prototype.xA,G.prototype.clear=G.prototype.clear;var Om=!1,an={};G.className="Model",G.fromJSON=G.fromJson=function(t,i){i===void 0&&(i=null);var e=null;if(typeof t=="string")try{e=J.JSON.parse(t)}catch{}else typeof t=="object"?e=t:O("Unable to construct a Model from: "+t);if(i===null){t=null;var n=e.class;if(typeof n=="string")try{var o=null;n.indexOf("go.")===0?(n=n.substr(3),o=Cd(n)):(o=Cd(n),o===null&&(o=J[n])),typeof o=="function"&&(t=new o)}catch{}t===null||t instanceof G?i=t:O("Unable to construct a Model of declared class: "+e.class)}return i===null&&(i=G.constructGraphLinksModel()),i.fp(e),i.kv(e),i},G.safePropertyValue=Kt,G.safePropertySet=Ct,an.Brush=ct,an.ChangedEvent=Et,an.Geometry=I,an.Margin=gt,an.Panel=j,an.Point=x,an.Rect=T,an.Size=Z,an.Spot=H,an.Transaction=mi,an.UndoManager=Vt;function Ht(t,i,e,n){ui(this),this._isFrozen=!1,t===void 0&&(t=""),i===void 0&&(i=t),e===void 0&&(e=null),this.j=-1,this.xd=null,this.wl=t,this.vl=this.so=0,this.Br=null,this.vn=!1,this.rl=i,this.Hm=e,n===void 0?(this.dl=Dm,this.vk=null):(this.dl=ql,this.vk=n),this.rt=new E}Ht.prototype.copy=function(){var t=new Ht;return t.wl=this.wl,t.so=this.so,t.vl=this.vl,t.Br=this.Br,t.vn=this.vn,t.rl=this.rl,t.Hm=this.Hm,t.dl=this.dl,t.vk=this.vk,t},d=Ht.prototype,d.qb=function(t){t.classType===Ht&&(this.mode=t)},d.toString=function(){return"Binding("+this.targetProperty+":"+this.sourceProperty+(this.Ai!==-1?" "+this.Ai:"")+" "+this.mode.name+")"},d.freeze=function(){return this._isFrozen=!0,this},d.ka=function(){return this._isFrozen=!1,this},d.Kx=function(t){return t===void 0&&(t=null),this.mode=ql,this.backConverter=t,this},d.bp=function(t){return t===void 0&&(t=""),this.sourceName=t,this.isToModel=!1,this},d.dA=function(){return this.sourceName=null,this.isToModel=!0,this};function Im(t,i,e){return t=t.sourceName,t===null||t===""?i:t==="/"?e.part:t==="."?e:t===".."?e.panel:i.fb(t)}d.Mv=function(t,i,e){var n=this.rl;if(e===void 0||n===""||n===e){e=this.wl;var o=this.Hm;if(o===null&&e==="")ue("Binding error: target property is the empty string: "+this.toString());else{var r=i;if(n!==""&&(r=Kt(i,n)),r!==void 0)if(o===null)e!==""&&Ct(t,e,r);else try{if(e!==""){var s=o(r,t);Ct(t,e,s)}else o(r,t)}catch{}}}},d.rp=function(t,i,e,n){if(this.dl===ql){var o=this.wl;if(e===void 0||o===e){e=this.rl;var r=this.vk,s=t;if(o!==""&&(s=Kt(t,o)),s!==void 0&&!this.rt.contains(t))try{this.rt.add(t);var h=n!==null?n.diagram:null,l=h!==null?h.model:null;if(r===null){if(e!=="")l!==null?l.setDataProperty(i,e,s):Ct(i,e,s);else if(l!==null&&n!==null&&0<=n.itemIndex&&n.panel!==null&&Array.isArray(n.panel.itemArray)){var u=n.itemIndex,a=n.panel.itemArray;l.ov(a,u),l.ss(a,u,s)}}else try{if(e!==""){var f=r(s,i,l);l!==null?l.setDataProperty(i,e,f):Ct(i,e,f)}else{var p=r(s,i,l);if(p!==void 0&&l!==null&&n!==null&&0<=n.itemIndex&&n.panel!==null&&Array.isArray(n.panel.itemArray)){var c=n.itemIndex,g=n.panel.itemArray;l.ov(g,c),l.ss(g,c,p)}}}catch{}}finally{this.rt.remove(t)}}}},tt.Object.defineProperties(Ht.prototype,{Ai:{get:function(){return this.j},set:function(t){this._isFrozen&&rt(this),this.j=t}},targetProperty:{get:function(){return this.wl},set:function(t){this._isFrozen&&rt(this),this.wl=t}},sourceName:{get:function(){return this.Br},set:function(t){this._isFrozen&&rt(this),this.Br=t,t!==null&&(this.vn=!1)}},isToModel:{get:function(){return this.vn},set:function(t){this._isFrozen&&rt(this),this.vn=t}},sourceProperty:{get:function(){return this.rl},set:function(t){this._isFrozen&&rt(this),this.rl=t}},converter:{get:function(){return this.Hm},set:function(t){this._isFrozen&&rt(this),this.Hm=t}},backConverter:{get:function(){return this.vk},set:function(t){this._isFrozen&&rt(this),this.vk=t}},mode:{get:function(){return this.dl},set:function(t){this._isFrozen&&rt(this),this.dl=t}}}),Ht.prototype.updateSource=Ht.prototype.rp,Ht.prototype.updateTarget=Ht.prototype.Mv,Ht.prototype.ofModel=Ht.prototype.dA,Ht.prototype.ofObject=Ht.prototype.bp,Ht.prototype.makeTwoWay=Ht.prototype.Kx;var c1="Binding",Dm=new R(Ht,"OneWay",1),ql=new R(Ht,"TwoWay",2);Ht.className="Binding",Ht.parseEnum=function(t,i){return function(e){return e=os(t,e),e===null?i:e}},Ht.toString=en,Ht.OneWay=Dm,Ht.TwoWay=ql;function ot(t,i,e){G.call(this),this.Vv=`, "insertedLinkKeys": `,this.iy=`, "modifiedLinkData": `,this.Xv=`, "removedLinkKeys": `,this.md=[],this.$f=new E,this.xb=new _,this.Jh="",this.Ri=this.zk=this.bl=null,this.lf="from",this.mf="to",this.fj=this.ej="",this.dj="category",this.je="",this.il="isGroup",this.Je="group",this.Km=!1,i!==void 0&&(this.linkDataArray=i),t!==void 0&&(ai(t)?this.nodeDataArray=t:e=t),e&&(Object.assign(this,e),t=e.Changed)&&(delete this.Changed,this.Pe(t))}pt(ot,G),ot.constructGraphLinksModel=G.constructGraphLinksModel,ot.prototype.cloneProtected=function(t){G.prototype.cloneProtected.call(this,t),t.Jh=this.Jh,t.bl=this.bl,t.zk=this.zk,t.lf=this.lf,t.mf=this.mf,t.ej=this.ej,t.fj=this.fj,t.dj=this.dj,t.je=this.je,t.il=this.il,t.Je=this.Je,t.Km=this.Km},d=ot.prototype,d.clear=function(){G.prototype.clear.call(this),this.md=[],this.xb.clear(),this.$f.clear()},d.toString=function(t){if(t===void 0&&(t=0),2<=t)return this.mp();var i=(this.name!==""?this.name:"")+" GraphLinksModel";if(0<t){i+=` node data:`,t=this.nodeDataArray;var e=t.length,n;for(n=0;n<e;n++){var o=t[n];i+=" "+this.wa(o)+":"+en(o)}for(i+=` link data:`,t=this.linkDataArray,e=t.length,n=0;n<e;n++)o=t[n],i+=" "+Pe(this,o,!0)+"-->"+Pe(this,o,!1)}return i},d.Qv=function(t,i){this.linkKeyProperty===""&&O("GraphLinksModel.linkKeyProperty must not be an empty string for .toIncrementalData() to succeed.");var e=G.prototype.Qv.call(this,t,i),n=this,o=new E,r=new E,s=new E,h=this.vh;t.changes.each(function(a){a.model===n&&(a.modelChange==="linkDataArray"?a.change===ii?o.add(a.newValue):a.change===si&&s.add(a.oldValue):n.Jc(a.object)?r.add(a.object):a.object!==null&&(a.object!==null&&h&&h.contains(a.object)?h.get(a.object).each(function(f){n.Jc(f)&&r.add(f)}):a.object instanceof G||n.lb(a.object)||Em(n,a.object).each(function(f){r.add(f)})))});var l=this.hl;l.clear(),o.each(function(a){l.add(n.Ac(a)),i||r.add(a)});var u=this.jl;return u.clear(),s.each(function(a){u.add(n.Ac(a)),i&&r.add(a)}),t=n.cloneDeep(r.Fa()),0<l.count&&(e===null&&(e={}),i?e.removedLinkKeys=l.Fa():e.insertedLinkKeys=l.Fa()),0<t.length&&(e===null&&(e={}),e.modifiedLinkData=t),0<u.count&&(e===null&&(e={}),i?e.insertedLinkKeys=u.Fa():e.removedLinkKeys=u.Fa()),u.clear(),l.clear(),e},d.qm=function(){var t=G.prototype.qm.call(this),i="";return this.linkCategoryProperty!=="category"&&typeof this.linkCategoryProperty=="string"&&(i+=`, "linkCategoryProperty": `+this.quote(this.linkCategoryProperty)),this.linkKeyProperty!==""&&typeof this.linkKeyProperty=="string"&&(i+=`, "linkKeyProperty": `+this.quote(this.linkKeyProperty)),this.linkFromKeyProperty!=="from"&&typeof this.linkFromKeyProperty=="string"&&(i+=`, "linkFromKeyProperty": `+this.quote(this.linkFromKeyProperty)),this.linkToKeyProperty!=="to"&&typeof this.linkToKeyProperty=="string"&&(i+=`, "linkToKeyProperty": `+this.quote(this.linkToKeyProperty)),this.linkFromPortIdProperty!==""&&typeof this.linkFromPortIdProperty=="string"&&(i+=`, "linkFromPortIdProperty": `+this.quote(this.linkFromPortIdProperty)),this.linkToPortIdProperty!==""&&typeof this.linkToPortIdProperty=="string"&&(i+=`, "linkToPortIdProperty": `+this.quote(this.linkToPortIdProperty)),this.linkLabelKeysProperty!==""&&typeof this.linkLabelKeysProperty=="string"&&(i+=`, "linkLabelKeysProperty": `+this.quote(this.linkLabelKeysProperty)),this.nodeIsGroupProperty!=="isGroup"&&typeof this.nodeIsGroupProperty=="string"&&(i+=`, "nodeIsGroupProperty": `+this.quote(this.nodeIsGroupProperty)),this.nodeGroupKeyProperty!=="group"&&typeof this.nodeGroupKeyProperty=="string"&&(i+=`, "nodeGroupKeyProperty": `+this.quote(this.nodeGroupKeyProperty)),t+i},d.fp=function(t){G.prototype.fp.call(this,t),t.linkKeyProperty&&(this.linkKeyProperty=t.linkKeyProperty),t.linkFromKeyProperty&&(this.linkFromKeyProperty=t.linkFromKeyProperty),t.linkToKeyProperty&&(this.linkToKeyProperty=t.linkToKeyProperty),t.linkFromPortIdProperty&&(this.linkFromPortIdProperty=t.linkFromPortIdProperty),t.linkToPortIdProperty&&(this.linkToPortIdProperty=t.linkToPortIdProperty),t.linkCategoryProperty&&(this.linkCategoryProperty=t.linkCategoryProperty),t.linkLabelKeysProperty&&(this.linkLabelKeysProperty=t.linkLabelKeysProperty),t.nodeIsGroupProperty&&(this.nodeIsGroupProperty=t.nodeIsGroupProperty),t.nodeGroupKeyProperty&&(this.nodeGroupKeyProperty=t.nodeGroupKeyProperty)},d.Rv=function(){var t=G.prototype.Rv.call(this),i=`, "linkDataArray": `+pr(this,this.linkDataArray,!0);return t+i},d.kv=function(t){G.prototype.kv.call(this,t),t=t.linkDataArray,Array.isArray(t)&&(this.cm(t),this.linkDataArray=t)};function Em(t,i){for(var e=new E,n=0;n<t.linkDataArray.length;n++){var o=t.linkDataArray[n];rf(t,i,o,o,e)}return e}d.Pv=function(t,i){this.linkKeyProperty===""&&O("GraphLinksModel.linkKeyProperty must not be an empty string for .toIncrementalJson() to succeed.");var e=G.prototype.Pv.call(this,t,i),n=this,o=new E,r=new E,s=new E,h=this.vh;t.changes.each(function(a){a.model===n&&(a.modelChange==="linkDataArray"?a.change===ii?o.add(a.newValue):a.change===si&&s.add(a.oldValue):n.Jc(a.object)?r.add(a.object):a.object!==null&&(a.object!==null&&h&&h.contains(a.object)?h.get(a.object).each(function(f){n.Jc(f)&&r.add(f)}):a.object instanceof G||n.lb(a.object)||Em(n,a.object).each(function(f){r.add(f)})))});var l=this.hl;l.clear(),o.each(function(a){l.add(n.Ac(a)),i||r.add(a)});var u=this.jl;return u.clear(),s.each(function(a){u.add(n.Ac(a)),i&&r.add(a)}),t=e,0<l.count&&(t+=(i?this.Xv:this.Vv)+pr(this,l.Fa(),!0)),0<r.count&&(t+=this.iy+pr(this,r.Fa(),!0)),0<u.count&&(t+=(i?this.Vv:this.Xv)+pr(this,u.Fa(),!0)),u.clear(),l.clear(),t},d.ep=function(t){(t.linkCategoryProperty!==void 0&&t.linkCategoryProperty!==this.linkCategoryProperty||t.linkKeyProperty!==void 0&&t.linkKeyProperty!==this.linkKeyProperty||t.linkFromKeyProperty!==void 0&&t.linkFromKeyProperty!==this.linkFromKeyProperty||t.linkToKeyProperty!==void 0&&t.linkToKeyProperty!==this.linkToKeyProperty||t.linkFromPortIdProperty!==void 0&&t.linkFromPortIdProperty!==this.linkFromPortIdProperty||t.linkToPortIdProperty!==void 0&&t.linkToPortIdProperty!==this.linkToPortIdProperty||t.linkLabelKeysProperty!==void 0&&t.linkLabelKeysProperty!==this.linkLabelKeysProperty||t.nodeIsGroupProperty!==void 0&&t.nodeIsGroupProperty!==this.nodeIsGroupProperty||t.nodeGroupKeyProperty!==void 0&&t.nodeGroupKeyProperty!==this.nodeGroupKeyProperty)&&O("applyIncrementalJson cannot change Model properties"),G.prototype.ep.call(this,t);var i=t.insertedLinkKeys;if(Array.isArray(i))for(var e=i.length,n=0;n<e;n++){var o=i[n],r=this.jh(o);r===null&&(r=this.Io({}),this.Js(r,o),this.fi(r))}if(i=t.modifiedLinkData,Array.isArray(i)){for(e=i.length,n=0;n<e;n++)if(o=i[n],r=this.Ac(o),r=this.jh(r),r!==null){for(var s in o)s!=="__gohashid"&&s!==this.linkKeyProperty&&this.setDataProperty(r,s,o[s]);Vm(this,o,r)}}if(t=t.removedLinkKeys,Array.isArray(t))for(s=t.length,i=0;i<s;i++)e=this.jh(t[i]),e!==null&&this.am(e)},ot.prototype.changeState=function(t,i){if(t!==null&&t.model===this){if(t.change===Ot){var e=t.object,n=t.propertyName;if(n===this.linkKeyProperty&&this.Jc(e)){var o=t.I(i);i=t.I(!i),i!==void 0&&this.xb.remove(i),o!==void 0&&this.xb.add(o,e),Ct(e,n,o);return}}else if(t.change===ii){if(e=t.newParam,t.modelChange==="linkDataArray"){t=t.newValue,At(t)&&typeof e=="number"&&(n=this.Ac(t),i?(this.$f.remove(t),this.md[e]===t&&this.md.splice(e,1),n!==void 0&&this.xb.remove(n)):(this.$f.add(t),this.md[e]!==t&&this.md.splice(e,0,t),n!==void 0&&this.xb.add(n,t)));return}if(t.modelChange==="linkLabelKeys"){n=this.Ef(t.object),Array.isArray(n)&&typeof e=="number"&&(i?(e=n.indexOf(t.newValue),0<=e&&n.splice(e,1)):0>n.indexOf(t.newValue)&&n.splice(e,0,t.newValue));return}}else if(t.change===si){if(e=t.oldParam,t.modelChange==="linkDataArray"){t=t.oldValue,At(t)&&typeof e=="number"&&(n=this.Ac(t),i?(this.$f.add(t),this.md[e]!==t&&this.md.splice(e,0,t),n!==void 0&&this.xb.add(n,t)):(this.$f.remove(t),this.md[e]===t&&this.md.splice(e,1),n!==void 0&&this.xb.remove(n)));return}if(t.modelChange==="linkLabelKeys"){n=this.Ef(t.object),Array.isArray(n)&&typeof e=="number"&&(i?0>n.indexOf(t.newValue)&&n.splice(e,0,t.newValue):(e=n.indexOf(t.newValue),0<=e&&n.splice(e,1)));return}}G.prototype.changeState.call(this,t,i)}},d=ot.prototype,d.Ul=function(t){if(t!==void 0){var i=this.Ri;if(i!==null){var e=this.ic(t);e===null&&(e=this.copyNodeData(i),Ct(e,this.nodeKeyProperty,t),this.xf(e))}return t}},d.yx=function(t){return Pe(this,t,!0)},d.wv=function(t,i){Eh(this,t,i,!0)},d.Bx=function(t){return Pe(this,t,!1)},d.Bv=function(t,i){Eh(this,t,i,!1)};function Pe(t,i,e){if(i!==null&&(t=e?t.lf:t.mf,t!==""&&(t=Kt(i,t),t!==void 0))){if(cr(t))return t;O((e?"FromKey":"ToKey")+" value for link data "+i+" is not a number or a string: "+t)}}function Eh(t,i,e,n){if(e===null&&(e=void 0),i!==null){var o=n?t.lf:t.mf;if(o!=="")if(e=t.Ul(e),t.Jc(i)){var r=Kt(i,o);r!==e&&(Pn(t,r,i),Ct(i,o,e),t.ic(e)===null&&Nn(t,e,i),$t(t,n?"linkFromKey":"linkToKey",Ot,o,i,r,e),typeof o=="string"&&t.La(i,o))}else Ct(i,o,e)}}d.zx=function(t){return hf(this,t,!0)},d.xv=function(t,i){Bh(this,t,i,!0)},d.Cx=function(t){return hf(this,t,!1)},d.Cv=function(t,i){Bh(this,t,i,!1)};function hf(t,i,e){return i===null||(t=e?t.ej:t.fj,t==="")?"":(i=Kt(i,t),i===void 0?"":i)}function Bh(t,i,e,n){if(i!==null){var o=n?t.ej:t.fj;if(o!=="")if(t.Jc(i)){var r=Kt(i,o);r===void 0&&(r=""),r!==e&&(Ct(i,o,e),$t(t,n?"linkFromPortId":"linkToPortId",Ot,o,i,r,e),typeof o=="string"&&t.La(i,o))}else Ct(i,o,e)}}d.Ef=function(t){if(t===null)return lf;var i=this.je;return i===""?lf:(t=Kt(t,i),t===void 0?lf:t)},d.Ks=function(t,i){if(t!==null){var e=this.je;if(e!=="")if(this.Jc(t)){var n=Kt(t,e);if(n===void 0&&(n=lf),n!==i){if(Array.isArray(n))for(var o=n.length,r=0;r<o;r++)Pn(this,n[r],t);for(Ct(t,e,i),o=i.length,r=0;r<o;r++){var s=i[r];this.ic(s)===null&&Nn(this,s,t)}$t(this,"linkLabelKeys",Ot,e,t,n,i),typeof e=="string"&&this.La(t,e)}}else Ct(t,e,i)}},d.Au=function(t,i){if(i!=null&&t!==null){var e=this.je;if(e!==""){var n=Kt(t,e);if(n===void 0)e=[],e.push(i),this.Ks(t,e);else if(Array.isArray(n)){var o=n.indexOf(i);0<=o||(o=n.length,n.push(i),this.Jc(t)&&(this.ic(i)===null&&Nn(this,i,t),$t(this,"linkLabelKeys",ii,e,t,null,i,null,o)))}else O(e+" property is not an Array; cannot addLabelKeyForLinkData: "+t)}}},d.Qx=function(t,i){if(i!=null&&t!==null){var e=this.je;if(e!==""){var n=Kt(t,e);if(Array.isArray(n)){var o=n.indexOf(i);0>o||(n.splice(o,1),this.Jc(t)&&(Pn(this,i,t),$t(this,"linkLabelKeys",si,e,t,i,null,o,null)))}else n!==void 0&&O(e+" property is not an Array; cannot removeLabelKeyforLinkData: "+t)}}},d.Ac=function(t){if(t!==null){var i=this.Jh;if(i!==""&&(i=Kt(t,i),i!==void 0)){if(cr(i))return i;O("Key value for link data "+t+" is not a number or a string: "+i)}}},d.Js=function(t,i){if(t!==null){var e=this.Jh;if(e!=="")if(this.Jc(t)){var n=Kt(t,e);n!==i&&this.jh(i)===null&&(Ct(t,e,i),n!==void 0&&this.xb.remove(n),this.xb.add(i,t),$t(this,"linkKey",Ot,e,t,n,i),typeof e=="string"&&this.La(t,e))}else Ct(t,e,i)}},d.jh=function(t){return t===null&&O("GraphLinksModel.findLinkDataForKey:key must not be null"),t!==void 0&&cr(t)?this.xb.I(t):null},d.As=function(t){if(t!==null){var i=this.Jh;if(i!==""){var e=this.Ac(t);if(e===void 0||this.xb.contains(e)){var n=this.bl;if(n!==null&&(e=n(this,t),e!=null&&!this.xb.contains(e))){Ct(t,i,e);return}if(typeof e=="string"){for(n=2;this.xb.contains(e+n);)n++;Ct(t,i,e+n)}else if(e===void 0||typeof e=="number"){for(e=-this.xb.count-1;this.xb.contains(e);)e--;Ct(t,i,e)}}}}},d.Jc=function(t){return t===null?!1:this.$f.contains(t)},d.fi=function(t){t!==null&&(rs(t),this.Jc(t)||Bm(this,t,!0))};function Bm(t,i,e){if(t.linkKeyProperty!==""){var n=t.Ac(i);if(n!==void 0&&t.xb.I(n)===i)return;t.As(i),n=t.Ac(i),n===void 0&&O("GraphLinksModel.makeLinkDataKeyUnique failed on "+i+". Data not added to model."),t.xb.add(n,i)}t.$f.add(i),n=null,e&&(n=t.md.length,t.md.splice(n,0,i)),$t(t,"linkDataArray",ii,"linkDataArray",t,null,i,null,n),Td(t,i)}d.Ey=function(t){if(Array.isArray(t))for(var i=t.length,e=0;e<i;e++)this.fi(t[e]);else for(t=t.iterator;t.next();)this.fi(t.value)},d.am=function(t){t!==null&&Rm(this,t,!0)};function Rm(t,i,e){t.$f.remove(i);var n=t.Ac(i);if(n!==void 0&&t.xb.remove(n),n=null,e){if(n=t.md.indexOf(i),0>n)return;t.md.splice(n,1)}if($t(t,"linkDataArray",si,"linkDataArray",t,i,null,n,null),e=Pe(t,i,!0),Pn(t,e,i),e=Pe(t,i,!1),Pn(t,e,i),n=t.Ef(i),Array.isArray(n))for(var o=n.length,r=0;r<o;r++)e=n[r],Pn(t,e,i)}d.lA=function(t){if(Array.isArray(t))for(var i=t.length,e=0;e<i;e++)this.am(t[e]);else for(t=t.iterator;t.next();)this.am(t.value)},d.Zz=function(t){if(this.linkKeyProperty===""&&O("GraphLinksModel.linkKeyProperty must not be an empty string for .mergeLinkDataArray() to succeed."),t!==this.linkDataArray&&ai(t)){var i=this.jl;i.clear(),i.addAll(this.xb.iteratorKeys);var e=this.hl;e.clear();for(var n=t.length,o=0;o<n;o++){var r=t[o],s=this.Ac(r);if(s!==void 0){e.add(s);var h=this.jh(s);h!==r&&(h!==null?(this.Co(h,r),Vm(this,r,h)):(r=this.cloneDeep(r),this.Js(r,s),this.fi(r)))}else s=this.cloneDeep(r),this.fi(s),e.add(this.Ac(s))}for(t=i.iterator;t.next();)n=t.value,e.contains(n)||(n=this.jh(n))&&this.am(n);i.clear(),e.clear()}};function Td(t,i){var e=Pe(t,i,!0);e=t.Ul(e),t.ic(e)===null&&Nn(t,e,i),e=Pe(t,i,!1),e=t.Ul(e),t.ic(e)===null&&Nn(t,e,i);var n=t.Ef(i);if(Array.isArray(n))for(var o=n.length,r=0;r<o;r++)e=n[r],t.ic(e)===null&&Nn(t,e,i)}d.Io=function(t){if(t===null)return null;var i=this.zk;return t=i!==null?i(t,this):sf(this,t,!0),At(t)&&(ui(t),this.lf!==""&&Ct(t,this.lf,void 0),this.mf!==""&&Ct(t,this.mf,void 0),this.je!==""&&Ct(t,this.je,[])),t},d.Yu=function(t){if(t===null)return!1;var i=this.il;return i===""?!1:!!Kt(t,i)},d.lh=function(t){if(t!==null){var i=this.Je;if(i!==""&&(i=Kt(t,i),i!==void 0)){if(cr(i))return i;O("GroupKey value for node data "+t+" is not a number or a string: "+i)}}},d.lp=function(t,i){if(i===null&&(i=void 0),t!==null){var e=this.Je;if(e!=="")if(this.lb(t)){var n=Kt(t,e);n!==i&&(Pn(this,n,t),Ct(t,e,i),this.ic(i)===null&&Nn(this,i,t),$t(this,"nodeGroupKey",Ot,e,t,n,i),typeof e=="string"&&this.La(t,e))}else Ct(t,e,i)}},ot.prototype.copyNodeData=function(t){return t===null?null:(t=G.prototype.copyNodeData.call(this,t),this.Hj||this.Je===""||Kt(t,this.Je)===void 0||Ct(t,this.Je,void 0),t)},ot.prototype.setDataProperty=function(t,i,e){if(this.lb(t)){if(i===this.nodeKeyProperty){this.jm(t,e);return}if(i===this.nodeCategoryProperty){this.im(t,e);return}if(i===this.nodeGroupKeyProperty){this.lp(t,e);return}}else if(this.Jc(t)){if(i===this.linkFromKeyProperty){Eh(this,t,e,!0);return}if(i===this.linkToKeyProperty){Eh(this,t,e,!1);return}if(i===this.linkFromPortIdProperty){Bh(this,t,e,!0);return}if(i===this.linkToPortIdProperty){Bh(this,t,e,!1);return}if(i===this.linkKeyProperty){this.Js(t,e);return}if(i===this.linkCategoryProperty){this.kp(t,e);return}if(i===this.linkLabelKeysProperty){this.Ks(t,e);return}}var n=Kt(t,i);n!==e&&(Ct(t,i,e),this.Es(t,i,n,e))},d=ot.prototype,d.Co=function(t,i){if(i){var e=this.lb(t),n=this.Jc(t),o;for(o in i)o==="__gohashid"||e&&o===this.nodeKeyProperty||e&&o===this.nodeIsGroupProperty&&Kt(t,o)===i[o]||n&&o===this.linkKeyProperty||this.setDataProperty(t,o,i[o])}},d.ip=function(t,i){G.prototype.ip.call(this,t,i);for(var e=this.kb.iterator;e.next();)this.qv(e.value,t,i);for(e=this.$f.iterator;e.next();){var n=e.value,o=t,r=i;if(Pe(this,n,!0)===o){var s=this.lf;Ct(n,s,r),$t(this,"linkFromKey",Ot,s,n,o,r),typeof s=="string"&&this.La(n,s)}if(Pe(this,n,!1)===o&&(s=this.mf,Ct(n,s,r),$t(this,"linkToKey",Ot,s,n,o,r),typeof s=="string"&&this.La(n,s)),s=this.Ef(n),Array.isArray(s))for(var h=s.length,l=this.je,u=0;u<h;u++)s[u]===o&&(s[u]=r,$t(this,"linkLabelKeys",ii,l,n,o,r,u,u))}},d.qv=function(t,i,e){if(this.lh(t)===i){var n=this.Je;Ct(t,n,e),$t(this,"nodeGroupKey",Ot,n,t,i,e),typeof n=="string"&&this.La(t,n)}},d.Lv=function(){G.prototype.Lv.call(this);for(var t=this.linkDataArray,i=t.length,e=0;e<i;e++)Td(this,t[e])},d.em=function(t){G.prototype.em.call(this,t),t=this.wa(t);var i=$l(this,t);if(i!==null){var e=kt();for(i=i.iterator;i.next();){var n=i.value;if(this.lb(n)){if(this.lh(n)===t){var o=this.Je;$t(this,"nodeGroupKey",Ot,o,n,t,t),typeof o=="string"&&this.La(n,o),e.push(n)}}else if(Pe(this,n,!0)===t&&(o=this.lf,$t(this,"linkFromKey",Ot,o,n,t,t),typeof o=="string"&&this.La(n,o),e.push(n)),Pe(this,n,!1)===t&&(o=this.mf,$t(this,"linkToKey",Ot,o,n,t,t),typeof o=="string"&&this.La(n,o),e.push(n)),o=this.Ef(n),Array.isArray(o))for(var r=o.length,s=this.je,h=0;h<r;h++)o[h]===t&&($t(this,"linkLabelKeys",ii,s,n,t,t,h,h),e.push(n))}for(i=0;i<e.length;i++)Pn(this,t,e[i]);Mt(e)}},d.dm=function(t){G.prototype.dm.call(this,t);var i=this.lh(t);this.ic(i)===null&&Nn(this,i,t)},d.pp=function(t){G.prototype.pp.call(this,t);var i=this.lh(t);Pn(this,i,t)},d.os=function(t){if(t===null)return"";var i=this.dj;if(i===""||(i=Kt(t,i),i===void 0))return"";if(typeof i=="string")return i;O("getCategoryForLinkData found a non-string category for "+t+": "+i)},ot.prototype.getLinkCategoryForData=function(t){return this.os(t)},ot.prototype.kp=function(t,i){if(t!==null){var e=this.dj;if(e!=="")if(this.Jc(t)){var n=Kt(t,e);n===void 0&&(n=""),n!==i&&(Ct(t,e,i),$t(this,"linkCategory",Ot,e,t,n,i),typeof e=="string"&&this.La(t,e))}else Ct(t,e,i)}},ot.prototype.setLinkCategoryForData=function(t,i){this.kp(t,i)},d=ot.prototype,d.km=function(t,i){G.prototype.km.call(this,t,i),this.lp(i,this.lh(t))};function Vm(t,i,e){t.kp(e,t.os(i)),t.wv(e,t.yx(i)),t.Bv(e,t.Bx(i)),t.Ks(e,t.Ef(i)),t.xv(e,t.zx(i)),t.Cv(e,t.Cx(i))}d.Vj=function(){return!0},d.ri=function(){return!0},d.ws=function(){return!0},d.Wj=function(){return!0},tt.Object.defineProperties(ot.prototype,{archetypeNodeData:{get:function(){return this.Ri},set:function(t){var i=this.Ri;i!==t&&(this.Ri=t,this.g("archetypeNodeData",i,t))}},linkFromKeyProperty:{get:function(){return this.lf},set:function(t){var i=this.lf;i!==t&&(this.lf=t,this.g("linkFromKeyProperty",i,t))}},linkToKeyProperty:{get:function(){return this.mf},set:function(t){var i=this.mf;i!==t&&(this.mf=t,this.g("linkToKeyProperty",i,t))}},linkFromPortIdProperty:{get:function(){return this.ej},set:function(t){var i=this.ej;i!==t&&(this.ej=t,this.g("linkFromPortIdProperty",i,t))}},linkToPortIdProperty:{get:function(){return this.fj},set:function(t){var i=this.fj;i!==t&&(this.fj=t,this.g("linkToPortIdProperty",i,t))}},linkLabelKeysProperty:{get:function(){return this.je},set:function(t){var i=this.je;i!==t&&(this.je=t,this.g("linkLabelKeysProperty",i,t))}},linkDataArray:{get:function(){return this.md},set:function(t){var i=this.md;if(i!==t){this.xb.clear();for(var e=t.length,n=0;n<e;n++){var o=t[n];At(o)||O("GraphLinksModel.linkDataArray must only contain Objects, not: "+o),rs(o)}if(this.md=t,this.linkKeyProperty!==""){for(n=new V,o=0;o<e;o++){var r=t[o],s=this.Ac(r);s===void 0||this.xb.I(s)!==null?n.add(r):this.xb.add(s,r)}for(n=n.iterator;n.next();)o=n.value,this.As(o),r=this.Ac(o),r!==void 0&&this.xb.add(r,o)}for(n=new E,o=0;o<e;o++)n.add(t[o]);for(this.$f=n,$t(this,"linkDataArray",Ot,"linkDataArray",this,i,t),i=0;i<e;i++)Td(this,t[i])}}},linkKeyProperty:{get:function(){return this.Jh},set:function(t){var i=this.Jh;if(i!==t){this.Jh=t,this.xb.clear();for(var e=this.linkDataArray.length,n=0;n<e;n++){var o=this.linkDataArray[n],r=this.Ac(o);r===void 0&&(this.As(o),r=this.Ac(o)),r!==void 0&&this.xb.add(r,o)}this.g("linkKeyProperty",i,t)}}},makeUniqueLinkKeyFunction:{get:function(){return this.bl},set:function(t){var i=this.bl;i!==t&&(this.bl=t,this.g("makeUniqueLinkKeyFunction",i,t))}},copyLinkDataFunction:{get:function(){return this.zk},set:function(t){var i=this.zk;i!==t&&(this.zk=t,this.g("copyLinkDataFunction",i,t))}},nodeIsGroupProperty:{get:function(){return this.il},set:function(t){var i=this.il;i!==t&&(this.il=t,this.g("nodeIsGroupProperty",i,t))}},nodeGroupKeyProperty:{get:function(){return this.Je},set:function(t){var i=this.Je;i!==t&&(this.Je=t,this.g("nodeGroupKeyProperty",i,t))}},Hj:{get:function(){return this.Km},set:function(t){this.Km!==t&&(this.Km=t)}},linkCategoryProperty:{get:function(){return this.dj},set:function(t){var i=this.dj;i!==t&&(this.dj=t,this.g("linkCategoryProperty",i,t))}},type:{get:function(){return"GraphLinksModel"}}}),ot.prototype.setCategoryForLinkData=ot.prototype.kp,ot.prototype.getCategoryForLinkData=ot.prototype.os,ot.prototype.assignAllDataProperties=ot.prototype.Co,ot.prototype.setGroupKeyForNodeData=ot.prototype.lp,ot.prototype.getGroupKeyForNodeData=ot.prototype.lh,ot.prototype.isGroupForNodeData=ot.prototype.Yu,ot.prototype.copyLinkData=ot.prototype.Io,ot.prototype.mergeLinkDataArray=ot.prototype.Zz,ot.prototype.removeLinkDataCollection=ot.prototype.lA,ot.prototype.removeLinkData=ot.prototype.am,ot.prototype.addLinkDataCollection=ot.prototype.Ey,ot.prototype.addLinkData=ot.prototype.fi,ot.prototype.containsLinkData=ot.prototype.Jc,ot.prototype.makeLinkDataKeyUnique=ot.prototype.As,ot.prototype.findLinkDataForKey=ot.prototype.jh,ot.prototype.setKeyForLinkData=ot.prototype.Js,ot.prototype.getKeyForLinkData=ot.prototype.Ac,ot.prototype.removeLabelKeyForLinkData=ot.prototype.Qx,ot.prototype.addLabelKeyForLinkData=ot.prototype.Au,ot.prototype.setLabelKeysForLinkData=ot.prototype.Ks,ot.prototype.getLabelKeysForLinkData=ot.prototype.Ef,ot.prototype.setToPortIdForLinkData=ot.prototype.Cv,ot.prototype.getToPortIdForLinkData=ot.prototype.Cx,ot.prototype.setFromPortIdForLinkData=ot.prototype.xv,ot.prototype.getFromPortIdForLinkData=ot.prototype.zx,ot.prototype.setToKeyForLinkData=ot.prototype.Bv,ot.prototype.getToKeyForLinkData=ot.prototype.Bx,ot.prototype.setFromKeyForLinkData=ot.prototype.wv,ot.prototype.getFromKeyForLinkData=ot.prototype.yx,ot.prototype.clear=ot.prototype.clear;var lf=Object.freeze([]);ot.className="GraphLinksModel",an.GraphLinksModel=ot,G.constructGraphLinksModel=G.constructGraphLinksModel=function(){return new ot},G.initDiagramModel=kd=function(){return new ot};function Ji(t,i){G.call(this),this.Ke="parent",this.Mm=!1,this.nj="parentLinkCategory",t!==void 0&&(ai(t)?this.nodeDataArray=t:i=t),i&&(Object.assign(this,i),t=i.Changed)&&(delete this.Changed,this.Pe(t))}pt(Ji,G),Ji.constructGraphLinksModel=G.constructGraphLinksModel,Ji.prototype.cloneProtected=function(t){G.prototype.cloneProtected.call(this,t),t.Ke=this.Ke,t.Mm=this.Mm,t.nj=this.nj},d=Ji.prototype,d.toString=function(t){if(t===void 0&&(t=0),2<=t)return this.mp();var i=(this.name!==""?this.name:"")+" TreeModel";if(0<t){i+=` node data:`,t=this.nodeDataArray;for(var e=t.length,n=0;n<e;n++){var o=t[n];i+=" "+this.wa(o)+":"+en(o)}}return i},d.qm=function(){var t=G.prototype.qm.call(this),i="";return this.nodeParentKeyProperty!=="parent"&&typeof this.nodeParentKeyProperty=="string"&&(i+=`, "nodeParentKeyProperty": `+this.quote(this.nodeParentKeyProperty)),t+i},d.fp=function(t){G.prototype.fp.call(this,t),t.nodeParentKeyProperty&&(this.nodeParentKeyProperty=t.nodeParentKeyProperty)},d.ep=function(t){t.nodeParentKeyProperty!==void 0&&t.nodeParentKeyProperty!==this.nodeParentKeyProperty&&O("applyIncrementalJson cannot change Model properties"),G.prototype.ep.call(this,t)},d.Ul=function(t){return t},d.mh=function(t){if(t!==null){var i=this.Ke;if(i!==""&&(i=Kt(t,i),i!==void 0)){if(cr(i))return i;O("ParentKey value for node data "+t+" is not a number or a string: "+i)}}},d.qe=function(t,i){if(i===null&&(i=void 0),t!==null){var e=this.Ke;if(e!=="")if(i=this.Ul(i),this.lb(t)){var n=Kt(t,e);n!==i&&(Pn(this,n,t),Ct(t,e,i),this.ic(i)===null&&Nn(this,i,t),$t(this,"nodeParentKey",Ot,e,t,n,i),typeof e=="string"&&this.La(t,e))}else Ct(t,e,i)}},d.rs=function(t){if(t===null)return"";var i=this.nj;return i===""||(i=Kt(t,i),i===void 0)?"":typeof i=="string"?i:(O("getParentLinkCategoryForNodeData found a non-string category for "+t+": "+i),"")},Ji.prototype.getLinkCategoryForData=function(t){return this.rs(t)},Ji.prototype.Ls=function(t,i){if(t!==null){var e=this.nj;if(e!=="")if(this.lb(t)){var n=Kt(t,e);n===void 0&&(n=""),n!==i&&(Ct(t,e,i),$t(this,"parentLinkCategory",Ot,e,t,n,i),typeof e=="string"&&this.La(t,e))}else Ct(t,e,i)}},Ji.prototype.setLinkCategoryForData=function(t,i){this.Ls(t,i)},Ji.prototype.copyNodeData=function(t){return t===null?null:(t=G.prototype.copyNodeData.call(this,t),this.Ij||this.Ke===""||Kt(t,this.Ke)===void 0||Ct(t,this.Ke,void 0),t)},Ji.prototype.setDataProperty=function(t,i,e){if(this.lb(t)){if(i===this.nodeKeyProperty){this.jm(t,e);return}if(i===this.nodeCategoryProperty){this.im(t,e);return}if(i===this.nodeParentKeyProperty){this.qe(t,e);return}}var n=Kt(t,i);n!==e&&(Ct(t,i,e),this.Es(t,i,n,e))},d=Ji.prototype,d.ip=function(t,i){G.prototype.ip.call(this,t,i);for(var e=this.kb.iterator;e.next();)this.qv(e.value,t,i)},d.qv=function(t,i,e){if(this.mh(t)===i){var n=this.Ke;Ct(t,n,e),$t(this,"nodeParentKey",Ot,n,t,i,e),typeof n=="string"&&this.La(t,n)}},d.em=function(t){G.prototype.em.call(this,t),t=this.wa(t);var i=$l(this,t);if(i!==null){var e=kt();for(i=i.iterator;i.next();){var n=i.value;if(this.lb(n)&&this.mh(n)===t){var o=this.Ke;$t(this,"nodeParentKey",Ot,o,n,t,t),typeof o=="string"&&this.La(n,o),e.push(n)}}for(i=0;i<e.length;i++)Pn(this,t,e[i]);Mt(e)}},d.dm=function(t){G.prototype.dm.call(this,t);var i=this.mh(t);i=this.Ul(i),this.ic(i)===null&&Nn(this,i,t)},d.pp=function(t){G.prototype.pp.call(this,t);var i=this.mh(t);Pn(this,i,t)},d.km=function(t,i){G.prototype.km.call(this,t,i),this.Ls(i,this.rs(t)),this.qe(i,this.mh(t))},d.Sl=function(){return!0},d.ws=function(){return!0},tt.Object.defineProperties(Ji.prototype,{nodeParentKeyProperty:{get:function(){return this.Ke},set:function(t){var i=this.Ke;i!==t&&(this.Ke=t,this.g("nodeParentKeyProperty",i,t))}},Ij:{get:function(){return this.Mm},set:function(t){this.Mm!==t&&(this.Mm=t)}},parentLinkCategoryProperty:{get:function(){return this.nj},set:function(t){var i=this.nj;i!==t&&(this.nj=t,this.g("parentLinkCategoryProperty",i,t))}},linkCategoryProperty:{get:function(){return this.parentLinkCategoryProperty},set:function(t){this.parentLinkCategoryProperty=t}},type:{get:function(){return"TreeModel"}}}),Ji.prototype.setParentLinkCategoryForNodeData=Ji.prototype.Ls,Ji.prototype.getParentLinkCategoryForNodeData=Ji.prototype.rs,Ji.prototype.setParentKeyForNodeData=Ji.prototype.qe,Ji.prototype.getParentKeyForNodeData=Ji.prototype.mh,Ji.className="TreeModel",an.TreeModel=Ji;function It(t){Lt.call(this),this.lw=this.Ym=this.mc=0,this.Vp=360,this.kw=fn,this.Ti=0,this.Zv=new x,this.Ip=this.me=0,this.Wr=new eu,this.ft=this.mj=0,this.ty=600,this.co=NaN,this.Bm=1,this.qo=0,this.tl=360,this.Sb=fn,this.K=Zi,this.nd=Vh,this.hd=xd,this.tf=6,this.Mn=gf,t&&Object.assign(this,t)}pt(It,Lt),It.prototype.cloneProtected=function(t){Lt.prototype.cloneProtected.call(this,t),t.co=this.co,t.Bm=this.Bm,t.qo=this.qo,t.tl=this.tl,t.Sb=this.Sb,t.K=this.K,t.nd=this.nd,t.hd=this.hd,t.tf=this.tf,t.Mn=this.Mn},It.prototype.qb=function(t){t.classType===It?t===cf||t===df||t===ff||t===pf||t===Vh?this.sorting=t:t===Zr||t===Rh||t===Zi||t===gr?this.direction=t:t===Ho||t===dr||t===fn||t===pn?this.arrangement=t:(t===Ts||t===gf)&&(this.nodeDiameterFormula=t):Lt.prototype.qb.call(this,t)},It.prototype.createNetwork=function(){return new Yh(this)},It.prototype.doLayout=function(t){if(this.network===null&&(this.network=this.makeNetwork(t)),this.arrangementOrigin=this.initialOrigin(this.arrangementOrigin),t=this.network.vertexes,1>=t.count)t.count===1&&(t=t.first(),t.centerX=0,t.centerY=0);else{var i=new V;i.addAll(t.iterator),t=new V;var e=new V,n=this.sort(i),o,r,s=this.Ip,h=this.arrangement,l=this.nodeDiameterFormula,u=this.radius;(!isFinite(u)||0>=u)&&(u=NaN);var a=this.aspectRatio;(!isFinite(a)||0>=a)&&(a=1);var f=this.startAngle;isFinite(f)||(f=0);var p=this.sweepAngle;if((!isFinite(p)||360<p||1>p)&&(p=360),i=this.spacing,isFinite(i)||(i=NaN),h===pn&&l===Ts?h=fn:h===pn&&l!==Ts&&(h=this.arrangement),(this.direction===Zr||this.direction===Rh)&&this.sorting!==Vh){for(l=0;!(l>=n.length)&&(t.add(n.M(l)),!(l+1>=n.length));l+=2)e.add(n.M(l+1));this.direction===Zr?(this.arrangement===pn&&t.reverse(),n=new V,n.addAll(t),n.addAll(e)):(this.arrangement===pn&&e.reverse(),n=new V,n.addAll(e),n.addAll(t))}l=n.length;for(var c=r=o=0;c<n.length;c++){var g=f+p*r*(this.direction===Zi?1:-1)/l,y=n.M(c).diameter;isNaN(y)&&(y=yr(n.M(c),g)),360>p&&(c===0||c===n.length-1)&&(y/=2),o+=y,r++}if(isNaN(u)||h===pn){if(isNaN(i)&&(i=6),h!==fn&&h!==pn){for(r=-1/0,s=0;s<l;s++)c=n.M(s),o=n.M(s===l-1?0:s+1),isNaN(c.diameter)&&yr(c,0),isNaN(o.diameter)&&yr(o,0),r=Math.max(r,(c.diameter+o.diameter)/2);s=r+i,h===Ho?u=(r+i)/(2*Math.PI/l):u=uf(this,s*(360<=p?l:l-1),a,f*Math.PI/180,p*Math.PI/180)}else u=uf(this,o+(360<=p?l:l-1)*(h!==pn?i:1.6*i),a,f*Math.PI/180,p*Math.PI/180);r=u*a}else if(r=u*a,c=Ld(this,u,r,f*Math.PI/180,p*Math.PI/180),isNaN(i))(h===fn||h===pn)&&(i=(c-o)/(360<=p?l:l-1));else if(h===fn||h===pn)c=(c-o)/(360<=p?l:l-1),c<i?(u=uf(this,o+i*(360<=p?l:l-1),a,f*Math.PI/180,p*Math.PI/180),r=u*a):i=c;else{for(s=-1/0,o=0;o<l;o++)g=n.M(o),y=n.M(o===l-1?0:o+1),isNaN(g.diameter)&&yr(g,0),isNaN(y.diameter)&&yr(y,0),s=Math.max(s,(g.diameter+y.diameter)/2);s+=i,o=uf(this,s*(360<=p?l:l-1),a,f*Math.PI/180,p*Math.PI/180),o>u?(u=o,r=u*a):s=c/(360<=p?l:l-1)}if(this.kw=h,this.mc=u,this.Ym=a,this.lw=f,this.Vp=p,this.Ti=i,this.me=r,this.Ip=s,i=n,n=this.kw,h=this.mc,u=this.lw,a=this.Vp,f=this.Ti,p=this.me,l=this.Ip,this.direction!==Zr&&this.direction!==Rh||n!==pn)if(this.direction===Zr||this.direction===Rh){switch(s=0,n){case dr:s=180*af(this,h,p,u,l)/Math.PI;break;case fn:l=i=0,s=t.first(),s!==null&&(i=yr(s,Math.PI/2)),s=e.first(),s!==null&&(l=yr(s,Math.PI/2)),s=180*af(this,h,p,u,f+(i+l)/2)/Math.PI;break;case Ho:s=a/i.length}if(this.direction===Zr){switch(n){case dr:iu(this,t,u,gr);break;case fn:tu(this,t,u,gr);break;case Ho:bl(this,t,a/2,u,gr)}switch(n){case dr:iu(this,e,u+s,Zi);break;case fn:tu(this,e,u+s,Zi);break;case Ho:bl(this,e,a/2,u+s,Zi)}}else{switch(n){case dr:iu(this,e,u,gr);break;case fn:tu(this,e,u,gr);break;case Ho:bl(this,e,a/2,u,gr)}switch(n){case dr:iu(this,t,u+s,Zi);break;case fn:tu(this,t,u+s,Zi);break;case Ho:bl(this,t,a/2,u+s,Zi)}}}else switch(n){case dr:iu(this,i,u,this.direction);break;case fn:tu(this,i,u,this.direction);break;case Ho:bl(this,i,a,u,this.direction);break;case pn:Ym(this,i,a,u,this.direction)}else Ym(this,i,a,u-a/2,Zi)}this.updateParts(),this.network=null,this.isValidLayout=!0};function bl(t,i,e,n,o){var r=t.Vp,s=t.mc;t=t.me,n=n*Math.PI/180,e=e*Math.PI/180;for(var h=i.length,l=0;l<h;l++){var u=n+(o===Zi?l*e/(360<=r?h:h-1):-(l*e)/h),a=i.M(l),f=s*Math.tan(u)/t;f=Math.sqrt((s*s+t*t*f*f)/(1+f*f)),a.centerX=f*Math.cos(u),a.centerY=f*Math.sin(u),a.actualAngle=180*u/Math.PI}}function tu(t,i,e,n){var o=t.mc,r=t.me,s=t.Ti;e=e*Math.PI/180;for(var h=i.length,l=0;l<h;l++){var u=i.M(l),a=i.M(l===h-1?0:l+1),f=r*Math.sin(e);u.centerX=o*Math.cos(e),u.centerY=f,u.actualAngle=180*e/Math.PI,isNaN(u.diameter)&&yr(u,0),isNaN(a.diameter)&&yr(a,0),u=af(t,o,r,n===Zi?e:-e,(u.diameter+a.diameter)/2+s),e+=n===Zi?u:-u}}function iu(t,i,e,n){var o=t.mc,r=t.me,s=t.Ip;e=e*Math.PI/180;for(var h=i.length,l=0;l<h;l++){var u=i.M(l);u.centerX=o*Math.cos(e),u.centerY=r*Math.sin(e),u.actualAngle=180*e/Math.PI,u=af(t,o,r,n===Zi?e:-e,s),e+=n===Zi?u:-u}}function Ym(t,i,e,n,o){var r=t.Vp;if(t.mj=0,t.Wr=new eu,360>e){for(r=n+(o===Zi?r:-r);0>r;)r+=360;r%=360,180<r&&(r-=360),r*=Math.PI/180,t.ft=r,Gm(t,i,e,n,o)}else zm(t,i,e,n,o);t.Wr.commit(i)}function zm(t,i,e,n,o){var r=t.mc,s=t.Ti,h=t.Ym,l=r*Math.cos(n*Math.PI/180),u=t.me*Math.sin(n*Math.PI/180),a=i.Fa();if(a.length===3)a[0].centerX=r,a[0].centerY=0,a[1].centerX=a[0].centerX-a[0].width/2-a[1].width/2-s,a[1].y=a[0].y,a[2].centerX=(a[0].centerX+a[1].centerX)/2,a[2].y=a[0].y-a[2].height-s;else if(a.length===4)a[0].centerX=r,a[0].centerY=0,a[2].centerX=-a[0].centerX,a[2].centerY=a[0].centerY,a[1].centerX=0,a[1].y=Math.min(a[0].y,a[2].y)-a[1].height-s,a[3].centerX=0,a[3].y=Math.max(a[0].y+a[0].height+s,a[2].y+a[2].height+s);else{r=x.alloc();for(var f=0;f<a.length&&(a[f].centerX=l,a[f].centerY=u,!(f>=a.length-1));f++)Xm(t,l,u,a,f,o,r)||Km(t,l,u,a,f,o,r),l=r.x,u=r.y;if(x.free(r),t.mj++,!(23<t.mj)){l=a[0].centerX,u=a[0].centerY,r=a[a.length-1].centerX,f=a[a.length-1].centerY;var p=Math.abs(l-r)-((a[0].width+a[a.length-1].width)/2+s),c=Math.abs(u-f)-((a[0].height+a[a.length-1].height)/2+s);s=0,1>Math.abs(c)?Math.abs(l-r)<(a[0].width+a[a.length-1].width)/2&&(s=0):s=0<c?c:1>Math.abs(p)?0:p,l=Math.abs(r)>Math.abs(f)?0<r!=u>f:0<f!=l<r,(l=o===Zi?l:!l)&&(s=-Math.abs(s),s=Math.min(s,-a[a.length-1].width),s=Math.min(s,-a[a.length-1].height)),t.Wr.compare(s,a),1<Math.abs(s)&&(t.mc=8>t.mj?t.mc-s/(2*Math.PI):5>a.length&&10<s?t.mc/2:t.mc-(0<s?1.7:-2.3),t.me=t.mc*h,zm(t,i,e,n,o))}}}function Gm(t,i,e,n,o){for(var r=t.mc,s=t.me,h=t.Ym,l=r*Math.cos(n*Math.PI/180),u=s*Math.sin(n*Math.PI/180),a=x.alloc(),f=i.Fa(),p=0;p<f.length&&(f[p].centerX=l,f[p].centerY=u,!(p>=f.length-1));p++)Xm(t,l,u,f,p,o,a)||Km(t,l,u,f,p,o,a),l=a.x,u=a.y;if(x.free(a),t.mj++,!(23<t.mj)){if(l=Math.atan2(u,l),l=o===Zi?t.ft-l:l-t.ft,l=Math.abs(l)<Math.abs(l-2*Math.PI)?l:l-2*Math.PI,r=l*(r+s)/2,s=t.Wr,Math.abs(r)<Math.abs(s.Ol))for(s.Ol=r,s.lk=[],s.sm=[],l=0;l<f.length;l++)s.lk[l]=f[l].bounds.x,s.sm[l]=f[l].bounds.y;1<Math.abs(r)&&(t.mc=8>t.mj?t.mc-r/(2*Math.PI):t.mc-(0<r?1.7:-2.3),t.me=t.mc*h,Gm(t,i,e,n,o))}}function Xm(t,i,e,n,o,r,s){var h=t.mc,l=t.me,u=0;t=(n[o].width+n[o+1].width)/2+t.Ti;var a=!1;if(0<=e!=(r===Zi)){if(r=i+t,r>h){if(r=i-t,r<-h)return s.x=r,s.y=u,!1;a=!0}}else if(r=i-t,r<-h){if(r=i+t,r>h)return s.x=r,s.y=u,!1;a=!0}return u=Math.sqrt(1-Math.min(1,r*r/(h*h)))*l,0>e!==a&&(u=-u),Math.abs(e-u)>(n[o].height+n[o+1].height)/2?(s.x=r,s.y=u,!1):(s.x=r,s.y=u,!0)}function Km(t,i,e,n,o,r,s){var h=t.mc,l=t.me,u=0;if(t=(n[o].height+n[o+1].height)/2+t.Ti,n=!1,0<=i!=(r===Zi)){if(r=e-t,r<-l){if(r=e+t,r>l){s.x=u,s.y=r;return}n=!0}}else if(r=e+t,r>l){if(r=e-t,r<-l){s.x=u,s.y=r;return}n=!0}u=Math.sqrt(1-Math.min(1,r*r/(l*l)))*h,0>i!==n&&(u=-u),s.x=u,s.y=r}It.prototype.commitLayout=function(){this.commitNodes(),this.isRouting&&this.commitLinks()},It.prototype.commitNodes=function(){var t=this.group!==null&&this.group.placeholder!==null&&this.group.isSubGraphExpanded,i=t?this.group.location.copy():null,e=this.actualCenter;t?e=new x(0,0):(e.x=this.arrangementOrigin.x+this.mc,e.y=this.arrangementOrigin.y+this.me);for(var n=this.network.vertexes.iterator;n.next();){var o=n.value;o.x+=e.x,o.y+=e.y,o.commit()}t&&(this.group.Va(),t=this.group.position.copy(),e=this.group.location.copy(),i=i.re(e.re(t)),this.group.move(i),this.Zv=i.re(t))},It.prototype.commitLinks=function(){for(var t=this.network.edges.iterator;t.next();)t.value.commit()};function Ld(t,i,e,n,o){var r=t.ty;if(.001>Math.abs(t.Ym-1))return n!==void 0&&o!==void 0?o*i:2*Math.PI*i;t=i>e?Math.sqrt(i*i-e*e)/i:Math.sqrt(e*e-i*i)/e;for(var s=0,h=n!==void 0&&o!==void 0?o/(r+1):Math.PI/(2*(r+1)),l=0,u=0;u<=r;u++){n!==void 0&&o!==void 0?l=n+u*o/r:l=u*Math.PI/(2*r);var a=Math.sin(l);s+=Math.sqrt(1-t*t*a*a)*h}return n!==void 0&&o!==void 0?(i>e?i:e)*s:4*(i>e?i:e)*s}function uf(t,i,e,n,o){return i/(n!==void 0&&o!==void 0?Ld(t,1,e,n,o):Ld(t,1,e))}function af(t,i,e,n,o){if(.001>Math.abs(t.Ym-1))return o/i;var r=i>e?Math.sqrt(i*i-e*e)/i:Math.sqrt(e*e-i*i)/e,s=0;t=2*Math.PI/(700*t.network.vertexes.count),i>e&&(n+=Math.PI/2);for(var h=0;;h++){var l=Math.sin(n+h*t);if(s+=(i>e?i:e)*Math.sqrt(1-r*r*l*l)*t,s>=o)return h*t}}It.prototype.sort=function(t){switch(this.sorting){case ff:break;case pf:t.reverse();break;case cf:t.sort(this.comparer);break;case df:t.sort(this.comparer),t.reverse();break;case Vh:return this.$j(d1(t));default:O("Invalid sorting type.")}return t};function d1(t){for(var i=[],e=0;e<t.length;e++)i.push(0);e=new V;for(var n=0;n<t.length;n++){var o=-1,r=-1;if(n===0)for(var s=0;s<t.length;s++){var h=t.M(s).edgesCount;h>o&&(o=h,r=s)}else for(s=0;s<t.length;s++)h=i[s],h>o&&(o=h,r=s);for(e.add(t.M(r)),i[r]=-1,r=t.M(r),s=r.sourceEdges;s.next();)o=t.indexOf(s.value.fromVertex),0>o||0<=i[o]&&i[o]++;for(r=r.destinationEdges;r.next();)o=t.indexOf(r.value.toVertex),0>o||0<=i[o]&&i[o]++}return e}It.prototype.$j=function(t){for(var i=[],e=0;e<t.length;e++){var n=t.M(e);i[e]=[];for(var o,r=n.destinationEdges;r.next();)o=t.indexOf(r.value.toVertex),o!==e&&0>i[e].indexOf(o)&&i[e].push(o);for(n=n.sourceEdges;n.next();)o=t.indexOf(n.value.fromVertex),o!==e&&0>i[e].indexOf(o)&&i[e].push(o)}for(r=[],e=0;e<i.length;e++)r[e]=0;e=[];var s=[],h=[];n=[],o=new V;for(var l=0,u=0;u<i.length;u++){var a=i[u].length;if(a===1)n.push(u);else if(a===0)o.add(t.M(u));else{if(l===0)e.push(u);else{for(var f=a=1/0,p=-1,c=[],g=0;g<e.length;g++)0>i[e[g]].indexOf(e[g===e.length-1?0:g+1])&&c.push(g===e.length-1?0:g+1);if(c.length===0)for(g=0;g<e.length;g++)c.push(g);for(g=0;g<c.length;g++){for(var y=c[g],v=i[u],m=0,w=0;w<s.length;w++){var M=r[s[w]],S=r[h[w]];if(M<S){var N=M;M=S}else N=S;if(N<y&&y<=M)for(S=0;S<v.length;S++){var k=v[S];0>e.indexOf(k)||N<r[k]&&r[k]<M||N===r[k]||M===r[k]||m++}else for(S=0;S<v.length;S++)k=v[S],0>e.indexOf(k)||N<r[k]&&r[k]<M&&N!==r[k]&&M!==r[k]&&m++}for(v=m,w=m=0;w<i[u].length;w++)N=e.indexOf(i[u][w]),0<=N&&(N=Math.abs(y-(N>=y?N+1:N)),m+=N<e.length+1-N?N:e.length+1-N);for(w=0;w<s.length;w++)N=r[s[w]],M=r[h[w]],N>=y&&N++,M>=y&&M++,N>M&&(S=M,M=N,N=S),M-N<(e.length+2)/2==(N<y&&y<=M)&&m++;(v<a||v===a&&m<f)&&(a=v,f=m,p=y)}for(e.splice(p,0,u),a=0;a<e.length;a++)r[e[a]]=a;for(a=0;a<i[u].length;a++)f=i[u][a],0<=e.indexOf(f)&&(s.push(u),h.push(f))}l++}}for(s=e.length;;){for(r=!0,h=0;h<n.length;h++)if(l=n[h],u=i[l][0],a=e.indexOf(u),0<=a){for(p=f=0;p<i[u].length;p++)c=e.indexOf(i[u][p]),0>c||c===a||(g=c>a?c-a:a-c,f+=c<a!=g>s-g?1:-1);e.splice(0>f?a:a+1,0,l),n.splice(h,1),h--}else r=!1;if(r)break;e.push(n[0]),n.splice(0,1)}for(i=0;i<e.length;i++)o.add(t.M(e[i]));return o},tt.Object.defineProperties(It.prototype,{radius:{get:function(){return this.co},set:function(t){this.co!==t&&(0<t||isNaN(t))&&(this.co=t,this.C())}},aspectRatio:{get:function(){return this.Bm},set:function(t){this.Bm!==t&&0<t&&(this.Bm=t,this.C())}},startAngle:{get:function(){return this.qo},set:function(t){this.qo!==t&&(this.qo=t,this.C())}},sweepAngle:{get:function(){return this.tl},set:function(t){this.tl!==t&&(0<t&&360>=t?this.tl=t:this.tl=360,this.C())}},arrangement:{get:function(){return this.Sb},set:function(t){this.Sb===t||t!==pn&&t!==fn&&t!==dr&&t!==Ho||(this.Sb=t,this.C())}},direction:{get:function(){return this.K},set:function(t){this.K===t||t!==Zi&&t!==gr&&t!==Zr&&t!==Rh||(this.K=t,this.C())}},sorting:{get:function(){return this.nd},set:function(t){this.nd===t||t!==ff&&t!==pf&&t!==cf&&!df&&t!==Vh||(this.nd=t,this.C())}},comparer:{get:function(){return this.hd},set:function(t){this.hd!==t&&(this.hd=t,this.C())}},spacing:{get:function(){return this.tf},set:function(t){this.tf!==t&&(this.tf=t,this.C())}},nodeDiameterFormula:{get:function(){return this.Mn},set:function(t){this.Mn===t||t!==gf&&t!==Ts||(this.Mn=t,this.C())}},actualXRadius:{get:function(){return this.mc}},actualYRadius:{get:function(){return this.me}},actualSpacing:{get:function(){return this.Ti}},actualCenter:{get:function(){return this.Zv}}});var fn=new R(It,"ConstantSpacing",0),dr=new R(It,"ConstantDistance",1),Ho=new R(It,"ConstantAngle",2),pn=new R(It,"Packed",3),Zi=new R(It,"Clockwise",4),gr=new R(It,"Counterclockwise",5),Zr=new R(It,"BidirectionalLeft",6),Rh=new R(It,"BidirectionalRight",7),ff=new R(It,"Forwards",8),pf=new R(It,"Reverse",9),cf=new R(It,"Ascending",10),df=new R(It,"Descending",11),Vh=new R(It,"Optimized",12),gf=new R(It,"Pythagorean",13),Ts=new R(It,"Circular",14);It.className="CircularLayout",It.ConstantSpacing=fn,It.ConstantDistance=dr,It.ConstantAngle=Ho,It.Packed=pn,It.Clockwise=Zi,It.Counterclockwise=gr,It.BidirectionalLeft=Zr,It.BidirectionalRight=Rh,It.Forwards=ff,It.Reverse=pf,It.Ascending=cf,It.Descending=df,It.Optimized=Vh,It.Pythagorean=gf,It.Circular=Ts;function eu(){this.Ol=-1/0,this.sm=this.lk=null}eu.prototype.compare=function(t,i){if(0<t&&0>this.Ol||Math.abs(t)<Math.abs(this.Ol)&&!(0>t&&0<this.Ol))for(this.Ol=t,this.lk=[],this.sm=[],t=0;t<i.length;t++)this.lk[t]=i[t].bounds.x,this.sm[t]=i[t].bounds.y},eu.prototype.commit=function(t){if(this.lk!==null&&this.sm!==null)for(var i=0;i<this.lk.length;i++){var e=t.M(i);e.x=this.lk[i],e.y=this.sm[i]}},eu.className="VertexArrangement";function Yh(t){Nt.call(this,t)}pt(Yh,Nt),Yh.prototype.createVertex=function(){return new nu(this)},Yh.prototype.createEdge=function(){return new yf(this)},Yh.className="CircularNetwork";function nu(t){ti.call(this,t),this.u=this.Si=NaN}pt(nu,ti);function yr(t,i){var e=t.network;if(e===null)return NaN;if(e=e.layout,e===null)return NaN;if(e.arrangement===pn)if(e.nodeDiameterFormula===Ts)t.Si=Math.max(t.width,t.height);else{if(e=Math.abs(Math.sin(i)),i=Math.abs(Math.cos(i)),e===0)return t.width;if(i===0)return t.height;t.Si=Math.min(t.height/e,t.width/i)}else t.Si=e.nodeDiameterFormula===Ts?Math.max(t.width,t.height):Math.sqrt(t.width*t.width+t.height*t.height);return t.Si}tt.Object.defineProperties(nu.prototype,{diameter:{get:function(){return this.Si},set:function(t){this.Si!==t&&(this.Si=t)}},actualAngle:{get:function(){return this.u},set:function(t){this.u!==t&&(this.u=t)}}}),nu.className="CircularVertex";function yf(t){de.call(this,t)}pt(yf,de),yf.className="CircularEdge";function xi(t){Lt.call(this),this.ah=null,this.zn=0,this.$d=new Z(100,100).freeze(),this.Am=!1,this.sf=!0,this.td=!1,this.cl=100,this.Zm=1,this.Zf=1e3,this.Hn=10,this.eo=Math,this.Gk=.05,this.Fk=50,this.Dk=150,this.Ek=0,this.Um=10,this.Tm=5,t&&Object.assign(this,t)}pt(xi,Lt),xi.prototype.cloneProtected=function(t){Lt.prototype.cloneProtected.call(this,t),t.$d.assign(this.$d),t.Am=this.Am,t.sf=this.sf,t.td=this.td,t.cl=this.cl,t.Zm=this.Zm,t.Zf=this.Zf,t.Hn=this.Hn,t.eo=this.eo,t.Gk=this.Gk,t.Fk=this.Fk,t.Dk=this.Dk,t.Ek=this.Ek,t.Um=this.Um,t.Tm=this.Tm},xi.prototype.createNetwork=function(){return new Ls(this)},xi.prototype.doLayout=function(t){if(this.network===null&&(this.network=this.makeNetwork(t)),t=this.maxIterations,0<this.network.vertexes.count){this.network.Jo();for(var i=this.network.vertexes.iterator;i.next();){var e=i.value;e.charge=this.electricalCharge(e),e.mass=this.gravitationalMass(e)}for(i=this.network.edges.iterator;i.next();)e=i.value,e.stiffness=this.springStiffness(e),e.length=this.springLength(e);if(this.Bu(),this.zn=0,this.needsClusterLayout()){i=this.network,e=i.Zx();for(var n=e.iterator;n.next();){this.network=n.value;for(var o=this.network.vertexes.iterator;o.next();){var r=o.value;r.Vd=r.vertexes.count,r.sh=1,r.Gj=null,r.We=null}Um(this,0,t)}this.network=i;var s=n=e.iterator;n=this.arrangementSpacing;var h=s.count,l=!0;r=o=0;for(var u=kt(),a=0;a<h+i.vertexes.count+2;a++)u[a]=null;h=0,s.reset();for(var f=T.alloc();s.next();)if(a=s.value,this.computeBounds(a,f),l)l=!1,o=f.x+f.width/2,r=f.y+f.height/2,u[0]=new x(f.x+f.width+n.width,f.y),u[1]=new x(f.x,f.y+f.height+n.height),h=2;else{var p=Hm(u,h,o,r,f.width,f.height,n),c=u[p],g=new x(c.x+f.width+n.width,c.y),y=new x(c.x,c.y+f.height+n.height);for(p+1<h&&u.splice(p+1,0,null),u[p]=g,u[p+1]=y,h++,p=c.x-f.x,c=c.y-f.y,a=a.vertexes.iterator;a.next();)g=a.value,g.centerX+=p,g.centerY+=c}for(T.free(f),a=i.vertexes.iterator;a.next();)s=a.value,p=s.bounds,2>h?(o=p.x+p.width/2,r=p.y+p.height/2,u[0]=new x(p.x+p.width+n.width,p.y),u[1]=new x(p.x,p.y+p.height+n.height),h=2):(l=Hm(u,h,o,r,p.width,p.height,n),f=u[l],c=new x(f.x+p.width+n.width,f.y),p=new x(f.x,f.y+p.height+n.height),l+1<h&&u.splice(l+1,0,null),u[l]=c,u[l+1]=p,h++,s.centerX=f.x+s.width/2,s.centerY=f.y+s.height/2);for(Mt(u),n=e.iterator;n.next();){for(e=n.value,o=e.vertexes.iterator;o.next();)i.dh(o.value);for(e=e.edges.iterator;e.next();)i.Ao(e.value)}}Jm(this,t),this.updateParts()}this.cl=t,this.network=null,this.isValidLayout=!0},xi.prototype.needsClusterLayout=function(){if(3>this.network.vertexes.count)return!1;for(var t=0,i=0,e=this.network.vertexes.first().bounds,n=this.network.vertexes.iterator;n.next();){if(n.value.bounds.Yc(e)&&(t++,2<t))return!0;if(10<i)break;i++}return!1},xi.prototype.computeBounds=function(t,i){var e=!0;for(t=t.vertexes.iterator;t.next();){var n=t.value;e?(e=!1,i.set(n.bounds)):i.ed(n.bounds)}return i};function Um(t,i,e){if(g1(t,i)){var n=t.Zf;t.Zf*=1+1/(i+1);var o=y1(t,i),r=Math.max(0,Math.max(Math.min(t.network.vertexes.count,e*(i+1)/11),10));for(t.maxIterations+=r,Um(t,i+1,e),Jm(t,r),m1(t,o),i=o.vertexes.Fa(),i.sort(function(s,h){return s===null||h===null||s===h?0:h.Vd-s.Vd}),e=0;e<i.length;e++)v1(t,i[e]);t.Zf=n}}function g1(t,i){if(10<i||3>t.network.vertexes.count)return!1;for(t.ah=t.network.vertexes.Fa(),t=t.ah,t.sort(function(e,n){return e===null||n===null||e===n?0:n.Vd-e.Vd}),i=t.length-1;0<=i&&1>=t[i].Vd;)i--;return 1<t.length-i}function y1(t,i){for(var e=t.network,n=new Ls(t),o=0;o<t.ah.length;o++){var r=t.ah[o];if(1<r.Vd){n.dh(r);var s=new Zm;s.Qs=r.Vd,s.Rs=r.width,s.Ps=r.height,s.Sv=r.focus.x,s.Tv=r.focus.y,r.We===null&&(r.We=new V),r.We.add(s),r.sv=r.We.count-1}else break}for(r=e.edges.iterator;r.next();){var h=r.value;o=h.fromVertex,s=h.toVertex,o.network===n&&s.network===n?n.Ao(h):o.network===n?(h=o.Gj,h===null&&(h=new V,o.Gj=h),h.add(s),o.Vd--,o.sh+=s.sh):s.network===n&&(h=s.Gj,h===null&&(h=new V,s.Gj=h),h.add(o),s.Vd--,s.sh+=o.sh)}for(o=n.edges.iterator;o.next();)r=o.value,r.length*=Math.max(1,P.sqrt((r.fromVertex.sh+r.toVertex.sh)/(4*i+1)));for(i=n.vertexes.iterator;i.next();){o=i.value;var l=o.Gj;if(l!==null&&0<l.count&&(s=o.We.M(o.We.count-1).Qs-o.Vd,!(0>=s))){for(var u=h=0,a=l.count-s;a<l.count;a++){var f=l.M(a),p=null;for(r=f.edges.iterator;r.next();){var c=r.value;if(c.Ax(f)===o){p=c;break}}p!==null&&(u+=p.length,h+=f.width*f.height)}r=o.centerX,l=o.centerY,a=o.width,f=o.height,p=o.focus,c=a*f,1>c&&(c=1),h=P.sqrt((h+c+u*u*4/(s*s))/c),s=(h-1)*a/2,h=(h-1)*f/2,o.bounds=new T(r-p.x-s,l-p.y-h,a+2*s,f+2*h),o.focus=new x(p.x+s,p.y+h)}}return t.network=n,e}function m1(t,i){for(var e=t.network.vertexes.iterator;e.next();){var n=e.value;if(n.network=i,n.We!==null){var o=n.We.M(n.sv);n.Vd=o.Qs;var r=o.Sv,s=o.Tv;n.bounds=new T(n.centerX-r,n.centerY-s,o.Rs,o.Ps),n.focus=new x(r,s),n.sv--}}for(e=t.network.edges.iterator;e.next();)e.value.network=i;t.network=i}function v1(t,i){var e=i.Gj;if(e!==null&&e.count!==0){var n=i.centerX,o=i.centerY,r=i.width,s=i.height;i.We!==null&&0<i.We.count&&(s=i.We.M(0),r=s.Rs,s=s.Ps),r=P.sqrt(r*r+s*s)/2;for(var h=!1,l=s=0,u=0,a=i.vertexes.iterator;a.next();){var f=a.value;1>=f.Vd?l++:(h=!0,u++,s+=Math.atan2(i.centerY-f.centerY,i.centerX-f.centerX))}if(l!==0){for(0<u&&(s/=u),u=i=0,i=h?2*Math.PI/(l+1):2*Math.PI/l,l%2===0&&(u=i/2),1<e.count&&e.sort(function(c,g){return c===null||g===null||c===g?0:g.width*g.height-c.width*c.height}),h=l%2===0?0:1,e=e.iterator;e.next();)if(l=e.value,!(1<l.Vd||t.isFixed(l))){for(a=null,f=l.edges.iterator;f.next();){a=f.value;break}f=l.width;var p=l.height;f=P.sqrt(f*f+p*p)/2,a=r+a.length+f,f=s+(i*(h/2>>1)+u)*(h%2===0?1:-1),l.centerX=n+a*Math.cos(f),l.centerY=o+a*Math.sin(f),h++}}}}function Hm(t,i,e,n,o,r,s){var h=9e19,l=-1,u=0;t:for(;u<i;u++){var a=t[u],f=a.x-e,p=a.y-n;if(f=f*f+p*p,f<h){for(p=u-1;0<=p;p--)if(t[p].y>a.y&&t[p].x-a.x<o+s.width)continue t;for(p=u+1;p<i;p++)if(t[p].x>a.x&&t[p].y-a.y<r+s.height)continue t;l=u,h=f}}return l}xi.prototype.Bu=function(){if(this.comments)for(var t=this.network.vertexes.iterator;t.next();)this.addComments(t.value)},xi.prototype.addComments=function(t){var i=t.node;if(i!==null)for(i=i.Mu();i.next();){var e=i.value;if(e.category==="Comment"&&e.isVisible()){var n=this.network.ki(e);n===null&&(n=this.network.Al(e)),n.charge=this.defaultCommentElectricalCharge,e=null;for(var o=n.destinationEdges;o.next();){var r=o.value;if(r.toVertex===t){e=r;break}}if(e===null){for(o=n.sourceEdges;o.next();)if(r=o.value,r.fromVertex===t){e=r;break}}e===null&&(e=this.network.Yj(t,n,null)),e.length=this.defaultCommentSpringLength}}};function Wm(t,i){var e=t.bounds,n=e.x;t=e.y;var o=e.width;e=e.height;var r=i.bounds,s=r.x;i=r.y;var h=r.width;return r=r.height,n+o<s?t>i+r?(e=n+o-s,t=t-i-r,P.sqrt(e*e+t*t)):t+e<i?(n=n+o-s,t=t+e-i,P.sqrt(n*n+t*t)):s-(n+o):n>s+h?t>i+r?(e=n-s-h,t=t-i-r,P.sqrt(e*e+t*t)):t+e<i?(n=n-s-h,t=t+e-i,P.sqrt(n*n+t*t)):n-(s+h):t>i+r?t-(i+r):t+e<i?i-(t+e):.1}function Jm(t,i){for(t.ah=null,i=t.zn+i;t.zn<i&&(t.zn++,x1(t)););t.ah=null}function x1(t){t.ah===null&&(t.ah=t.network.vertexes.Fa());var i=t.ah;if(0>=i.length)return!1;var e=i[0];e.forceX=0,e.forceY=0;for(var n=e.centerX,o=n,r=e=e.centerY,s=1;s<i.length;s++){var h=i[s];h.forceX=0,h.forceY=0;var l=h.centerX;h=h.centerY,n=Math.min(n,l),o=Math.max(o,l),e=Math.min(e,h),r=Math.max(r,h)}(o=o-n>r-e)?i.sort(function(y,v){return y===null||v===null||y===v?0:y.centerX-v.centerX}):i.sort(function(y,v){return y===null||v===null||y===v?0:y.centerY-v.centerY}),e=t.Zf;var u=n=h=0;for(r=0;r<i.length;r++){s=i[r],n=s.bounds,h=s.focus,l=n.x+h.x;var a=n.y+h.y;n=s.charge*t.electricalFieldX(l,a),u=s.charge*t.electricalFieldY(l,a),n+=s.mass*t.gravitationalFieldX(l,a),u+=s.mass*t.gravitationalFieldY(l,a),s.forceX+=n,s.forceY+=u;for(var f=r+1;f<i.length;f++){var p=i[f];if(p!==s){n=p.bounds,h=p.focus,u=n.x+h.x;var c=n.y+h.y;if(l-u>e||u-l>e){if(o)break}else if(a-c>e||c-a>e){if(!o)break}else{var g=Wm(s,p);1>g?(n=t.randomNumberGenerator,n===null&&(t.randomNumberGenerator=n=new mf),g=n.random(),h=n.random(),l>u?(n=Math.abs(p.bounds.right-s.bounds.x),n=(1+n)*g):l<u?(n=Math.abs(p.bounds.x-s.bounds.right),n=-(1+n)*g):(n=Math.max(p.width,s.width),n=(1+n)*g-n/2),a>c?(u=Math.abs(p.bounds.bottom-s.bounds.y),u=(1+u)*h):l<u?(u=Math.abs(p.bounds.y-s.bounds.bottom),u=-(1+u)*h):(u=Math.max(p.height,s.height),u=(1+u)*h-u/2)):(h=-(s.charge*p.charge)/(g*g),n=(u-l)/g*h,u=(c-a)/g*h),s.forceX+=n,s.forceY+=u,p.forceX-=n,p.forceY-=u}}}}for(o=t.network.edges.iterator;o.next();)h=o.value,e=h.fromVertex,r=h.toVertex,s=e.bounds,l=e.focus,n=s.x+l.x,s=s.y+l.y,a=r.bounds,f=r.focus,l=a.x+f.x,a=a.y+f.y,f=Wm(e,r),1>f?(f=t.randomNumberGenerator,f===null&&(t.randomNumberGenerator=f=new mf),h=f.random(),f=f.random(),n=(n>l?1:-1)*(1+(r.width>e.width?r.width:e.width))*h,u=(s>a?1:-1)*(1+(r.height>e.height?r.height:e.height))*f):(h=h.stiffness*(f-h.length),n=(l-n)/f*h,u=(a-s)/f*h),e.forceX+=n,e.forceY+=u,r.forceX-=n,r.forceY-=u;for(o=n=0;o<i.length;o++)e=i[o],t.isFixed(e)?t.moveFixedVertex(e):n=Math.max(n,t.moveVertex(e)||0);return n>t.epsilonDistance*t.epsilonDistance}xi.prototype.moveVertex=function(t){var i=t.forceX,e=t.forceY,n=this.moveLimit;return i<-n?i=-n:i>n&&(i=n),e<-n?e=-n:e>n&&(e=n),t.centerX+=i,t.centerY+=e,i*i+e*e},xi.prototype.moveFixedVertex=function(){},xi.prototype.commitLayout=function(){this.yv(),this.commitNodes(),this.isRouting&&this.commitLinks()},xi.prototype.yv=function(){if(this.setsPortSpots)for(var t=this.network.edges.iterator;t.next();){var i=t.value.link;i!==null&&(i.fromSpot=Si,i.toSpot=Si)}},xi.prototype.commitNodes=function(){var t=0,i=0;if(this.arrangesToOrigin){var e=T.alloc();this.computeBounds(this.network,e),i=this.arrangementOrigin,t=i.x-e.x,i=i.y-e.y,T.free(e)}e=T.alloc();for(var n=this.network.vertexes.iterator;n.next();){var o=n.value;(t!==0||i!==0)&&(e.assign(o.bounds),e.x+=t,e.y+=i,o.bounds=e),o.commit()}T.free(e)},xi.prototype.commitLinks=function(){for(var t=this.network.edges.iterator;t.next();)t.value.commit()},xi.prototype.springStiffness=function(t){return t=t.stiffness,isNaN(t)?this.Gk:t},xi.prototype.springLength=function(t){return t=t.length,isNaN(t)?this.Fk:t},xi.prototype.electricalCharge=function(t){return t=t.charge,isNaN(t)?this.Dk:t},xi.prototype.electricalFieldX=function(){return 0},xi.prototype.electricalFieldY=function(){return 0},xi.prototype.gravitationalMass=function(t){return t=t.mass,isNaN(t)?this.Ek:t},xi.prototype.gravitationalFieldX=function(){return 0},xi.prototype.gravitationalFieldY=function(){return 0},xi.prototype.isFixed=function(t){return t.isFixed},tt.Object.defineProperties(xi.prototype,{currentIteration:{get:function(){return this.zn}},arrangementSpacing:{get:function(){return this.$d},set:function(t){this.$d.D(t)||(this.$d.assign(t),this.C())}},arrangesToOrigin:{get:function(){return this.Am},set:function(t){this.Am!==t&&(this.Am=t,this.C())}},setsPortSpots:{get:function(){return this.sf},set:function(t){this.sf!==t&&(this.sf=t,this.C())}},comments:{get:function(){return this.td},set:function(t){this.td!==t&&(this.td=t,this.C())}},maxIterations:{get:function(){return this.cl},set:function(t){this.cl!==t&&0<=t&&(this.cl=t,this.C())}},epsilonDistance:{get:function(){return this.Zm},set:function(t){this.Zm!==t&&0<t&&(this.Zm=t,this.C())}},infinityDistance:{get:function(){return this.Zf},set:function(t){this.Zf!==t&&1<t&&(this.Zf=t,this.C())}},moveLimit:{get:function(){return this.Hn},set:function(t){this.Hn!==t&&1<t&&(this.Hn=t,this.C())}},randomNumberGenerator:{get:function(){return this.eo},set:function(t){this.eo!==t&&(t!==null&&typeof t.random!="function"&&O('ForceDirectedLayout.randomNumberGenerator must have a "random()" function on it: '+t),this.eo=t)}},defaultSpringStiffness:{get:function(){return this.Gk},set:function(t){this.Gk!==t&&(this.Gk=t,this.C())}},defaultSpringLength:{get:function(){return this.Fk},set:function(t){this.Fk!==t&&(this.Fk=t,this.C())}},defaultElectricalCharge:{get:function(){return this.Dk},set:function(t){this.Dk!==t&&(this.Dk=t,this.C())}},defaultGravitationalMass:{get:function(){return this.Ek},set:function(t){this.Ek!==t&&(this.Ek=t,this.C())}},defaultCommentSpringLength:{get:function(){return this.Um},set:function(t){this.Um!==t&&(this.Um=t,this.C())}},defaultCommentElectricalCharge:{get:function(){return this.Tm},set:function(t){this.Tm!==t&&(this.Tm=t,this.C())}}}),xi.className="ForceDirectedLayout";function Zm(){this.Tv=this.Sv=this.Ps=this.Rs=this.Qs=0}Zm.className="ForceDirectedSubnet";function Ls(t){Nt.call(this,t)}pt(Ls,Nt),Ls.prototype.createVertex=function(){return new ou(this)},Ls.prototype.createEdge=function(){return new ru(this)},Ls.className="ForceDirectedNetwork";function ou(t){ti.call(this,t),this.ia=!1,this.Ha=this.u=NaN,this.sh=this.Vd=this.V=this.F=0,this.We=this.Gj=null,this.sv=0}pt(ou,ti),tt.Object.defineProperties(ou.prototype,{isFixed:{get:function(){return this.ia},set:function(t){this.ia!==t&&(this.ia=t)}},charge:{get:function(){return this.u},set:function(t){this.u!==t&&(this.u=t)}},mass:{get:function(){return this.Ha},set:function(t){this.Ha!==t&&(this.Ha=t)}},forceX:{get:function(){return this.F},set:function(t){this.F!==t&&(this.F=t)}},forceY:{get:function(){return this.V},set:function(t){this.V!==t&&(this.V=t)}}}),ou.className="ForceDirectedVertex";function ru(t){de.call(this,t),this.j=this.o=NaN}pt(ru,de),tt.Object.defineProperties(ru.prototype,{stiffness:{get:function(){return this.o},set:function(t){this.o!==t&&(this.o=t)}},length:{get:function(){return this.j},set:function(t){this.j!==t&&(this.j=t)}}}),ru.className="ForceDirectedEdge";function mf(){var t=0;this.seed=t,this.ay=48271,this.ey=2147483647,this.Q=44488.07041494893,this.gy=3399,this.by=1/2147483647,this.random()}mf.prototype.random=function(){var t=this.seed%this.Q*this.ay-this.seed/this.Q*this.gy;return 0<t?this.seed=t:this.seed=t+this.ey,this.seed*this.by},mf.className="RandomNumberGenerator";function mt(t){Lt.call(this),this.lc=this.ie=25,this.K=0,this.Ck=Sf,this.Yk=Nf,this.Pk=Pf,this.bj=4,this.qk=kf,this.bg=15,this.sf=!0,this.Bn=4,this.Ra=this.Hq=this.Ia=-1,this.Md=this.Gn=0,this.Ta=this.Kd=this.Ld=this.he=this.vb=null,this.Jn=0,this.In=this.kj=null,this.le=0,this.el=null,this.Rf=new x,this.He=[],this.He.length=100,this.xw=this.ve=0,t&&Object.assign(this,t)}pt(mt,Lt),mt.prototype.cloneProtected=function(t){Lt.prototype.cloneProtected.call(this,t),t.ie=this.ie,t.lc=this.lc,t.K=this.K,t.Ck=this.Ck,t.Yk=this.Yk,t.Pk=this.Pk,t.bj=this.bj,t.qk=this.qk,t.bg=this.bg,t.sf=this.sf,t.Bn=this.Bn,t.ve=this.ve},mt.prototype.qb=function(t){t.classType===mt?t.name.indexOf("Aggressive")===0?this.aggressiveOption=t:t.name.indexOf("Cycle")===0?this.cycleRemoveOption=t:t.name.indexOf("Init")===0?this.initializeOption=t:t.name.indexOf("Layer")===0?this.layeringOption=t:O("Unknown enum value: "+t):Lt.prototype.qb.call(this,t)},mt.prototype.createNetwork=function(){return new Gh(this)},mt.prototype.doLayout=function(t){for(this.network===null&&(this.network=this.makeNetwork(t)),this.arrangementOrigin=this.initialOrigin(this.arrangementOrigin),this.Hq=-1,this.Md=this.Gn=0,this.el=this.In=this.kj=null,t=0;t<this.He.length;t++)this.He[t]=null;if(0<this.network.vertexes.count){for(this.network.Jo(),this.cycleRemoveOption!==hu&&this.removeCycles(),t=this.network.vertexes.iterator;t.next();)t.value.layer=-1;for(this.Ia=-1,this.assignLayers(),t.reset();t.next();)this.Ia=Math.max(this.Ia,t.value.layer);this.cycleRemoveOption===hu&&this.removeCycles(),t=this.network;for(var i=[],e=t.edges.iterator;e.next();){var n=e.value;n.valid=!1,i.push(n)}for(e=0;e<i.length;e++){n=i[e];var o=n.fromVertex,r=n.toVertex;if(!(n.valid||(o.node===null&&o.data===null||r.node===null&&r.data===null)&&o.layer===r.layer)){var s=0,h=0,l=0,u=0;if(n.link!==null){if(h=n.link,h===null)continue;var a=o.node;if(s=r.node,a===null||s===null)continue;var f=h.fromNode;l=h.toNode;for(var p=h.fromPort;p!==null&&!p.Ed();)p=p.panel;for(h=h.toPort;h!==null&&!h.Ed();)h=h.panel;if(n.rev){u=f;var c=p;f=l,p=h,l=u,h=c}var g=o.focus;u=r.focus;var y=n.rev?r.bounds:o.bounds;c=x.alloc(),a!==f?y.w()&&f.isVisible()?f.actualBounds.w()?(zo(f,p,vt,c),c.x+=f.actualBounds.x-y.x,c.y+=f.actualBounds.y-y.y):(zo(f,p,vt,c),c.w()||c.assign(g)):c.assign(g):y.w()?(zo(f,p,vt,c),c.w()||c.assign(g)):c.assign(g),f=n.rev?o.bounds:r.bounds,a=x.alloc(),s!==l?f.w()&&l.isVisible()?l.actualBounds.w()?(zo(l,h,vt,a),a.x+=l.actualBounds.x-f.x,a.y+=l.actualBounds.y-f.y):(zo(l,h,vt,a),a.w()||a.assign(u)):a.assign(u):f.w()?(zo(l,h,vt,a),a.w()||a.assign(u)):a.assign(u),this.K===90||this.K===270?(s=Math.round((c.x-g.x)/this.lc),l=c.x,h=Math.round((a.x-u.x)/this.lc),u=a.x):(s=Math.round((c.y-g.y)/this.lc),l=c.y,h=Math.round((a.y-u.y)/this.lc),u=a.y),x.free(c),x.free(a),n.portFromColOffset=s,n.portFromPos=l,n.portToColOffset=h,n.portToPos=u}else n.portFromColOffset=0,n.portFromPos=0,n.portToColOffset=0,n.portToPos=0;if(c=o.layer,a=r.layer,f=0,y=n.link,y!==null){var v=y.fromPort,m=y.toPort;if(v!==null&&m!==null){var w=y.fromNode;if(p=y.toNode,w!==null&&p!==null){var M=Mf(this,!0),S=Mf(this,!1),N=this.setsPortSpots?M:y.computeSpot(!0,v);g=this.setsPortSpots?S:y.computeSpot(!1,m);var k=y.isOrthogonal;N.$c()&&N.Hf(S)&&g.$c()&&g.Hf(M)?f=0:(M=y.getLinkPoint(w,v,N,!0,k,p,m,x.alloc()),S=y.getLinkDirection(w,v,M,N,!0,k,p,m),x.free(M),N.xs()||S!==nv(this,n,!0)?this.setsPortSpots&&w!==null&&w.ports.count===1&&n.rev&&(f+=1):f+=1,N=y.getLinkPoint(p,m,g,!1,k,w,v,x.alloc()),y=y.getLinkDirection(p,m,N,g,!1,k,w,v),x.free(N),g.xs()||y!==nv(this,n,!1)?this.setsPortSpots&&p!==null&&p.ports.count===1&&n.rev&&(f+=2):f+=2)}}}if(p=f,f=p===1||p===3,p=p===2||p===3,y=null,v=void 0,p&&(this._experimental&&(g=o,y=[],y.push(r),y=ov(this,g,y)?y.reverse():[],v=1),g=t.createVertex(),g.node=null,g.Cu=1,g.layer=c,g.near=o,t.dh(g),o=t.Yj(o,g,n.link),o.valid=!1,o.rev=n.rev,o.portFromColOffset=s,o.portToColOffset=0,o.portFromPos=l,o.portToPos=0,o=g),m=1,f&&m--,c-a>m&&0<c){for(n.valid=!1,g=t.createVertex(),g.node=null,g.Cu=2,g.layer=c-1,y&&v<y.length&&g.layer===y[v].layer&&(g.near=y[v++]),t.dh(g),o=t.Yj(o,g,n.link),o.valid=!0,o.rev=n.rev,o.portFromColOffset=p?0:s,o.portToColOffset=0,o.portFromPos=p?0:l,o.portToPos=0,o=g,c--;c-a>m&&0<c;)g=t.createVertex(),g.node=null,g.Cu=3,g.layer=c-1,y&&v<y.length&&g.layer===y[v].layer&&(g.near=y[v++]),t.dh(g),o=t.Yj(o,g,n.link),o.valid=!0,o.rev=n.rev,o.portFromColOffset=0,o.portToColOffset=0,o.portFromPos=0,o.portToPos=0,o=g,c--;o=t.Yj(g,r,n.link),o.valid=!f,f&&(g.near=r),o.rev=n.rev,o.portFromColOffset=0,o.portToColOffset=h,o.portFromPos=0,o.portToPos=u}else n.valid=!0}}for(t=this.vb=[],i=0;i<=this.Ia;i++)t[i]=0;for(i=this.network.vertexes.iterator;i.next();)i.value.index=-1;for(this.initializeIndices(),this.Hq=-1,e=this.Md=this.Gn=0;e<=this.Ia;e++)t[e]>t[this.Md]&&(this.Hq=t[e]-1,this.Md=e),t[e]<t[this.Gn]&&(this.Gn=e);for(this.el=[],e=0;e<t.length;e++)this.el[e]=[];for(i.reset();i.next();)t=i.value,this.el[t.layer][t.index]=t;for(this.Ra=-1,t=0;t<=this.Ia;t++){for(i=mr(this,t),e=0,n=this.vb[t],r=0;r<n;r++)o=i[r],e+=this.nodeMinColumnSpace(o,!0),o.column=e,e+=1,e+=this.nodeMinColumnSpace(o,!1);this.Ra=Math.max(this.Ra,e-1),vr(this,t,i)}this.reduceCrossings(),this.straightenAndPack(),this.updateParts()}this.network=null,this.isValidLayout=!0},mt.prototype.linkMinLength=function(){return 1};function jd(t){var i=t.fromVertex.node||t.fromVertex.data;return t=t.toVertex.node||t.toVertex.data,i===null&&t===null?8:i===null||t===null?4:1}mt.prototype.nodeMinLayerSpace=function(t,i){return t.node===null&&t.data===null?0:this.K===90||this.K===270?i?t.focus.y+10:t.bounds.height-t.focus.y+10:i?t.focus.x+10:t.bounds.width-t.focus.x+10},mt.prototype.nodeMinColumnSpace=function(t,i){if(t.node===null&&t.data===null)return 0;var e=i?t.ev:t.dv;return e!==null?e:(e=this.K,e===90||e===270?i?t.ev=t.focus.x/this.lc+1|0:t.dv=(t.bounds.width-t.focus.x)/this.lc+1|0:i?t.ev=t.focus.y/this.lc+1|0:t.dv=(t.bounds.height-t.focus.y)/this.lc+1|0)};function ee(t){t.kj===null&&(t.kj=[]);for(var i=0,e=t.network.vertexes.iterator;e.next();){var n=e.value;t.kj[i]=n.layer,i++,t.kj[i]=n.column,i++,t.kj[i]=n.index,i++}return t.kj}function Ve(t,i){var e=0;for(t=t.network.vertexes.iterator;t.next();){var n=t.value;n.layer=i[e],e++,n.column=i[e],e++,n.index=i[e],e++}}function _m(t,i,e){var n=mr(t,i),o=t.vb[i];(t.In===null||t.In.length<o*o)&&(t.In=[]);for(var r=t.In,s=0;s<o;s++){var h=0,l=n[s],u=l.near;u!==null&&u!==l&&u.layer===l.layer&&(h+=Math.max(0,Math.abs(u.index-l.index)-1));var a;if(0<=e){var f=n[s].sourceEdgesArrayAccess;for(l=0;l<f.length;l++){var p=f[l];if(p.valid&&p.fromVertex.layer!==i){u=p.fromVertex.index;var c=p.portToPos;for(p=p.portFromPos,a=l+1;a<f.length;a++){var g=f[a];if(g.valid&&g.fromVertex.layer!==i){var y=g.fromVertex.index,v=g.portToPos;g=g.portFromPos,c<v&&(u>y||u===y&&p>g)&&h++,v<c&&(y>u||y===u&&g>p)&&h++}}}}}if(0>=e){for(f=n[s].destinationEdgesArrayAccess,l=0;l<f.length;l++)if(p=f[l],p.valid&&p.toVertex.layer!==i)for(u=p.toVertex.index,c=p.portToPos,p=p.portFromPos,a=l+1;a<f.length;a++)g=f[a],g.valid&&g.toVertex.layer!==i&&(y=g.toVertex.index,v=g.portToPos,g=g.portFromPos,p<g&&(u>y||u===y&&c>v)&&h++,g<p&&(y>u||y===u&&v>c)&&h++)}for(r[s*o+s]=h,h=s+1;h<o;h++){var m=0,w=0;if(0<=e){f=n[s].sourceEdgesArrayAccess;var M=n[h].sourceEdgesArrayAccess;for(l=0;l<f.length;l++)if(p=f[l],p.valid&&p.fromVertex.layer!==i)for(u=p.fromVertex.index,p=p.portFromPos,a=0;a<M.length;a++)g=M[a],g.valid&&g.fromVertex.layer!==i&&(y=g.fromVertex.index,g=g.portFromPos,(u<y||u===y&&p<g)&&w++,(y<u||y===u&&g<p)&&m++)}if(0>=e){for(f=n[s].destinationEdgesArrayAccess,M=n[h].destinationEdgesArrayAccess,l=0;l<f.length;l++)if(p=f[l],p.valid&&p.toVertex.layer!==i)for(u=p.toVertex.index,c=p.portToPos,a=0;a<M.length;a++)g=M[a],g.valid&&g.toVertex.layer!==i&&(y=g.toVertex.index,v=g.portToPos,(u<y||u===y&&c<v)&&w++,(y<u||y===u&&v<c)&&m++)}r[s*o+h]=m,r[h*o+s]=w}}return vr(t,i,n),r}mt.prototype.countCrossings=function(){for(var t=0,i=0;i<=this.Ia;i++)for(var e=_m(this,i,1),n=this.vb[i],o=0;o<n;o++)for(var r=o;r<n;r++)t+=e[o*n+r];return t};function vf(t){for(var i=0,e=0;e<=t.Ia;e++){for(var n=t,o=e,r=mr(n,o),s=n.vb[o],h=0,l=0;l<s;l++){var u=r[l].destinationEdgesArrayAccess;if(u!==null)for(var a=0;a<u.length;a++){var f=u[a];if(f.valid&&f.toVertex.layer!==o){var p=f.fromVertex.column+f.portFromColOffset,c=f.toVertex.column+f.portToColOffset;h+=(Math.abs(p-c)+1)*jd(f)}}}vr(n,o,r),i+=h}return i}mt.prototype.normalize=function(){var t=1/0;this.Ra=-1;for(var i=this.network.vertexes.iterator;i.next();){var e=i.value;t=Math.min(t,e.column-this.nodeMinColumnSpace(e,!0)),this.Ra=Math.max(this.Ra,e.column+this.nodeMinColumnSpace(e,!1))}for(i.reset();i.next();)i.value.column-=t;this.Ra-=t};function Fd(t,i,e){for(var n=mr(t,i),o=t.vb[i],r=[],s=0;s<o;s++){var h=n[s],l=null;0>=e&&(l=h.sourceEdgesArrayAccess);var u=null;0<=e&&(u=h.destinationEdgesArrayAccess);var a=0,f=0,p=h.near;if(p!==null&&p.layer===h.layer&&(a+=p.column-1,f++),l!==null)for(p=0;p<l.length;p++){h=l[p];var c=h.fromVertex;h.valid&&!h.rev&&c.layer!==i&&(a+=c.column,f++)}if(u!==null)for(l=0;l<u.length;l++)h=u[l],p=h.toVertex,h.valid&&!h.rev&&p.layer!==i&&(a+=p.column,f++);r[s]=f===0?-1:a/f}return vr(t,i,n),r}function $m(t,i,e){for(var n=mr(t,i),o=t.vb[i],r=[],s=0;s<o;s++){var h=n[s],l=null;0>=e&&(l=h.sourceEdgesArrayAccess);var u=null;0<=e&&(u=h.destinationEdgesArrayAccess);var a=0,f=[],p=h.near;if(p!==null&&p.layer===h.layer&&(f[a]=p.column-1,a++),h=void 0,l!==null)for(p=0;p<l.length;p++){h=l[p];var c=h.fromVertex;h.valid&&!h.rev&&c.layer!==i&&(f[a]=c.column+h.portFromColOffset,a++)}if(u!==null)for(l=0;l<u.length;l++)h=u[l],p=h.toVertex,h.valid&&!h.rev&&p.layer!==i&&(f[a]=p.column+h.portToColOffset,a++);a===0?r[s]=-1:(f.sort(function(g,y){return g-y}),u=a>>1,r[s]=a&1?f[u]:f[u-1]+f[u]>>1)}return vr(t,i,n),r}function su(t,i,e,n,o,r){if(i.component===n){if(i.component=e,o)for(var s=i.destinationEdges;s.next();){var h=s.value,l=h.toVertex,u=i.layer-l.layer;h=t.linkMinLength(h),u===h&&su(t,l,e,n,o,r)}if(r)for(s=i.sourceEdges;s.next();)h=s.value,l=h.fromVertex,u=l.layer-i.layer,h=t.linkMinLength(h),u===h&&su(t,l,e,n,o,r)}}function Ad(t,i,e,n,o,r){if(i.component===n){if(i.component=e,o)for(var s=i.destinationEdges;s.next();)Ad(t,s.value.toVertex,e,n,o,r);if(r)for(i=i.sourceEdges;i.next();)Ad(t,i.value.fromVertex,e,n,o,r)}}mt.prototype.removeCycles=function(){for(var t=this.network.edges.iterator;t.next();)t.value.rev=!1;switch(this.Ck){default:case Dd:t=this.network;var i=0,e=t.vertexes.count-1,n=[];n.length=e+1;for(var o=t.vertexes.iterator;o.next();)o.value.valid=!0;for(;w1(t)!==null;){for(o=Qm(t);o!==null;)n[e]=o,e--,o.valid=!1,o=Qm(t);for(o=qm(t);o!==null;)n[i]=o,i++,o.valid=!1,o=qm(t);o=null;for(var r=0,s=this.network.vertexes.iterator;s.next();){var h=s.value;if(h.valid){for(var l=0,u=h.destinationEdges;u.next();)u.value.toVertex.valid&&l++;u=0;for(var a=h.sourceEdges;a.next();)a.value.fromVertex.valid&&u++;(o===null||r<l-u)&&(o=h,r=l-u)}}o!==null&&(n[i]=o,i++,o.valid=!1)}for(i=0;i<t.vertexes.count;i++)n[i].index=i;for(n=t.edges.iterator;n.next();)i=n.value,i.fromVertex.index>i.toVertex.index&&(t.fm(i),i.rev=!0);break;case Sf:for(n=this.network.vertexes.iterator;n.next();)t=n.value,t.Kl=-1,t.finish=-1;for(t=this.network.edges.iterator;t.next();)t.value.forest=!1;for(this.Jn=0,n.reset();n.next();)i=n.value,i.sourceEdges.count===0&&Od(this,i);for(n.reset();n.next();)i=n.value,i.Kl===-1&&Od(this,i);for(t.reset();t.next();)n=t.value,n.forest||(i=n.fromVertex,e=i.finish,o=n.toVertex,r=o.finish,o.Kl<i.Kl&&e<r&&(this.network.fm(n),n.rev=!0));break;case hu:for(t=this.network,i=t.vertexes.iterator,n=1/0;i.next();)n=Math.min(n,i.value.layer);if(1/0>n){if(0>n)for(i.reset();i.next();)i.value.layer-=n;for(n=[],i.reset();i.next();)e=i.value,o=n[e.layer],o===void 0?n[e.layer]=[e]:o.push(e);for(e=i=0;e<n.length;e++)if(o=n[e],!o||o.length===0)i++;else if(0<e)for(r=0;r<o.length;r++)o[r].layer-=i;for(n=t.edges.iterator;n.next();)i=n.value,i.fromVertex.layer<i.toVertex.layer&&(t.fm(i),i.rev=!0)}}};function w1(t){for(t=t.vertexes.iterator;t.next();){var i=t.value;if(i.valid)return i}return null}function Qm(t){for(t=t.vertexes.iterator;t.next();){var i=t.value;if(i.valid){for(var e=!0,n=i.destinationEdges;n.next();)if(n.value.toVertex.valid){e=!1;break}if(e)return i}}return null}function qm(t){for(t=t.vertexes.iterator;t.next();){var i=t.value;if(i.valid){for(var e=!0,n=i.sourceEdges;n.next();)if(n.value.fromVertex.valid){e=!1;break}if(e)return i}}return null}function Od(t,i){i.Kl=t.Jn,t.Jn++;for(var e=i.destinationEdges;e.next();){var n=e.value,o=n.toVertex;o.Kl===-1&&(n.forest=!0,Od(t,o))}i.finish=t.Jn,t.Jn++}mt.prototype.assignLayers=function(){switch(this.Yk){case Ed:bm(this);break;case Bd:for(var t,i=this.network.vertexes.iterator;i.next();)t=iv(this,i.value),this.Ia=Math.max(t,this.Ia);for(i.reset();i.next();)t=i.value,t.layer=this.Ia-t.layer;break;default:case Nf:for(bm(this),i=this.network.vertexes.iterator;i.next();)i.value.valid=!1;for(i.reset();i.next();)t=i.value,t.sourceEdges.count===0&&ev(this,t);for(t=1/0,i.reset();i.next();)t=Math.min(t,i.value.layer);for(this.Ia=-1,i.reset();i.next();){var e=i.value;e.layer-=t,this.Ia=Math.max(this.Ia,e.layer)}}};function bm(t){for(var i=t.network.vertexes.iterator;i.next();){var e=tv(t,i.value);t.Ia=Math.max(e,t.Ia)}}function tv(t,i){var e=0;if(i.layer===-1){for(var n=i.destinationEdges;n.next();){var o=n.value,r=o.toVertex;o=t.linkMinLength(o),e=Math.max(e,tv(t,r)+o)}i.layer=e}else e=i.layer;return e}function iv(t,i){var e=0;if(i.layer===-1){for(var n=i.sourceEdges;n.next();){var o=n.value,r=o.fromVertex;o=t.linkMinLength(o),e=Math.max(e,iv(t,r)+o)}i.layer=e}else e=i.layer;return e}function ev(t,i){if(!i.valid){i.valid=!0;for(var e=i.destinationEdges;e.next();)ev(t,e.value.toVertex);for(e=t.network.vertexes.iterator;e.next();)e.value.component=-1;for(var n=i.sourceEdgesArrayAccess,o=n.length,r=0;r<o;r++){var s=n[r],h=s.fromVertex,l=s.toVertex;s=t.linkMinLength(s),h.layer-l.layer>s&&su(t,h,0,-1,!0,!1)}for(su(t,i,1,-1,!0,!0);i.component!==0;){for(r=0,n=1/0,h=0,l=null,s=t.network.vertexes.iterator;s.next();){var u=s.value;if(u.component===1){var a=0,f=!1,p=u.sourceEdgesArrayAccess;o=p.length;for(var c=0;c<o;c++){var g=p[c],y=g.fromVertex;a+=1,y.component!==1&&(r+=1,y=y.layer-u.layer,g=t.linkMinLength(g),n=Math.min(n,y-g))}for(p=u.destinationEdgesArrayAccess,o=p.length,c=0;c<o;c++)g=p[c].toVertex,--a,g.component!==1?--r:f=!0;(l===null||a<h)&&!f&&(l=u,h=a)}}if(0<r){for(e.reset();e.next();)o=e.value,o.component===1&&(o.layer+=n);i.component=0}else l.component=0}for(e=t.network.vertexes.iterator;e.next();)e.value.component=-1;for(su(t,i,1,-1,!0,!1);i.component!==0;){for(n=0,o=1/0,r=0,h=null,l=t.network.vertexes.iterator;l.next();)if(s=l.value,s.component===1){for(u=0,a=!1,p=s.sourceEdgesArrayAccess,f=p.length,c=0;c<f;c++)g=p[c].fromVertex,u+=1,g.component!==1?n+=1:a=!0;for(p=s.destinationEdgesArrayAccess,f=p.length,c=0;c<f;c++)g=p[c],y=g.toVertex,--u,y.component!==1&&(--n,y=s.layer-y.layer,g=t.linkMinLength(g),o=Math.min(o,y-g));(h===null||u>r)&&!a&&(h=s,r=u)}if(0>n){for(e.reset();e.next();)n=e.value,n.component===1&&(n.layer-=o);i.component=0}else h.component=0}}}function nv(t,i,e){return t.K===90?e&&!i.rev||!e&&i.rev?270:90:t.K===180?e&&!i.rev||!e&&i.rev?0:180:t.K===270?e&&!i.rev||!e&&i.rev?90:270:e&&!i.rev||!e&&i.rev?180:0}function ov(t,i,e){for(var n=e[e.length-1].sourceEdges.iterator;n.next();){var o=n.value;if(!o.rev&&o.valid){if(o=o.fromVertex,e.push(o),o===i||ov(t,i,e))return!0;e.pop()}}return!1}mt.prototype.initializeIndices=function(){switch(this.Pk){default:case Vd:M1(this);break;case Pf:var t=null,i=this.network.vertexes.iterator;if(this._experimental)for(;i.next();){var e=i.value;if(e.near&&(t===null&&(t=new _),e.layer===e.near.layer)){var n=t.get(e.near)||[];n.push(e),t.set(e.near,n)}}for(e=this.Ia;0<=e;e--)for(i.reset();i.next();)n=i.value,n.layer===e&&n.index===-1&&rv(this,n,t);break;case Rd:if(t=null,i=this.network.vertexes.iterator,this._experimental)for(;i.next();)e=i.value,e.near&&(t===null&&(t=new _),e.layer===e.near.layer&&(n=t.get(e.near)||[],n.push(e),t.set(e.near,n)));for(e=0;e<=this.Ia;e++)for(i.reset();i.next();)n=i.value,n.layer===e&&n.index===-1&&sv(this,n,t)}};function M1(t){var i=null,e=t.network.vertexes.iterator;if(t._experimental){for(;e.next();){var n=e.value;if(n.near&&(i===null&&(i=new _),n.layer===n.near.layer)){var o=i.get(n.near)||[];o.push(n),i.set(n.near,o)}}e.reset()}for(n={};e.next();)o=e.value,i&&o.near||(n.layer=o.layer,o.index=t.vb[n.layer],t.vb[n.layer]++,i&&(o=i.get(o),Array.isArray(o)&&o.forEach(function(r){return function(s){s.index=t.vb[r.layer],t.vb[r.layer]++}}(n)))),n={layer:n.layer}}function rv(t,i,e){if(!e||!i.near){var n=i.layer;if(i.index=t.vb[n],t.vb[n]++,e){var o=e.get(i);Array.isArray(o)&&o.forEach(function(l){l.index=t.vb[n],t.vb[n]++})}for(i=i.destinationEdgesArrayAccess,o=!0;o;){o=!1;for(var r=0;r<i.length-1;r++){var s=i[r],h=i[r+1];s.portFromColOffset>h.portFromColOffset&&(o=!0,i[r]=h,i[r+1]=s)}}for(o=0;o<i.length;o++)r=i[o],r.valid&&(r=r.toVertex,r.index===-1&&rv(t,r,e))}}function sv(t,i,e){if(!e||!i.near){var n=i.layer;if(i.index=t.vb[n],t.vb[n]++,e){var o=e.get(i);Array.isArray(o)&&o.forEach(function(l){l.index=t.vb[n],t.vb[n]++})}i=i.sourceEdgesArrayAccess;var r=!0;for(o=0;r;)for(r=!1,o=0;o<i.length-1;o++){var s=i[o],h=i[o+1];s.portToColOffset>h.portToColOffset&&(r=!0,i[o]=h,i[o+1]=s)}for(o=0;o<i.length;o++)r=i[o],r.valid&&(r=r.fromVertex,r.index===-1&&sv(t,r,e))}}mt.prototype.reduceCrossings=function(){var t=this.countCrossings(),i=ee(this),e,n;for(e=0;e<this.bj;e++){for(n=0;n<=this.Ia;n++)xf(this,n,1),_e(this,n,1);var o=this.countCrossings();for(o<t&&(t=o,i=ee(this)),n=this.Ia;0<=n;n--)xf(this,n,-1),_e(this,n,-1);o=this.countCrossings(),o<t&&(t=o,i=ee(this))}for(Ve(this,i),e=0;e<this.bj;e++){for(n=0;n<=this.Ia;n++)xf(this,n,0),_e(this,n,0);for(o=this.countCrossings(),o<t&&(t=o,i=ee(this)),n=this.Ia;0<=n;n--)xf(this,n,0),_e(this,n,0);o=this.countCrossings(),o<t&&(t=o,i=ee(this))}Ve(this,i);var r,s,h;switch(this.qk){case Yd:break;case zd:for(h=t+1;(n=this.countCrossings())<h;)for(h=n,e=this.Ia;0<=e;e--)for(s=0;s<=e;s++){for(r=!0;r;)for(r=!1,n=e;n>=s;n--)r=_e(this,n,-1)||r;for(o=this.countCrossings(),o>=t?Ve(this,i):(t=o,i=ee(this)),r=!0;r;)for(r=!1,n=e;n>=s;n--)r=_e(this,n,1)||r;for(o=this.countCrossings(),o>=t?Ve(this,i):(t=o,i=ee(this)),r=!0;r;)for(r=!1,n=s;n<=e;n++)r=_e(this,n,1)||r;for(o>=t?Ve(this,i):(t=o,i=ee(this)),r=!0;r;)for(r=!1,n=s;n<=e;n++)r=_e(this,n,-1)||r;for(o>=t?Ve(this,i):(t=o,i=ee(this)),r=!0;r;)for(r=!1,n=e;n>=s;n--)r=_e(this,n,0)||r;for(o>=t?Ve(this,i):(t=o,i=ee(this)),r=!0;r;)for(r=!1,n=s;n<=e;n++)r=_e(this,n,0)||r;o>=t?Ve(this,i):(t=o,i=ee(this))}break;default:case kf:for(e=this.Ia,s=0,h=t+1;(n=this.countCrossings())<h;){for(h=n,r=!0;r;)for(r=!1,n=e;n>=s;n--)r=_e(this,n,-1)||r;for(o=this.countCrossings(),o>=t?Ve(this,i):(t=o,i=ee(this)),r=!0;r;)for(r=!1,n=e;n>=s;n--)r=_e(this,n,1)||r;for(o=this.countCrossings(),o>=t?Ve(this,i):(t=o,i=ee(this)),r=!0;r;)for(r=!1,n=s;n<=e;n++)r=_e(this,n,1)||r;for(o>=t?Ve(this,i):(t=o,i=ee(this)),r=!0;r;)for(r=!1,n=s;n<=e;n++)r=_e(this,n,-1)||r;for(o>=t?Ve(this,i):(t=o,i=ee(this)),r=!0;r;)for(r=!1,n=e;n>=s;n--)r=_e(this,n,0)||r;for(o>=t?Ve(this,i):(t=o,i=ee(this)),r=!0;r;)for(r=!1,n=s;n<=e;n++)r=_e(this,n,0)||r;o>=t?Ve(this,i):(t=o,i=ee(this))}}Ve(this,i)};function xf(t,i,e){var n=mr(t,i),o=t.vb[i],r=$m(t,i,e),s=Fd(t,i,e);for(e=0;e<o;e++)s[e]===-1&&(s[e]=n[e].column),r[e]===-1&&(r[e]=n[e].column);for(var h=!0,l;h;)for(h=!1,e=0;e<o-1;e++)(r[e+1]<r[e]||r[e+1]===r[e]&&s[e+1]<s[e])&&(h=!0,l=r[e],r[e]=r[e+1],r[e+1]=l,l=s[e],s[e]=s[e+1],s[e+1]=l,l=n[e],n[e]=n[e+1],n[e+1]=l);for(e=r=0;e<o;e++)l=n[e],l.index=e,r+=t.nodeMinColumnSpace(l,!0),l.column=r,r+=1,r+=t.nodeMinColumnSpace(l,!1);vr(t,i,n)}function _e(t,i,e){var n=mr(t,i),o=t.vb[i];e=_m(t,i,e);var r,s=[];for(r=0;r<o;r++)s[r]=-1;var h=[];for(r=0;r<o;r++)h[r]=-1;for(var l=!1,u=!0;u;)for(u=!1,r=0;r<o-1;r++){var a=e[n[r].index*o+n[r+1].index],f=e[n[r+1].index*o+n[r].index],p=0,c=0,g=n[r].column,y=n[r+1].column,v=t.nodeMinColumnSpace(n[r],!0),m=t.nodeMinColumnSpace(n[r],!1),w=t.nodeMinColumnSpace(n[r+1],!0),M=t.nodeMinColumnSpace(n[r+1],!1);v=g-v+w,m=y-m+M;var S=n[r].sourceEdges.iterator;for(S.reset();S.next();)if(w=S.value,M=w.fromVertex,w.valid&&M.layer===i){for(w=0;n[w]!==M;)w++;w<r&&(p+=2*(r-w),c+=2*(r+1-w)),w===r+1&&(p+=1),w>r+1&&(p+=4*(w-r),c+=4*(w-(r+1)))}for(S=n[r].destinationEdges.iterator,S.reset();S.next();)if(w=S.value,M=w.toVertex,w.valid&&M.layer===i){for(w=0;n[w]!==M;)w++;w===r+1&&(c+=1)}for(S=n[r+1].sourceEdges.iterator,S.reset();S.next();)if(w=S.value,M=w.fromVertex,w.valid&&M.layer===i){for(w=0;n[w]!==M;)w++;w<r&&(p+=2*(r+1-w),c+=2*(r-w)),w===r&&(c+=1),w>r+1&&(p+=4*(w-(r+1)),c+=4*(w-r))}for(S=n[r+1].destinationEdges.iterator,S.reset();S.next();)if(w=S.value,M=w.toVertex,w.valid&&M.layer===i){for(w=0;n[w]!==M;)w++;w===r&&(p+=1)}w=M=0,S=s[n[r].index];var N=h[n[r].index],k=s[n[r+1].index],D=h[n[r+1].index];S!==-1&&(M+=Math.abs(S-g),w+=Math.abs(S-m)),N!==-1&&(M+=Math.abs(N-g),w+=Math.abs(N-m)),k!==-1&&(M+=Math.abs(k-y),w+=Math.abs(k-v)),D!==-1&&(M+=Math.abs(D-y),w+=Math.abs(D-v)),(c<p-.5||c===p&&f<a-.5||c===p&&f===a&&w<M-.5)&&(u=l=!0,n[r].column=m,n[r+1].column=v,a=n[r],n[r]=n[r+1],n[r+1]=a)}for(r=0;r<o;r++)n[r].index=r;return vr(t,i,n),l}mt.prototype.straightenAndPack=function(){if(this.ve===0){var t=(this.bg&1)!==0,i=(this.bg&j1)!==0;if(1e3<this.network.edges.count&&i&&(t=!1),t){var e=[];for(i=0;i<=this.Ia;i++)e[i]=0;for(var n,o=this.network.vertexes.iterator;o.next();){var r=o.value;i=r.layer,n=r.column,r=this.nodeMinColumnSpace(r,!1),e[i]=Math.max(e[i],n+r)}for(o.reset();o.next();)r=o.value,i=r.layer,n=r.column,r.column=(8*(this.Ra-e[i])>>1)+8*n;this.Ra*=8}if(this.bg&2)for(e=!0;e;){for(e=!1,i=this.Md+1;i<=this.Ia;i++)e=zh(this,i,1)||e;for(i=this.Md-1;0<=i;i--)e=zh(this,i,-1)||e;e=zh(this,this.Md,0)||e}if(this.bg&4){for(i=this.Md+1;i<=this.Ia;i++)Id(this,i,1);for(i=this.Md-1;0<=i;i--)Id(this,i,-1);Id(this,this.Md,0)}if(t&&(hv(this,-1),hv(this,1)),this.bg&2)for(e=!0;e;){for(e=!1,e=zh(this,this.Md,0)||e,i=this.Md+1;i<=this.Ia;i++)e=zh(this,i,0)||e;for(i=this.Md-1;0<=i;i--)e=zh(this,i,0)||e}}else k1(this)};function zh(t,i,e){for(var n=!1;S1(t,i,e);)n=!0;return n}function S1(t,i,e){var n,o=mr(t,i),r=t.vb[i],s=Fd(t,i,-1);if(0<e)for(n=0;n<r;n++)s[n]=-1;var h=Fd(t,i,1);if(0>e)for(n=0;n<r;n++)h[n]=-1;for(var l=!1,u=!0;u;)for(u=!1,n=0;n<r;n++){var a=o[n].column,f=t.nodeMinColumnSpace(o[n],!0),p=t.nodeMinColumnSpace(o[n],!1),c=0;0>n-1||a-o[n-1].column-1>f+t.nodeMinColumnSpace(o[n-1],!1)?c=a-1:c=a,f=n+1>=r||o[n+1].column-a-1>p+t.nodeMinColumnSpace(o[n+1],!0)?a+1:a;var g=p=0,y=0;if(0>=e)for(var v=o[n].sourceEdges.iterator;v.next();){var m=v.value,w=m.fromVertex;if(m.valid&&w.layer!==i){var M=jd(m),S=m.portFromColOffset;m=m.portToColOffset,w=w.column,p+=(Math.abs(a+m-(w+S))+1)*M,g+=(Math.abs(c+m-(w+S))+1)*M,y+=(Math.abs(f+m-(w+S))+1)*M}}if(0<=e)for(v=o[n].destinationEdges.iterator;v.next();)m=v.value,w=m.toVertex,m.valid&&w.layer!==i&&(M=jd(m),S=m.portFromColOffset,m=m.portToColOffset,w=w.column,p+=(Math.abs(a+S-(w+m))+1)*M,g+=(Math.abs(c+S-(w+m))+1)*M,y+=(Math.abs(f+S-(w+m))+1)*M);m=S=M=0,v=s[o[n].index],w=h[o[n].index],v!==-1&&(M+=Math.abs(v-a),S+=Math.abs(v-c),m+=Math.abs(v-f)),w!==-1&&(M+=Math.abs(w-a),S+=Math.abs(w-c),m+=Math.abs(w-f)),g<p||g===p&&S<M?(u=l=!0,o[n].column=c):(y<p||y===p&&m<M)&&(u=l=!0,o[n].column=f)}return vr(t,i,o),t.normalize(),l}function Id(t,i,e){var n=mr(t,i),o=t.vb[i],r=$m(t,i,e),s=[];for(e=0;e<o;e++)s[e]=r[e];for(r=!0;r;)for(r=!1,e=0;e<o;e++){var h=n[e].column,l=t.nodeMinColumnSpace(n[e],!0),u=t.nodeMinColumnSpace(n[e],!1),a=0;if(s[e]===-1)if(e===0&&e===o-1)a=h;else if(e===0){var f=n[e+1].column;f-h===u+t.nodeMinColumnSpace(n[e+1],!0)?a=h-1:a=h}else e===o-1?(f=n[e-1].column,a=h-f===l+t.nodeMinColumnSpace(n[e-1],!1)?h+1:h):(f=n[e-1].column,l=f+t.nodeMinColumnSpace(n[e-1],!1)+l+1,f=n[e+1].column,u=f-t.nodeMinColumnSpace(n[e+1],!0)-u-1,a=(l+u)/2|0);else e===0&&e===o-1?a=s[e]:e===0?(f=n[e+1].column,u=f-t.nodeMinColumnSpace(n[e+1],!0)-u-1,a=Math.min(s[e],u)):e===o-1?(f=n[e-1].column,l=f+t.nodeMinColumnSpace(n[e-1],!1)+l+1,a=Math.max(s[e],l)):(f=n[e-1].column,l=f+t.nodeMinColumnSpace(n[e-1],!1)+l+1,f=n[e+1].column,u=f-t.nodeMinColumnSpace(n[e+1],!0)-u-1,l<s[e]&&s[e]<u?a=s[e]:l>=s[e]?a=l:u<=s[e]&&(a=u));a!==h&&(r=!0,n[e].column=a)}vr(t,i,n),t.normalize()}function N1(t,i){for(var e=!0,n=t.network.vertexes.iterator;n.next();){var o=n.value,r=t.nodeMinColumnSpace(o,!0),s=t.nodeMinColumnSpace(o,!1);if(o.column-r<=i&&o.column+s>=i){e=!1;break}}if(t=!1,e)for(n.reset();n.next();)e=n.value,e.column>i&&(--e.column,t=!0);return t}function P1(t,i){var e=i+1,n,o=[],r=[];for(n=0;n<=t.Ia;n++)o[n]=!1,r[n]=!1;for(var s=t.network.vertexes.iterator;s.next();){n=s.value;var h=n.column-t.nodeMinColumnSpace(n,!0),l=n.column+t.nodeMinColumnSpace(n,!1);h<=i&&l>=i&&(o[n.layer]=!0),h<=e&&l>=e&&(r[n.layer]=!0)}for(h=!0,e=!1,n=0;n<=t.Ia;n++)h=h&&!(o[n]&&r[n]);if(h)for(s.reset();s.next();)t=s.value,t.column>i&&(--t.column,e=!0);return e}function hv(t,i){for(var e=0;e<=t.Ra;e++)for(;N1(t,e););for(t.normalize(),e=0;e<t.Ra;e++)for(;P1(t,e););t.normalize();var n;if(0<i)for(e=0;e<=t.Ra;e++){var o=ee(t),r=vf(t);for(n=r+1;r<n;){n=r,lv(t,e,1);var s=vf(t);s>r?Ve(t,o):s<r&&(r=s,o=ee(t))}}if(0>i)for(e=t.Ra;0<=e;e--)for(o=ee(t),r=vf(t),n=r+1;r<n;)n=r,lv(t,e,-1),s=vf(t),s>r?Ve(t,o):s<r&&(r=s,o=ee(t));t.normalize()}function lv(t,i,e){t.le=0;for(var n=t.network.vertexes.iterator;n.next();)n.value.component=-1;if(0<e)for(n.reset();n.next();){var o=n.value;o.column-t.nodeMinColumnSpace(o,!0)<=i&&(o.component=t.le)}if(0>e)for(n.reset();n.next();)o=n.value,o.column+t.nodeMinColumnSpace(o,!1)>=i&&(o.component=t.le);for(t.le++,n.reset();n.next();)i=n.value,i.component===-1&&(Ad(t,i,t.le,-1,!0,!0),t.le++);var r;for(i=[],r=0;r<t.le*t.le;r++)i[r]=!1;for(o=[],r=0;r<(t.Ia+1)*(t.Ra+1);r++)o[r]=-1;for(n.reset();n.next();){r=n.value;for(var s=r.layer,h=Math.max(0,r.column-t.nodeMinColumnSpace(r,!0)),l=Math.min(t.Ra,r.column+t.nodeMinColumnSpace(r,!1));h<=l;h++)o[s*(t.Ra+1)+h]=r.component}for(r=0;r<=t.Ia;r++){if(0<e)for(s=0;s<t.Ra;s++)o[r*(t.Ra+1)+s]!==-1&&o[r*(t.Ra+1)+s+1]!==-1&&o[r*(t.Ra+1)+s]!==o[r*(t.Ra+1)+s+1]&&(i[o[r*(t.Ra+1)+s]*t.le+o[r*(t.Ra+1)+s+1]]=!0);if(0>e)for(s=t.Ra;0<s;s--)o[r*(t.Ra+1)+s]!==-1&&o[r*(t.Ra+1)+s-1]!==-1&&o[r*(t.Ra+1)+s]!==o[r*(t.Ra+1)+s-1]&&(i[o[r*(t.Ra+1)+s]*t.le+o[r*(t.Ra+1)+s-1]]=!0)}for(o=[],r=0;r<t.le;r++)o[r]=!0;for(s=[],s.push(0);s.length!==0;)if(l=s[s.length-1],s.pop(),o[l])for(o[l]=!1,r=0;r<t.le;r++)i[l*t.le+r]&&s.splice(0,0,r);if(0<e)for(n.reset();n.next();)t=n.value,o[t.component]&&--t.column;if(0>e)for(n.reset();n.next();)e=n.value,o[e.component]&&(e.column+=1)}function k1(t){for(var i=kt(),e=t.el.length,n=0;n<=e;n++)i[n]=[];for(n=t.network.vertexes.iterator;n.next();){var o=n.value;i[e-o.layer][o.index]=o}e=new E,C1(i,e);var r=null,s=null,h=null,l=null,u=(t.ve&1)!==0,a=(t.ve&2)!==0,f=(t.ve&4)!==0,p=(t.ve&8)!==0;for(u&&(t.verticalAlignment(i,e,!0),r=wf(t,i,!0,!1)),i.reverse(),f&&(t.verticalAlignment(i,e,!1),h=wf(t,i,!1,!1)),n=b(i),o=n.next();!o.done;o=n.next())o.value.reverse();p&&(t.verticalAlignment(i,e,!1),l=wf(t,i,!1,!0)),i.reverse(),a&&(t.verticalAlignment(i,e,!0),s=wf(t,i,!0,!0)),Mt(i),t.u(r,s,h,l),t.network.vertexes.each(function(c){var g=kt();u&&g.push(r.get(c)),a&&g.push(s.get(c)),f&&g.push(h.get(c)),p&&g.push(l.get(c)),g.sort(function(v,m){return v-m});var y=g.length;y=(g[Math.floor((y-1)/2)]+g[Math.ceil((y-1)/2)])/2,Mt(g),c.zc=y})}function C1(t,i){for(var e=t.length,n=1;n<e-1;n++)for(var o=0,r=0,s=t[n],h=t[n+1],l=0;r<h.length;l++){var u=h[l];t:{if(u.node===null){var a=Gd(u);if(0<a.length){a=a[0].node===null;break t}}a=!1}var f=a;if(l===h.length-1||f){for(a=s.length-1,f&&(a=Gd(u)[0].index);r<=l;){if(u=h[r],!u.ao){f=[];for(var p=b(u.sourceEdgesArrayAccess),c=p.next();!c.done;c=p.next())c=c.value,c.valid&&f.push(c);u.ao=f}for(u=b(u.ao),f=u.next();!f.done;f=u.next())f=f.value,p=f.fromVertex.index,(p<o||p>a)&&i.add(f);r++}o=a}}}mt.prototype.verticalAlignment=function(t,i,e){T1(t),t=b(t);for(var n=t.next();!n.done;n=t.next()){var o=-1;n=b(n.value);for(var r=n.next();!r.done;r=n.next()){r=r.value;var s=e?Gd(r):F1(r),h=s.length;if(0<h){s.sort(function(f,p){return f.vi-p.vi});var l=(h-1)/2;for(h=Math.floor(l),l=Math.ceil(l);h<=l;h++)if(r.align===r){var u=s[h],a=void 0;a=e?Cf(u,r):Cf(r,u),!i.contains(a)&&o<u.vi&&(u.align=r,r.root=u.root,r.align=u.root,o=u.vi)}}}}};function T1(t){for(var i=0;i<t.length;i++)for(var e=t[i],n=0;n<e.length;n++){var o=e[n];o.root=o,o.align=o,o.Tz=i,o.vi=n}}function wf(t,i,e,n){for(var o=t.K===90||t.K===270,r=b(i),s=r.next();!s.done;s=r.next()){var h=b(s.value);for(s=h.next();!s.done;s=h.next())s=s.value,s.sd=s,s.shift=1/0,s.zc=NaN,s.qg=0}for(s=t.K===90||t.K===270,r=b(i),h=r.next();!h.done;h=r.next()){h=b(h.value);for(var l=h.next();!l.done;l=h.next())if(l=l.value,l.root===l){for(var u=0,a=l;a.align!==l;){var f=a.align,p=s?a.width:a.height,c=s?f.width:f.height;if(e){var g=Cf(a,f),y=g.portFromPos,v=g.portToPos;g.link!==null&&(a.node&&a.node!==g.link.fromNode&&(y=s?a.focusX:a.focusY),f.node&&f.node!==g.link.toNode&&(v=s?f.focusX:f.focusY))}else g=Cf(f,a),y=g.portToPos,v=g.portFromPos,g.link!==null&&(a.node&&a.node!==g.link.toNode&&(y=s?a.focusX:a.focusY),f.node&&f.node!==g.link.fromNode&&(v=s?f.focusX:f.focusY));p=n?a.qg+(p-y)-(c-v):a.qg+y-v,f.qg=p,u=Math.min(u,p),a=a.align}a=l;do a.qg=a.qg-u,a=a.align;while(a!==l)}}for(e=b(i),s=e.next();!s.done;s=e.next())for(r=b(s.value),s=r.next();!s.done;s=r.next())s=s.value,s.root===s&&uv(t,s,i);for(e=0;e<i.length;e++)if(!(0>=i[e].length)&&(s=i[e][0],s.sd===s)){s.sd.shift===1/0&&(s.sd.shift=0),s=e,h=0;do{for(r=i[s][h];r.align!==r.root;)r=r.align,s++,0<r.vi&&(h=av(r,i),h.sd.shift=Math.min(h.sd.shift,r.sd.shift+r.zc+r.qg-(h.zc+h.qg+(o?h.width:h.height)+t.columnSpacing)));h=r.vi+1}while(s<i.length&&h<i[s].length&&r.sd===i[s][h].sd)}for(t=new _,i=b(i),s=i.next();!s.done;s=i.next())for(e=b(s.value),s=e.next();!s.done;s=e.next())s=s.value,s.zc=s.zc+s.sd.shift+s.qg,r=o?s.width:s.height,t.add(s,n?-s.zc-r:s.zc);return t}function uv(t,i,e){if(isNaN(i.zc)){i.zc=0;var n=i;do{if(0<n.vi){var o=av(n,e),r=o.root;uv(t,r,e),i.sd===i&&(i.sd=r.sd);var s=t.K===90||t.K===270?o.width:o.height;i.sd===r.sd&&(i.zc=Math.max(i.zc,r.zc+o.qg+s-n.qg+t.columnSpacing))}n=n.align}while(n!==i);for(;n.align!==i;)n=n.align,n.zc=i.zc,n.sd=i.sd}}function av(t,i){var e=t.Tz;return t=t.vi,1>t&&O("Could not determine previous vertex in layer"),i[e][t-1]}mt.prototype.u=function(t){for(var i=[],e=0;e<arguments.length;++e)i[e]=arguments[e];e=-1;for(var n=kt(),o=kt(),r=1/0,s=0;4>s;s++)if(i[s]){var h=L1(this,i[s],n,o,s);h<r&&(e=s,r=h)}for(r={},s=0;4>s;r={delta:r.delta},s++)i[s]&&(r.delta=s===0||s===2?n[e]-n[s]:o[e]-o[s],r.delta!==0&&i[s].each(function(l){return function(u){u.value+=l.delta}}(r)));Mt(n),Mt(o)};function L1(t,i,e,n,o){if(!i||i.count===0)return e[o]=0,n[o]=0,1/0;var r=1/0,s=-1/0;return i.each(function(h){var l=h.key;h=h.value,l=t.K===90||t.K===270?l.width:l.height,h<r&&(r=h),h+l>s&&(s=h+l)}),e[o]=r,n[o]=s,s-r}mt.prototype.commitLayout=function(){if(this.setsPortSpots)for(var t=Mf(this,!0),i=Mf(this,!1),e=this.network.edges.iterator;e.next();){var n=e.value.link;n!==null&&(n.fromSpot=t,n.toSpot=i)}this.commitNodes(),this.Gu(),this.isRouting&&this.commitLinks()};function Mf(t,i){return t.K===270?i?Ke:He:t.K===90?i?He:Ke:t.K===180?i?Ue:ae:i?ae:Ue}mt.prototype.commitNodes=function(){this.he=[],this.Ld=[],this.Kd=[],this.Ta=[];for(var t=0;t<=this.Ia;t++)this.he[t]=0,this.Ld[t]=0,this.Kd[t]=0,this.Ta[t]=0;for(t=this.network.vertexes.iterator;t.next();){var i=t.value,e=i.layer;this.he[e]=Math.max(this.he[e],this.nodeMinLayerSpace(i,!0)),this.Ld[e]=Math.max(this.Ld[e],this.nodeMinLayerSpace(i,!1))}i=0,e=this.ie;for(var n=0;n<=this.Ia;n++){var o=e;0>=this.he[n]+this.Ld[n]&&(o=0),0<n&&(i+=o/2),this.K===90||this.K===0?(i+=this.Ld[n],this.Kd[n]=i,i+=this.he[n]):(i+=this.he[n],this.Kd[n]=i,i+=this.Ld[n]),n<this.Ia&&(i+=o/2),this.Ta[n]=i}for(e=i,i=this.arrangementOrigin,n=0;n<=this.Ia;n++)this.K===270?this.Kd[n]=i.y+this.Kd[n]:this.K===90?(this.Kd[n]=i.y+e-this.Kd[n],this.Ta[n]=e-this.Ta[n]):this.K===180?this.Kd[n]=i.x+this.Kd[n]:(this.Kd[n]=i.x+e-this.Kd[n],this.Ta[n]=e-this.Ta[n]);e=this.ve!==0,t.reset(),n=this.K===270||this.K===90;for(var r=1/0,s=o=1/0,h=-1/0;t.next();){var l=t.value,u=l.layer,a=l.column|0;n?(s=i.x+this.lc*a,u=this.Kd[u]):(s=this.Kd[u],u=i.y+this.lc*a),l.centerX=s,l.centerY=u,e&&isFinite(l.zc)&&(n?l.node?l.x=i.x+l.zc:l.centerX=i.x+l.zc:l.node?l.y=i.y+l.zc:l.centerY=i.y+l.zc),r=Math.min(l.x,r),o=Math.min(l.y,o),n?(s=r,h=Math.max(h,l.bounds.right)):(s=o,h=Math.max(h,l.bounds.bottom))}for(this.xw=h-s,r=i.x-r,i=i.y-o,this.Rf=new x(e&&n?0:r,e&&!n?0:i),t.reset();t.next();)e=t.value,e.x+=r,e.y+=i,e.commit()},mt.prototype.Gu=function(){for(var t=0,i=this.ie,e=0;e<=this.Ia;e++)t+=this.he[e],t+=this.Ld[e];t+=this.Ia*i,i=[],e=this.ve!==0?this.xw:this.lc*this.Ra;for(var n=this.maxLayer;0<=n;n--)this.K===270?n===0?i.push(new T(0,0,e,Math.abs(this.Ta[0]))):i.push(new T(0,this.Ta[n-1],e,Math.abs(this.Ta[n-1]-this.Ta[n]))):this.K===90?n===0?i.push(new T(0,this.Ta[0],e,Math.abs(this.Ta[0]-t))):i.push(new T(0,this.Ta[n],e,Math.abs(this.Ta[n-1]-this.Ta[n]))):this.K===180?n===0?i.push(new T(0,0,Math.abs(this.Ta[0]),e)):i.push(new T(this.Ta[n-1],0,Math.abs(this.Ta[n-1]-this.Ta[n]),e)):n===0?i.push(new T(this.Ta[0],0,Math.abs(this.Ta[0]-t),e)):i.push(new T(this.Ta[n],0,Math.abs(this.Ta[n-1]-this.Ta[n]),e));this.commitLayers(i,this.Rf)},mt.prototype.commitLayers=function(){},mt.prototype.commitLinks=function(){for(var t=this.network.edges.iterator,i;t.next();)i=t.value.link,i!==null&&(i.uh(),i.Ej(),i.zf());for(t.reset();t.next();)i=t.value.link,i!==null&&i.vg();for(t.reset();t.next();){var e=t.value;if(i=e.link,i!==null){i.uh();var n=i,o=n.fromNode,r=n.toNode,s=n.fromPort,h=n.toPort;if(o!==null){var l=o.findVisibleNode();l!==null&&l!==o&&(o=l,s=l.port)}r!==null&&(l=r.findVisibleNode(),l!==null&&l!==r&&(r=l,h=l.port));var u=i.computeSpot(!0,s);l=i.computeSpot(!1,h);var a=e.fromVertex,f=e.toVertex;if(e.valid)i.curve===Ne&&i.pointsCount===4&&(a.column===f.column&&this.alignOption===0?(e=i.getLinkPoint(o,s,u,!0,!1,r,h),h=i.getLinkPoint(r,h,l,!1,!1,o,s),e.w()||e.set(o.actualBounds.center),h.w()||h.set(r.actualBounds.center),i.Ej(),i.yf(e.x,e.y),i.yf((2*e.x+h.x)/3,(2*e.y+h.y)/3),i.yf((e.x+2*h.x)/3,(e.y+2*h.y)/3),i.yf(h.x,h.y)):(e=n=!1,s!==null&&u===Mi&&(n=!0),h!==null&&l===Mi&&(e=!0),(n||e)&&(l=null,n&&(l=i.getLinkPointFromPoint(o,s,s.ga(vt),i.i(3),!0),l.w()||l.set(o.actualBounds.center),i.L(0,l.x,l.y)),o=null,e&&(o=i.getLinkPointFromPoint(r,h,h.ga(vt),i.i(0),!1),o.w()||o.set(r.actualBounds.center),i.L(3,o.x,o.y)),l&&(r=i.i(2),i.L(1,(2*l.x+r.x)/3,(2*l.y+r.y)/3)),o&&(r=i.i(1),i.L(2,(2*o.x+r.x)/3,(2*o.y+r.y)/3))))),i.zf();else if(a.layer===f.layer)i.zf();else{var p=!1,c=!1,g=this.ie,y=i.firstPickIndex+1;if(i.isOrthogonal){c=!0;var v=i.pointsCount;4<v&&i.points.removeRange(2,v-3)}else if(i.curve===Ne)p=!0,v=i.pointsCount,4<v&&i.points.removeRange(2,v-3),v===4&&(y=2);else{v=i.pointsCount;var m=u===Mi,w=l===Mi;2<v&&m&&w?i.points.removeRange(1,v-2):3<v&&m&&!w?i.points.removeRange(1,v-3):3<v&&!m&&w?i.points.removeRange(2,v-2):4<v&&!m&&!w&&i.points.removeRange(2,v-3)}if(e.rev){for(;f!==null&&a!==f;){var M=v=null;for(m=f.sourceEdges.iterator;m.next()&&(w=m.value,w.link!==e.link||(v=w.fromVertex,M=w.toVertex,v.node!==null)););if(v===null)break;if(v!==a){m=i.i(y-1).x,w=i.i(y-1).y;var S=v.centerX,N=v.centerY;if(c)this.K===180||this.K===0?y===i.firstPickIndex+1?(i.m(y++,m,w),i.m(y++,m,N)):(M!==null?M.centerY:w)!==N&&(M=this.Ta[v.layer-1]+this.Rf.x,i.m(y++,M,w),i.m(y++,M,N)):y===i.firstPickIndex+1?(i.m(y++,m,w),i.m(y++,S,w)):(M!==null?M.centerX:m)!==S&&(M=this.Ta[v.layer-1]+this.Rf.y,i.m(y++,m,M),i.m(y++,S,M));else if(y===i.firstPickIndex+1){M=Math.max(10,this.he[f.layer]);var k=Math.max(10,this.Ld[f.layer]);if(p)this.K===180?S<=f.bounds.x?(f=f.bounds.x,i.m(y++,f-M,N),i.m(y++,f,N),i.m(y++,f+k,N)):(i.m(y++,S-M,N),i.m(y++,S,N),i.m(y++,S+k,N)):this.K===90?N>=f.bounds.bottom?(f=f.bounds.y+f.bounds.height,i.m(y++,S,f+k),i.m(y++,S,f),i.m(y++,S,f-M)):(i.m(y++,S,N+k),i.m(y++,S,N),i.m(y++,S,N-M)):this.K===270?N<=f.bounds.y?(f=f.bounds.y,i.m(y++,S,f-M),i.m(y++,S,f),i.m(y++,S,f+k)):(i.m(y++,S,N-M),i.m(y++,S,N),i.m(y++,S,N+k)):this.K===0&&(S>=f.bounds.right?(f=f.bounds.x+f.bounds.width,i.m(y++,f+k,N),i.m(y++,f,N),i.m(y++,f-M,N)):(i.m(y++,S+k,N),i.m(y++,S,N),i.m(y++,S-M,N)));else{i.m(y++,m,w);var D=0;this.K===180||this.K===0?((this.K===180?S>=f.bounds.right:S<=f.bounds.x)&&(D=(this.K===0?-M:k)/2),i.m(y++,m+D,N)):((this.K===270?N>=f.bounds.bottom:N<=f.bounds.y)&&(D=(this.K===90?-M:k)/2),i.m(y++,S,w+D)),i.m(y++,S,N)}}else M=Math.max(10,this.he[v.layer]),k=Math.max(10,this.Ld[v.layer]),p?this.K===180?(i.m(y++,S-M-g,N),i.m(y++,Math.min(S-M+g/2,S),N),i.m(y++,S,N),i.m(y++,S,N),i.m(y++,Math.max(S+k-g/2,S),N),i.m(y++,S+k+g,N)):this.K===90?(i.m(y++,S,N+k+g),i.m(y++,S,Math.max(N+k-g/2,N)),i.m(y++,S,N),i.m(y++,S,N),i.m(y++,S,Math.min(N-M+g/2,N)),i.m(y++,S,N-M-g)):this.K===270?(i.m(y++,S,N-M-g),i.m(y++,S,Math.min(N-M+g/2,N)),i.m(y++,S,N),i.m(y++,S,N),i.m(y++,S,Math.max(N+k-g/2,N)),i.m(y++,S,N+k+g)):(i.m(y++,S+k+g,N),i.m(y++,Math.max(S+k-g/2,S),N),i.m(y++,S,N),i.m(y++,S,N),i.m(y++,Math.min(S-M+g/2,S),N),i.m(y++,S-M-g,N)):i.m(y++,S,N)}f=v}(h===null||u!==Mi||c)&&(m=i.i(y-1).x,w=i.i(y-1).y,S=i.i(y).x,N=i.i(y).y,c?(g=this.Ld[a.layer],this.K===180||this.K===0?(c=w,c>=a.bounds.y&&c<=a.bounds.bottom&&(this.K===180?S>=a.bounds.x:S<=a.bounds.right)&&(f=a.centerX+(this.K===180?-g:g),c<a.bounds.y+a.bounds.height/2?c=a.bounds.y-this.lc/2:c=a.bounds.bottom+this.lc/2,i.m(y++,f,w),i.m(y++,f,c)),i.m(y++,S,c)):(c=m,c>=a.bounds.x&&c<=a.bounds.right&&(this.K===270?N>=a.bounds.y:N<=a.bounds.bottom)&&(f=a.centerY+(this.K===270?-g:g),c<a.bounds.x+a.bounds.width/2?c=a.bounds.x-this.lc/2:c=a.bounds.right+this.lc/2,i.m(y++,m,f),i.m(y++,c,f)),i.m(y++,c,N)),i.m(y++,S,N)):p?(M=Math.max(10,this.he[a.layer]),k=Math.max(10,this.Ld[a.layer]),this.K===180&&S>=a.bounds.x?(f=a.bounds.x+a.bounds.width,i.L(y-2,f,w),i.L(y-1,f+k,w)):this.K===90&&N<=a.bounds.bottom?(f=a.bounds.y,i.L(y-2,m,f),i.L(y-1,m,f-M)):this.K===270&&N>=a.bounds.y?(f=a.bounds.y+a.bounds.height,i.L(y-2,m,f),i.L(y-1,m,f+k)):this.K===0&&S<=a.bounds.right&&(f=a.bounds.x,i.L(y-2,f,w),i.L(y-1,f-M,w))):(M=Math.max(10,this.he[a.layer]),k=Math.max(10,this.Ld[a.layer]),c=0,this.K===180||this.K===0?((this.K===180?S<=a.bounds.x:S>=a.bounds.right)&&(c=(this.K===0?k:-M)/2),i.m(y++,S+c,w)):((this.K===270?N<=a.bounds.y:N>=a.bounds.bottom)&&(c=(this.K===90?k:-M)/2),i.m(y++,m,N+c)),i.m(y++,S,N)))}else{for(;a!==null&&a!==f;){for(M=v=null,a=a.destinationEdges.iterator;a.next()&&(m=a.value,m.link!==e.link||(v=m.toVertex,M=m.fromVertex,M.node!==null&&(M=null),v.node!==null)););if(v===null)break;v!==f&&(m=i.i(y-1).x,w=i.i(y-1).y,S=v.centerX,N=v.centerY,c?this.K===180||this.K===0?(M!==null?M.centerY:w)!==N&&(M=this.Ta[v.layer]+this.Rf.x,y===i.firstPickIndex+1&&(M=this.K===0?Math.max(M,m):Math.min(M,m)),i.m(y++,M,w),i.m(y++,M,N)):(M!==null?M.centerX:m)!==S&&(M=this.Ta[v.layer]+this.Rf.y,y===i.firstPickIndex+1&&(M=this.K===90?Math.max(M,w):Math.min(M,w)),i.m(y++,m,M),i.m(y++,S,M)):(M=Math.max(10,this.he[v.layer]),k=Math.max(10,this.Ld[v.layer]),p?this.K===180?(i.m(y++,S+k+g,N),i.m(y++,Math.max(S+k-g/2,S),N),i.m(y++,S,N),i.m(y++,S,N),i.m(y++,Math.min(S-M+g/2,S),N),i.m(y++,S-M-g,N)):this.K===90?(i.m(y++,S,N-M-g),i.m(y++,S,Math.min(N-M+g/2,N)),i.m(y++,S,N),i.m(y++,S,N),i.m(y++,S,Math.max(N+k-g/2,N)),i.m(y++,S,N+k+g)):this.K===270?(i.m(y++,S,N+k+g),i.m(y++,S,Math.max(N+k-g/2,N)),i.m(y++,S,N),i.m(y++,S,N),i.m(y++,S,Math.min(N-M+g/2,N)),i.m(y++,S,N-M-g)):(i.m(y++,S-M-g,N),i.m(y++,Math.min(S-M+g/2,S),N),i.m(y++,S,N),i.m(y++,S,N),i.m(y++,Math.max(S+k-g/2,S),N),i.m(y++,S+k+g,N)):this.K===180?(i.m(y++,S+k,N),i.m(y++,S-M,N)):this.K===90?(i.m(y++,S,N-M),i.m(y++,S,N+k)):this.K===270?(i.m(y++,S,N+k),i.m(y++,S,N-M)):(i.m(y++,S-M,N),i.m(y++,S+k,N)))),a=v}c&&(m=i.i(y-1).x,w=i.i(y-1).y,S=i.i(y).x,N=i.i(y).y,this.K===180||this.K===0?w!==N&&(M=this.K===0?Math.min(Math.max((S+m)/2,this.Ta[f.layer]+this.Rf.x),S):Math.max(Math.min((S+m)/2,this.Ta[f.layer]+this.Rf.x),S),i.m(y++,M,w),i.m(y++,M,N)):m!==S&&(M=this.K===90?Math.min(Math.max((N+w)/2,this.Ta[f.layer]+this.Rf.y),N):Math.max(Math.min((N+w)/2,this.Ta[f.layer]+this.Rf.y),N),i.m(y++,m,M),i.m(y++,S,M)))}n!==null&&p&&4<=i.pointsCount&&(s!==null&&(s=u===Mi?i.getLinkPointFromPoint(o,s,s.ga(vt),i.i(3),!0):i.i(0),u===Mi&&(u=i.i(2),n=i.i(3),this.direction===90||this.direction===270?(i.L(1,(s.x+u.x)/2,u.y),i.L(2,n.x,(u.y+n.y)/2)):(i.L(1,u.x,(s.y+u.y)/2),i.L(2,(u.x+n.x)/2,n.y))),s.w()||s.set(o.actualBounds.center),i.L(0,s.x,s.y)),h!==null&&(o=l===Mi?i.getLinkPointFromPoint(r,h,h.ga(vt),i.i(i.pointsCount-4),!1):i.i(i.pointsCount-1),l===Mi&&(h=i.i(i.pointsCount-3),l=i.i(i.pointsCount-4),this.direction===90||this.direction===270?(i.L(i.pointsCount-2,(o.x+h.x)/2,h.y),i.L(i.pointsCount-2,l.x,(h.y+l.y)/2)):(i.L(i.pointsCount-2,h.x,(o.y+h.y)/2),i.L(i.pointsCount-3,(h.x+l.x)/2,l.y))),o.w()||o.set(r.actualBounds.center),i.L(i.pointsCount-1,o.x,o.y))),i.zf(),e.commit()}}}this.avoidOrthogonalOverlaps()},mt.prototype.avoidOrthogonalOverlaps=function(){if(!(0>=this.linkSpacing)){for(var t=new V,i=this.network.edges.iterator;i.next();){var e=i.value.link;e!==null&&e.isOrthogonal&&!t.contains(e)&&t.add(e)}if(0<t.count)if(this.K===90||this.K===270){for(i=0,e=[],t=t.iterator;t.next();){var n=t.value;if(n!==null&&n.isOrthogonal)for(var o=2;o<n.pointsCount-3;o++){var r=n.i(o),s=n.i(o+1);if(this.B(r.y,s.y)&&!this.B(r.x,s.x)){var h=new xr;h.layer=Math.floor(r.y/2);var l=n.i(0),u=n.i(n.pointsCount-1);if(h.first=l.x*l.x+l.y,h.kc=u.x*u.x+u.y,h.rd=Math.min(r.x,s.x),h.Ic=Math.max(r.x,s.x),h.index=o,h.link=n,o+2<n.pointsCount){l=n.i(o-1),u=n.i(o+2);var a=0;l.y<r.y?a=u.y<r.y?3:r.x<s.x?2:1:l.y>r.y&&(a=u.y>r.y?0:s.x<r.x?2:1),h.j=a}e.push(h)}}}if(1<e.length)for(e.sort(this.Vx),t=0;t<e.length;){for(r=e[t].layer,n=t+1;n<e.length&&e[n].layer===r;)n++;if(1<n-t)for(r=t;r<n;){for(s=e[r].Ic,o=t+1;o<n&&e[o].rd<s;)s=Math.max(s,e[o].Ic),o++;if(s=o-r,1<s){for(this.zi(e,this.Is,r,r+s),a=1,h=e[r].kc,l=r;l<o;l++)u=e[l],u.kc!==h&&(a++,h=u.kc);this.zi(e,this.Ux,r,r+s);var f=1;for(h=e[r].first,l=r;l<o;l++)u=e[l],u.first!==h&&(f++,h=u.first);for(l=!0,u=f,a<f?(l=!1,u=a,h=e[r].kc,this.zi(e,this.Is,r,r+s)):h=e[r].first,a=0,f=r;f<o;f++){var p=e[f];(l?p.first:p.kc)!==h&&(a++,h=l?p.first:p.kc);var c=p.link;r=c.i(p.index),s=c.i(p.index+1);var g=this.linkSpacing*(a-(u-1)/2);i++,c.uh(),c.L(p.index,r.x,r.y+g),c.L(p.index+1,s.x,s.y+g),c.zf()}}r=o}t=n}}else{for(i=0,e=[],t=t.iterator;t.next();)if(n=t.value,n!==null&&n.isOrthogonal)for(o=2;o<n.pointsCount-3;o++)r=n.i(o),s=n.i(o+1),this.B(r.x,s.x)&&!this.B(r.y,s.y)&&(h=new xr,h.layer=Math.floor(r.x/2),l=n.i(0),u=n.i(n.pointsCount-1),h.first=l.x+l.y*l.y,h.kc=u.x+u.y*u.y,h.rd=Math.min(r.y,s.y),h.Ic=Math.max(r.y,s.y),h.index=o,h.link=n,o+2<n.pointsCount&&(l=n.i(o-1),u=n.i(o+2),a=0,l.x<r.x?a=u.x<r.x?3:r.y<s.y?2:1:l.x>r.x&&(a=u.x>r.x?0:s.y<r.y?2:1),h.j=a),e.push(h));if(1<e.length)for(e.sort(this.Vx),t=0;t<e.length;){for(r=e[t].layer,n=t+1;n<e.length&&e[n].layer===r;)n++;if(1<n-t)for(r=t;r<n;){for(s=e[r].Ic,o=t+1;o<n&&e[o].rd<s;)s=Math.max(s,e[o].Ic),o++;if(s=o-r,1<s){for(this.zi(e,this.Is,r,r+s),a=1,h=e[r].kc,l=r;l<o;l++)u=e[l],u.kc!==h&&(a++,h=u.kc);for(this.zi(e,this.Ux,r,r+s),f=1,h=e[r].first,l=r;l<o;l++)u=e[l],u.first!==h&&(f++,h=u.first);for(l=!0,u=f,a<f?(l=!1,u=a,h=e[r].kc,this.zi(e,this.Is,r,r+s)):h=e[r].first,a=0,f=r;f<o;f++)p=e[f],(l?p.first:p.kc)!==h&&(a++,h=l?p.first:p.kc),c=p.link,r=c.i(p.index),s=c.i(p.index+1),g=this.linkSpacing*(a-(u-1)/2),i++,c.uh(),c.L(p.index,r.x+g,r.y),c.L(p.index+1,s.x+g,s.y),c.zf()}r=o}t=n}}}},d=mt.prototype,d.Vx=function(t,i){return t instanceof xr&&i instanceof xr&&t!==i?t.layer<i.layer?-1:t.layer>i.layer?1:t.rd<i.rd?-1:t.rd>i.rd?1:t.Ic<i.Ic?-1:t.Ic>i.Ic?1:0:0},d.Ux=function(t,i){return t instanceof xr&&i instanceof xr&&t!==i?t.first<i.first?-1:t.first>i.first||t.j<i.j?1:t.j>i.j||t.rd<i.rd?-1:t.rd>i.rd?1:t.Ic<i.Ic?-1:t.Ic>i.Ic?1:0:0},d.Is=function(t,i){return t instanceof xr&&i instanceof xr&&t!==i?t.kc<i.kc?-1:t.kc>i.kc||t.j<i.j?1:t.j>i.j||t.rd<i.rd?-1:t.rd>i.rd?1:t.Ic<i.Ic?-1:t.Ic>i.Ic?1:0:0},d.B=function(t,i){return t-=i,-1<t&&1>t},d.zi=function(t,i,e,n){var o=t.length,r=n-e;if(!(1>=r))if((0>e||e>=o-1)&&O("not in range 0 <= from < length: "+e),r===2)n=t[e],o=t[e+1],0<i(n,o)&&(t[e]=o,t[e+1]=n);else if(e===0)if(n>=o)t.sort(i);else for(e=t.slice(0,n),e.sort(i),i=0;i<n;i++)t[i]=e[i];else if(n>=o)for(n=t.slice(e),n.sort(i),i=e;i<o;i++)t[i]=n[i-e];else for(o=t.slice(e,n),o.sort(i),i=e;i<n;i++)t[i]=o[i-e]};function mr(t,i){var e=t.vb[i];if(e>=t.He.length){for(var n=[],o=0;o<t.He.length;o++)n[o]=t.He[o];t.He=n}for(t.He[e]===void 0||t.He[e]===null?n=[]:(n=t.He[e],t.He[e]=null),t=t.el[i],i=0;i<t.length;i++)e=t[i],n[e.index]=e;return n}function vr(t,i,e){t.He[t.vb[i]]=e}tt.Object.defineProperties(mt.prototype,{layerSpacing:{get:function(){return this.ie},set:function(t){this.ie!==t&&0<=t&&(this.ie=t,this.C())}},columnSpacing:{get:function(){return this.lc},set:function(t){this.lc!==t&&0<t&&(this.lc=t,this.C())}},direction:{get:function(){return this.K},set:function(t){this.K!==t&&(t===0||t===90||t===180||t===270?(this.K=t,this.C()):O("LayeredDigraphLayout.direction must be 0, 90, 180, or 270"))}},cycleRemoveOption:{get:function(){return this.Ck},set:function(t){this.Ck===t||t!==Dd&&t!==Sf&&t!==hu||(this.Ck=t,this.C())}},layeringOption:{get:function(){return this.Yk},set:function(t){this.Yk===t||t!==Nf&&t!==Ed&&t!==Bd||(this.Yk=t,this.C())}},initializeOption:{get:function(){return this.Pk},set:function(t){this.Pk===t||t!==Pf&&t!==Rd&&t!==Vd||(this.Pk=t,this.C())}},iterations:{get:function(){return this.bj},set:function(t){this.bj!==t&&0<=t&&(this.bj=t,this.C())}},aggressiveOption:{get:function(){return this.qk},set:function(t){this.qk===t||t!==Yd&&t!==kf&&t!==zd||(this.qk=t,this.C())}},packOption:{get:function(){return this.bg},set:function(t){this.bg!==t&&0<=t&&8>t&&(this.bg=t,this.C())}},alignOption:{get:function(){return this.ve},set:function(t){this.ve!==t&&0<=t&&16>t&&(this.ve=t,this.C())}},setsPortSpots:{get:function(){return this.sf},set:function(t){this.sf!==t&&(this.sf=t,this.C())}},linkSpacing:{get:function(){return this.Bn},set:function(t){this.Bn!==t&&0<=t&&(this.Bn=t,this.C())}},maxLayer:{get:function(){return this.Ia}},maxIndex:{get:function(){return this.Hq}},maxColumn:{get:function(){return this.Ra}},minIndexLayer:{get:function(){return this.Gn}},maxIndexLayer:{get:function(){return this.Md}}});var Sf=new R(mt,"CycleDepthFirst",0),Dd=new R(mt,"CycleGreedy",1),hu=new R(mt,"CycleFromLayers",2),Nf=new R(mt,"LayerOptimalLinkLength",0),Ed=new R(mt,"LayerLongestPathSink",1),Bd=new R(mt,"LayerLongestPathSource",2),Pf=new R(mt,"InitDepthFirstOut",0),Rd=new R(mt,"InitDepthFirstIn",1),Vd=new R(mt,"InitNaive",2),Yd=new R(mt,"AggressiveNone",0),kf=new R(mt,"AggressiveLess",1),zd=new R(mt,"AggressiveMore",2),j1=8;mt.className="LayeredDigraphLayout",mt.CycleDepthFirst=Sf,mt.CycleGreedy=Dd,mt.CycleFromLayers=hu,mt.LayerOptimalLinkLength=Nf,mt.LayerLongestPathSink=Ed,mt.LayerLongestPathSource=Bd,mt.InitDepthFirstOut=Pf,mt.InitDepthFirstIn=Rd,mt.InitNaive=Vd,mt.AggressiveNone=Yd,mt.AggressiveLess=kf,mt.AggressiveMore=zd,mt.PackNone=0,mt.PackExpand=1,mt.PackStraighten=2,mt.PackMedian=4,mt.PackAll=15,mt.AlignNone=0,mt.AlignUpperLeft=1,mt.AlignUpperRight=2,mt.AlignLowerLeft=4,mt.AlignLowerRight=8,mt.AlignAll=15;function xr(){this.index=this.Ic=this.rd=this.kc=this.first=this.layer=0,this.link=null,this.j=0}xr.className="SegInfo";function Gh(t){Nt.call(this,t)}pt(Gh,Nt),Gh.prototype.createVertex=function(){return new Ye(this)},Gh.prototype.createEdge=function(){return new lu(this)},Gh.className="LayeredDigraphNetwork";function Ye(t){ti.call(this,t),this.Zn=this.ao=this.$n=this.bo=null,this.Za=this.Ag=this.Ig=-1,this.u=NaN,this.F=null,this.valid=!1,this.finish=this.Kl=NaN,this.Cu=0,this.dv=this.ev=null}pt(Ye,ti);function fv(t,i){return t.index-i.index}function Cf(t,i){if(!t.Zn){for(var e=[],n=b(t.destinationEdgesArrayAccess),o=n.next();!o.done;o=n.next())o=o.value,o.valid&&e.push(o);t.Zn=e}for(t=b(t.Zn),e=t.next();!e.done;e=t.next())if(e=e.value,e.toVertex===i)return e;O("Unable to find destination edge to given vertex")}function Gd(t){if(!t.bo){for(var i=[],e=b(t.sourceEdgesArrayAccess),n=e.next();!n.done;n=e.next())n=n.value,n.valid&&i.push(n.fromVertex);i.sort(fv),t.bo=i}return t.bo}function F1(t){if(!t.$n){for(var i=[],e=b(t.destinationEdgesArrayAccess),n=e.next();!n.done;n=e.next())n=n.value,n.valid&&i.push(n.toVertex);i.sort(fv),t.$n=i}return t.$n}Ye.prototype.Bl=function(t){ti.prototype.Bl.call(this,t),this.ao=this.bo=null},Ye.prototype.Jl=function(t){ti.prototype.Jl.call(this,t),this.ao=this.bo=null},Ye.prototype.yl=function(t){ti.prototype.yl.call(this,t),this.Zn=this.$n=null},Ye.prototype.Il=function(t){ti.prototype.Il.call(this,t),this.Zn=this.$n=null},tt.Object.defineProperties(Ye.prototype,{layer:{get:function(){return this.Ig},set:function(t){this.Ig!==t&&(this.Ig=t)}},column:{get:function(){return this.Ag},set:function(t){this.Ag!==t&&(this.Ag=t)}},index:{get:function(){return this.Za},set:function(t){this.Za!==t&&(this.Za=t)}},component:{get:function(){return this.u},set:function(t){this.u!==t&&(this.u=t)}},near:{get:function(){return this.F},set:function(t){this.F!==t&&(this.F=t)}}}),Ye.prototype.deleteDestinationEdge=Ye.prototype.Il,Ye.prototype.addDestinationEdge=Ye.prototype.yl,Ye.prototype.deleteSourceEdge=Ye.prototype.Jl,Ye.prototype.addSourceEdge=Ye.prototype.Bl,Ye.className="LayeredDigraphVertex";function lu(t){de.call(this,t),this.j=this.ia=this.Ha=!1,this.V=this.u=NaN,this.F=this.o=0}pt(lu,de),tt.Object.defineProperties(lu.prototype,{fromVertex:{get:function(){return this.kd},set:function(t){this.kd!==t&&(this.kd=t)}},toVertex:{get:function(){return this.qd},set:function(t){this.qd!==t&&(this.qd=t)}},valid:{get:function(){return this.Ha},set:function(t){this.Ha!==t&&(this.Ha=t)}},rev:{get:function(){return this.ia},set:function(t){this.ia!==t&&(this.ia=t)}},forest:{get:function(){return this.j},set:function(t){this.j!==t&&(this.j=t)}},portFromPos:{get:function(){return this.u},set:function(t){this.u!==t&&(this.u=t)}},portToPos:{get:function(){return this.V},set:function(t){this.V!==t&&(this.V=t)}},portFromColOffset:{get:function(){return this.o},set:function(t){this.o!==t&&(this.o=t)}},portToColOffset:{get:function(){return this.F},set:function(t){this.F!==t&&(this.F=t)}}}),lu.className="LayeredDigraphEdge";function et(t){Lt.call(this),this.Vb=new E,this.Vn=Ff,this.ud=bn,this.uo=Of,this.Aq=qd,this.$v=[],this.td=!0,this.Sb=If,this.$d=new Z(10,10).freeze();var i=new Os(this);this.W=new $e(i),this.Y=new $e(i),this.qu=[],t&&Object.assign(this,t)}pt(et,Lt),et.prototype.cloneProtected=function(t){Lt.prototype.cloneProtected.call(this,t),t.Vn=this.Vn,t.uo=this.uo,t.Aq=this.Aq,t.td=this.td,t.Sb=this.Sb,t.$d.assign(this.$d),t.W.copyInheritedPropertiesFrom(this.W),t.Y.copyInheritedPropertiesFrom(this.Y)},et.prototype.qb=function(t){t.classType===et?t.name.indexOf("Alignment")===0?this.alignment=t:t.name.indexOf("Arrangement")===0?this.arrangement=t:t.name.indexOf("Compaction")===0?this.compaction=t:t.name.indexOf("Path")===0?this.path=t:t.name.indexOf("Sorting")===0?this.sorting=t:t.name.indexOf("Style")===0?this.treeStyle=t:O("Unknown enum value: "+t):Lt.prototype.qb.call(this,t)},et.prototype.createNetwork=function(){return new Os(this)},et.prototype.makeNetwork=function(t){function i(n){if(n instanceof B)return!n.isLinkLabel&&n.category!=="Comment";if(n instanceof F){var o=n.fromNode;return o===null||o.isLinkLabel||o.category==="Comment"?!1:(n=n.toNode,!(n===null||n.isLinkLabel||n.category==="Comment"))}return!1}var e=this.createNetwork();return t instanceof C?(e.lg(t.nodes,!0,i),e.lg(t.links,!0,i)):t instanceof Q?e.lg(t.memberParts,!1,i):e.lg(t.iterator,!1,i),e},et.prototype.doLayout=function(t){this.network===null&&(this.network=this.makeNetwork(t)),this.arrangement!==Df&&(this.arrangementOrigin=this.initialOrigin(this.arrangementOrigin));var i=this.diagram;if(i===null&&t instanceof C&&(i=t),this.path===Ff&&i!==null?this.ud=i.isTreePathToChildren?bn:Fs:this.ud=this.path===Ff?bn:this.path,0<this.network.vertexes.count){for(this.network.Jo(),t=this.network.vertexes.iterator;t.next();)i=t.value,i.initialized=!1,i.level=0,i.parent=null,i.children=[];if(0<this.Vb.count){for(t=new E,i=this.Vb.iterator;i.next();){var e=i.value;e instanceof B?(e=this.network.ki(e),e!==null&&t.add(e)):e instanceof $e&&t.add(e)}this.Vb=t}for(this.Vb.count===0&&this.findRoots(),t=this.Vb.copy().iterator;t.next();)i=t.value,i.initialized||(i.initialized=!0,Xd(this,i));for(i=this.network.vertexes,t=null;t=A1(i),0<t.count;)i=pv(this,t),i!==null&&this.Vb.add(i),i.initialized=!0,Xd(this,i),i=t;for(t=this.Vb.iterator;t.next();)i=t.value,i instanceof $e&&dv(this,i);for(t=this.Vb.iterator;t.next();)i=t.value,i instanceof $e&&gv(this,i);for(t=this.Vb.iterator;t.next();)i=t.value,i instanceof $e&&yv(this,i);if(this.Bu(),this.layerStyle===Ef){for(t=[],i=this.network.vertexes.iterator;i.next();){e=i.value;var n=e.parent;n===null&&(n=e),n=n.angle===0||n.angle===180;var o=t[e.level];o===void 0&&(o=0),t[e.level]=Math.max(o,n?e.width:e.height)}for(i=0;i<t.length;i++)t[i]===void 0&&(t[i]=0);for(this.$v=t,i=this.network.vertexes.iterator;i.next();)e=i.value,n=e.parent,n===null&&(n=e),n.angle===0||n.angle===180?(n.angle===180&&(e.focusX+=t[e.level]-e.width),e.width=t[e.level]):(n.angle===270&&(e.focusY+=t[e.level]-e.height),e.height=t[e.level])}else if(this.layerStyle===bd)for(t=this.network.vertexes.iterator;t.next();){for(i=t.value,e=i.angle===0||i.angle===180,n=-1,o=0;o<i.children.length;o++){var r=i.children[o];n=Math.max(n,e?r.width:r.height)}if(0<=n)for(o=0;o<i.children.length;o++)r=i.children[o],e?(i.angle===180&&(r.focusX+=n-r.width),r.width=n):(i.angle===270&&(r.focusY+=n-r.height),r.height=n)}for(t=this.Vb.iterator;t.next();)i=t.value,i instanceof $e&&this.layoutTree(i);this.arrangeTrees(),this.updateParts()}this.network=null,this.Vb=new E,this.isValidLayout=!0};function A1(t){var i=new E;for(t=t.iterator;t.next();){var e=t.value;e.initialized||i.add(e)}return i}et.prototype.findRoots=function(){for(var t=this.network.vertexes,i=t.iterator;i.next();){var e=i.value;switch(this.ud){case bn:e.sourceEdges.count===0&&this.Vb.add(e);break;case Fs:e.destinationEdges.count===0&&this.Vb.add(e);break;default:O("Unhandled path value "+this.ud.toString())}}this.Vb.count===0&&(t=pv(this,t),t!==null&&this.Vb.add(t))};function pv(t,i){var e=999999,n=null;for(i=i.iterator;i.next();){var o=i.value;switch(t.ud){case bn:o.sourceEdges.count<e&&(e=o.sourceEdges.count,n=o);break;case Fs:o.destinationEdges.count<e&&(e=o.destinationEdges.count,n=o);break;default:O("Unhandled path value "+t.ud.toString())}}return n}function Xd(t,i){if(i!==null){switch(t.ud){case bn:if(0<i.destinationEdges.count){for(var e=new V,n=i.destinationVertexes;n.next();){var o=n.value;cv(t,i,o)&&e.add(o)}0<e.count&&(i.children=e.Fa())}break;case Fs:if(0<i.sourceEdges.count){for(e=new V,n=i.sourceVertexes;n.next();)o=n.value,cv(t,i,o)&&e.add(o);0<e.count&&(i.children=e.Fa())}break;default:O("Unhandled path value"+t.ud.toString())}for(e=i.children,n=e.length,o=0;o<n;o++){var r=e[o];r.initialized=!0,r.level=i.level+1,r.parent=i,t.Vb.remove(r)}for(i=0;i<n;i++)Xd(t,e[i])}}function cv(t,i,e){if(e.initialized){if(i===null)var n=!1;else{for(n=i.parent;n!==null&&n!==e;)n=n.parent;n=n===e}if(n||e.level>i.level)return!1;t.removeChild(e.parent,e)}return!0}et.prototype.removeChild=function(t,i){if(t!==null&&i!==null){for(var e=t.children,n=0,o=0;o<e.length;o++)e[o]===i&&n++;if(0<n){n=Array(e.length-n);for(var r=o=0;r<e.length;r++)e[r]!==i&&(n[o++]=e[r]);t.children=n}}};function dv(t,i){if(i!==null){t.initializeTreeVertexValues(i),i.alignment===eo&&t.sortTreeVertexChildren(i);for(var e=0,n=i.childrenCount,o=0,r=i.children,s=r.length,h=0;h<s;h++){var l=r[h];dv(t,l),e+=l.descendantCount+1,n=Math.max(n,l.maxChildrenCount),o=Math.max(o,l.maxGenerationCount)}i.descendantCount=e,i.maxChildrenCount=n,i.maxGenerationCount=0<n?o+1:0}}function O1(t,i){switch(t.uo){default:case Of:return i.parent!==null?i.parent:t.W;case $d:return i.parent===null?t.W:i.parent.parent===null?t.Y:i.parent;case _d:return i.parent!==null?i.parent.parent!==null?i.parent.parent:t.Y:t.W;case Zd:var e=!0;if(i.childrenCount===0)e=!1;else for(var n=i.children,o=n.length,r=0;r<o;r++)if(0<n[r].childrenCount){e=!1;break}return e&&i.parent!==null?t.Y:i.parent!==null?i.parent:t.W}}et.prototype.initializeTreeVertexValues=function(t){if(t.copyInheritedPropertiesFrom(O1(this,t)),t.parent!==null&&t.parent.alignment===eo){for(var i=t.angle,e=t.parent.children,n=0;n<e.length&&t!==e[n];)n++;n%2===0?n!==e.length-1&&(i=i===90?180:i===180?270:i===270?180:270):i=i===90?0:i===180?90:i===270?0:90,t.angle=i}t.initialized=!0};function gv(t,i){if(i!==null){t.assignTreeVertexValues(i),i=i.children;for(var e=i.length,n=0;n<e;n++)gv(t,i[n])}}et.prototype.assignTreeVertexValues=function(){};function yv(t,i){if(i!==null){i.alignment!==eo&&t.sortTreeVertexChildren(i),i=i.children;for(var e=i.length,n=0;n<e;n++)yv(t,i[n])}}et.prototype.sortTreeVertexChildren=function(t){switch(t.sorting){case Xh:break;case au:t.children.reverse();break;case fu:t.children.sort(t.comparer);break;case pu:t.children.sort(t.comparer),t.children.reverse();break;default:O("Unhandled sorting value "+t.sorting.toString())}},et.prototype.Bu=function(){if(this.comments)for(var t=this.network.vertexes.iterator;t.next();)this.addComments(t.value)},et.prototype.addComments=function(t){var i=t.angle,e=t.parent,n=0,o=!1;e!==null&&(n=e.angle,o=e.alignment,o=wr(o)),i=i===90||i===270,n=n===90||n===270,e=t.childrenCount===0;var r=0,s=0,h=0,l=t.commentSpacing;if(t.node!==null)for(var u=t.node.Mu();u.next();){var a=u.value;a.category==="Comment"&&a.canLayout()&&(t.comments===null&&(t.comments=[]),t.comments.push(a),a.Va(),a=a.measuredBounds,i&&!e||!o&&!n&&e||o&&n&&e?(r=Math.max(r,a.width),s+=a.height+Math.abs(h)):(r+=a.width+Math.abs(h),s=Math.max(s,a.height)),h=l)}t.comments!==null&&(i&&!e||!o&&!n&&e||o&&n&&e?(r+=Math.abs(t.commentMargin),s=Math.max(0,s-t.height)):(s+=Math.abs(t.commentMargin),r=Math.max(0,r-t.width)),o=T.allocAt(0,0,t.bounds.width+r,t.bounds.height+s),t.bounds=o,T.free(o))};function wr(t){return t===Wo||t===eo||t===Jo||t===wo}function uu(t){return t===Wo||t===eo}function Kd(t){var i=t.parent;if(i!==null){var e=i.alignment;if(wr(e)){if(uu(e)){for(i=i.children,e=0;e<i.length&&t!==i[e];)e++;return e%2===0}if(e===Jo)return!0}}return!1}et.prototype.layoutComments=function(t){if(t.comments!==null){var i=t.node.measuredBounds,e=t.parent,n=t.angle,o=0,r=!1;e!==null&&(o=e.angle,r=e.alignment,r=wr(r)),n=n===90||n===270,e=o===90||o===270;for(var s=t.childrenCount===0,h=Kd(t),l=0,u=t.comments,a=u.length,f=x.alloc(),p=0;p<a;p++){var c=u[p],g=c.measuredBounds;if(n&&!s||!r&&!e&&s||r&&e&&s){if(135<o&&!r||e&&h)if(0<=t.commentMargin)for(f.h(t.bounds.x-t.commentMargin-g.width,t.bounds.y+l),c.move(f),c=c.Sd();c.next();){var y=c.value;y.fromSpot=Ue,y.toSpot=ae}else for(f.h(t.bounds.x+2*t.focus.x-t.commentMargin,t.bounds.y+l),c.move(f),c=c.Sd();c.next();)y=c.value,y.fromSpot=ae,y.toSpot=Ue;else if(0<=t.commentMargin)for(f.h(t.bounds.x+2*t.focus.x+t.commentMargin,t.bounds.y+l),c.move(f),c=c.Sd();c.next();)y=c.value,y.fromSpot=ae,y.toSpot=Ue;else for(f.h(t.bounds.x+t.commentMargin-g.width,t.bounds.y+l),c.move(f),c=c.Sd();c.next();)y=c.value,y.fromSpot=Ue,y.toSpot=ae;l=0<=t.commentSpacing?l+(g.height+t.commentSpacing):l+(t.commentSpacing-g.height)}else{if(135<o&&!r||!e&&h)if(0<=t.commentMargin)for(f.h(t.bounds.x+l,t.bounds.y-t.commentMargin-g.height),c.move(f),c=c.Sd();c.next();)y=c.value,y.fromSpot=Ke,y.toSpot=He;else for(f.h(t.bounds.x+l,t.bounds.y+2*t.focus.y-t.commentMargin),c.move(f),c=c.Sd();c.next();)y=c.value,y.fromSpot=He,y.toSpot=Ke;else if(0<=t.commentMargin)for(f.h(t.bounds.x+l,t.bounds.y+2*t.focus.y+t.commentMargin),c.move(f),c=c.Sd();c.next();)y=c.value,y.fromSpot=He,y.toSpot=Ke;else for(f.h(t.bounds.x+l,t.bounds.y+t.commentMargin-g.height),c.move(f),c=c.Sd();c.next();)y=c.value,y.fromSpot=Ke,y.toSpot=He;l=0<=t.commentSpacing?l+(g.width+t.commentSpacing):l+(t.commentSpacing-g.width)}}if(x.free(f),i=l-t.commentSpacing-(n?i.height:i.width),this.ud===bn)for(t=t.destinationEdges;t.next();)o=t.value.link,o===null||o.isAvoiding||(o.fromEndSegmentLength=0<i?i:NaN);else for(t=t.sourceEdges;t.next();)o=t.value.link,o===null||o.isAvoiding||(o.toEndSegmentLength=0<i?i:NaN)}},et.prototype.layoutTree=function(t){if(t!==null){for(var i=t.children,e=i.length,n=0;n<e;n++)this.layoutTree(i[n]);switch(t.compaction){case Af:mv(this,t);break;case cu:if(t.alignment===eo)mv(this,t);else if(t.childrenCount===0)n=t.parent,e=!1,i=0,n!==null&&(i=n.angle,e=n.alignment,e=wr(e)),n=Kd(t),t.S.h(0,0),t.Da.h(t.width,t.height),t.parent===null||t.comments===null||(i!==180&&i!==270||e)&&!n?t.la.h(0,0):i===180&&!e||(i===90||i===270)&&n?t.la.h(t.width-2*t.focus.x,0):t.la.h(0,t.height-2*t.focus.y),t.Xo=null,t.jp=null;else{var o=cn(t);i=o===90||o===270;var r=0,s=t.children,h=s.length;for(e=0;e<h;e++)n=s[e],r=Math.max(r,i?n.Da.width:n.Da.height);var l=t.alignment;n=l===to;var u=l===io,a=wr(l),f=Math.max(0,t.breadthLimit);e=this.computeLayerSpacing(t);var p=t.nodeSpacing,c=this.computeNodeIndent(t),g=t.rowSpacing,y=0;(n||u||t.gm||t.hm&&t.maxGenerationCount===1)&&(y=Math.max(0,t.rowIndent)),n=t.width;var v=t.height,m=0,w=0,M=0,S=null,N=null,k=0,D=0,z=0,Y=0,A=0,L=0,$=0,W=0;if(a&&!uu(l)&&135<o&&s.reverse(),uu(l))if(1<h)for(var ut=0;ut<h;ut++)ut%2===0&&ut!==h-1&&(W=Math.max(W,i?s[ut].Da.width:s[ut].Da.height));else h===1&&(W=i?s[0].Da.width:s[0].Da.height);if(a){switch(l){case Wo:w=135>o?vv(this,t,s,W,m,w):xv(this,t,s,W,m,w),W=w.x,m=w.width,w=w.height;break;case Jo:for(S=0;S<h;S++)N=s[S],f=N.Da,M=L===0?0:g,i?(N.S.h(r-f.width,Y+M),m=Math.max(m,f.width),w=Math.max(w,Y+M+f.height),Y+=M+f.height):(N.S.h(z+M,r-f.height),m=Math.max(m,z+M+f.width),w=Math.max(w,f.height),z+=M+f.width),L++;break;case wo:for(S=0;S<h;S++)N=s[S],r=N.Da,f=L===0?0:g,i?(N.S.h(p/2+t.focus.x,Y+f),m=Math.max(m,r.width),w=Math.max(w,Y+f+r.height),Y+=f+r.height):(N.S.h(z+f,p/2+t.focus.y),m=Math.max(m,z+f+r.width),w=Math.max(w,r.height),z+=f+r.width),L++}S=oe(this,2),N=oe(this,2),i?(S[0].h(0,0),S[1].h(0,w),N[0].h(m,0)):(S[0].h(0,0),S[1].h(m,0),N[0].h(0,w)),N[1].h(m,w)}else for(ut=0;ut<h;ut++){var wt=s[ut],oi=wt.Da;if(i){0<f&&0<L&&z+p+oi.width>f&&(z<r&&_r(t,l,r-z,0,$,ut-1),A++,L=0,$=ut,M=w,z=0,Y=135<o?-w-g:w+g),Lf(this,wt,0,Y);var li=0;if(L===0)S=wt.Xo,N=wt.jp,k=oi.width,D=oi.height,(S===null||N===null||o!==cn(wt))&&(S=oe(this,2),N=oe(this,2),S[0].h(0,0),S[1].h(0,D),N[0].h(k,0),N[1].h(k,D));else{var Fi=kt();D=wv(this,t,wt,S,N,k,D,Fi),li=D.x,S=Fi[0],N=Fi[1],k=D.width,D=D.height,Mt(Fi),z<oi.width&&0>li&&(js(t,-li,0,$,ut-1),jf(S,-li,0),jf(N,-li,0),li=0)}wt.S.h(li,Y),m=Math.max(m,k),w=Math.max(w,M+(A===0?0:g)+oi.height),z=k}else 0<f&&0<L&&Y+p+oi.height>f&&(Y<r&&_r(t,l,0,r-Y,$,ut-1),A++,L=0,$=ut,M=m,Y=0,z=135<o?-m-g:m+g),Lf(this,wt,z,0),li=0,L===0?(S=wt.Xo,N=wt.jp,k=oi.width,D=oi.height,(S===null||N===null||o!==cn(wt))&&(S=oe(this,2),N=oe(this,2),S[0].h(0,0),S[1].h(k,0),N[0].h(0,D),N[1].h(k,D))):(Fi=kt(),D=wv(this,t,wt,S,N,k,D,Fi),li=D.x,S=Fi[0],N=Fi[1],k=D.width,D=D.height,Mt(Fi),Y<oi.height&&0>li&&(js(t,0,-li,$,ut-1),jf(S,0,-li),jf(N,0,-li),li=0)),wt.S.h(z,li),w=Math.max(w,D),m=Math.max(m,M+(A===0?0:g)+oi.width),Y=D;L++}switch(0<A&&(i?(w+=Math.max(0,e),z<m&&_r(t,l,m-z,0,$,h-1),0<y&&(u||js(t,y,0,0,h-1),m+=y)):(m+=Math.max(0,e),Y<w&&_r(t,l,0,w-Y,$,h-1),0<y&&(u||js(t,0,y,0,h-1),w+=y))),y=u=0,l){case Kh:i?u+=m/2-t.focus.x-c/2:y+=w/2-t.focus.y-c/2;break;case As:0<A?i?u+=m/2-t.focus.x-c/2:y+=w/2-t.focus.y-c/2:i?(W=s[0].S.x+s[0].la.x,u+=W+(s[h-1].S.x+s[h-1].la.x+2*s[h-1].focus.x-W)/2-t.focus.x-c/2):(W=s[0].S.y+s[0].la.y,y+=W+(s[h-1].S.y+s[h-1].la.y+2*s[h-1].focus.y-W)/2-t.focus.y-c/2);break;case to:i?(u-=c,m+=c):(y-=c,w+=c);break;case io:i?(u+=m-t.width+c,m+=c):(y+=w-t.height+c,w+=c);break;case Wo:i?1<h?u+=W+p/2-t.focus.x:u+=s[0].focus.x-t.focus.x+s[0].la.x:1<h?y+=W+p/2-t.focus.y:y+=s[0].focus.y-t.focus.y+s[0].la.y;break;case Jo:i?u+=m+p/2-t.focus.x:y+=w+p/2-t.focus.y;break;case wo:break;default:w=this.customAlignment(t,u,y,m,w),u=w[0],y=w[1],m=w[2],w=w[3]}for(c=0;c<h;c++)W=s[c],i?W.S.h(W.S.x+W.la.x-u,W.S.y+(135<o?(a?-w:-W.Da.height)+W.la.y-e:v+e+W.la.y)):W.S.h(W.S.x+(135<o?(a?-m:-W.Da.width)+W.la.x-e:n+e+W.la.x),W.S.y+W.la.y-y);if(h=s=0,a?i?(m=Ud(t,m,u),0>u&&(u=0),135<o&&(y+=w+e),w+=v+e,l===wo&&(s+=p/2+t.focus.x),h+=v+e):(135<o&&(u+=m+e),m+=n+e,w=Hd(t,w,y),0>y&&(y=0),l===wo&&(h+=p/2+t.focus.y),s+=n+e):i?(t.comments===null?n>m&&(m=Wd(l,n-m,0),s=m.x,h=m.y,m=n,u=0):m=Ud(t,m,u),0>u&&(s-=u,u=0),135<o&&(y+=w+e),w=Math.max(Math.max(w,v),w+v+e),h+=v+e):(135<o&&(u+=m+e),m=Math.max(Math.max(m,n),m+n+e),t.comments===null?v>w&&(w=Wd(l,0,v-w),s=w.x,h=w.y,w=v,y=0):w=Hd(t,w,y),0>y&&(h-=y,y=0),s+=n+e),0<A)o=oe(this,4),A=oe(this,4),i?(o[2].h(0,v+e),o[3].h(o[2].x,w),A[2].h(m,o[2].y),A[3].h(A[2].x,o[3].y)):(o[2].h(n+e,0),o[3].h(m,o[2].y),A[2].h(o[2].x,w),A[3].h(o[3].x,A[2].y));else{for(o=oe(this,S.length+2),A=oe(this,N.length+2),l=0;l<S.length;l++)a=S[l],o[l+2].h(a.x+s,a.y+h);for(l=0;l<N.length;l++)a=N[l],A[l+2].h(a.x+s,a.y+h)}i?(o[0].h(u,0),o[1].h(o[0].x,v),o[2].y<o[1].y&&(o[2].x>o[0].x?o[2].assign(o[1]):o[1].assign(o[2])),o[3].y<o[2].y&&(o[3].x>o[0].x?o[3].assign(o[2]):o[2].assign(o[3])),A[0].h(u+n,0),A[1].h(A[0].x,v),A[2].y<A[1].y&&(A[2].x<A[0].x?A[2].assign(A[1]):A[1].assign(A[2])),A[3].y<A[2].y&&(A[3].x<A[0].x?A[3].assign(A[2]):A[2].assign(A[3])),o[2].y-=e/2,A[2].y-=e/2):(o[0].h(0,y),o[1].h(n,o[0].y),o[2].x<o[1].x&&(o[2].y>o[0].y?o[2].assign(o[1]):o[1].assign(o[2])),o[3].x<o[2].x&&(o[3].y>o[0].y?o[3].assign(o[2]):o[2].assign(o[3])),A[0].h(0,y+v),A[1].h(n,A[0].y),A[2].x<A[1].x&&(A[2].y<A[0].y?A[2].assign(A[1]):A[1].assign(A[2])),A[3].x<A[2].x&&(A[3].y<A[0].y?A[3].assign(A[2]):A[2].assign(A[3])),o[2].x-=e/2,A[2].x-=e/2),kn(this,S),kn(this,N),t.Xo=o,t.jp=A,t.la.h(u,y),t.Da.h(m,w)}break;default:O("Unhandled compaction value "+t.compaction.toString())}}};function mv(t,i){if(i.childrenCount===0){var e=!1,n=0;i.parent!==null&&(n=i.parent.angle,e=i.parent.alignment,e=wr(e));var o=Kd(i);i.S.h(0,0),i.Da.h(i.width,i.height),i.parent===null||i.comments===null||(n!==180&&n!==270||e)&&!o?i.la.h(0,0):n===180&&!e||(n===90||n===270)&&o?i.la.h(i.width-2*i.focus.x,0):i.la.h(0,i.height-2*i.focus.y)}else{n=cn(i),e=n===90||n===270;var r=0;o=i.children;for(var s=o.length,h=0;h<s;h++){var l=o[h];r=Math.max(r,e?l.Da.width:l.Da.height)}var u=i.alignment,a=u===to,f=u===io;h=wr(u);var p=Math.max(0,i.breadthLimit);l=t.computeLayerSpacing(i);var c=i.nodeSpacing,g=t.computeNodeIndent(i),y=a||f?0:g/2,v=i.rowSpacing,m=0;(a||f||i.gm||i.hm&&i.maxGenerationCount===1)&&(m=Math.max(0,i.rowIndent)),a=i.width;var w=i.height,M=0,S=0,N=0,k=0,D=0,z=0,Y=0,A=0,L=0,$=0;if(h&&!uu(u)&&135<n&&o.reverse(),uu(u))if(1<s)for(var W=0;W<s;W++){var ut=o[W],wt=ut.Da;W%2===0&&W!==s-1?L=Math.max(L,(e?wt.width:wt.height)+t.computeBusNodeSpacing(ut)-c):W%2!==0&&($=Math.max($,(e?wt.width:wt.height)+t.computeBusNodeSpacing(ut)-c))}else s===1&&(L=e?o[0].Da.width:o[0].Da.height);if(h)switch(u){case Wo:case eo:S=135>n?vv(t,i,o,L,M,S):xv(t,i,o,L,M,S),L=S.x,M=S.width,S=S.height;break;case Jo:for(p=0;p<s;p++)y=o[p],N=y.Da,$=Y===0?0:v,e?(y.S.h(r-N.width,D+$),M=Math.max(M,N.width),S=Math.max(S,D+$+N.height),D+=$+N.height):(y.S.h(k+$,r-N.height),M=Math.max(M,k+$+N.width),S=Math.max(S,N.height),k+=$+N.width),Y++;break;case wo:for(r=0;r<s;r++)p=o[r],y=p.Da,N=Y===0?0:v,e?(p.S.h(c/2+i.focus.x,D+N),M=Math.max(M,y.width),S=Math.max(S,D+N+y.height),D+=N+y.height):(p.S.h(k+N,c/2+i.focus.y),M=Math.max(M,k+N+y.width),S=Math.max(S,y.height),k+=N+y.width),Y++}else for($=0;$<s;$++)W=o[$],ut=W.Da,e?(0<p&&0<Y&&k+c+ut.width>p&&(k<r&&_r(i,u,r-k,0,A,$-1),z++,Y=0,A=$,N=S,k=0,D=135<n?-S-v:S+v),wt=Y===0?y:c,Lf(t,W,0,D),W.S.h(k+wt,D),M=Math.max(M,k+wt+ut.width),S=Math.max(S,N+(z===0?0:v)+ut.height),k+=wt+ut.width):(0<p&&0<Y&&D+c+ut.height>p&&(D<r&&_r(i,u,0,r-D,A,$-1),z++,Y=0,A=$,N=M,D=0,k=135<n?-M-v:M+v),wt=Y===0?y:c,Lf(t,W,k,0),W.S.h(k,D+wt),S=Math.max(S,D+wt+ut.height),M=Math.max(M,N+(z===0?0:v)+ut.width),D+=wt+ut.height),Y++;switch(0<z&&(e?(S+=Math.max(0,l),k<M&&_r(i,u,M-k,0,A,s-1),0<m&&(f||js(i,m,0,0,s-1),M+=m)):(M+=Math.max(0,l),D<S&&_r(i,u,0,S-D,A,s-1),0<m&&(f||js(i,0,m,0,s-1),S+=m))),m=f=0,u){case Kh:e?f+=M/2-i.focus.x-g/2:m+=S/2-i.focus.y-g/2;break;case As:0<z?e?f+=M/2-i.focus.x-g/2:m+=S/2-i.focus.y-g/2:e?(t=o[0].S.x+o[0].la.x,f+=t+(o[s-1].S.x+o[s-1].la.x+2*o[s-1].focus.x-t)/2-i.focus.x-g/2):(t=o[0].S.y+o[0].la.y,m+=t+(o[s-1].S.y+o[s-1].la.y+2*o[s-1].focus.y-t)/2-i.focus.y-g/2);break;case to:e?(f-=g,M+=g):(m-=g,S+=g);break;case io:e?(f+=M-i.width+g,M+=g):(m+=S-i.height+g,S+=g);break;case Wo:case eo:e?1<s?f+=L+c/2-i.focus.x:f+=o[0].focus.x-i.focus.x+o[0].la.x:1<s?m+=L+c/2-i.focus.y:m+=o[0].focus.y-i.focus.y+o[0].la.y;break;case Jo:e?f+=M+c/2-i.focus.x:m+=S+c/2-i.focus.y;break;case wo:break;default:t=t.customAlignment(i,f,m,M,S),f=t[0],m=t[1],M=t[2],S=t[3]}for(t=0;t<s;t++)g=o[t],e?g.S.h(g.S.x+g.la.x-f,g.S.y+(135<n?(h?-S:-g.Da.height)+g.la.y-l:w+l+g.la.y)):g.S.h(g.S.x+(135<n?(h?-M:-g.Da.width)+g.la.x-l:a+l+g.la.x),g.S.y+g.la.y-m);e?(M=Ud(i,M,f),0>f&&(f=0),135<n&&(m+=S+l),S=Math.max(Math.max(S,w),S+w+l)):(135<n&&(f+=M+l),M=Math.max(Math.max(M,a),M+a+l),S=Hd(i,S,m),0>m&&(m=0)),i.la.h(f,m),i.Da.h(M,S)}}et.prototype.customAlignment=function(t,i,e,n,o){return[i,e,n,o]};function vv(t,i,e,n,o,r){var s=e.length;if(s===0)return new T(n,0,o,r);if(s===1)return i=e[0],o=i.Da.width,r=i.Da.height,new T(n,0,o,r);for(var h=i.nodeSpacing,l=i.rowSpacing,u=cn(i)===90,a=0,f=0,p=0,c=0;c<s;c++)if(!(c%2!==0||1<s&&c===s-1)){var g=e[c],y=g.Da,v=a===0?0:l;if(u){var m=t.computeBusNodeSpacing(g)-h;g.S.h(n-(y.width+m),p+v),o=Math.max(o,y.width+m),r=Math.max(r,p+v+y.height),p+=v+y.height}else m=t.computeBusNodeSpacing(g)-h,g.S.h(f+v,n-(y.height+m)),r=Math.max(r,y.height+m),o=Math.max(o,f+v+y.width),f+=v+y.width;a++}for(a=0,g=f,c=p,u?(f=n+h,p=0):(f=0,p=n+h),y=0;y<s;y++)if(y%2!==0){v=e[y],m=v.Da;var w=a===0?0:l;if(u){var M=t.computeBusNodeSpacing(v)-h;v.S.h(f+M,p+w),o=Math.max(o,f+m.width+M),r=Math.max(r,p+w+m.height),p+=w+m.height}else M=t.computeBusNodeSpacing(v)-h,v.S.h(f+w,p+M),o=Math.max(o,f+w+m.width),r=Math.max(r,p+m.height+M),f+=w+m.width;a++}return 1<s&&s%2===1&&(e=e[s-1],s=e.Da,t=t.computeBusLastRowSpacing(e,u?Math.max(Math.abs(c),Math.abs(p)):Math.max(Math.abs(g),Math.abs(f))),u?(e.S.h(n+h/2-e.focus.x-e.la.x,r+t),u=n+h/2-e.focus.x-e.la.x,o=Math.max(o,u+s.width),0>u&&(o-=u),r=Math.max(r,Math.max(c,p)+t+s.height),0>e.S.x&&(n=Tf(i,e.S.x,!1,n,h))):(e.S.h(o+t,n+h/2-e.focus.y-e.la.y),o=Math.max(o,Math.max(g,f)+t+s.width),p=n+h/2-e.focus.y-e.la.y,r=Math.max(r,p+s.height),0>p&&(r-=p),0>e.S.y&&(n=Tf(i,e.S.y,!0,n,h)))),new T(n,0,o,r)}function xv(t,i,e,n,o,r){var s=e.length;if(s===0)return new T(n,0,o,r);if(s===1)return e=e[0],o=e.Da.width,r=e.Da.height,new T(n,0,o,r);for(var h=i.nodeSpacing,l=i.rowSpacing,u=cn(i)===270,a=0,f=0,p=0,c=0;c<s;c++)if(!(c%2!==0||1<s&&c===s-1)){var g=e[c],y=g.Da,v=a===0?0:l;if(u){var m=t.computeBusNodeSpacing(g)-h;p-=v+y.height,g.S.h(n-(y.width+m),p),o=Math.max(o,y.width+m),r=Math.max(r,Math.abs(p))}else m=t.computeBusNodeSpacing(g)-h,f-=v+y.width,g.S.h(f,n-(y.height+m)),r=Math.max(r,y.height+m),o=Math.max(o,Math.abs(f));a++}for(a=0,g=f,c=p,u?(f=n+h,p=0):(f=0,p=n+h),y=0;y<s;y++)if(y%2!==0){v=e[y],m=v.Da;var w=a===0?0:l;if(u){var M=t.computeBusNodeSpacing(v)-h;p-=w+m.height,v.S.h(f+M,p),o=Math.max(o,f+m.width+M),r=Math.max(r,Math.abs(p))}else M=t.computeBusNodeSpacing(v)-h,f-=w+m.width,v.S.h(f,p+M),r=Math.max(r,p+m.height+M),o=Math.max(o,Math.abs(f));a++}for(1<s&&s%2===1&&(l=e[s-1],a=l.Da,t=t.computeBusLastRowSpacing(l,u?Math.max(Math.abs(c),Math.abs(p)):Math.max(Math.abs(g),Math.abs(f))),u?(l.S.h(n+h/2-l.focus.x-l.la.x,-r-a.height-t),f=n+h/2-l.focus.x-l.la.x,o=Math.max(o,f+a.width),0>f&&(o-=f),r=Math.max(r,Math.abs(Math.min(c,p))+t+a.height),0>l.S.x&&(n=Tf(i,l.S.x,!1,n,h))):(l.S.h(-o-a.width-t,n+h/2-l.focus.y-l.la.y),o=Math.max(o,Math.abs(Math.min(g,f))+t+a.width),p=n+h/2-l.focus.y-l.la.y,r=Math.max(r,p+a.height),0>p&&(r-=p),0>l.S.y&&(n=Tf(i,l.S.y,!0,n,h)))),i=0;i<s;i++)h=e[i],u?h.S.h(h.S.x,h.S.y+r):h.S.h(h.S.x+o,h.S.y);return new T(n,0,o,r)}et.prototype.computeBusNodeSpacing=function(t){return t.parent===null?0:t.parent.nodeSpacing},et.prototype.computeBusLastRowSpacing=function(t){return t.parent===null?0:t.parent.rowSpacing};function Tf(t,i,e,n,o){t=t.children;for(var r=t.length,s=0;s<r;s++)e?t[s].S.h(t[s].S.x,t[s].S.y-i):t[s].S.h(t[s].S.x-i,t[s].S.y);return i=t[r-1],Math.max(n,e?i.la.y+i.focus.y-o/2:i.la.x+i.focus.x-o/2)}function Ud(t,i,e){switch(t.alignment){case As:case Kh:return e+t.width>i&&(i=e+t.width),0>e&&(i-=e),i;case to:return t.width>i?t.width:i;case io:return 2*t.focus.x>i?t.width:i+t.width-2*t.focus.x;case Wo:case eo:return Math.max(t.width,Math.max(i,e+t.width)-Math.min(0,e));case Jo:return t.width-t.focus.x+t.nodeSpacing/2+i;case wo:return Math.max(t.width,t.focus.x+t.nodeSpacing/2+i);default:return i}}function Hd(t,i,e){switch(t.alignment){case As:case Kh:return e+t.height>i&&(i=e+t.height),0>e&&(i-=e),i;case to:return t.height>i?t.height:i;case io:return 2*t.focus.y>i?t.height:i+t.height-2*t.focus.y;case Wo:case eo:return Math.max(t.height,Math.max(i,e+t.height)-Math.min(0,e));case Jo:return t.height-t.focus.y+t.nodeSpacing/2+i;case wo:return Math.max(t.height,t.focus.y+t.nodeSpacing/2+i);default:return i}}function Wd(t,i,e){switch(t){case Kh:i/=2,e/=2;break;case As:i/=2,e/=2;break;case to:e=i=0;break;case io:break;default:O("Unhandled alignment value "+t.toString())}return new x(i,e)}function _r(t,i,e,n,o,r){i=Wd(i,e,n),js(t,i.x,i.y,o,r)}function js(t,i,e,n,o){if(i!==0||e!==0)for(t=t.children;n<=o;n++){var r=t[n].S;r.x+=i,r.y+=e}}function Lf(t,i,e,n){var o=i.parent;switch(t.ud){case bn:for(t=i.sourceEdges;t.next();)i=t.value,i.fromVertex===o&&i.relativePoint.h(e,n);break;case Fs:for(t=i.destinationEdges;t.next();)i=t.value,i.toVertex===o&&i.relativePoint.h(e,n);break;default:O("Unhandled path value "+t.ud.toString())}}function jf(t,i,e){for(var n=0;n<t.length;n++){var o=t[n];o.x+=i,o.y+=e}}function wv(t,i,e,n,o,r,s,h){var l=cn(i),u=l===90||l===270,a=i.nodeSpacing;i=n;var f=o;n=r;var p=s,c=e.Xo,g=e.jp;s=e.Da;var y=u?Math.max(p,s.height):Math.max(n,s.width);if((c===null||l!==cn(e))&&(c=oe(t,2),g=oe(t,2),u?(c[0].h(0,0),c[1].h(0,s.height),g[0].h(s.width,0),g[1].h(g[0].x,c[1].y)):(c[0].h(0,0),c[1].h(s.width,0),g[0].h(0,s.height),g[1].h(c[1].x,g[0].y))),u){if(p=9999999,!(f===null||2>f.length||c===null||2>c.length))for(o=e=0;e<f.length&&o<c.length;){r=f[e];var v=c[o];l=v.x,u=v.y,l+=n;var m=r;e+1<f.length&&(m=f[e+1]);var w=v;v=w.x,w=w.y,o+1<c.length&&(w=c[o+1],v=w.x,w=w.y,v+=n);var M=p;r.y===u?M=l-r.x:r.y>u&&r.y<w?M=l+(r.y-u)/(w-u)*(v-l)-r.x:u>r.y&&u<m.y&&(M=l-(r.x+(u-r.y)/(m.y-r.y)*(m.x-r.x))),M<p&&(p=M),m.y<=r.y?e++:w<=u?o++:(m.y<=w&&e++,w<=m.y&&o++)}if(p=n-p,p+=a,e=c,o=p,i===null||2>i.length||e===null||2>e.length)n=null;else{for(a=oe(t,i.length+e.length),n=r=l=0;r<e.length&&e[r].y<i[0].y;)u=e[r++],a[n++].h(u.x+o,u.y);for(;l<i.length;)u=i[l++],a[n++].h(u.x,u.y);for(l=i[i.length-1].y;r<e.length&&e[r].y<=l;)r++;for(;r<e.length&&e[r].y>l;)u=e[r++],a[n++].h(u.x+o,u.y);for(e=oe(t,n),l=0;l<n;l++)e[l].assign(a[l]);kn(t,a),n=e}if(r=g,l=p,f===null||2>f.length||r===null||2>r.length)o=null;else{for(a=oe(t,f.length+r.length),o=u=e=0;e<f.length&&f[e].y<r[0].y;)m=f[e++],a[o++].h(m.x,m.y);for(;u<r.length;)m=r[u++],a[o++].h(m.x+l,m.y);for(r=r[r.length-1].y;e<f.length&&f[e].y<=r;)e++;for(;e<f.length&&f[e].y>r;)l=f[e++],a[o++].h(l.x,l.y);for(r=oe(t,o),e=0;e<o;e++)r[e].assign(a[e]);kn(t,a),o=r}return r=Math.max(0,p)+s.width,s=y,kn(t,i),kn(t,c),kn(t,f),kn(t,g),h[0]=n,h[1]=o,new T(p,0,r,s)}if(n=9999999,!(f===null||2>f.length||c===null||2>c.length))for(o=e=0;e<f.length&&o<c.length;)r=f[e],v=c[o],l=v.x,u=v.y,u+=p,m=r,e+1<f.length&&(m=f[e+1]),w=v,v=w.x,w=w.y,o+1<c.length&&(w=c[o+1],v=w.x,w=w.y,w+=p),M=n,r.x===l?M=u-r.y:r.x>l&&r.x<v?M=u+(r.x-l)/(v-l)*(w-u)-r.y:l>r.x&&l<m.x&&(M=u-(r.y+(l-r.x)/(m.x-r.x)*(m.y-r.y))),M<n&&(n=M),m.x<=r.x?e++:v<=l?o++:(m.x<=v&&e++,v<=m.x&&o++);if(p-=n,p+=a,e=c,o=p,i===null||2>i.length||e===null||2>e.length)n=null;else{for(a=oe(t,i.length+e.length),n=r=l=0;r<e.length&&e[r].x<i[0].x;)u=e[r++],a[n++].h(u.x,u.y+o);for(;l<i.length;)u=i[l++],a[n++].h(u.x,u.y);for(l=i[i.length-1].x;r<e.length&&e[r].x<=l;)r++;for(;r<e.length&&e[r].x>l;)u=e[r++],a[n++].h(u.x,u.y+o);for(e=oe(t,n),l=0;l<n;l++)e[l].assign(a[l]);kn(t,a),n=e}if(r=g,l=p,f===null||2>f.length||r===null||2>r.length)o=null;else{for(a=oe(t,f.length+r.length),o=u=e=0;e<f.length&&f[e].x<r[0].x;)m=f[e++],a[o++].h(m.x,m.y);for(;u<r.length;)m=r[u++],a[o++].h(m.x,m.y+l);for(r=r[r.length-1].x;e<f.length&&f[e].x<=r;)e++;for(;e<f.length&&f[e].x>r;)l=f[e++],a[o++].h(l.x,l.y);for(r=oe(t,o),e=0;e<o;e++)r[e].assign(a[e]);kn(t,a),o=r}return r=y,s=Math.max(0,p)+s.height,kn(t,i),kn(t,c),kn(t,f),kn(t,g),h[0]=n,h[1]=o,new T(p,0,r,s)}function oe(t,i){if(t=t.qu[i],t!==void 0&&(t=t.pop(),t!==void 0))return t;t=[];for(var e=0;e<i;e++)t[e]=new x;return t}function kn(t,i){var e=i.length,n=t.qu[e];n===void 0&&(n=[],t.qu[e]=n),n.push(i)}et.prototype.arrangeTrees=function(){if(this.Sb===Df)for(var t=this.Vb.iterator;t.next();){var i=t.value;if(i instanceof $e){var e=i.node;if(e!==null){var n=e.position;e=n.x,n=n.y,isFinite(e)||(e=0),isFinite(n)||(n=0),Jd(this,i,e,n)}}}else{for(t=[],i=this.Vb.iterator;i.next();)e=i.value,e instanceof $e&&t.push(e);switch(this.sorting){case Xh:break;case au:t.reverse();break;case fu:t.sort(this.comparer);break;case pu:t.sort(this.comparer),t.reverse();break;default:O("Unhandled sorting value "+this.sorting.toString())}for(e=this.arrangementOrigin,i=e.x,e=e.y,n=0;n<t.length;n++){var o=t[n];switch(Jd(this,o,i+o.la.x,e+o.la.y),this.Sb){case If:e+=o.Da.height+this.$d.height;break;case Qd:i+=o.Da.width+this.$d.width;break;default:O("Unhandled arrangement value "+this.Sb.toString())}}}};function Jd(t,i,e,n){if(i!==null){i.x=e,i.y=n,i=i.children;for(var o=i.length,r=0;r<o;r++){var s=i[r];Jd(t,s,e+s.S.x,n+s.S.y)}}}et.prototype.commitLayout=function(){this.yv(),this.commitNodes(),this.Gu(),this.isRouting&&this.commitLinks()},et.prototype.commitNodes=function(){for(var t=this.network.vertexes.iterator;t.next();)t.value.commit();for(t.reset();t.next();)this.layoutComments(t.value)},et.prototype.Gu=function(){if(this.layerStyle===Ef){for(var t=this.$v,i=[],e=null,n=this.network.vertexes.iterator;n.next();){var o=n.value;e===null?e=o.bounds.copy():e.ed(o.bounds);var r=i[o.level];r===void 0?r=this.computeLayerSpacing(o):r=Math.max(r,this.computeLayerSpacing(o)),i[o.level]=r}for(n=0;n<i.length;n++)i[n]===void 0&&(i[n]=0);if(this.angle===90||this.angle===270?(e.Bc(this.nodeSpacing/2,this.layerSpacing),n=new x(-this.nodeSpacing/2,-this.layerSpacing/2)):(e.Bc(this.layerSpacing,this.nodeSpacing/2),n=new x(-this.layerSpacing/2,-this.nodeSpacing/2)),o=[],e=this.angle===90||this.angle===270?e.width:e.height,r=0,this.angle===180||this.angle===270)for(var s=0;s<t.length;s++)r+=t[s]+i[s];for(s=0;s<t.length;s++){var h=t[s]+i[s];this.angle===270?(r-=h,o.push(new T(0,r,e,h))):this.angle===90?(o.push(new T(0,r,e,h)),r+=h):this.angle===180?(r-=h,o.push(new T(r,0,h,e))):(o.push(new T(r,0,h,e)),r+=h)}this.commitLayers(o,n)}},et.prototype.commitLayers=function(){},et.prototype.commitLinks=function(){for(var t=this.network.edges.iterator;t.next();)t.value.commit()},et.prototype.yv=function(){for(var t=this.Vb.iterator;t.next();){var i=t.value;i instanceof $e&&Mv(this,i)}};function Mv(t,i){if(i!==null){t.setPortSpots(i),i=i.children;for(var e=i.length,n=0;n<e;n++)Mv(t,i[n])}}et.prototype.setPortSpots=function(t){var i=t.alignment;if(wr(i)){var e=this.ud===bn,n=cn(t);switch(n){case 0:var o=ae;break;case 90:o=He;break;case 180:o=Ue;break;default:o=Ke}var r=t.children,s=r.length;switch(i){case Wo:case eo:for(i=0;i<s;i++){var h=r[i];if(h=(e?h.sourceEdges:h.destinationEdges).first(),h!==null&&(h=h.link,h!==null)){var l=n===90||n===270?Ue:Ke;if(s===1||i===s-1&&s%2===1)switch(n){case 0:l=Ue;break;case 90:l=Ke;break;case 180:l=ae;break;default:l=He}else i%2===0&&(l=n===90||n===270?ae:He);e?(t.setsPortSpot&&(h.fromSpot=o),t.setsChildPortSpot&&(h.toSpot=l)):(t.setsPortSpot&&(h.fromSpot=l),t.setsChildPortSpot&&(h.toSpot=o))}}break;case Jo:for(n=n===90||n===270?ae:He,r=e?t.destinationEdges:t.sourceEdges;r.next();)s=r.value.link,s!==null&&(e?(t.setsPortSpot&&(s.fromSpot=o),t.setsChildPortSpot&&(s.toSpot=n)):(t.setsPortSpot&&(s.fromSpot=n),t.setsChildPortSpot&&(s.toSpot=o)));break;case wo:for(n=n===90||n===270?Ue:Ke,r=e?t.destinationEdges:t.sourceEdges;r.next();)s=r.value.link,s!==null&&(e?(t.setsPortSpot&&(s.fromSpot=o),t.setsChildPortSpot&&(s.toSpot=n)):(t.setsPortSpot&&(s.fromSpot=n),t.setsChildPortSpot&&(s.toSpot=o)))}}else if(e=cn(t),this.ud===bn){for(o=t.destinationEdges;o.next();)if(n=o.value.link,n!==null){if(t.setsPortSpot)if(t.portSpot.Yb())switch(e){case 0:n.fromSpot=ae;break;case 90:n.fromSpot=He;break;case 180:n.fromSpot=Ue;break;default:n.fromSpot=Ke}else n.fromSpot=t.portSpot;if(t.setsChildPortSpot)if(t.childPortSpot.Yb())switch(e){case 0:n.toSpot=Ue;break;case 90:n.toSpot=Ke;break;case 180:n.toSpot=ae;break;default:n.toSpot=He}else n.toSpot=t.childPortSpot}}else for(o=t.sourceEdges;o.next();)if(n=o.value.link,n!==null){if(t.setsPortSpot)if(t.portSpot.Yb())switch(e){case 0:n.toSpot=ae;break;case 90:n.toSpot=He;break;case 180:n.toSpot=Ue;break;default:n.toSpot=Ke}else n.toSpot=t.portSpot;if(t.setsChildPortSpot)if(t.childPortSpot.Yb())switch(e){case 0:n.fromSpot=Ue;break;case 90:n.fromSpot=Ke;break;case 180:n.fromSpot=ae;break;default:n.fromSpot=He}else n.fromSpot=t.childPortSpot}};function cn(t){return t=t.angle,45>=t?0:135>=t?90:225>=t?180:315>=t?270:0}et.prototype.computeLayerSpacing=function(t){var i=cn(t);i=i===90||i===270;var e=t.layerSpacing;if(0<t.layerSpacingParentOverlap){var n=Math.min(1,t.layerSpacingParentOverlap);e-=i?t.height*n:t.width*n}return e<(i?-t.height:-t.width)&&(e=i?-t.height:-t.width),e},et.prototype.computeNodeIndent=function(t){var i=cn(t),e=t.nodeIndent;if(0<t.nodeIndentPastParent){var n=Math.min(1,t.nodeIndentPastParent);e+=i===90||i===270?t.width*n:t.height*n}return e=Math.max(0,e)},tt.Object.defineProperties(et.prototype,{roots:{get:function(){return this.Vb},set:function(t){this.Vb!==t&&(this.Vb=t,this.C())}},path:{get:function(){return this.Vn},set:function(t){this.Vn!==t&&(this.Vn=t,this.C())}},treeStyle:{get:function(){return this.uo},set:function(t){this.Sb===t||t!==Of&&t!==_d&&t!==Zd&&t!==$d||(this.uo=t,this.C())}},layerStyle:{get:function(){return this.Aq},set:function(t){this.Sb===t||t!==qd&&t!==bd&&t!==Ef||(this.Aq=t,this.C())}},comments:{get:function(){return this.td},set:function(t){this.td!==t&&(this.td=t,this.C())}},arrangement:{get:function(){return this.Sb},set:function(t){this.Sb===t||t!==If&&t!==Qd&&t!==Df||(this.Sb=t,this.C())}},arrangementSpacing:{get:function(){return this.$d},set:function(t){this.$d.D(t)||(this.$d.assign(t),this.C())}},rootDefaults:{get:function(){return this.W},set:function(t){this.W!==t&&(this.W=t,this.C())}},alternateDefaults:{get:function(){return this.Y},set:function(t){this.Y!==t&&(this.Y=t,this.C())}},sorting:{get:function(){return this.W.sorting},set:function(t){this.W.sorting===t||t!==Xh&&t!==au&&t!==fu&&!pu||(this.W.sorting=t,this.C())}},comparer:{get:function(){return this.W.comparer},set:function(t){this.W.comparer!==t&&(this.W.comparer=t,this.C())}},angle:{get:function(){return this.W.angle},set:function(t){this.W.angle!==t&&(t===0||t===90||t===180||t===270?(this.W.angle=t,this.C()):O("TreeLayout.angle must be 0, 90, 180, or 270"))}},alignment:{get:function(){return this.W.alignment},set:function(t){this.W.alignment!==t&&(this.W.alignment=t,this.C())}},nodeIndent:{get:function(){return this.W.nodeIndent},set:function(t){this.W.nodeIndent!==t&&0<=t&&(this.W.nodeIndent=t,this.C())}},nodeIndentPastParent:{get:function(){return this.W.nodeIndentPastParent},set:function(t){this.W.nodeIndentPastParent!==t&&0<=t&&1>=t&&(this.W.nodeIndentPastParent=t,this.C())}},nodeSpacing:{get:function(){return this.W.nodeSpacing},set:function(t){this.W.nodeSpacing!==t&&(this.W.nodeSpacing=t,this.C())}},layerSpacing:{get:function(){return this.W.layerSpacing},set:function(t){this.W.layerSpacing!==t&&(this.W.layerSpacing=t,this.C())}},layerSpacingParentOverlap:{get:function(){return this.W.layerSpacingParentOverlap},set:function(t){this.W.layerSpacingParentOverlap!==t&&0<=t&&1>=t&&(this.W.layerSpacingParentOverlap=t,this.C())}},compaction:{get:function(){return this.W.compaction},set:function(t){this.W.compaction===t||t!==Af&&t!==cu||(this.W.compaction=t,this.C())}},breadthLimit:{get:function(){return this.W.breadthLimit},set:function(t){this.W.breadthLimit!==t&&0<=t&&(this.W.breadthLimit=t,this.C())}},rowSpacing:{get:function(){return this.W.rowSpacing},set:function(t){this.W.rowSpacing!==t&&(this.W.rowSpacing=t,this.C())}},rowIndent:{get:function(){return this.W.rowIndent},set:function(t){this.W.rowIndent!==t&&0<=t&&(this.W.rowIndent=t,this.C())}},commentSpacing:{get:function(){return this.W.commentSpacing},set:function(t){this.W.commentSpacing!==t&&(this.W.commentSpacing=t,this.C())}},commentMargin:{get:function(){return this.W.commentMargin},set:function(t){this.W.commentMargin!==t&&(this.W.commentMargin=t,this.C())}},setsPortSpot:{get:function(){return this.W.setsPortSpot},set:function(t){this.W.setsPortSpot!==t&&(this.W.setsPortSpot=t,this.C())}},portSpot:{get:function(){return this.W.portSpot},set:function(t){this.W.portSpot.D(t)||(this.W.portSpot=t,this.C())}},setsChildPortSpot:{get:function(){return this.W.setsChildPortSpot},set:function(t){this.W.setsChildPortSpot!==t&&(this.W.setsChildPortSpot=t,this.C())}},childPortSpot:{get:function(){return this.W.childPortSpot},set:function(t){this.W.childPortSpot.D(t)||(this.W.childPortSpot=t,this.C())}},alternateSorting:{get:function(){return this.Y.sorting},set:function(t){this.Y.sorting===t||t!==Xh&&t!==au&&t!==fu&&!pu||(this.Y.sorting=t,this.C())}},alternateComparer:{get:function(){return this.Y.comparer},set:function(t){this.Y.comparer!==t&&(this.Y.comparer=t,this.C())}},alternateAngle:{get:function(){return this.Y.angle},set:function(t){this.Y.angle===t||t!==0&&t!==90&&t!==180&&t!==270||(this.Y.angle=t,this.C())}},alternateAlignment:{get:function(){return this.Y.alignment},set:function(t){this.Y.alignment!==t&&(this.Y.alignment=t,this.C())}},alternateNodeIndent:{get:function(){return this.Y.nodeIndent},set:function(t){this.Y.nodeIndent!==t&&0<=t&&(this.Y.nodeIndent=t,this.C())}},alternateNodeIndentPastParent:{get:function(){return this.Y.nodeIndentPastParent},set:function(t){this.Y.nodeIndentPastParent!==t&&0<=t&&1>=t&&(this.Y.nodeIndentPastParent=t,this.C())}},alternateNodeSpacing:{get:function(){return this.Y.nodeSpacing},set:function(t){this.Y.nodeSpacing!==t&&(this.Y.nodeSpacing=t,this.C())}},alternateLayerSpacing:{get:function(){return this.Y.layerSpacing},set:function(t){this.Y.layerSpacing!==t&&(this.Y.layerSpacing=t,this.C())}},alternateLayerSpacingParentOverlap:{get:function(){return this.Y.layerSpacingParentOverlap},set:function(t){this.Y.layerSpacingParentOverlap!==t&&0<=t&&1>=t&&(this.Y.layerSpacingParentOverlap=t,this.C())}},alternateCompaction:{get:function(){return this.Y.compaction},set:function(t){this.Y.compaction===t||t!==Af&&t!==cu||(this.Y.compaction=t,this.C())}},alternateBreadthLimit:{get:function(){return this.Y.breadthLimit},set:function(t){this.Y.breadthLimit!==t&&0<=t&&(this.Y.breadthLimit=t,this.C())}},alternateRowSpacing:{get:function(){return this.Y.rowSpacing},set:function(t){this.Y.rowSpacing!==t&&(this.Y.rowSpacing=t,this.C())}},alternateRowIndent:{get:function(){return this.Y.rowIndent},set:function(t){this.Y.rowIndent!==t&&0<=t&&(this.Y.rowIndent=t,this.C())}},alternateCommentSpacing:{get:function(){return this.Y.commentSpacing},set:function(t){this.Y.commentSpacing!==t&&(this.Y.commentSpacing=t,this.C())}},alternateCommentMargin:{get:function(){return this.Y.commentMargin},set:function(t){this.Y.commentMargin!==t&&(this.Y.commentMargin=t,this.C())}},alternateSetsPortSpot:{get:function(){return this.Y.setsPortSpot},set:function(t){this.Y.setsPortSpot!==t&&(this.Y.setsPortSpot=t,this.C())}},alternatePortSpot:{get:function(){return this.Y.portSpot},set:function(t){this.Y.portSpot.D(t)||(this.Y.portSpot=t,this.C())}},alternateSetsChildPortSpot:{get:function(){return this.Y.setsChildPortSpot},set:function(t){this.Y.setsChildPortSpot!==t&&(this.Y.setsChildPortSpot=t,this.C())}},alternateChildPortSpot:{get:function(){return this.Y.childPortSpot},set:function(t){this.Y.childPortSpot.D(t)||(this.Y.childPortSpot=t,this.C())}}});var Ff=new R(et,"PathDefault",-1),bn=new R(et,"PathDestination",0),Fs=new R(et,"PathSource",1),Xh=new R(et,"SortingForwards",10),au=new R(et,"SortingReverse",11),fu=new R(et,"SortingAscending",12),pu=new R(et,"SortingDescending",13),Kh=new R(et,"AlignmentCenterSubtrees",20),As=new R(et,"AlignmentCenterChildren",21),to=new R(et,"AlignmentStart",22),io=new R(et,"AlignmentEnd",23),Wo=new R(et,"AlignmentBus",24),eo=new R(et,"AlignmentBusBranching",25),Jo=new R(et,"AlignmentTopLeftBus",26),wo=new R(et,"AlignmentBottomRightBus",27),Af=new R(et,"CompactionNone",30),cu=new R(et,"CompactionBlock",31),Of=new R(et,"StyleLayered",40),Zd=new R(et,"StyleLastParents",41),_d=new R(et,"StyleAlternating",42),$d=new R(et,"StyleRootOnly",43),If=new R(et,"ArrangementVertical",50),Qd=new R(et,"ArrangementHorizontal",51),Df=new R(et,"ArrangementFixedRoots",52),qd=new R(et,"LayerIndividual",60),bd=new R(et,"LayerSiblings",61),Ef=new R(et,"LayerUniform",62);et.className="TreeLayout",et.PathDefault=Ff,et.PathDestination=bn,et.PathSource=Fs,et.SortingForwards=Xh,et.SortingReverse=au,et.SortingAscending=fu,et.SortingDescending=pu,et.AlignmentCenterSubtrees=Kh,et.AlignmentCenterChildren=As,et.AlignmentStart=to,et.AlignmentEnd=io,et.AlignmentBus=Wo,et.AlignmentBusBranching=eo,et.AlignmentTopLeftBus=Jo,et.AlignmentBottomRightBus=wo,et.CompactionNone=Af,et.CompactionBlock=cu,et.StyleLayered=Of,et.StyleLastParents=Zd,et.StyleAlternating=_d,et.StyleRootOnly=$d,et.ArrangementVertical=If,et.ArrangementHorizontal=Qd,et.ArrangementFixedRoots=Df,et.LayerIndividual=qd,et.LayerSiblings=bd,et.LayerUniform=Ef;function Os(t){Nt.call(this,t)}pt(Os,Nt),Os.prototype.createVertex=function(){return new $e(this)},Os.prototype.createEdge=function(){return new Uh(this)},Os.className="TreeNetwork";function $e(t){ti.call(this,t),this.V=!1,this.hb=null,this.u=[],this.nb=this.Ha=this.F=this.ia=0,this.td=null,this.S=new x(0,0),this.Da=new Z(0,0),this.la=new x(0,0),this.hm=this.gm=this.qA=!1,this.jp=this.Xo=null,this.nd=Xh,this.hd=xd,this.Lb=0,this.Kb=As,this.Uq=this.Tq=0,this.Vq=20,this.ie=50,this.zq=0,this.Gp=cu,this.zp=0,this.mr=25,this.Fp=this.lr=10,this.Ep=20,this.wr=!0,this.cr=Si,this.vr=!0,this.Cp=Si}pt($e,ti),$e.prototype.copyInheritedPropertiesFrom=function(t){t!==null&&(this.nd=t.sorting,this.hd=t.comparer,this.Lb=t.angle,this.Kb=t.alignment,this.Tq=t.nodeIndent,this.Uq=t.nodeIndentPastParent,this.Vq=t.nodeSpacing,this.ie=t.layerSpacing,this.zq=t.layerSpacingParentOverlap,this.Gp=t.compaction,this.zp=t.breadthLimit,this.mr=t.rowSpacing,this.lr=t.rowIndent,this.Fp=t.commentSpacing,this.Ep=t.commentMargin,this.wr=t.setsPortSpot,this.cr=t.portSpot,this.vr=t.setsChildPortSpot,this.Cp=t.childPortSpot)},tt.Object.defineProperties($e.prototype,{initialized:{get:function(){return this.V},set:function(t){this.V!==t&&(this.V=t)}},parent:{get:function(){return this.hb},set:function(t){this.hb!==t&&(this.hb=t)}},children:{get:function(){return this.u},set:function(t){if(this.u!==t){if(t!==null)for(var i=t.length,e=0;e<i;e++);this.u=t}}},level:{get:function(){return this.ia},set:function(t){this.ia!==t&&(this.ia=t)}},descendantCount:{get:function(){return this.F},set:function(t){this.F!==t&&(this.F=t)}},maxChildrenCount:{get:function(){return this.Ha},set:function(t){this.Ha!==t&&(this.Ha=t)}},maxGenerationCount:{get:function(){return this.nb},set:function(t){this.nb!==t&&(this.nb=t)}},comments:{get:function(){return this.td},set:function(t){if(this.td!==t){if(t!==null)for(var i=t.length,e=0;e<i;e++);this.td=t}}},sorting:{get:function(){return this.nd},set:function(t){this.nd!==t&&(this.nd=t)}},comparer:{get:function(){return this.hd},set:function(t){this.hd!==t&&(this.hd=t)}},angle:{get:function(){return this.Lb},set:function(t){this.Lb!==t&&(this.Lb=t)}},alignment:{get:function(){return this.Kb},set:function(t){this.Kb!==t&&(this.Kb=t)}},nodeIndent:{get:function(){return this.Tq},set:function(t){this.Tq!==t&&(this.Tq=t)}},nodeIndentPastParent:{get:function(){return this.Uq},set:function(t){this.Uq!==t&&(this.Uq=t)}},nodeSpacing:{get:function(){return this.Vq},set:function(t){this.Vq!==t&&(this.Vq=t)}},layerSpacing:{get:function(){return this.ie},set:function(t){this.ie!==t&&(this.ie=t)}},layerSpacingParentOverlap:{get:function(){return this.zq},set:function(t){this.zq!==t&&(this.zq=t)}},compaction:{get:function(){return this.Gp},set:function(t){this.Gp!==t&&(this.Gp=t)}},breadthLimit:{get:function(){return this.zp},set:function(t){this.zp!==t&&(this.zp=t)}},rowSpacing:{get:function(){return this.mr},set:function(t){this.mr!==t&&(this.mr=t)}},rowIndent:{get:function(){return this.lr},set:function(t){this.lr!==t&&(this.lr=t)}},commentSpacing:{get:function(){return this.Fp},set:function(t){this.Fp!==t&&(this.Fp=t)}},commentMargin:{get:function(){return this.Ep},set:function(t){this.Ep!==t&&(this.Ep=t)}},setsPortSpot:{get:function(){return this.wr},set:function(t){this.wr!==t&&(this.wr=t)}},portSpot:{get:function(){return this.cr},set:function(t){this.cr.D(t)||(this.cr=t)}},setsChildPortSpot:{get:function(){return this.vr},set:function(t){this.vr!==t&&(this.vr=t)}},childPortSpot:{get:function(){return this.Cp},set:function(t){this.Cp.D(t)||(this.Cp=t)}},childrenCount:{get:function(){return this.children.length}},relativePosition:{get:function(){return this.S},set:function(t){this.S.set(t)}},subtreeSize:{get:function(){return this.Da},set:function(t){this.Da.set(t)}},subtreeOffset:{get:function(){return this.la},set:function(t){this.la.set(t)}}}),$e.className="TreeVertex";function Uh(t){de.call(this,t),this.Zt=new x(0,0)}pt(Uh,de),Uh.prototype.commit=function(){var t=this.link;if(t!==null&&!t.isAvoiding){var i=this.network.layout,e=null,n=null;switch(i.ud){case bn:e=this.fromVertex,n=this.toVertex;break;case Fs:e=this.toVertex,n=this.fromVertex;break;default:O("Unhandled path value "+i.ud.toString())}if(e!==null&&n!==null){var o=this.Zt;if(o.x!==0||o.y!==0||e.qA){n=e.bounds;var r=cn(e),s=i.computeLayerSpacing(e),h=e.rowSpacing;t.vg();var l=t.curve===Ne,u=t.isOrthogonal,a;if(t.uh(),u||l){for(a=2;4<t.pointsCount;)t.pv(2);var f=t.i(1),p=t.i(2)}else{for(a=1;3<t.pointsCount;)t.pv(1);f=t.i(0),p=t.i(t.pointsCount-1)}var c=t.i(t.pointsCount-1);r===0?(e.alignment===io?(r=n.bottom+o.y,o.y===0&&f.y>c.y+e.rowIndent&&(r=Math.min(r,Math.max(f.y,r-i.computeNodeIndent(e))))):e.alignment===to?(r=n.top+o.y,o.y===0&&f.y<c.y-e.rowIndent&&(r=Math.max(r,Math.min(f.y,r+i.computeNodeIndent(e))))):r=e.gm||e.hm&&e.maxGenerationCount===1?n.top-e.la.y+o.y:n.y+n.height/2+o.y,l?(t.m(a,f.x,r),a++,t.m(a,n.right+s,r),a++,t.m(a,n.right+s+(o.x-h)/3,r),a++,t.m(a,n.right+s+2*(o.x-h)/3,r),a++,t.m(a,n.right+s+(o.x-h),r),a++,t.m(a,p.x,r)):(u&&(t.m(a,n.right+s/2,f.y),a++),t.m(a,n.right+s/2,r),a++,t.m(a,n.right+s+o.x-(u?h/2:h),r),a++,u&&t.m(a,t.i(a-1).x,p.y))):r===90?(e.alignment===io?(r=n.right+o.x,o.x===0&&f.x>c.x+e.rowIndent&&(r=Math.min(r,Math.max(f.x,r-i.computeNodeIndent(e))))):e.alignment===to?(r=n.left+o.x,o.x===0&&f.x<c.x-e.rowIndent&&(r=Math.max(r,Math.min(f.x,r+i.computeNodeIndent(e))))):r=e.gm||e.hm&&e.maxGenerationCount===1?n.left-e.la.x+o.x:n.x+n.width/2+o.x,l?(t.m(a,r,f.y),a++,t.m(a,r,n.bottom+s),a++,t.m(a,r,n.bottom+s+(o.y-h)/3),a++,t.m(a,r,n.bottom+s+2*(o.y-h)/3),a++,t.m(a,r,n.bottom+s+(o.y-h)),a++,t.m(a,r,p.y)):(u&&(t.m(a,f.x,n.bottom+s/2),a++),t.m(a,r,n.bottom+s/2),a++,t.m(a,r,n.bottom+s+o.y-(u?h/2:h)),a++,u&&t.m(a,p.x,t.i(a-1).y))):r===180?(e.alignment===io?(r=n.bottom+o.y,o.y===0&&f.y>c.y+e.rowIndent&&(r=Math.min(r,Math.max(f.y,r-i.computeNodeIndent(e))))):e.alignment===to?(r=n.top+o.y,o.y===0&&f.y<c.y-e.rowIndent&&(r=Math.max(r,Math.min(f.y,r+i.computeNodeIndent(e))))):r=e.gm||e.hm&&e.maxGenerationCount===1?n.top-e.la.y+o.y:n.y+n.height/2+o.y,l?(t.m(a,f.x,r),a++,t.m(a,n.left-s,r),a++,t.m(a,n.left-s+(o.x+h)/3,r),a++,t.m(a,n.left-s+2*(o.x+h)/3,r),a++,t.m(a,n.left-s+(o.x+h),r),a++,t.m(a,p.x,r)):(u&&(t.m(a,n.left-s/2,f.y),a++),t.m(a,n.left-s/2,r),a++,t.m(a,n.left-s+o.x+(u?h/2:h),r),a++,u&&t.m(a,t.i(a-1).x,p.y))):r===270?(e.alignment===io?(r=n.right+o.x,o.x===0&&f.x>c.x+e.rowIndent&&(r=Math.min(r,Math.max(f.x,r-i.computeNodeIndent(e))))):e.alignment===to?(r=n.left+o.x,o.x===0&&f.x<c.x-e.rowIndent&&(r=Math.max(r,Math.min(f.x,r+i.computeNodeIndent(e))))):r=e.gm||e.hm&&e.maxGenerationCount===1?n.left-e.la.x+o.x:n.x+n.width/2+o.x,l?(t.m(a,r,f.y),a++,t.m(a,r,n.top-s),a++,t.m(a,r,n.top-s+(o.y+h)/3),a++,t.m(a,r,n.top-s+2*(o.y+h)/3),a++,t.m(a,r,n.top-s+(o.y+h)),a++,t.m(a,r,p.y)):(u&&(t.m(a,f.x,n.top-s/2),a++),t.m(a,r,n.top-s/2),a++,t.m(a,r,n.top-s+o.y+(u?h/2:h)),a++,u&&t.m(a,p.x,t.i(a-1).y))):O("Invalid angle "+r),t.zf()}else o=n,t=this.link,n=this.network.layout,i=cn(e),i!==cn(o)&&(s=n.computeLayerSpacing(e),h=e.bounds,e=o.bounds,i===0&&e.left-h.right<s+1||i===90&&e.top-h.bottom<s+1||i===180&&h.left-e.right<s+1||i===270&&h.top-e.bottom<s+1||(t.vg(),e=t.curve===Ne,o=t.isOrthogonal,n=wr(this.fromVertex.alignment),t.uh(),i===0?(i=h.right+s/2,e?t.pointsCount===4&&(e=t.i(3).y,t.L(1,i-20,t.i(1).y),t.m(2,i-20,e),t.m(3,i,e),t.m(4,i+20,e),t.L(5,t.i(5).x,e)):o?n?t.L(3,t.i(2).x,t.i(4).y):t.pointsCount===6&&(t.L(2,i,t.i(2).y),t.L(3,i,t.i(3).y)):t.pointsCount===4?t.m(2,i,t.i(2).y):t.pointsCount===3?t.L(1,i,t.i(2).y):t.pointsCount===2&&t.m(1,i,t.i(1).y)):i===90?(i=h.bottom+s/2,e?t.pointsCount===4&&(e=t.i(3).x,t.L(1,t.i(1).x,i-20),t.m(2,e,i-20),t.m(3,e,i),t.m(4,e,i+20),t.L(5,e,t.i(5).y)):o?n?t.L(3,t.i(2).x,t.i(4).y):t.pointsCount===6&&(t.L(2,t.i(2).x,i),t.L(3,t.i(3).x,i)):t.pointsCount===4?t.m(2,t.i(2).x,i):t.pointsCount===3?t.L(1,t.i(2).x,i):t.pointsCount===2&&t.m(1,t.i(1).x,i)):i===180?(i=h.left-s/2,e?t.pointsCount===4&&(e=t.i(3).y,t.L(1,i+20,t.i(1).y),t.m(2,i+20,e),t.m(3,i,e),t.m(4,i-20,e),t.L(5,t.i(5).x,e)):o?n?t.L(3,t.i(2).x,t.i(4).y):t.pointsCount===6&&(t.L(2,i,t.i(2).y),t.L(3,i,t.i(3).y)):t.pointsCount===4?t.m(2,i,t.i(2).y):t.pointsCount===3?t.L(1,i,t.i(2).y):t.pointsCount===2&&t.m(1,i,t.i(1).y)):i===270&&(i=h.top-s/2,e?t.pointsCount===4&&(e=t.i(3).x,t.L(1,t.i(1).x,i+20),t.m(2,e,i+20),t.m(3,e,i),t.m(4,e,i-20),t.L(5,e,t.i(5).y)):o?n?t.L(3,t.i(2).x,t.i(4).y):t.pointsCount===6&&(t.L(2,t.i(2).x,i),t.L(3,t.i(3).x,i)):t.pointsCount===4?t.m(2,t.i(2).x,i):t.pointsCount===3?t.L(1,t.i(2).x,i):t.pointsCount===2&&t.m(1,t.i(1).x,i)),t.zf()))}}},tt.Object.defineProperties(Uh.prototype,{fromVertex:{get:function(){return this.kd},set:function(t){this.kd!==t&&(this.kd=t)}},toVertex:{get:function(){return this.qd},set:function(t){this.qd!==t&&(this.qd=t)}},relativePoint:{get:function(){return this.Zt},set:function(t){this.Zt.set(t)}}}),Uh.className="TreeEdge",Bt.prototype.initializeStandardTools=function(){this.gb("Action",new Lo,this.mouseDownTools),this.gb("Relinking",new We,this.mouseDownTools),this.gb("LinkReshaping",new qt,this.mouseDownTools),this.gb("Rotating",new we,this.mouseDownTools),this.gb("Resizing",new zi,this.mouseDownTools),this.gb("Linking",new ne,this.mouseMoveTools),this.gb("Dragging",new Rt,this.mouseMoveTools),this.gb("DragSelecting",new Kn,this.mouseMoveTools),this.gb("Panning",new Un,this.mouseMoveTools),this.gb("ContextMenu",new fe,this.mouseUpTools),this.gb("TextEditing",new Ft,this.mouseUpTools),this.gb("ClickCreating",new Dr,this.mouseUpTools),this.gb("ClickSelecting",new th,this.mouseUpTools)},Bn("Horizontal",new ua),Bn("Spot",new fa),Bn("Table",new ca),Bn("Viewbox",new ya),Bn("TableRow",new da),Bn("TableColumn",new ga),Bn("Graduated",new jl),Bn("Grid",new Ll),Qu.add("GraphLinksModel",hi),Qu.add("TreeModel",Re);var Bf=J.go,tg={get licenseKey(){return C.licenseKey},set licenseKey(t){C.licenseKey=t},get version(){return C.version},Group:Q,EnumValue:R,List:V,Set:E,Map:_,Point:x,Size:Z,Rect:T,Margin:gt,Spot:H,Geometry:I,PathFigure:pi,PathSegment:ft,InputEvent:Fe,DiagramEvent:as,ChangedEvent:Et,Model:G,GraphLinksModel:ot,TreeModel:Ji,Binding:Ht,Transaction:mi,UndoManager:Vt,CommandHandler:xt,Tool:at,DraggingTool:Rt,DraggingInfo:rr,DraggingOptions:ph,LinkingBaseTool:Ni,LinkingTool:ne,RelinkingTool:We,LinkReshapingTool:qt,ResizingTool:zi,RotatingTool:we,ClickSelectingTool:th,ActionTool:Lo,ClickCreatingTool:Dr,HTMLInfo:jo,ContextMenuTool:fe,DragSelectingTool:Kn,PanningTool:Un,TextEditingTool:Ft,ToolManager:Bt,Animation:Li,AnimationManager:Ae,AnimationTrigger:Hn,Layer:ji,Diagram:C,Palette:bu,Overview:Wn,Brush:ct,GraphObject:X,Panel:j,RowColumnDefinition:_t,Shape:q,TextBlock:St,Picture:te,Part:U,Adornment:lt,Node:B,Link:F,Placeholder:Ki,Layout:Lt,LayoutNetwork:Nt,LayoutVertex:ti,LayoutEdge:de,GridLayout:ci,PanelLayout:bt,CircularLayout:It,CircularNetwork:Yh,CircularVertex:nu,CircularEdge:yf,ForceDirectedLayout:xi,ForceDirectedNetwork:Ls,ForceDirectedVertex:ou,ForceDirectedEdge:ru,LayeredDigraphLayout:mt,LayeredDigraphNetwork:Gh,LayeredDigraphVertex:Ye,LayeredDigraphEdge:lu,TreeLayout:et,TreeNetwork:Os,TreeVertex:$e,TreeEdge:Uh};typeof Bf=="object"&&Bf.version&&ue("WARNING: a `go` object on the root object is already defined. "+("Debug"in Bf?"debug ":"")+"version: "+Bf.version+", replaced with version: "+tg.version),C.prototype.go=tg,J.go=tg,typeof module<"u"&&typeof module.exports=="object"&&(module.exports=typeof global<"u"?global.go:self.go)})();const ht=typeof global<"u"?global.go:self.go,nt=typeof global<"u"?global.go:self.go;nt.Group;nt.EnumValue;nt.List;nt.Set;nt.Map;nt.Point;nt.Size;nt.Rect;nt.Margin;nt.Spot;nt.Geometry;nt.PathFigure;nt.PathSegment;nt.InputEvent;nt.DiagramEvent;nt.ChangedEvent;nt.Model;nt.GraphLinksModel;nt.TreeModel;nt.Binding;nt.Transaction;nt.UndoManager;nt.CommandHandler;nt.Tool;nt.DraggingTool;nt.DraggingInfo;nt.LinkingBaseTool;nt.LinkingTool;nt.RelinkingTool;nt.LinkReshapingTool;nt.ResizingTool;nt.RotatingTool;nt.ClickSelectingTool;nt.ActionTool;nt.ClickCreatingTool;nt.HTMLInfo;nt.ContextMenuTool;nt.DragSelectingTool;nt.PanningTool;nt.TextEditingTool;nt.ToolManager;nt.Animation;nt.AnimationManager;nt.AnimationTrigger;nt.Layer;nt.Diagram;nt.Palette;nt.Overview;nt.Brush;nt.GraphObject;nt.Panel;nt.RowColumnDefinition;nt.Shape;nt.TextBlock;nt.TextBlockMetrics;nt.Picture;nt.Part;nt.Adornment;nt.Node;nt.Link;nt.Placeholder;nt.Layout;nt.LayoutNetwork;nt.LayoutVertex;nt.LayoutEdge;nt.GridLayout;nt.PanelLayout;nt.CircularLayout;nt.CircularNetwork;nt.CircularVertex;nt.CircularEdge;nt.ForceDirectedLayout;nt.ForceDirectedNetwork;nt.ForceDirectedVertex;nt.ForceDirectedEdge;nt.LayeredDigraphLayout;nt.LayeredDigraphNetwork;nt.LayeredDigraphVertex;nt.LayeredDigraphEdge;nt.TreeLayout;nt.TreeNetwork;nt.TreeVertex;nt.TreeEdge;nt.version;class U1 extends ht.DraggingTool{computeEffectiveCollection(K){const b=super.computeEffectiveCollection(K);return K.each(st=>{if(!xe(st))for(const Yt=st.diagram.nodes;Yt.next();){const Tt=Yt.value;xe(Tt)&&Tt.data.table===st.data.key&&(b.has(Tt)||b.add(Tt,new ht.DraggingInfo(Tt.location.copy())))}}),b}}class ax extends ht.RotatingTool{rotate(K){super.rotate(K);const b=this.adornedObject.part;positionPeopleAtSeats(b)}}function xe(d){return d!==null&&(d.category===""||typeof d.category>"u")}var Zt=null,Ce=null;const Te=ht.GraphObject.make,H1=400,W1={inject:["hideWidget","onLoad"],components:{LoadingBigTBF:K1},data(){return{loaded:!1,selectedGuest:null,guestsData:[],guestsList:[],realTimeModals:V1()}},watch:{selectedGuest(d,K){if(d){let b=this.guestsList.find(st=>st.id==d);Zt.model.nodeDataArray.forEach(st=>{if(xe(st)){var Yt=this.guestsList.find(ni=>ni.id==st.key),Tt=Zt.findNodeForKey(st.key);b&&Yt&&b.invitation_id==Yt.invitation_id?Tt.elements.first().stroke="#458EF7":Tt.elements.first().stroke=null}}),Ce.model.nodeDataArray.forEach(st=>{if(xe(st)){var Yt=this.guestsList.find(ni=>ni.id==st.key),Tt=Ce.findNodeForKey(st.key);b&&Yt&&b.invitation_id==Yt.invitation_id?Tt.elements.first().stroke="#458EF7":Tt.elements.first().stroke=null}})}else Zt.model.nodeDataArray.forEach(b=>{if(xe(b)){var st=Zt.findNodeForKey(b.key);st.elements.first().stroke=null}}),Ce.model.nodeDataArray.forEach(b=>{if(xe(b)){var st=Ce.findNodeForKey(b.key);st.elements.first().stroke=null}})}},async mounted(){this.onLoad(()=>{this.hideWidget()}),await this.getGuests(),await this.getDiagramData()},methods:{async getGuests(){await axios.get("guests").then(({data:d})=>{this.guestsList=d.data}).catch(d=>{d.response.data}).finally(()=>{})},async getDiagramData(d=!0){await axios.get("guests/arrangement").then(({data:K})=>{if(K.data.arrangement){let b=JSON.parse(K.data.arrangement);console.log(b);const st=20,Yt=7,Tt=6,ni=4,Qi=100,Ge=130,nr=143,pt=100;let tt=Array(H1).fill().map((Su,Nu)=>{const jr=Math.floor(Nu/st)+1,J=Nu%st+1,An=(J-1)%(Yt+Tt+Yt);let Fr,ho;const tn=Math.floor((jr-1)/ni);return ho=(jr-1)%ni*Ge+tn*(ni*Ge+pt),An<Yt?Fr=An*Qi:An<Yt+Tt?Fr=Yt*Qi+nr+(An-Yt)*Qi:Fr=Yt*Qi+nr+Tt*Qi+nr+(An-(Yt+Tt))*Qi,b.find(rt=>rt.key===`seat_R${jr}_${J}`)||{key:`seat_R${jr}_${J}`,category:"Chair",name:`R${jr}-${J}`,guests:{},loc:`${Fr} ${ho}`}});this.guestsData=[...tt,...b.filter(Su=>xe(Su))]}this.loaded=!0,d&&setTimeout(()=>{this.initGo()},100)}).catch(K=>{K.response.data}).finally(()=>{})},addGuest(){this.realTimeModals.toggleShowModal("modal_add_update_guest",{crud:"create",callback:this.refreshGuestsData})},editGuest(){let d=this.guestsList.find(K=>K.id==this.selectedGuest);if(d){let K={email:d.email,invitation_id:d.invitation_id,guests:this.guestsList.filter(b=>b.invitation_id==d.invitation_id)};this.realTimeModals.toggleShowModal("modal_add_update_guest",{crud:"update",guest:K,callback:this.refreshDiagramData})}},async refreshGuestsData(){this.selectedGuest=null,await this.getGuests(),Ce.model.nodeDataArray=this.guestsList.filter(d=>this.guestsData.find(K=>K.key==d.id)==null).map(d=>({key:d.id,name:d.name}))},async refreshDiagramData(d=[]){console.log(d),this.selectedGuest=null,await this.refreshGuestsData();const K=Zt.model;K.nodeDataArray.forEach(b=>{if(xe(b))if(d.includes(b.key))this.unassignSeat(b);else{let st=this.guestsList.find(Yt=>Yt.id==b.key);st&&K.setDataProperty(b,"name",st.name)}}),d.forEach(b=>{var st=Zt.findNodeForKey(b);st&&(Zt.startTransaction(),console.log(st),Zt.remove(st),Zt.commitTransaction("deleted node"))}),this.saveDiagram(JSON.stringify(Zt.model.nodeDataArray))},deleteGuest(){this.realTimeModals.toggleShowModal("modal_confirm_alert",{modal_title:"Ești sigur că dorești să ștergi această invitatie impreuna cu toti invitatii?",modal_description:"Această acțiune este ireversibilă.",call_back:()=>{let d=this.guestsList.find(K=>K.id==this.selectedGuest);d&&axios.delete(`guests/${d.invitation_id}`).then(({data:K})=>{this.refreshDiagramData(this.guestsList.filter(b=>b.invitation_id==d.invitation_id).map(b=>b.id))}).catch(K=>{K.response.data}).finally(()=>{})}})},saveDiagram(d){axios.post("guests/arrangement",{arrangement:d}).then(({data:K})=>{}).catch(K=>{K.response.data}).finally(()=>{})},initGo(){Zt=new ht.Diagram("diagramContainer",{allowDragOut:!0,allowClipboard:!1,draggingTool:Te(U1),rotatingTool:null,ModelChanged:d=>{d.isTransactionFinished&&(console.log(Zt.model.toJson()),this.saveDiagram(JSON.stringify(JSON.parse(Zt.model.toJson()).nodeDataArray)))},ChangedSelection:d=>{if(d.diagram.selection.size>0){let K=d.diagram.selection.first();Ce.clearSelection(),xe(K)?this.selectedGuest=K.key:this.selectedGuest=null}else this.selectedGuest=null},"undoManager.isEnabled":!0}),Zt.nodeTemplateMap.add("",Te(ht.Node,"Auto",{background:"transparent"},new ht.Binding("layerName","isSelected",d=>d?"Foreground":"").ofObject(),{locationSpot:ht.Spot.Center},new ht.Binding("location","loc",ht.Point.parse).makeTwoWay(ht.Point.stringify),new ht.Binding("text","name"),{mouseDragEnter:(d,K,b)=>{const st=K.diagram.toolManager.draggingTool.copiedParts;this.highlightSeats(K,st||K.diagram.selection,!0)},mouseDragLeave:(d,K,b)=>{const st=K.diagram.toolManager.draggingTool.copiedParts;this.highlightSeats(K,st||K.diagram.selection,!1)},mouseDrop:(d,K)=>{console.log(K.diagram),this.assignPeopleToSeats(K,K.diagram.selection,d.documentPoint)}},Te(ht.Shape,"Circle",{fill:"blanchedalmond",stroke:null}),Te(ht.Panel,"Viewbox",{desiredSize:new ht.Size(50,50)},Te(ht.TextBlock,{desiredSize:new ht.Size(50,50),font:"8pt Verdana, sans-serif",textAlign:"center",verticalAlignment:ht.Spot.Center,stroke:"darkblue"},new ht.Binding("text","",d=>{let K=d.name;return d.plus&&(K+=" +"+d.plus.toString()),K}))))),Zt.nodeTemplateMap.add("Chair",Te(ht.Node,"Spot",this.chairStyle(),this.Seat(1,"0 0","0 0"))),Zt.nodeTemplateMap.add("TableC8",Te(ht.Node,"Spot",this.tableStyle(),Te(ht.Panel,"Spot",Te(ht.Shape,"Circle",{name:"TABLESHAPE",desiredSize:new ht.Size(120,120),fill:"burlywood",stroke:null},new ht.Binding("desiredSize","size",ht.Size.parse).makeTwoWay(ht.Size.stringify),new ht.Binding("fill")),Te(ht.TextBlock,{editable:!0,font:"bold 11pt Verdana, sans-serif"},new ht.Binding("text","name").makeTwoWay(),new ht.Binding("angle","angle",d=>-d))),this.Seat(1,"0.50 0","0.5 1"),this.Seat(2,"0.85 0.15","0.15 0.85"),this.Seat(3,"1 0.5","0 0.5"),this.Seat(4,"0.85 0.85","0.15 0.15"),this.Seat(5,"0.50 1","0.5 0"),this.Seat(6,"0.15 0.85","0.85 0.15"),this.Seat(7,"0 0.5","1 0.5"),this.Seat(8,"0.15 0.15","0.85 0.85"))),Zt.nodeTemplateMap.add("TableC10",Te(ht.Node,"Spot",this.tableStyle(),Te(ht.Panel,"Spot",Te(ht.Shape,"Circle",{name:"TABLESHAPE",desiredSize:new ht.Size(210,210),fill:"burlywood",stroke:null},new ht.Binding("desiredSize","size",ht.Size.parse).makeTwoWay(ht.Size.stringify),new ht.Binding("fill")),Te(ht.TextBlock,{editable:!0,font:"bold 11pt Verdana, sans-serif"},new ht.Binding("text","name").makeTwoWay(),new ht.Binding("angle","angle",d=>-d))),this.Seat(1,"1 0.5"),this.Seat(2,"0.9045 0.7939"),this.Seat(3,"0.6545 0.9755"),this.Seat(4,"0.3455 0.9755"),this.Seat(5,"0.0955 0.7939"),this.Seat(6,"0.0 0.5"),this.Seat(7,"0.0955 0.2061"),this.Seat(8,"0.3455 0.0245"),this.Seat(9,"0.6545 0.0245"),this.Seat(10,"0.9045 0.2061"))),Zt.mouseDrop=d=>{d.diagram.selection.each(K=>{xe(K)&&(this.unassignSeat(K.data),Ce.model.addNodeData(Ce.model.copyNodeData(K.data)))}),!d.diagram.selection.any(this.isTable)&&(d.diagram.disableSelectionDeleted=!0,d.diagram.commandHandler.deleteSelection(),d.diagram.disableSelectionDeleted=!1)},Zt.addDiagramListener("ExternalObjectsDropped",d=>{d.subject.any(this.isTable)||Ce.commandHandler.deleteSelection()}),Zt.addDiagramListener("SelectionDeleted",d=>{Zt.disableSelectionDeleted||d.subject.each(K=>{xe(K)&&Ce.model.addNodeData(Ce.model.copyNodeData(K.data))})}),Zt.model=new ht.GraphLinksModel(this.guestsData),Ce=new ht.Diagram("guestsContainer",{layout:Te(ht.GridLayout,{sorting:ht.GridLayout.Ascending}),allowDragOut:!0,allowMove:!1,ChangedSelection:d=>{d.diagram.selection.size>0?(Zt.clearSelection(),this.selectedGuest=d.diagram.selection.first().key):this.selectedGuest=null}}),Ce.nodeTemplateMap=Zt.nodeTemplateMap,Ce.model=new ht.GraphLinksModel(this.guestsList.filter(d=>this.guestsData.find(K=>K.key==d.id)==null).map(d=>({key:d.id,name:d.name}))),Ce.model.undoManager=Zt.model.undoManager,Ce.addDiagramListener("ExternalObjectsDropped",d=>{if(d.subject.any(this.isTable)){Zt.currentTool.doCancel(),Ce.currentTool.doCancel();return}Zt.selection.each(K=>{xe(K)&&this.unassignSeat(K.data)}),Zt.disableSelectionDeleted=!0,Zt.commandHandler.deleteSelection(),Zt.disableSelectionDeleted=!1,Ce.selection.each(K=>{xe(K)&&this.unassignSeat(K.data)})}),ht.AnimationManager.defineAnimationEffect("location",(d,K,b,st,Yt,Tt,ni)=>{d.location=new ht.Point(st(Yt,K.x,b.x-K.x,Tt),st(Yt,K.y,b.y-K.y,Tt))})},tableStyle(){return[{background:"transparent"},{layerName:"Background"},{locationSpot:ht.Spot.Center,locationObjectName:"TABLESHAPE"},new ht.Binding("location","loc",ht.Point.parse).makeTwoWay(ht.Point.stringify),{rotatable:!0},new ht.Binding("angle").makeTwoWay(),{mouseDragEnter:(d,K,b)=>{const st=K.diagram.toolManager.draggingTool.copiedParts;this.highlightSeats(K,st||K.diagram.selection,!0)},mouseDragLeave:(d,K,b)=>{const st=K.diagram.toolManager.draggingTool.copiedParts;this.highlightSeats(K,st||K.diagram.selection,!1)},mouseDrop:(d,K)=>this.assignPeopleToSeats(K,K.diagram.selection,d.documentPoint)}]},chairStyle(){return[{background:"transparent"},{layerName:"Background"},{locationSpot:ht.Spot.Center,locationObjectName:"TABLESHAPE"},new ht.Binding("location","loc",ht.Point.parse).makeTwoWay(ht.Point.stringify),{rotatable:!0},new ht.Binding("angle").makeTwoWay(),{mouseDragEnter:(d,K,b)=>{const st=K.diagram.toolManager.draggingTool.copiedParts;this.highlightSeats(K,st||K.diagram.selection,!0)},mouseDragLeave:(d,K,b)=>{const st=K.diagram.toolManager.draggingTool.copiedParts;this.highlightSeats(K,st||K.diagram.selection,!1)},mouseDrop:(d,K)=>this.assignPeopleToSeats(K,K.diagram.selection,d.documentPoint)}]},Seat(d,K,b){return typeof K=="string"&&(K=ht.Spot.parse(K)),(!K||!K.isSpot())&&(K=ht.Spot.Right),typeof b=="string"&&(b=ht.Spot.parse(b)),(!b||!b.isSpot())&&(b=K.opposite()),Te(ht.Panel,"Spot",{name:d.toString(),alignment:K,alignmentFocus:b},Te(ht.Shape,"Circle",{name:"SEATSHAPE",desiredSize:new ht.Size(70,70),fill:"burlywood",stroke:"white",strokeWidth:2},new ht.Binding("fill")),Te(ht.TextBlock,{font:"bold 11pt Verdana, sans-serif"},new ht.Binding("text","name").makeTwoWay(),new ht.Binding("angle","angle",st=>-st)))},isTable(d){return d!==null&&d.category!==""},highlightSeats(d,K,b){if(xe(d)&&(d=d.diagram.findNodeForKey(d.data.table),d===null))return;const st=K.iterator;for(;st.next();){const Tt=st.key;if(this.isTable(Tt))return}const Yt=d.data.guests;for(const Tt=d.elements;Tt.next();){const ni=Tt.value;if(ni.name){const Qi=parseFloat(ni.name);if(isNaN(Qi))continue;const Ge=ni.findObject("SEATSHAPE");if(!Ge)continue;b?Yt[ni.name]?Ge.stroke="red":Ge.stroke="green":Ge.stroke="white"}}},highlightGuest(d){if(xe(d))for(const K=d.elements;K.next();)console.log(K.value),K.value.stroke="pink"},assignPeopleToSeats(d,K,b){if(!(xe(d)&&(d=d.diagram.findNodeForKey(d.data.table),d===null))){if(K.any(this.isTable)){Zt.currentTool.doCancel();return}K.each(st=>this.assignSeat(d,st.data,b)),this.positionPeopleAtSeats(d)}},assignSeat(d,K,b){if(xe(d)&&(d=d.diagram.findNodeForKey(d.data.table),d===null))return;if(K instanceof ht.GraphObject)throw Error("A guest object must not be a GraphObject: "+K.toString());b instanceof ht.Point||(b=d.location),this.unassignSeat(K);const st=d.diagram.model,Yt=d.data.guests,Tt=this.findClosestUnoccupiedSeat(d,b);Tt&&(st.setDataProperty(Yt,Tt,K.key),st.setDataProperty(K,"table",d.data.key),st.setDataProperty(K,"seat",parseFloat(Tt)));const ni=K.plus;if(ni){K.plus=void 0,st.updateTargetBindings(K);for(let Qi=0;Qi<ni;Qi++){const Ge=st.copyNodeData(K);Ge.table=void 0,Ge.seat=void 0,st.addNodeData(Ge),this.assignSeat(d,Ge,b)}}},unassignSeat(d){if(d instanceof ht.GraphObject)throw Error("A guest object must not be a GraphObject: "+d.toString());const K=Zt.model;if(d.table){const b=K.findNodeDataForKey(d.table);if(b){const st=b.guests;st&&K.setDataProperty(st,d.seat.toString(),void 0)}}K.setDataProperty(d,"table",void 0),K.setDataProperty(d,"seat",void 0)},findClosestUnoccupiedSeat(d,K){if(xe(d)&&(d=d.diagram.findNodeForKey(d.data.table),d===null))return;const b=d.data.guests;let st=null,Yt=1/0;for(const Tt=d.elements;Tt.next();){const ni=Tt.value;if(ni.name){const Qi=parseFloat(ni.name);if(isNaN(Qi)||b[ni.name])continue;const nr=ni.getDocumentPoint(ht.Spot.Center).distanceSquaredPoint(K);nr<Yt&&(Yt=nr,st=ni.name)}}return st},positionPeopleAtSeats(d){if(xe(d)&&(d=d.diagram.findNodeForKey(d.data.table),d===null))return;const K=d.data.guests,b=d.diagram.model;for(let st in K){const Yt=K[st],Tt=b.findNodeDataForKey(Yt);this.positionPersonAtSeat(Tt)}},positionPersonAtSeat(d){if(d instanceof ht.GraphObject)throw Error("A guest object must not be a GraphObject: "+d.toString());if(!d||!d.table||!d.seat)return;const K=Zt.findPartForKey(d.table),b=Zt.findPartForData(d),st=Zt.model;if(K&&b){const Tt=K.findObject(d.seat.toString()).getDocumentPoint(ht.Spot.Center);st.setDataProperty(d,"loc",`${Tt.x} ${Tt.y}`);const ni=new ht.Animation;ni.add(b,"location",b.location,Tt),ni.start()}}}},J1={class:"min-h-screen flex flex-col h-full"},Z1={key:0,class:"flex flex-row h-full"},_1=so("div",{id:"guestsContainer",class:"w-[15rem]"},null,-1),$1=so("div",{id:"diagramContainer",class:"flex-1"},null,-1),Q1=[_1,$1],q1={class:"fixed bottom-5 left-[1rem] isola z-20"},b1=so("svg",{xmlns:"http://www.w3.org/2000/svg",height:"1.5em",viewBox:"0 0 448 512"},[so("path",{fill:"#FFFFFF",d:"M248 72c0-13.3-10.7-24-24-24s-24 10.7-24 24V232H40c-13.3 0-24 10.7-24 24s10.7 24 24 24H200V440c0 13.3 10.7 24 24 24s24-10.7 24-24V280H408c13.3 0 24-10.7 24-24s-10.7-24-24-24H248V72z"})],-1),tx=[b1],ix={key:1,class:"fixed bottom-5 left-[7rem] isola z-20"},ex=so("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor",class:"w-5 h-5"},[so("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0"})],-1),nx=[ex],ox={key:2,class:"fixed bottom-5 left-[10rem] isola z-20"},rx=so("svg",{xmlns:"http://www.w3.org/2000/svg",height:"1.5em",viewBox:"0 0 512 512",fill:"currentColor"},[so("path",{d:"M454.6 45.3l12.1 12.1c12.5 12.5 12.5 32.8 0 45.3L440 129.4 382.6 72l26.7-26.7c12.5-12.5 32.8-12.5 45.3 0zM189 265.6l171-171L417.4 152l-171 171c-4.2 4.2-9.6 7.2-15.4 8.6l-65.6 15.1L180.5 281c1.3-5.8 4.3-11.2 8.6-15.4zm197.7-243L166.4 243c-8.5 8.5-14.4 19.2-17.1 30.9l-20.9 90.6c-1.2 5.4 .4 11 4.3 14.9s9.5 5.5 14.9 4.3l90.6-20.9c11.7-2.7 22.4-8.6 30.9-17.1L489.4 125.3c25-25 25-65.5 0-90.5L477.3 22.6c-25-25-65.5-25-90.5 0zM80 64C35.8 64 0 99.8 0 144V432c0 44.2 35.8 80 80 80H368c44.2 0 80-35.8 80-80V304c0-8.8-7.2-16-16-16s-16 7.2-16 16V432c0 26.5-21.5 48-48 48H80c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48H208c8.8 0 16-7.2 16-16s-7.2-16-16-16H80z"})],-1),sx=[rx],hx={key:3,class:"p-16 flex items-center justify-center h-full grow"};function lx(d,K,b,st,Yt,Tt){const ni=Y1("LoadingBigTBF");return il(),el("div",J1,[Yt.loaded?(il(),el("div",Z1,Q1)):Zf("",!0),so("div",q1,[so("button",{type:"button",class:"block text-white rounded-md px-3 py-2 text-sm font-medium bg-blue-500 hover:bg-blue-400",onClick:K[0]||(K[0]=(...Qi)=>Tt.addGuest&&Tt.addGuest(...Qi))},tx)]),Yt.selectedGuest?(il(),el("div",ix,[so("button",{type:"button",class:"block text-white rounded-md px-3 py-2 text-sm font-medium bg-red-500 hover:bg-red-400",onClick:K[1]||(K[1]=(...Qi)=>Tt.deleteGuest&&Tt.deleteGuest(...Qi))},nx)])):Zf("",!0),Yt.selectedGuest?(il(),el("div",ox,[so("button",{type:"button",class:"block text-white rounded-md px-3 py-2 text-sm font-medium bg-blue-500 hover:bg-blue-400",onClick:K[2]||(K[2]=(...Qi)=>Tt.editGuest&&Tt.editGuest(...Qi))},sx)])):Zf("",!0),Yt.loaded?Zf("",!0):(il(),el("div",hx,[z1(ni,{contentType:d.contentType},null,8,["contentType"])]))])}const fx=R1(W1,[["render",lx]]);export{fx as default};
Back