gojs
Version:
Interactive diagrams, charts, and graphs, such as trees, flowcharts, orgcharts, UML, BPMN, or business diagrams
120 lines • 877 kB
JavaScript
/*
* GoJS v1.7.26 JavaScript Library for HTML Diagrams
* Northwoods Software, https://www.nwoods.com/
* GoJS and Northwoods Software are registered trademarks of Northwoods Software Corporation.
* Copyright (C) 1998-2017 by Northwoods Software Corporation. All Rights Reserved.
* THIS SOFTWARE IS LICENSED. THE LICENSE AGREEMENT IS AT: https://gojs.net/1.7.26/doc/license.html.
*/
(function(window) { var g,ca={};if(!window.document||void 0===window.document.createElement("canvas").getContext)throw window.console&&window.console.log("The HTML Canvas element is not supported in this browser,or this browser is in Compatibility mode."),Error("The HTML Canvas element is not supported in this browser,or this browser is in Compatibility mode.");if(!Object.defineProperty)throw Error("GoJS requires a newer version of JavaScript");
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return f.apply(a,e.concat(d.call(arguments)))}function c(){}var d=Array.prototype.slice,e=d.call(arguments,1),f=this;c.prototype=this.prototype;b.prototype=new c;return b});
(function(){for(var a=0,b=["ms","moz","webkit","o"],c=0;c<b.length&&!window.requestAnimationFrame;++c)window.requestAnimationFrame=window[b[c]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[b[c]+"CancelAnimationFrame"]||window[b[c]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(b){var c=(new Date).getTime(),f=Math.max(8,16-(c-a)),h=window.setTimeout(function(){b(c+f)},f);a=c+f;return h});window.cancelAnimationFrame||(window.cancelAnimationFrame=
function(a){window.clearTimeout(a)})})();ca.Debug=null;
var w={md:1,Sc:2,ed:4,dd:8,Gn:void 0!==window.navigator&&0<window.navigator.userAgent.indexOf("534.30")&&0<window.navigator.userAgent.indexOf("Android"),wI:void 0!==window.navigator&&0<window.navigator.userAgent.indexOf("MSIE 9.0"),qF:void 0!==window.navigator&&0<window.navigator.userAgent.indexOf("MSIE 10.0"),rF:void 0!==window.navigator&&0<window.navigator.userAgent.indexOf("Trident/7"),dL:void 0!==window.navigator&&0<window.navigator.userAgent.indexOf("Edge/"),Gk:void 0!==window.navigator&&void 0!==
window.navigator.platform&&0<=window.navigator.platform.toUpperCase().indexOf("MAC"),sF:void 0!==window.navigator&&void 0!==window.navigator.platform&&null!==window.navigator.platform.match(/(iPhone|iPod|iPad)/i),CE:function(a,b,c){var d=-1;return function(){var e=this,f=arguments;-1!==d&&w.clearTimeout(d);d=w.setTimeout(function(){d=-1;c||a.apply(e,f)},b);c&&!d&&a.apply(e,f)}},setTimeout:function(a,b){return window.setTimeout(a,b)},clearTimeout:function(a){window.clearTimeout(a)},createElement:function(a){return window.document.createElement(a)},
k:function(a){throw Error(a);},ma:function(a,b){var c="The object is frozen, so its properties cannot be set: "+a.toString();void 0!==b&&(c+=" to value: "+b);w.k(c)},G:function(a,b,c,d){a instanceof b||(c=w.getTypeName(c),void 0!==d&&(c+="."+d),w.Bd(a,b,c))},j:function(a,b,c,d){typeof a!==b&&(c=w.getTypeName(c),void 0!==d&&(c+="."+d),w.Bd(a,b,c))},wd:function(a,b,c){"number"===typeof a&&isFinite(a)||(b=w.getTypeName(b),void 0!==c&&(b+="."+c),w.k(b+" must be a real number type, and not NaN or Infinity: "+
a))},mb:function(a,b,c,d){a instanceof da&&a.Ee===b||(c=w.getTypeName(c),void 0!==d&&(c+="."+d),w.Bd(a,"a constant of class "+w.mf(b),c))},CK:function(a,b){"string"===typeof a?ea(a)||w.k('Color "'+a+'" is not a valid color string for '+b):a instanceof ha||w.k("Value for "+b+" must be a color string or a Brush, not "+a)},Bd:function(a,b,c,d){b=w.getTypeName(b);c=w.getTypeName(c);void 0!==d&&(c+="."+d);"string"===typeof a?w.k(c+" value is not an instance of "+b+': "'+a+'"'):w.k(c+" value is not an instance of "+
b+": "+a)},Fa:function(a,b,c,d){c=w.getTypeName(c);void 0!==d&&(c+="."+d);w.k(c+" is not in the range "+b+": "+a)},ld:function(a){w.k(w.mf(a)+" constructor cannot take any arguments.")},Ma:function(a){w.k("Collection was modified during iteration: "+a.toString()+"\n Perhaps you should iterate over a copy of the collection,\n or you could collect items to be removed from the collection after the iteration.")},Fj:function(a,b){w.k("No property to set for this enum value: "+b+" on "+a.toString())},
trace:function(a){window.console&&window.console.log(a)},gx:{},It:function(a,b){!0!==w.gx[a]&&(w.gx[a]=!0,window.console&&window.console.log(a+" is deprecated in "+b+", see the GoJS change log for more information."))},Pa:function(a){return"object"===typeof a&&null!==a},isArray:function(a){return Array.isArray(a)||a instanceof NodeList||a instanceof HTMLCollection},yI:function(a){return Array.isArray(a)},Wz:function(a,b,c){w.isArray(a)||w.Bd(a,"Array or NodeList or HTMLCollection",b,c)},Za:function(a){return a.length},
Ml:function(a){return Array.prototype.slice.call(a)},Ba:function(a,b){Array.isArray(a);return a[b]},sE:function(a,b,c){Array.isArray(a)?a[b]=c:w.k("Cannot replace an object in an HTMLCollection or NodeList at "+b)},Jl:function(a,b){if(Array.isArray(a))return a.indexOf(b);for(var c=a.length,d=0;d<c;d++)if(a[d]===b)return d;return-1},sh:function(a,b,c){Array.isArray(a)?b>=a.length?a.push(c):a.splice(b,0,c):w.k("Cannot insert an object into an HTMLCollection or NodeList: "+c+" at "+b)},Kg:function(a,
b){Array.isArray(a)?b>=a.length?a.pop():a.splice(b,1):w.k("Cannot remove an object from an HTMLCollection or NodeList at "+b)},zy:[],K:function(){var a=w.zy.pop();return void 0===a?new z:a},xb:function(a,b){var c=w.zy.pop();if(void 0===c)return new z(a,b);c.x=a;c.y=b;return c},v:function(a){w.zy.push(a)},OB:[],lm:function(){var a=w.OB.pop();return void 0===a?new ia:a},Bk:function(a){w.OB.push(a)},Ay:[],Jf:function(){var a=w.Ay.pop();return void 0===a?new B:a},lg:function(a,b,c,d){var e=w.Ay.pop();
if(void 0===e)return new B(a,b,c,d);e.x=a;e.y=b;e.width=c;e.height=d;return e},Db:function(a){w.Ay.push(a)},PB:[],Kf:function(){var a=w.PB.pop();return void 0===a?new ka:a},we:function(a){w.PB.push(a)},By:null,s:function(){var a=w.By;return null!==a?(w.By=null,a):new la},q:function(a){a.reset();w.By=a},NB:[],cb:function(){var a=w.NB.pop();return void 0===a?[]:a},ta:function(a){a.length=0;w.NB.push(a)},io:Object.freeze([]),pm:1,nc:function(a){a.__gohashid=w.pm++},Up:function(a){var b=a.__gohashid;
void 0===b&&(b=w.pm++,a.__gohashid=b);return b},Od:function(a){return a.__gohashid},ga:function(a,b){b.Ky=a;ca[a]=b},Ka:function(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a},ni:function(a){a.XG=!0},defineProperty:function(a,b,c,d,e){w.j(a,"function","Util.defineProperty:classfunc");w.j(b,"object","Util.defineProperty:propobj");w.j(c,"function","Util.defineProperty:getter");w.j(d,"function","Util.defineProperty:setter");for(var f in b){b=b[f];c={get:c,set:d,
enumerable:!0};if(void 0!==e)for(var h in e)c[h]=e[h];Object.defineProperty(a.prototype,f,c);e=Object.getOwnPropertyDescriptor(a.prototype,f);b&&e&&Object.defineProperty(a.prototype,b,e);break}},$J:!1,u:function(a,b,c,d){w.j(a,"function","Util.defineReadOnlyProperty:classfunc");w.j(b,"object","Util.defineReadOnlyProperty:propobj");w.j(c,"function","Util.defineReadOnlyProperty:getter");for(var e in b){var f=b[e];b={get:c,set:function(a){w.k('The property "'+f+'" is read-only and cannot be set to '+
a)},enumerable:!0};if(void 0!==d)for(var h in d)b[h]=d[h];Object.defineProperty(a.prototype,e,b);d=Object.getOwnPropertyDescriptor(a.prototype,e);f&&d&&Object.defineProperty(a.prototype,f,d);break}},ce:function(a,b){for(var c in b)b[c]=!0;a.prototype.TG=b},getTypeName:function(a){return void 0===a?"":"string"===typeof a?a:"function"===typeof a?w.mf(a):null===a?"*":""},mf:function(a){if("function"===typeof a){if(a.Ky)return a.Ky;if(a.name)return a.name;var b=a.toString(),c=b.indexOf("("),b=b.substring(9,
c).trim();if(""!==b)return a.Ky=b}else if("object"===typeof a&&a.constructor)return w.mf(a.constructor);return typeof a},p:function(a,b,c){w.j(a,"function","Util.defineEnumValue:classfunc");w.j(b,"string","Util.defineEnumValue:name");w.j(c,"number","Util.defineEnumValue:num");c=new da(a,b,c);Object.freeze(c);a[b]=c;var d=a.Uu;d instanceof ma||(d=new ma("string",da),a.Uu=d);d.add(b,c);return c},tb:function(a,b){if(!a||!b)return null;var c=void 0;try{"function"===typeof b?c=b(a):"function"===typeof a.getAttribute?
(c=a.getAttribute(b),null===c&&(c=void 0)):c=a[b]}catch(d){}return c},La:function(a,b,c){if(a&&b)try{"function"===typeof b?b(a,c):"function"===typeof a.setAttribute?a.setAttribute(b,c):a[b]=c}catch(d){}},Ju:function(a,b){w.j(a,"object","Setting properties requires Objects as arguments");w.j(b,"object","Setting properties requires Objects as arguments");var c=a instanceof C,d=a instanceof D,e;for(e in b){""===e&&w.k("Setting properties requires non-empty property names");var f=a,h=e;if(c||d){var k=
e.indexOf(".");if(0<k){var l=e.substring(0,k);if(c)f=a.xd(l);else if(f=a[l],void 0===f||null===f)f=a.eb[l];w.Pa(f)?h=e.substr(k+1):w.k("Unable to find object named: "+l+" in "+a.toString()+" when trying to set property: "+e)}}if("_"!==h[0]&&!w.hF(f,h))if(d&&"ModelChanged"===h){a.gH(b[h]);continue}else if(d&&"Changed"===h){a.hn(b[h]);continue}else if(d&&w.hF(a.eb,h))f=a.eb;else if(d&&oa(a,h)){a.Mw(h,b[h]);continue}else if(a instanceof F&&"Changed"===h){a.hn(b[h]);continue}else w.k('Trying to set undefined property "'+
h+'" on object: '+f.toString());f[h]=b[e];"_"===h[0]&&f instanceof G&&f.dH(h)}},hF:function(a,b){if(a.hasOwnProperty(b))return!0;for(var c=Object.getPrototypeOf(a);c&&c!==Function;){if(c.hasOwnProperty(b))return!0;var d=c.TG;if(d&&d[b])return!0;c=Object.getPrototypeOf(c)}return!1},kJ:function(a){for(var b=[],c=0;256>c;c++)b[c]=c;for(var d=0,e=0,c=0;256>c;c++)d=(d+b[c]+119)%256,e=b[c],b[c]=b[d],b[d]=e;for(var d=c=0,f="",h=0;h<a.length;h++)c=(c+1)%256,d=(d+b[c])%256,e=b[c],b[c]=b[d],b[d]=e,f+=String.fromCharCode(a.charCodeAt(h)^
b[(b[c]+b[d])%256]);return f},kI:function(a){for(var b={},c=0;256>c;c++)b["0123456789abcdef".charAt(c>>4)+"0123456789abcdef".charAt(c&15)]=String.fromCharCode(c);a.length%2&&(a="0"+a);for(var d=[],e=0,c=0;c<a.length;c+=2)d[e++]=b[a.substr(c,2)];a=d.join("");return""===a?"0":a},Lg:function(a){return w.kJ(w.kI(a))},nm:null,adym:"7da71ca0ad381e90",vfo:"2be641fdb160",sH:"@COLOR1",tH:"@COLOR2",DE:!1,Ft:null,Gt:null};
w.nm=function(){var a=window.document.createElement("canvas"),b=a.getContext("2d");b[w.Lg("7ca11abfd022028846")]=w.Lg("398c3597c01238");for(var c=["5da73c80a36755d3038e4972187c3cae51fd22","32ab5ff3b26f42dc0ed90f22432913b54ae6247590da4bb21c324ba3a84e385776","54a702f3e53909c447824c6706603faf4cfb236cdfda5de14c134ba1a95a2d4c7cc6f93c1387","74bf19bce72555874c86"],d=1;5>d;d++)b[w.Lg("7ca11abfd7330390")](w.Lg(c[d-1]),10,15*d+0);b[w.Lg("7ca11abfd022028846")]=w.Lg("39f046ebb36e4b");for(d=1;5>d;d++)b[w.Lg("7ca11abfd7330390")](w.Lg(c[d-
1]),10,15*d+0);if(4!==c.length||"5"!==c[0][0]||"7"!==c[3][0])w.p=function(a,b){var c=new da(a,b,2);Object.freeze(c);a[b]=c;var d=a.Uu;d instanceof ma||(d=new ma("string",da),a.Uu=d);d.add(b,c);return c};return a}();function da(a,b,c){w.nc(this);this.cC=a;this.Sb=b;this.aH=c}w.ga("EnumValue",da);da.prototype.toString=function(){return w.mf(this.cC)+"."+this.Sb};w.u(da,{Ee:"classType"},function(){return this.cC});w.u(da,{name:"name"},function(){return this.Sb});w.u(da,{value:"value"},function(){return this.aH});
var pa;da.findName=pa=function(a,b){if(void 0===b||null===b||""===b)return null;w.j(a,"function","findName:classfunc");w.j(b,"string","EnumValue.findName:name");var c=a.Uu;return c instanceof ma?c.ka(b):null};function qa(){this.aC=[]}qa.prototype.toString=function(){return this.aC.join("")};qa.prototype.add=function(a){""!==a&&this.aC.push(a)};function ra(){}
function sa(a){void 0===a&&(a=42);this.seed=a;this.vy=48271;this.Tu=2147483647;this.MB=this.Tu/this.vy;this.IG=this.Tu%this.vy;this.HG=1/this.Tu;this.random()}sa.prototype.random=function(){var a=this.seed%this.MB*this.vy-this.seed/this.MB*this.IG;this.seed=0<a?a:a+this.Tu;return this.seed*this.HG};function ta(){}w.u(ta,{i:"iterator"},function(){return this});ta.prototype.reset=ta.prototype.reset=function(){};ta.prototype.next=ta.prototype.next=function(){return!1};ta.prototype.hasNext=function(){return!1};
ta.prototype.first=ta.prototype.first=function(){return null};ta.prototype.any=function(){return!1};ta.prototype.all=function(){return!0};ta.prototype.each=function(){return this};ta.prototype.map=function(){return this};ta.prototype.filter=function(){return this};ta.prototype.concat=function(a){return a.i};w.u(ta,{count:"count"},function(){return 0});ta.prototype.Nf=function(){};ta.prototype.toString=function(){return"EmptyIterator"};var ua=new ta;function va(a){this.key=-1;this.value=a}
w.ce(va,{key:!0,value:!0});w.u(va,{i:"iterator"},function(){return this});va.prototype.reset=va.prototype.reset=function(){this.key=-1};va.prototype.next=va.prototype.next=function(){return-1===this.key?(this.key=0,!0):!1};va.prototype.hasNext=function(){return this.next()};va.prototype.first=va.prototype.first=function(){this.key=0;return this.value};va.prototype.any=function(a){this.key=-1;return a(this.value)};va.prototype.all=function(a){this.key=-1;return a(this.value)};
va.prototype.each=function(a){this.key=-1;a(this.value);return this};va.prototype.map=function(a){return new va(a(this.value))};va.prototype.filter=function(a){return a(this.value)?new va(this.value):ua};va.prototype.concat=function(a){return new xa(this,a.i)};w.u(va,{count:"count"},function(){return 1});va.prototype.Nf=function(){this.value=null};va.prototype.toString=function(){return"SingletonIterator("+this.value+")"};function xa(a,b){this.ml=a;this.nl=b;this.Vu=!1}w.ce(xa,{key:!0,value:!0});
w.u(xa,{i:"iterator"},function(){return this});xa.prototype.reset=xa.prototype.reset=function(){this.ml.reset();this.nl.reset();this.Vu=!1};xa.prototype.next=xa.prototype.next=function(){if(!this.Vu){var a=this.ml;if(a.next())return this.key=a.key,this.value=a.value,!0;this.Vu=!0}return this.Vu&&(a=this.nl,a.next())?(this.key=a.key,this.value=a.value,!0):!1};xa.prototype.hasNext=function(){return this.next()};
xa.prototype.first=xa.prototype.first=function(){this.reset();return this.next()?this.value:null};xa.prototype.any=function(a){return this.ml.any(a)||this.nl.any(a)?!0:!1};xa.prototype.all=function(a){return this.ml.all(a)&&this.nl.all(a)?!0:!1};xa.prototype.each=function(a){this.ml.each(a);this.nl.each(a);return this};xa.prototype.map=function(a){return new xa(this.ml.map(a),this.nl.map(a))};xa.prototype.filter=function(a){return new xa(this.ml.filter(a),this.nl.filter(a))};
xa.prototype.concat=function(a){return new xa(this,a.i)};w.u(xa,{count:"count"},function(){return this.ml.count+this.nl.count});xa.prototype.Nf=function(){this.value=this.key=null};xa.prototype.toString=function(){return"ConcatIterator()"};function za(a){this.xc=a;this.$h=null;a.Qb=null;this.Sa=a.F;this.wc=-1}w.ce(za,{key:!0,value:!0});w.u(za,{i:"iterator"},function(){return this});w.defineProperty(za,{hq:"predicate"},function(){return this.$h},function(a){this.$h=a});
za.prototype.reset=za.prototype.reset=function(){var a=this.xc;a.Qb=null;this.Sa=a.F;this.wc=-1};za.prototype.next=za.prototype.next=function(){var a=this.xc;if(a.F!==this.Sa){if(0>this.key)return!1;w.Ma(a)}var a=a.n,b=a.length,c=++this.wc,d=this.$h;if(null!==d)for(;c<b;){var e=a[c];if(d(e))return this.key=this.wc=c,this.value=e,!0;c++}else{if(c<b)return this.key=c,this.value=a[c],!0;this.Nf()}return!1};za.prototype.hasNext=function(){return this.next()};
za.prototype.first=za.prototype.first=function(){var a=this.xc;this.Sa=a.F;this.wc=0;var a=a.n,b=a.length,c=this.$h;if(null!==c){for(var d=0;d<b;){var e=a[d];if(c(e))return this.key=this.wc=d,this.value=e;d++}return null}return 0<b?(e=a[0],this.key=0,this.value=e):null};za.prototype.any=function(a){var b=this.xc;b.Qb=null;var c=b.F;this.wc=-1;for(var d=b.n,e=d.length,f=this.$h,h=0;h<e;h++){var k=d[h];if(null===f||f(k)){if(a(k))return!0;b.F!==c&&w.Ma(b)}}return!1};
za.prototype.all=function(a){var b=this.xc;b.Qb=null;var c=b.F;this.wc=-1;for(var d=b.n,e=d.length,f=this.$h,h=0;h<e;h++){var k=d[h];if(null===f||f(k)){if(!a(k))return!1;b.F!==c&&w.Ma(b)}}return!0};za.prototype.each=function(a){var b=this.xc;b.Qb=null;var c=b.F;this.wc=-1;for(var d=b.n,e=d.length,f=this.$h,h=0;h<e;h++){var k=d[h];if(null===f||f(k))a(k),b.F!==c&&w.Ma(b)}return this};
za.prototype.map=function(a){var b=this.xc;b.Qb=null;var c=b.F;this.wc=-1;for(var d=[],e=b.n,f=e.length,h=this.$h,k=0;k<f;k++){var l=e[k];if(null===h||h(l))d.push(a(l)),b.F!==c&&w.Ma(b)}a=new H;a.n=d;a.Ic();return a.i};za.prototype.filter=function(a){var b=this.xc;b.Qb=null;var c=b.F;this.wc=-1;for(var d=[],e=b.n,f=e.length,h=this.$h,k=0;k<f;k++){var l=e[k];if(null===h||h(l))a(l)&&d.push(l),b.F!==c&&w.Ma(b)}a=new H(b.na);a.n=d;a.Ic();return a.i};
za.prototype.concat=function(a){this.xc.Qb=null;return new xa(this,a.i)};w.u(za,{count:"count"},function(){var a=this.$h;if(null!==a){for(var b=0,c=this.xc.n,d=c.length,e=0;e<d;e++)a(c[e])&&b++;return b}return this.xc.n.length});za.prototype.Nf=function(){this.key=-1;this.value=null;this.Sa=-1;this.$h=null;this.xc.Qb=this};za.prototype.toString=function(){return"ListIterator@"+this.wc+"/"+this.xc.count};function Aa(a){this.xc=a;a.Oi=null;this.Sa=a.F;this.wc=a.n.length}w.ce(Aa,{key:!0,value:!0});
w.u(Aa,{i:"iterator"},function(){return this});Aa.prototype.reset=Aa.prototype.reset=function(){var a=this.xc;a.Oi=null;this.Sa=a.F;this.wc=a.n.length};Aa.prototype.next=Aa.prototype.next=function(){var a=this.xc;if(a.F!==this.Sa){if(0>this.key)return!1;w.Ma(a)}var b=--this.wc;if(0<=b)return this.key=b,this.value=a.n[b],!0;this.Nf();return!1};Aa.prototype.hasNext=function(){return this.next()};
Aa.prototype.first=Aa.prototype.first=function(){var a=this.xc;this.Sa=a.F;var b=a.n;this.wc=a=b.length-1;return 0<=a?(b=b[a],this.key=a,this.value=b):null};Aa.prototype.any=function(a){var b=this.xc;b.Oi=null;var c=b.F,d=b.n,e=d.length;this.wc=e;for(e-=1;0<=e;e--){if(a(d[e]))return!0;b.F!==c&&w.Ma(b)}return!1};Aa.prototype.all=function(a){var b=this.xc;b.Oi=null;var c=b.F,d=b.n,e=d.length;this.wc=e;for(e-=1;0<=e;e--){if(!a(d[e]))return!1;b.F!==c&&w.Ma(b)}return!0};
Aa.prototype.each=function(a){var b=this.xc;b.Oi=null;var c=b.F,d=b.n,e=d.length;this.wc=e;for(e-=1;0<=e;e--)a(d[e]),b.F!==c&&w.Ma(b);return this};Aa.prototype.map=function(a){var b=this.xc;b.Oi=null;var c=b.F,d=[],e=b.n,f=e.length;this.wc=f;for(f-=1;0<=f;f--)d.push(a(e[f])),b.F!==c&&w.Ma(b);a=new H;a.n=d;a.Ic();return a.i};
Aa.prototype.filter=function(a){var b=this.xc;b.Oi=null;var c=b.F,d=[],e=b.n,f=e.length;this.wc=f;for(f-=1;0<=f;f--){var h=e[f];a(h)&&d.push(h);b.F!==c&&w.Ma(b)}a=new H(b.na);a.n=d;a.Ic();return a.i};Aa.prototype.concat=function(a){this.xc.Oi=null;return new xa(this,a.i)};w.u(Aa,{count:"count"},function(){return this.xc.n.length});Aa.prototype.Nf=function(){this.key=-1;this.value=null;this.Sa=-1;this.xc.Oi=this};
Aa.prototype.toString=function(){return"ListIteratorBackwards("+this.wc+"/"+this.xc.count+")"};
function H(a){w.nc(this);this.P=!1;this.n=[];this.F=0;this.Oi=this.Qb=null;void 0===a||null===a?this.na=null:"string"===typeof a?"object"===a||"string"===a||"number"===a||"boolean"===a||"function"===a?this.na=a:w.Fa(a,"the string 'object', 'number', 'string', 'boolean', or 'function'","List constructor: type"):"function"===typeof a?this.na=a===Object?"object":a===String?"string":a===Number?"number":a===Boolean?"boolean":a===Function?"function":a:w.Fa(a,"null, a primitive type name, or a class type",
"List constructor: type")}w.ga("List",H);H.prototype.Ic=function(){var a=this.F;a++;999999999<a&&(a=0);this.F=a};H.prototype.freeze=H.prototype.freeze=function(){this.P=!0;return this};H.prototype.thaw=H.prototype.Qa=function(){this.P=!1;return this};H.prototype.toString=function(){return"List("+w.getTypeName(this.na)+")#"+w.Od(this)};H.prototype.add=H.prototype.add=function(a){null!==a&&(this.P&&w.ma(this,a),this.n.push(a),this.Ic())};H.prototype.push=H.prototype.push=function(a){this.add(a)};
H.prototype.addAll=H.prototype.Kc=function(a){if(null===a)return this;this.P&&w.ma(this);var b=this.n;if(w.isArray(a))for(var c=w.Za(a),d=0;d<c;d++){var e=w.Ba(a,d);b.push(e)}else for(a=a.i;a.next();)e=a.value,b.push(e);this.Ic();return this};H.prototype.clear=H.prototype.clear=function(){this.P&&w.ma(this);this.n.length=0;this.Ic()};H.prototype.contains=H.prototype.contains=function(a){return null===a?!1:-1!==this.n.indexOf(a)};H.prototype.has=H.prototype.has=function(a){return this.contains(a)};
H.prototype.indexOf=H.prototype.indexOf=function(a){return null===a?-1:this.n.indexOf(a)};H.prototype.elt=H.prototype.da=function(a){var b=this.n;(0>a||a>=b.length)&&w.Fa(a,"0 <= i < length",H,"elt:i");return b[a]};H.prototype.get=H.prototype.get=function(a){return this.da(a)};H.prototype.setElt=H.prototype.kg=function(a,b){var c=this.n;(0>a||a>=c.length)&&w.Fa(a,"0 <= i < length",H,"setElt:i");this.P&&w.ma(this,a);c[a]=b};H.prototype.set=H.prototype.set=function(a,b){this.kg(a,b)};
H.prototype.first=H.prototype.first=function(){var a=this.n;return 0===a.length?null:a[0]};H.prototype.last=H.prototype.fe=function(){var a=this.n,b=a.length;return 0<b?a[b-1]:null};H.prototype.pop=H.prototype.pop=function(){this.P&&w.ma(this);var a=this.n;return 0<a.length?a.pop():null};H.prototype.any=function(a){for(var b=this.n,c=this.F,d=b.length,e=0;e<d;e++){if(a(b[e]))return!0;this.F!==c&&w.Ma(this)}return!1};
H.prototype.all=function(a){for(var b=this.n,c=this.F,d=b.length,e=0;e<d;e++){if(!a(b[e]))return!1;this.F!==c&&w.Ma(this)}return!0};H.prototype.each=function(a){for(var b=this.n,c=this.F,d=b.length,e=0;e<d;e++)a(b[e]),this.F!==c&&w.Ma(this);return this};H.prototype.map=function(a){for(var b=new H,c=[],d=this.n,e=this.F,f=d.length,h=0;h<f;h++)c.push(a(d[h])),this.F!==e&&w.Ma(this);b.n=c;b.Ic();return b};
H.prototype.filter=function(a){for(var b=new H(this.na),c=[],d=this.n,e=this.F,f=d.length,h=0;h<f;h++){var k=d[h];a(k)&&c.push(k);this.F!==e&&w.Ma(this)}b.n=c;b.Ic();return b};H.prototype.concat=function(a){return this.copy().Kc(a)};H.prototype.insertAt=H.prototype.Qd=function(a,b){0>a&&w.Fa(a,">= 0",H,"insertAt:i");this.P&&w.ma(this,a);var c=this.n;a>=c.length?c.push(b):c.splice(a,0,b);this.Ic();return!0};
H.prototype.remove=H.prototype["delete"]=H.prototype.remove=function(a){if(null===a)return!1;this.P&&w.ma(this,a);var b=this.n;a=b.indexOf(a);if(-1===a)return!1;a===b.length-1?b.pop():b.splice(a,1);this.Ic();return!0};H.prototype.removeAt=H.prototype.bd=function(a){var b=this.n;(0>a||a>=b.length)&&w.Fa(a,"0 <= i < length",H,"removeAt:i");this.P&&w.ma(this,a);a===b.length-1?b.pop():b.splice(a,1);this.Ic()};
H.prototype.removeRange=H.prototype.removeRange=function(a,b){var c=this.n,d=c.length;if(0>a)a=0;else if(a>=d)return this;if(0>b)return this;b>=d&&(b=d-1);if(a>b)return this;this.P&&w.ma(this);for(var e=a,f=b+1;f<d;)c[e++]=c[f++];c.length=d-(b-a+1);this.Ic();return this};H.prototype.copy=function(){var a=new H(this.na),b=this.n;0<b.length&&(a.n=Array.prototype.slice.call(b));return a};H.prototype.toArray=H.prototype.gc=function(){for(var a=this.n,b=this.count,c=Array(b),d=0;d<b;d++)c[d]=a[d];return c};
H.prototype.toSet=H.prototype.wG=function(){for(var a=new I(this.na),b=this.n,c=this.count,d=0;d<c;d++)a.add(b[d]);return a};H.prototype.sort=H.prototype.sort=function(a){this.P&&w.ma(this);this.n.sort(a);this.Ic();return this};
H.prototype.sortRange=H.prototype.vq=function(a,b,c){var d=this.n,e=d.length;void 0===b&&(b=0);void 0===c&&(c=e);this.P&&w.ma(this);var f=c-b;if(1>=f)return this;(0>b||b>=e-1)&&w.Fa(b,"0 <= from < length",H,"sortRange:from");if(2===f)return c=d[b],e=d[b+1],0<a(c,e)&&(d[b]=e,d[b+1]=c,this.Ic()),this;if(0===b)if(c>=e)d.sort(a);else for(f=d.slice(0,c),f.sort(a),a=0;a<c;a++)d[a]=f[a];else if(c>=e)for(f=d.slice(b),f.sort(a),a=b;a<e;a++)d[a]=f[a-b];else for(f=d.slice(b,c),f.sort(a),a=b;a<c;a++)d[a]=f[a-
b];this.Ic();return this};H.prototype.reverse=H.prototype.reverse=function(){this.P&&w.ma(this);this.n.reverse();this.Ic();return this};w.u(H,{count:"count"},function(){return this.n.length});w.u(H,{size:"size"},function(){return this.n.length});w.u(H,{length:"length"},function(){return this.n.length});w.u(H,{i:"iterator"},function(){if(0>=this.n.length)return ua;var a=this.Qb;return null!==a?(a.reset(),a):new za(this)});
w.u(H,{Jn:"iteratorBackwards"},function(){if(0>=this.n.length)return ua;var a=this.Oi;return null!==a?(a.reset(),a):new Aa(this)});function Ba(a){this.bi=a;a.Qb=null;this.Sa=a.F;this.Va=null}w.ce(Ba,{key:!0,value:!0});w.u(Ba,{i:"iterator"},function(){return this});Ba.prototype.reset=Ba.prototype.reset=function(){var a=this.bi;a.Qb=null;this.Sa=a.F;this.Va=null};
Ba.prototype.next=Ba.prototype.next=function(){var a=this.bi;if(a.F!==this.Sa){if(null===this.key)return!1;w.Ma(a)}var b=this.Va,b=null===b?a.Ea:b.Xa;if(null!==b)return this.Va=b,this.value=b.value,this.key=b.key,!0;this.Nf();return!1};Ba.prototype.hasNext=function(){return this.next()};Ba.prototype.first=Ba.prototype.first=function(){var a=this.bi;this.Sa=a.F;a=a.Ea;if(null!==a){this.Va=a;var b=a.value;this.key=a.key;return this.value=b}return null};
Ba.prototype.any=function(a){var b=this.bi;b.Qb=null;var c=b.F;this.Va=null;for(var d=b.Ea;null!==d;){if(a(d.value))return!0;b.F!==c&&w.Ma(b);d=d.Xa}return!1};Ba.prototype.all=function(a){var b=this.bi;b.Qb=null;var c=b.F;this.Va=null;for(var d=b.Ea;null!==d;){if(!a(d.value))return!1;b.F!==c&&w.Ma(b);d=d.Xa}return!0};Ba.prototype.each=function(a){var b=this.bi;b.Qb=null;var c=b.F;this.Va=null;for(var d=b.Ea;null!==d;)a(d.value),b.F!==c&&w.Ma(b),d=d.Xa;return this};
Ba.prototype.map=function(a){var b=this.bi;b.Qb=null;for(var c=new H,d=b.F,e=b.Ea;null!==e;)c.add(a(e.value)),b.F!==d&&w.Ma(b),e=e.Xa;return c.i};Ba.prototype.filter=function(a){var b=this.bi;b.Qb=null;for(var c=new H(b.na),d=b.F,e=b.Ea;null!==e;){var f=e.value;a(f)&&c.add(f);b.F!==d&&w.Ma(b);e=e.Xa}return c.i};Ba.prototype.concat=function(a){this.bi.Qb=null;return new xa(this,a.i)};w.u(Ba,{count:"count"},function(){return this.bi.pd});
Ba.prototype.Nf=function(){this.value=this.key=null;this.Sa=-1;this.bi.Qb=this};Ba.prototype.toString=function(){return null!==this.Va?"SetIterator@"+this.Va.value:"SetIterator"};
function I(a){w.nc(this);this.P=!1;void 0===a||null===a?this.na=null:"string"===typeof a?"object"===a||"string"===a||"number"===a?this.na=a:w.Fa(a,"the string 'object', 'number' or 'string'","Set constructor: type"):"function"===typeof a?this.na=a===Object?"object":a===String?"string":a===Number?"number":a:w.Fa(a,"null, a primitive type name, or a class type","Set constructor: type");this.qd={};this.pd=0;this.Qb=null;this.F=0;this.Uh=this.Ea=null}w.ga("Set",I);
I.prototype.Ic=function(){var a=this.F;a++;999999999<a&&(a=0);this.F=a};I.prototype.freeze=I.prototype.freeze=function(){this.P=!0;return this};I.prototype.thaw=I.prototype.Qa=function(){this.P=!1;return this};I.prototype.toString=function(){return"Set("+w.getTypeName(this.na)+")#"+w.Od(this)};
I.prototype.add=I.prototype.add=function(a){if(null===a)return!1;this.P&&w.ma(this,a);var b=a;w.Pa(a)&&(b=w.Up(a));return void 0===this.qd[b]?(this.pd++,a=new Ca(a,a),this.qd[b]=a,b=this.Uh,null===b?this.Ea=a:(a.gp=b,b.Xa=a),this.Uh=a,this.Ic(),!0):!1};I.prototype.addAll=I.prototype.Kc=function(a){if(null===a)return this;this.P&&w.ma(this);if(w.isArray(a))for(var b=w.Za(a),c=0;c<b;c++)this.add(w.Ba(a,c));else for(a=a.i;a.next();)this.add(a.value);return this};
I.prototype.contains=I.prototype.contains=function(a){if(null===a)return!1;var b=a;return w.Pa(a)&&(b=w.Od(a),void 0===b)?!1:void 0!==this.qd[b]};I.prototype.has=I.prototype.has=function(a){return this.contains(a)};I.prototype.containsAll=function(a){if(null===a)return!0;for(a=a.i;a.next();)if(!this.contains(a.value))return!1;return!0};I.prototype.containsAny=function(a){if(null===a)return!0;for(a=a.i;a.next();)if(this.contains(a.value))return!0;return!1};
I.prototype.first=I.prototype.first=function(){var a=this.Ea;return null===a?null:a.value};I.prototype.any=function(a){for(var b=this.F,c=this.Ea;null!==c;){if(a(c.value))return!0;this.F!==b&&w.Ma(this);c=c.Xa}return!1};I.prototype.all=function(a){for(var b=this.F,c=this.Ea;null!==c;){if(!a(c.value))return!1;this.F!==b&&w.Ma(this);c=c.Xa}return!0};I.prototype.each=function(a){for(var b=this.F,c=this.Ea;null!==c;)a(c.value),this.F!==b&&w.Ma(this),c=c.Xa;return this};
I.prototype.map=function(a){for(var b=new I,c=this.F,d=this.Ea;null!==d;)b.add(a(d.value)),this.F!==c&&w.Ma(this),d=d.Xa;return b};I.prototype.filter=function(a){for(var b=new I(this.na),c=this.F,d=this.Ea;null!==d;){var e=d.value;a(e)&&b.add(e);this.F!==c&&w.Ma(this);d=d.Xa}return b};I.prototype.concat=function(a){return this.copy().Kc(a)};
I.prototype.remove=I.prototype["delete"]=I.prototype.remove=function(a){if(null===a)return!1;this.P&&w.ma(this,a);var b=a;if(w.Pa(a)&&(b=w.Od(a),void 0===b))return!1;a=this.qd[b];if(void 0===a)return!1;var c=a.Xa,d=a.gp;null!==c&&(c.gp=d);null!==d&&(d.Xa=c);this.Ea===a&&(this.Ea=c);this.Uh===a&&(this.Uh=d);delete this.qd[b];this.pd--;this.Ic();return!0};
I.prototype.removeAll=I.prototype.Zx=function(a){if(null===a)return this;this.P&&w.ma(this);if(w.isArray(a))for(var b=w.Za(a),c=0;c<b;c++)this.remove(w.Ba(a,c));else for(a=a.i;a.next();)this.remove(a.value);return this};I.prototype.retainAll=function(a){if(null===a||0===this.count)return this;this.P&&w.ma(this);var b=new I(this.na);b.Kc(a);a=[];for(var c=this.i;c.next();){var d=c.value;b.contains(d)||a.push(d)}this.Zx(a);return this};
I.prototype.clear=I.prototype.clear=function(){this.P&&w.ma(this);this.qd={};this.pd=0;this.Uh=this.Ea=null;this.Ic()};I.prototype.copy=function(){var a=new I(this.na),b=this.qd,c;for(c in b)a.add(b[c].value);return a};I.prototype.toArray=I.prototype.gc=function(){var a=Array(this.pd),b=this.qd,c=0,d;for(d in b)a[c]=b[d].value,c++;return a};I.prototype.toList=function(){var a=new H(this.na),b=this.qd,c;for(c in b)a.add(b[c].value);return a};w.u(I,{count:"count"},function(){return this.pd});
w.u(I,{size:"size"},function(){return this.pd});w.u(I,{i:"iterator"},function(){if(0>=this.pd)return ua;var a=this.Qb;return null!==a?(a.reset(),a):new Ba(this)});function Da(a){this.Ga=a;this.Sa=a.F;this.Va=null}w.ce(Da,{key:!0,value:!0});w.u(Da,{i:"iterator"},function(){return this});Da.prototype.reset=Da.prototype.reset=function(){this.Sa=this.Ga.F;this.Va=null};
Da.prototype.next=Da.prototype.next=function(){var a=this.Ga;if(a.F!==this.Sa){if(null===this.key)return!1;w.Ma(a)}var b=this.Va,b=null===b?a.Ea:b.Xa;if(null!==b)return this.Va=b,this.value=this.key=a=b.key,!0;this.Nf();return!1};Da.prototype.hasNext=function(){return this.next()};Da.prototype.first=Da.prototype.first=function(){var a=this.Ga;this.Sa=a.F;a=a.Ea;return null!==a?(this.Va=a,this.value=this.key=a=a.key):null};
Da.prototype.any=function(a){var b=this.Ga,c=b.F;this.Va=null;for(var d=b.Ea;null!==d;){if(a(d.key))return!0;b.F!==c&&w.Ma(b);d=d.Xa}return!1};Da.prototype.all=function(a){var b=this.Ga,c=b.F;this.Va=null;for(var d=b.Ea;null!==d;){if(!a(d.key))return!1;b.F!==c&&w.Ma(b);d=d.Xa}return!0};Da.prototype.each=function(a){var b=this.Ga,c=b.F;this.Va=null;for(var d=b.Ea;null!==d;)a(d.key),b.F!==c&&w.Ma(b),d=d.Xa;return this};
Da.prototype.map=function(a){var b=this.Ga,c=b.F;this.Va=null;for(var d=new H,e=b.Ea;null!==e;)d.add(a(e.key)),b.F!==c&&w.Ma(b),e=e.Xa;return d.i};Da.prototype.filter=function(a){var b=this.Ga,c=b.F;this.Va=null;for(var d=new H(b.Th),e=b.Ea;null!==e;){var f=e.key;a(f)&&d.add(f);b.F!==c&&w.Ma(b);e=e.Xa}return d.i};Da.prototype.concat=function(a){return new xa(this,a.i)};w.u(Da,{count:"count"},function(){return this.Ga.pd});Da.prototype.Nf=function(){this.value=this.key=null;this.Sa=-1};
Da.prototype.toString=function(){return null!==this.Va?"MapKeySetIterator@"+this.Va.value:"MapKeySetIterator"};function Ea(a){w.nc(this);this.P=!0;this.Ga=a}w.Ka(Ea,I);Ea.prototype.freeze=function(){return this};Ea.prototype.Qa=function(){return this};Ea.prototype.toString=function(){return"MapKeySet("+this.Ga.toString()+")"};Ea.prototype.add=Ea.prototype.add=function(){w.k("This Set is read-only: "+this.toString());return!1};
Ea.prototype.set=Ea.prototype.set=function(){w.k("This Set is read-only: "+this.toString());return!1};Ea.prototype.contains=Ea.prototype.contains=function(a){return this.Ga.contains(a)};Ea.prototype.has=Ea.prototype.has=function(a){return this.contains(a)};Ea.prototype.remove=Ea.prototype["delete"]=Ea.prototype.remove=function(){w.k("This Set is read-only: "+this.toString());return!1};Ea.prototype.clear=Ea.prototype.clear=function(){w.k("This Set is read-only: "+this.toString())};
Ea.prototype.first=Ea.prototype.first=function(){var a=this.Ga.Ea;return null!==a?a.key:null};Ea.prototype.any=function(a){for(var b=this.Ga.Ea;null!==b;){if(a(b.key))return!0;b=b.Xa}return!1};Ea.prototype.all=function(a){for(var b=this.Ga.Ea;null!==b;){if(!a(b.key))return!1;b=b.Xa}return!0};Ea.prototype.each=function(a){for(var b=this.Ga.Ea;null!==b;)a(b.key),b=b.Xa;return this};Ea.prototype.map=function(a){for(var b=new I,c=this.Ga.Ea;null!==c;)b.add(a(c.key)),c=c.Xa;return b};
Ea.prototype.filter=function(a){for(var b=new I(this.Ga.Th),c=this.Ga.Ea;null!==c;){var d=c.key;a(d)&&b.add(d);c=c.Xa}return b};Ea.prototype.concat=function(a){return this.wG().Kc(a)};Ea.prototype.copy=function(){return new Ea(this.Ga)};Ea.prototype.toSet=Ea.prototype.wG=function(){var a=new I(this.Ga.Th),b=this.Ga.qd,c;for(c in b)a.add(b[c].key);return a};Ea.prototype.toArray=Ea.prototype.gc=function(){var a=this.Ga.qd,b=Array(this.Ga.pd),c=0,d;for(d in a)b[c]=a[d].key,c++;return b};
Ea.prototype.toList=function(){var a=new H(this.Ga.Th),b=this.Ga.qd,c;for(c in b)a.add(b[c].key);return a};w.u(Ea,{count:"count"},function(){return this.Ga.pd});w.u(Ea,{size:"size"},function(){return this.Ga.pd});w.u(Ea,{i:"iterator"},function(){return 0>=this.Ga.pd?ua:new Da(this.Ga)});function Ga(a){this.Ga=a;a.Pi=null;this.Sa=a.F;this.Va=null}w.ce(Ga,{key:!0,value:!0});w.u(Ga,{i:"iterator"},function(){return this});
Ga.prototype.reset=Ga.prototype.reset=function(){var a=this.Ga;a.Pi=null;this.Sa=a.F;this.Va=null};Ga.prototype.next=Ga.prototype.next=function(){var a=this.Ga;if(a.F!==this.Sa){if(null===this.key)return!1;w.Ma(a)}var b=this.Va,b=null===b?a.Ea:b.Xa;if(null!==b)return this.Va=b,this.value=b.value,this.key=b.key,!0;this.Nf();return!1};Ga.prototype.hasNext=function(){return this.next()};
Ga.prototype.first=Ga.prototype.first=function(){var a=this.Ga;this.Sa=a.F;a=a.Ea;if(null!==a){this.Va=a;var b=a.value;this.key=a.key;return this.value=b}return null};Ga.prototype.any=function(a){var b=this.Ga;b.Pi=null;var c=b.F;this.Va=null;for(var d=b.Ea;null!==d;){if(a(d.value))return!0;b.F!==c&&w.Ma(b);d=d.Xa}return!1};Ga.prototype.all=function(a){var b=this.Ga;b.Pi=null;var c=b.F;this.Va=null;for(var d=b.Ea;null!==d;){if(!a(d.value))return!1;b.F!==c&&w.Ma(b);d=d.Xa}return!0};
Ga.prototype.each=function(a){var b=this.Ga;b.Pi=null;var c=b.F;this.Va=null;for(var d=b.Ea;null!==d;)a(d.value),b.F!==c&&w.Ma(b),d=d.Xa;return this};Ga.prototype.map=function(a){var b=this.Ga;b.Pi=null;var c=b.F;this.Va=null;for(var d=new H,e=b.Ea;null!==e;)d.add(a(e.value)),b.F!==c&&w.Ma(b),e=e.Xa;return d.i};Ga.prototype.filter=function(a){var b=this.Ga;b.Pi=null;var c=b.F;this.Va=null;for(var d=new H(b.Th),e=b.Ea;null!==e;){var f=e.value;a(f)&&d.add(f);b.F!==c&&w.Ma(b);e=e.Xa}return d.i};
Ga.prototype.concat=function(a){this.Ga.Pi=null;return new xa(this,a.i)};w.u(Ga,{count:"count"},function(){return this.Ga.pd});Ga.prototype.Nf=function(){this.value=this.key=null;this.Sa=-1;this.Ga.Pi=this};Ga.prototype.toString=function(){return null!==this.Va?"MapValueSetIterator@"+this.Va.value:"MapValueSetIterator"};function Ca(a,b){this.key=a;this.value=b;this.gp=this.Xa=null}w.ce(Ca,{key:!0,value:!0});Ca.prototype.toString=function(){return"{"+this.key+":"+this.value+"}"};
function Ha(a){this.Ga=a;a.Qb=null;this.Sa=a.F;this.Va=null}w.ce(Ha,{key:!0,value:!0});w.u(Ha,{i:"iterator"},function(){return this});Ha.prototype.reset=Ha.prototype.reset=function(){var a=this.Ga;a.Qb=null;this.Sa=a.F;this.Va=null};Ha.prototype.next=Ha.prototype.next=function(){var a=this.Ga;if(a.F!==this.Sa){if(null===this.key)return!1;w.Ma(a)}var b=this.Va,b=null===b?a.Ea:b.Xa;if(null!==b)return this.Va=b,this.key=b.key,this.value=b.value,!0;this.Nf();return!1};Ha.prototype.hasNext=function(){return this.next()};
Ha.prototype.first=Ha.prototype.first=function(){var a=this.Ga;this.Sa=a.F;a=a.Ea;return null!==a?(this.Va=a,this.key=a.key,this.value=a.value,a):null};Ha.prototype.any=function(a){var b=this.Ga;b.Qb=null;var c=b.F;this.Va=null;for(var d=b.Ea;null!==d;){if(a(d))return!0;b.F!==c&&w.Ma(b);d=d.Xa}return!1};Ha.prototype.all=function(a){var b=this.Ga;b.Qb=null;var c=b.F;this.Va=null;for(var d=b.Ea;null!==d;){if(!a(d))return!1;b.F!==c&&w.Ma(b);d=d.Xa}return!0};
Ha.prototype.each=function(a){var b=this.Ga;b.Qb=null;var c=b.F;this.Va=null;for(var d=b.Ea;null!==d;)a(d),b.F!==c&&w.Ma(b),d=d.Xa;return this};Ha.prototype.map=function(a){var b=this.Ga;b.Qb=null;var c=b.F;this.Va=null;for(var d=new H,e=b.Ea;null!==e;)d.add(a(e)),b.F!==c&&w.Ma(b),e=e.Xa;return d.i};Ha.prototype.filter=function(a){var b=this.Ga;b.Qb=null;var c=b.F;this.Va=null;for(var d=new H,e=b.Ea;null!==e;)a(e)&&d.add(e),b.F!==c&&w.Ma(b),e=e.Xa;return d.i};
Ha.prototype.concat=function(a){this.Ga.Qb=null;return new xa(this,a.i)};w.u(Ha,{count:"count"},function(){return this.Ga.pd});Ha.prototype.Nf=function(){this.value=this.key=null;this.Sa=-1;this.Ga.Qb=this};Ha.prototype.toString=function(){return null!==this.Va?"MapIterator@"+this.Va:"MapIterator"};
function ma(a,b){w.nc(this);this.P=!1;void 0===a||null===a?this.Th=null:"string"===typeof a?"object"===a||"string"===a||"number"===a?this.Th=a:w.Fa(a,"the string 'object', 'number' or 'string'","Map constructor: keytype"):"function"===typeof a?this.Th=a===Object?"object":a===String?"string":a===Number?"number":a:w.Fa(a,"null, a primitive type name, or a class type","Map constructor: keytype");void 0===b||null===b?this.st=null:"string"===typeof b?"object"===b||"string"===b||"boolean"===b||"number"===
b||"function"===b?this.st=b:w.Fa(b,"the string 'object', 'number', 'string', 'boolean', or 'function'","Map constructor: valtype"):"function"===typeof b?this.st=b===Object?"object":b===String?"string":b===Number?"number":b===Boolean?"boolean":b===Function?"function":b:w.Fa(b,"null, a primitive type name, or a class type","Map constructor: valtype");this.qd={};this.pd=0;this.Pi=this.Qb=null;this.F=0;this.Uh=this.Ea=null}w.ga("Map",ma);
ma.prototype.Ic=function(){var a=this.F;a++;999999999<a&&(a=0);this.F=a};ma.prototype.freeze=ma.prototype.freeze=function(){this.P=!0;return this};ma.prototype.thaw=ma.prototype.Qa=function(){this.P=!1;return this};ma.prototype.toString=function(){return"Map("+w.getTypeName(this.Th)+","+w.getTypeName(this.st)+")#"+w.Od(this)};
ma.prototype.add=ma.prototype.add=function(a,b){this.P&&w.ma(this,a);var c=a;w.Pa(a)&&(c=w.Up(a));var d=this.qd[c];if(void 0===d)return this.pd++,d=new Ca(a,b),this.qd[c]=d,c=this.Uh,null===c?this.Ea=d:(d.gp=c,c.Xa=d),this.Uh=d,this.Ic(),!0;d.value=b;return!1};ma.prototype.set=ma.prototype.set=function(a,b){return this.add(a,b)};
ma.prototype.addAll=ma.prototype.Kc=function(a){if(null===a)return this;if(w.isArray(a))for(var b=w.Za(a),c=0;c<b;c++){var d=w.Ba(a,c);this.add(d.key,d.value)}else for(a=a.i;a.next();)this.add(a.key,a.value);return this};ma.prototype.first=ma.prototype.first=function(){return this.Ea};ma.prototype.any=function(a){for(var b=this.F,c=this.Ea;null!==c;){if(a(c))return!0;this.F!==b&&w.Ma(this);c=c.Xa}return!1};
ma.prototype.all=function(a){for(var b=this.F,c=this.Ea;null!==c;){if(!a(c))return!1;this.F!==b&&w.Ma(this);c=c.Xa}return!0};ma.prototype.each=function(a){for(var b=this.F,c=this.Ea;null!==c;)a(c),this.F!==b&&w.Ma(this),c=c.Xa;return this};ma.prototype.map=function(a){for(var b=new ma(this.Th),c=this.F,d=this.Ea;null!==d;)b.add(d.key,a(d)),this.F!==c&&w.Ma(this),d=d.Xa;return b};
ma.prototype.filter=function(a){for(var b=new ma(this.Th,this.st),c=this.F,d=this.Ea;null!==d;)a(d)&&b.add(d.key,d.value),this.F!==c&&w.Ma(this),d=d.Xa;return b};ma.prototype.concat=function(a){return this.copy().Kc(a)};ma.prototype.contains=ma.prototype.contains=function(a){var b=a;return w.Pa(a)&&(b=w.Od(a),void 0===b)?!1:void 0!==this.qd[b]};ma.prototype.has=ma.prototype.has=function(a){return this.contains(a)};
ma.prototype.getValue=ma.prototype.ka=function(a){var b=a;if(w.Pa(a)&&(b=w.Od(a),void 0===b))return null;a=this.qd[b];return void 0===a?null:a.value};ma.prototype.get=ma.prototype.get=function(a){return this.ka(a)};
ma.prototype.remove=ma.prototype["delete"]=ma.prototype.remove=function(a){if(null===a)return!1;this.P&&w.ma(this,a);var b=a;if(w.Pa(a)&&(b=w.Od(a),void 0===b))return!1;a=this.qd[b];if(void 0===a)return!1;var c=a.Xa,d=a.gp;null!==c&&(c.gp=d);null!==d&&(d.Xa=c);this.Ea===a&&(this.Ea=c);this.Uh===a&&(this.Uh=d);delete this.qd[b];this.pd--;this.Ic();return!0};ma.prototype.clear=ma.prototype.clear=function(){this.P&&w.ma(this);this.qd={};this.pd=0;this.Uh=this.Ea=null;this.Ic()};
ma.prototype.copy=function(){var a=new ma(this.Th,this.st),b=this.qd,c;for(c in b){var d=b[c];a.add(d.key,d.value)}return a};ma.prototype.toArray=ma.prototype.gc=function(){var a=this.qd,b=Array(this.pd),c=0,d;for(d in a){var e=a[d];b[c]=new Ca(e.key,e.value);c++}return b};ma.prototype.toKeySet=ma.prototype.Gj=function(){return new Ea(this)};w.u(ma,{count:"count"},function(){return this.pd});w.u(ma,{size:"size"},function(){return this.pd});
w.u(ma,{i:"iterator"},function(){if(0>=this.count)return ua;var a=this.Qb;return null!==a?(a.reset(),a):new Ha(this)});w.u(ma,{zF:"iteratorKeys"},function(){return 0>=this.count?ua:new Da(this)});w.u(ma,{AF:"iteratorValues"},function(){if(0>=this.count)return ua;var a=this.Pi;return null!==a?(a.reset(),a):new Ga(this)});function z(a,b){void 0===a?this.y=this.x=0:(this.x=a,this.y=b)}w.ga("Point",z);w.ni(z);w.ce(z,{x:!0,y:!0});z.prototype.assign=function(a){this.x=a.x;this.y=a.y};
z.prototype.setTo=z.prototype.m=function(a,b){this.x=a;this.y=b;return this};z.prototype.set=z.prototype.set=function(a){this.x=a.x;this.y=a.y;return this};z.prototype.copy=function(){var a=new z;a.x=this.x;a.y=this.y;return a};z.prototype.Ha=function(){Object.freeze(this);return this};z.prototype.S=function(){return Object.isFrozen(this)?this:this.copy().freeze()};z.prototype.freeze=function(){return this};z.prototype.Qa=function(){Object.isFrozen(this)&&w.k("cannot thaw constant: "+this);return this};
z.parse=function(a){if("string"===typeof a){a=a.split(" ");for(var b=0,c=0;""===a[b];)b++;var d=a[b++];d&&(c=parseFloat(d));for(var e=0;""===a[b];)b++;(d=a[b++])&&(e=parseFloat(d));return new z(c,e)}return new z};z.stringify=function(a){return a.x.toString()+" "+a.y.toString()};z.prototype.toString=function(){return"Point("+this.x+","+this.y+")"};z.prototype.equals=z.prototype.L=function(a){return a instanceof z?this.x===a.x&&this.y===a.y:!1};
z.prototype.equalTo=z.prototype.jx=function(a,b){return this.x===a&&this.y===b};z.prototype.equalsApprox=z.prototype.Lc=function(a){return J(this.x,a.x)&&J(this.y,a.y)};z.prototype.add=z.prototype.add=function(a){this.x+=a.x;this.y+=a.y;return this};z.prototype.subtract=z.prototype.Ej=function(a){this.x-=a.x;this.y-=a.y;return this};z.prototype.offset=z.prototype.offset=function(a,b){this.x+=a;this.y+=b;return this};
z.prototype.rotate=z.prototype.rotate=function(a){if(0===a)return this;var b=this.x,c=this.y;if(0===b&&0===c)return this;var d=0,e=0;360<=a?a-=360:0>a&&(a+=360);90===a?(d=0,e=1):180===a?(d=-1,e=0):270===a?(d=0,e=-1):(a=a*Math.PI/180,d=Math.cos(a),e=Math.sin(a));this.x=d*b-e*c;this.y=e*b+d*c;return this};z.prototype.scale=z.prototype.scale=function(a,b){this.x*=a;this.y*=b;return this};z.prototype.distanceSquaredPoint=z.prototype.zf=function(a){var b=a.x-this.x;a=a.y-this.y;return b*b+a*a};
z.prototype.distanceSquared=z.prototype.Op=function(a,b){var c=a-this.x,d=b-this.y;return c*c+d*d};z.prototype.normalize=z.prototype.normalize=function(){var a=this.x,b=this.y,c=Math.sqrt(a*a+b*b);0<c&&(this.x=a/c,this.y=b/c);return this};z.prototype.directionPoint=z.prototype.Pb=function(a){return Ka(a.x-this.x,a.y-this.y)};z.prototype.direction=z.prototype.direction=function(a,b){return Ka(a-this.x,b-this.y)};
function Ka(a,b){if(0===a)return 0<b?90:0>b?270:0;if(0===b)return 0<a?0:180;if(isNaN(a)||isNaN(b))return 0;var c=180*Math.atan(Math.abs(b/a))/Math.PI;0>a?c=0>b?c+180:180-c:0>b&&(c=360-c);return c}z.prototype.projectOntoLineSegment=function(a,b,c,d){La(a,b,c,d,this.x,this.y,this);return this};z.prototype.projectOntoLineSegmentPoint=function(a,b){La(a.x,a.y,b.x,b.y,this.x,this.y,this);return this};z.prototype.snapToGrid=function(a,b,c,d){Na(this.x,this.y,a,b,c,d,this);return this};
z.prototype.snapToGridPoint=function(a,b){Na(this.x,this.y,a.x,a.y,b.width,b.height,this);return this};z.prototype.setRectSpot=z.prototype.Yn=function(a,b){this.x=a.x+b.x*a.width+b.offsetX;this.y=a.y+b.y*a.height+b.offsetY;return this};z.prototype.setSpot=z.prototype.Lu=function(a,b,c,d,e){this.x=a+e.x*c+e.offsetX;this.y=b+e.y*d+e.offsetY;return this};z.prototype.transform=function(a){a.nb(this);return this};function Pa(a,b){b.pi(a);return a}var Ra;
z.distanceLineSegmentSquared=Ra=function(a,b,c,d,e,f){var h=e-c,k=f-d,l=h*h+k*k;c-=a;d-=b;var m=-c*h-d*k;if(0>=m||m>=l)return h=e-a,k=f-b,Math.min(c*c+d*d,h*h+k*k);a=h*d-k*c;return a*a/l};var Sa;z.distanceSquared=Sa=function(a,b,c,d){a=c-a;b=d-b;return a*a+b*b};var Ta;z.direction=Ta=function(a,b,c,d){a=c-a;b=d-b;if(0===a)return 0<b?90:0>b?270:0;if(0===b)return 0<a?0:180;if(isNaN(a)||isNaN(b))return 0;d=180*Math.atan(Math.abs(b/a))/Math.PI;0>a?d=0>b?d+180:180-d:0>b&&(d=360-d);return d};
z.prototype.isReal=z.prototype.I=function(){return isFinite(this.x)&&isFinite(this.y)};function ia(a,b){void 0===a?this.height=this.width=0:(this.width=a,this.height=b)}w.ga("Size",ia);w.ni(ia);w.ce(ia,{width:!0,height:!0});ia.prototype.assign=function(a){this.width=a.width;this.height=a.height};ia.prototype.setTo=ia.prototype.m=function(a,b){this.width=a;this.height=b;return this};ia.prototype.set=ia.prototype.set=function(a){this.width=a.width;this.height=a.height;return this};
ia.prototype.copy=function(){var a=new ia;a.width=this.width;a.height=this.height;return a};ia.prototype.Ha=function(){Object.freeze(this);return this};ia.prototype.S=function(){return Object.isFrozen(this)?this:this.copy().freeze()};ia.prototype.freeze=function(){return this};ia.prototype.Qa=function(){Object.isFrozen(this)&&w.k("cannot thaw constant: "+this);return this};
ia.parse=function(a){if("string"===typeof a){a=a.split(" ");for(var b=0,c=0;""===a[b];)b++;var d=a[b++];d&&(c=parseFloat(d));for(var e=0;""===a[b];)b++;(d=a[b++])&&(e=parseFloat(d));return new ia(c,e)}return new ia};ia.stringify=function(a){return a.width.toString()+" "+a.height.toString()};ia.prototype.toString=function(){return"Size("+this.width+","+this.height+")"};ia.prototype.equals=ia.prototype.L=function(a){return a instanceof ia?this.width===a.width&&this.height===a.height:!1};
ia.prototype.equalTo=ia.prototype.jx=function(a,b){return this.width===a&&this.height===b};ia.prototype.equalsApprox=ia.prototype.Lc=function(a){return J(this.width,a.width)&&J(this.height,a.height)};ia.prototype.isReal=ia.prototype.I=function(){return isFinite(this.width)&&isFinite(this.height)};
function B(a,b,c,d){void 0===a?this.height=this.width=this.y=this.x=0:a instanceof z?b instanceof z?(this.x=Math.min(a.x,b.x),this.y=Math.min(a.y,b.y),this.width=Math.abs(a.x-b.x),this.height=Math.abs(a.y-b.y)):b instanceof ia?(this.x=a.x,this.y=a.y,this.width=b.width,this.height=b.height):w.k("Incorrect arguments supplied to Rect constructor"):(this.x=a,this.y=b,this.width=c,this.height=d)}w.ga("Rect",B);w.ni(B);w.ce(B,{x:!0,y:!0,width:!0,height:!0});
B.prototype.assign=function(a){this.x=a.x;this.y=a.y;this.width=a.width;this.height=a.height};function Ua(a,b,c){a.width=b;a.height=c}B.prototype.setTo=B.prototype.m=function(a,b,c,d){this.x=a;this.y=b;this.width=c;this.height=d;return this};B.prototype.set=B.prototype.set=function(a){this.x=a.x;this.y=a.y;this.width=a.width;this.height=a.height;return this};B.prototype.setPoint=B.prototype.Xg=function(a){this.x=a.x;this.y=a.y;return this};
B.prototype.setSize=function(a){this.width=a.width;this.height=a.height;return this};B.prototype.copy=function(){var a=new B;a.x=this.x;a.y=this.y;a.width=this.width;a.height=this.height;return a};B.prototype.Ha=function(){Object.freeze(this);return this};B.prototype.S=function(){return Object.isFrozen(this)?this:this.copy().freeze()};B.prototype.freeze=function(){return this};B.prototype.Qa=function(){Object.isFrozen(this)&&w.k("cannot thaw constant: "+this);return this};
B.parse=function(a){if("string"===typeof a){a=a.split(" ");for(var b=0,c=0;""===a[b];)b++;var d=a[b++];d&&(c=parseFloat(d));for(var e=0;""===a[b];)b++;(d=a[b++])&&(e=parseFloat(d));for(var f=0;""===a[b];)b++;(d=a[b++])&&(f=parseFloat(d));for(var h=0;""===a[b];)b++;(d=a[b++])&&(h=parseFloat(d));return new B(c,e,f,h)}return new B};B.stringify=function(a){return a.x.toString()+" "+a.y.toString()+" "+a.width.toString()+" "+a.height.toString()};
B.prototype.toString=function(){return"Rect("+this.x+","+this.y+","+this.width+","+this.height+")"};B.prototype.equals=B.prototype.L=function(a){return a instanceof B?this.x===a.x&&this.y===a.y&&this.width===a.width&&this.height===a.height:!1};B.prototype.equalTo=B.prototype.jx=function(a,b,c,d){return this.x===a&&this.y===b&&this.width===c&&this.height===d};B.prototype.equalsApprox=B.prototype.Lc=function(a){return J(this.x,a.x)&&J(this.y,a.y)&&J(this.width,a.width)&&J(this.height,a.height)};
function Va(a,b){return Wa(a.x,b.x)&&Wa(a.y,b.y)&&Wa(a.width,b.width)&&Wa(a.height,b.height)}B.prototype.containsPoint=B.prototype.Ia=function(a){return this.x<=a.x&&this.x+th